原标题:云计算核心手艺Docker教程:Docker使用ZFS存储驱动程序ZFS是下一代文件系统,它支持许多高级存储手艺,例如卷管理,快照,校验和,压缩和数据删除,复制等。

它由Sun Microsystems创建,并以CDDL许可证开源。由于CDDL和GPL之间的许可不兼容,所以ZFS不能作为主线Linux内核的一部分提供。然而,Linux上的ZFS项目提供了树外内核模块和用户空间工具,可以分别安装它们。

Linux上的ZFS端口是健康且成熟的。然而,当前不建议将zfsDocker存储驱动程序用于生产,除非您对Linux上的ZFS有丰富的经验。

前提条件ZFS需要一个或多个专用块设备,最好是固态驱动器。

ZFS仅支持Docker引擎-社区与Ubuntu 14.04或更高版本,与zfs 包或zfs-native与ubuntu-zfs安装的软件包。

Ubuntu 14.04,需要启用进一步软件包存储库, ppa:zfs-native/stable然后才能安装软件包。有关 说明,请参见 https://launchpad.net/~zfs-native/+archive/ubuntu/stable。

Docker EE或CS-Engine或任何其他Linux平台不支持ZFS。

该/var/lib/docker/目录安装在ZFS格式的文件系统上。

更改存储驱动程序将使您已经创建的所有容器在本地系统上均不可访问。使用docker save保存的容器,并推动现有图像Docker集线器或私人仓库,这样就不需要再后来创建它们。

配置Docker与zfs存储驱动程序1.停止Docker。

2.复制内容/var/lib/docker/到/var/lib/docker.bk并删除的内容/var/lib/docker/。

$ sudo cp -au /var/lib/docker /var/lib/docker.bk$ sudo rm -rf /var/lib/docker/*3.在一个zpool或多个专用块设备上创建一个新的,然后将其安装到中/var/lib/docker/。确保指定了正确的设备,因为这是破坏性的操作。本示例将两个设备添加到池中。

$ sudo zpool create -f zpool-docker -m /var/lib/docker /dev/xvdf /dev/xvdg该命令创建zpool和并将其命名zpool-docker。该名称仅用于显示目的,您可以使用其他名称。使用检查创建和正确安装了池zfs list。

$ sudo zfs listNAME USED AVAIL REFER MOUNTPOINTzpool-docker 55K 96.4G 19K /var/lib/docker4.配置Docker以使用zfs。编辑/etc/docker/daemon.json并将设置 storage-driver为zfs。如果该文件以往为空,则当下应如下所示:{"storage-driver": "zfs"}保存并关闭文件。

5.启动Docker。使用docker info验证存储驱动程序zfs。