centos7下将docker的storage 由loop-lvm 更改为 direct-lvm
本机服务器环境是centos7 (vbox虚拟机) 安装docker后 运行正常,某次强行关闭了虚拟机 导致后续docker运行不起来,发现报错是与storage有关,所以网上查原因是说,docker原本是在ubuntu上开发的,ubuntu有 union fs这种支持,但是centos内核不支持,docker为了能够在centos下 开箱即用,所以弄了loop-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 已使用
更多推荐
所有评论(0)