云计算核心技术Docker教程:Docker使用ZFS存储驱动程序

ZFS是下一代文件系统,它支持许多高级存储技术,例如卷管理,快照,校验和,压缩和重复数据删除,复制等。

ZFS是下一代文件系统,它支持许多高级存储技术,例如卷管理,快照,校验和,压缩和重复数据删除,复制等。

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

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

前提条件

ZFS需要一个或多个专用块设备,最好是固态驱动器(SSD)。

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

对于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 list

NAME USED AVAIL REFER MOUNTPOINT

zpool-docker 55K 96.4G 19K /var/lib/docker

4.配置Docker以使用zfs。编辑/etc/docker/daemon.json并将设置 storage-driver为zfs。如果该文件以前为空,则现在应如下所示:

{

\”storage-driver\”: \”zfs\”

}

保存并关闭文件。

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

$ sudo docker info

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

Server Version: 17.03.1-ce

Storage Driver: zfs

Zpool: zpool-docker

Zpool Health: ONLINE

Parent Dataset: zpool-docker

Space Used By Parent: 249856

Space Available: 103498395648

Parent Quota: no

Compression: off

<…>

给TA打赏
共{{data.count}}人
人已打赏
云计算

邱跃鹏出任腾讯云与智慧产业事业群COO SAP前中国区总经理李强加盟

2021-5-14 15:31:13

云计算

嘀嗒出行回应被约谈:不经营网约车业务 部采用与运价挂钩的抽成机制

2021-5-15 9:22:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索