NFS 导出 ext4 和 btrfs 的叠加

wup*_*ppi 2 nfs btrfs overlayfs

我有 2 个数据源。一种是 btrfs(raid),一种是简单的 ext4 分区。那些应该透明地显示为一个。这是一个简单的只读示例,但是lower/upper/workdir 版本产生了同样的问题,btrfs 为upper,ext4 为lower。

手动安装:

mount -t overlay overlay -o lowerdir=/mnt/raid/folder1/:/mnt/ext4/folder1 -o comment=merge  -o nfs_export=on /data/merged
Run Code Online (Sandbox Code Playgroud)

fstab 挂载:

overlay /data/merged overlay defaults,lowerdir=/mnt/raid/folder1/:/mnt/ext4/folder1,comment=merge,nfs_export=on 0 0
Run Code Online (Sandbox Code Playgroud)

这是我的 nfs 导出:

/data/merged 192.168.0.0/255.255.255.0(ro,fsid=1,async,insecure,crossmnt)
Run Code Online (Sandbox Code Playgroud)

exportfs -ra 产生: exportfs: /data/merged does not support NFS export

我的配置:Ubuntu 18.04 LTS with HWE kernel 4.18.0-13-generic 这是我的主要配置来源:https ://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt

也许我错过了一些 NFSv4 的东西(这是 nfs 导出overlayfs 所需要的)?

编辑:根据要求,我为 sourcecs 安装:

UUID=d138b8fa-83e1-4df7-80dc-c1ed7d866f77       /mnt/raid       btrfs   defaults        0       2
UUID=6bb8f391-0872-40cf-8aff-8bdb32632098       /mnt/ext4        ext4    errors=remount-ro 0 2
Run Code Online (Sandbox Code Playgroud)

编辑2:

grep -H . /sys/module/overlay/parameters/*
/sys/module/overlay/parameters/nfs_export:N
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 6

kernel.orgdmesg尝试重现错误时,您还必须指定

  • -o index=on
  • -o index=on -o redirect_dir=nofollow 当没有 upperdir

您的挂载命令应该如下所示。

mount -t overlay overlay -o lowerdir=/mnt/raid/folder1/:/mnt/ext4/folder1 -o comment=merge -o nfs_export=on -o index=on -o redirect_dir=nofollow /data/merged
Run Code Online (Sandbox Code Playgroud)

的输出

/sys/module/overlay/parameters/nfs_export:N
Run Code Online (Sandbox Code Playgroud)

显示安装选项的默认值并验证它是否实际可用。