|
Device Mapper是基于内核的框架,是Linux上许多高级卷管理技术的基础。Docker的devicemapper存储驱动程序利用此框架的精简配置和快照功能进行图像和容器管理。本文将Device Mapper存储驱动程序称为devicemapper,将内核框架称为Devi云计ce Mapper。 对于受devicemapper支持的系统,Linux内核中包含支持。但是,需要特定的配置才能将其与Docker一起使用。 该devicemapper驱动程序使用专用于Docker的块设备,并在块级别而非文件级别运行。可以通过向Docker主机添加物理存储来扩展这些设备,算核并且它们的性能要好于在操作系统(OS)级别上使用文件系统。 前提条件 devicemapper 在Docker Engine上受支持-在CentOS,Fedora,Ubuntu或Debian上运行的社区。 devicemapper需要安装lvm2和device-mapper-persistent心技-data软件包。 更改存储驱动程序将使您已经创建的所有容器在本地系统上均不可访问。使用docker save保存的容器,并推动现有图像docker集线器或私人仓库,这样你就不会需要稍后重新创建。 配置泊坞窗与devicemapper存储驱动程序 在执行这些步骤之前,您必须首先满足所有 先术D决条件。 配置loop-lvm测试模式 此配置仅适用于测试。该loop-lvm模式利用一种“回送”机制,该机制可以读取和写入本地磁盘上的文件,就像它们是实际的物理磁盘或块设备一样。但是,添加回送机制以及与OS文件系统层的交互意味着IO操作可能很慢且占用大量资源。使用环回设备也会引入oc竞争条件。但是,设置loop-lvm模式可以帮助您在尝试启用direct-lvm模式所需的更复杂的设置之前,先找出一些基本问题(例如缺少用户空间软件包,内核驱动程序等)。loop-lvm因此,模式仅应在配置之前用于执行基本测试 direct-lvm。 对于生产系统,请参阅为生产 配置直接lkevm模式。 1.停止Docker。 $ sudo systemctl stop docker 2.编辑/etc/docker/daemon.json。如果尚不存在,请创建它。假设文件为空,请添加以下内容。 { "storage-driver": "devicemapper" } 在守护程序参r教考文档中查看每个存储驱动程序的所有存储选项 如果daemon.json文件包含格式错误的JSON,则Docker无法启动。 3.启动Docker。 $ sudo systemctl start docker 4.验证守护程序正在使用devicemapper存储驱动程序。使用 docker info命令并查程:找Storage Driver。 $ docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 17.03.1-ce Storage Driver: devicemapper Pool Name: docker-2Do02:1-8413957-pool Pool Blocksize: 65.54 kB Base Device Size: 10.74 GB Backing Filesystem: xfs Data file: /dev/loop0 Metadata file: /dev/loop1 Data Space Used: 1ck1.8 MB Data Space Total: 107.4 GB Data Space Available: 7.44 GB Metadata Space Used: 581.6 KB Metadata Space Total: 2.147 GB Metadata Space Available: 2.147 GB Thin Pooerl Minimum Free Space: 10.74 GB Udev Sync Supported: true Deferred Removal Enabled: false Deferred Deletion Enabled: false Deferred Deleted Device Count: 0 Data loop fi使用le: /var/lib/docker/devicemapper/data Metadata loop file: /var/lib/docker/devicemapper/metadata Library Version: 1.02.135-RHEL7 (2016-11-16) <...°t; 该主机以loop-lvm模式运行,生产系统不支持该模式。这可以通过以下事实来表明:Data loop file 和Metadata loop file均位于下方的文件中 /var/lib/docker/devicemapper。这些是环回安装的稀疏文件。对于生产系统,请参阅为生产 配置vi直接lvm模式。
|