centos7下将docker的storage 由loop-lvm 更改为 direct-lvm

本机服务器环境是centos7 (vbox虚拟机)  安装Docker后 运行正常,某次强行关闭了虚拟机 导致后续docker运行不起来,发现报错是与storage有关,所以网上查原因是说,docker原本是在ubuntu上开发的,ubuntu有 union fs这种支持,但是centos内核不支持,docker为了能够在centos下 开箱即用,所以弄了loop-lvm ,做到不用配置,但是这个东西官方明确说明 不建议在生成环境使用,所以通过网上查找资料,将loop-lvm  更换为direct-lvm

 

我给我的虚拟机 创建了一个虚拟硬盘 并分出了一个5G大小的分区 /dev/sdb2  先停止docker服务  systemctl stop docker.service

 

1、创建之前先将/dev/sdb2分区用fdisk把id改为8e(lvm)

 

2、创建pv (创建完毕 pvdisplay 能看到成果)

pvcreate /dev/sdb2

 

3、创建vg (从生成pv后的硬盘 创建类似一个虚拟硬盘的东西) 创建完毕 vgdisplay 能看到成果

vgcreate docker /dev/sdb2

 

4、创建两个lv(lv就是逻辑分区,上一步创建的vg 可以理解为一个虚拟硬盘,现在要对虚拟硬盘docker进行分区 lvdisplay 能看到分区结果

)

lvcreate --wipesignatures y -n thinpool -l 95%VG docker

lvcreate --wipesignatures y -n thinpoolmeta -l 1%VG docker

 

5、根据上一步的两个LV创建thin-pool(thinpool 是docker storage能用的)

lvconvert -y --zero n -c512K --thinpool docker/thinpool --poolmetadata docker/thinpoolmeta

 

6、配置thin-pool的自动扩展

 

修改lvm配置文件
vi/etc/lvm/profile/docker-thinpool.profile
如下:
activation{
   thin_pool_autoextend_threshold=80
   thin_pool_autoextend_percent=20
}

 

7、激活lv的配置文件

lvchange --metadataprofile docker-thinpool docker/thinpool

 

8、在docker启动配置文件
/etc/sysconfig/docker-storage
中添加或修改:
DOCKER_STORAGE_OPTIONS=--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/docker-thinpool --storage-opt dm.use_deferred_removal=true

 

9、启动docker

启动前 先删除  rm -rivf /var/lib/docker/*   (注意备份该文件夹 切记 该文件夹下有镜像 容器等文件 否则镜像需要重新构建或下载)

systemctl start docker.service

 

10、docker info 能查看到thinpool 已使用

 

http://blog.csdn.net/u014062332/article/details/54406849

猜你喜欢

转载自m635674608.iteye.com/blog/2357765