docker 在 lvm2 挂载上使用 btrfs

docker 在 lvm2 挂载上使用 btrfs

我已经修改了我的 synology DS918(DSM 6.2.2-24922 Update 4)以运行 docker-19.03.8。不幸的是,虽然主挂载/volume1是 btrfs,并且 docker 支持btrfs作为存储驱动程序,但它

需要专用的块存储设备,例如物理磁盘

Synology 默认在下面使用 LVM2(我认为):

root@nas1:~# docker info 2> /dev/null | grep -i root
 Docker Root Dir: /volume1/@docker
root@nas1:~# mount | grep ' /volume1 '
/dev/mapper/vg1-volume_1 on /volume1 type btrfs (rw,relatime,synoacl,space_cache=v2,auto_reclaim_space,metadata_ratio=50,subvolid=257,subvol=/@syno)

我无法提取任何图像,原因是(traefik作为示例,这是通用的):

root@nas1:~# docker pull traefik:v2.2
v2.2: Pulling from library/traefik
aad63a933944: Pull complete
f365f1b91ebb: Extracting [==================================================>]  694.1kB/694.1kB
dc367a6045f5: Download complete
ff697159d003: Download complete
failed to register layer: Failed to create btrfs snapshot: inappropriate ioctl for device

这表明根本问题出在 btrfs 快照/子卷上(尽管我不太了解如何使用或操作它们)。

问题:

  1. docker与 btrfs-on-lvm2 一起工作吗?我尝试过将其更改为"storage-driver":"devicemapper"(和"overlay2"),但没有成功 (dockerd 无法启动)。docker-ce 文档中没有其他建议使用其他机制。

  2. 有没有办法让 Synology 安装/volume1在非 LVM2 分区上?它是镜像 (RAID-1) 8TB 驱动器,具有一些导出的共享。

相关内容