背景CentOS 7已经集成了Docker Engine, 并且提供了docker-storage-setup服务来帮助配置docker服务的devicemapper存储驱动,如果该驱动自动配置失败,则docker服务的存储驱动会降级为lvm-loop驱动。由于loop设备的缓存问题,lvm-loop模式不适合生产环境。 CentOS 7的安装程序默认使用lvm模式管理磁盘,如果仅有一块磁盘,安装程序会在该物理卷(pv)上创建centos卷组(vg), 并同时使用所有空间创建home和root逻辑卷(lv)。 服务docker-storage-setup默认会尝试使用root文件系统所属的vg, 即centos vg,但是由于该vg上已经没有剩余空间,从而导致devicemapper驱动配置失败。 减小home lvm的大小创建docker lvmCentOS 7默认安装程序创建的home lv空间一般比较大,先减小其大小: lvresize -L -50G /dev/centos/home 重新创建并挂载home文件系统 umount /home
mkfs.xfs /dev/centos/home
mount /home
使用docker-storage-setup配置devicemapper驱动, 执行: servicedockerstop
rm -rf /var/lib/docker
servicedockerstart
添加新的存储设备创建docker lvm停止docker服务,并清除已有的docker storage: servicedockerstop
rm -rf /var/lib/docker
编辑/etc/sysconfig/docker-storage-setup: DEVS=/dev/sdb VG=docker 配置devicemapper驱动: [root@localhost ~]# docker-storage-setup INFO: Volumegroupbackingrootfilesystemcouldnot bedetermined INFO: Device /dev/sdbis alreadypartitionedand is partofvolumegroupdocker Roundingupsizeto fullphysicalextent 12.00 MiB Logicalvolume "docker-poolmeta" created. Logicalvolume "docker-pool" created. WARNING: Convertinglogicalvolumedocker/docker-pooland docker/docker-poolmetato pool's dataand metadatavolumes. THIS WILLDESTROYCONTENTOFLOGICALVOLUME (filesystemetc.) Converteddocker/docker-poolto thinpool. Logicalvolume "docker-pool" changed. 重启docker服务: servicedockerstart
确认配置生效: a) vg信息: [root@localhost ~]# vgdisplay --- Volumegroup --- VGName docker SystemID Format lvm2 MetadataAreas 1 MetadataSequenceNo 6 VGAccess read/write VGStatus resizable MAXLV 0 CurLV 1 OpenLV 0 MaxPV 0 CurPV 1 ActPV 1 VGSize 10.00 GiB PESize 4.00 MiB TotalPE 2559 AllocPE / Size 1028 / 4.02 GiB Free PE / Size 1531 / 5.98 GiB VGUUID v1eiA1-P7CS-pUx9-D0uS-eVwZ-41pA-SKdlef b) docker info: [root@localhost ~]# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 ServerVersion: 1.10.3 StorageDriver: devicemapper PoolName: docker-docker--pool PoolBlocksize: 524.3 kB BaseDeviceSize: 10.74 GB BackingFilesystem: xfs Datafile: Metadatafile: DataSpaceUsed: 20.45 MB DataSpaceTotal: 4.287 GB DataSpaceAvailable: 4.266 GB MetadataSpaceUsed: 40.96 kB MetadataSpaceTotal: 12.58 MB MetadataSpaceAvailable: 12.54 MB UdevSyncSupported: true DeferredRemovalEnabled: true DeferredDeletionEnabled: true DeferredDeletedDeviceCount: 0 LibraryVersion: 1.02.107-RHEL7 (2016-06-09) ExecutionDriver: native-0.2 LoggingDriver: json-file Plugins: Volume: local Network: bridgenull host KernelVersion: 3.10.0-327.22.2.el7.x86_64 OperatingSystem: CentOSLinux 7 (Core) OSType: linux Architecture: x86_64 NumberofDockerHooks: 2 CPUs: 2 TotalMemory: 1.782 GiB Name: localhost.localdomain ID: AY7O:H2RJ:33J5:62FY:GHZE:AGFH:F42E:AH3J:WY7N:JXQK:LHBS:BDKY WARNING: bridge-nf-call-iptablesis disabled WARNING: bridge-nf-call-ip6tablesis disabled Registries: docker.io (secure) 3) Docker Storage配置选项,查看/etc/sysconfig/docker-storage: DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.fs=xfs --storage-opt dm.thinpooldev=/dev/mapper/centos-docker--pool --storage-opt dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true " http://www./articles/UFJFRzN 参考 |
|
来自: 野崎君noZakiKu > 《大数据云计算》