通过 SMB 和 NFS 共享 AUFS

通过 SMB 和 NFS 共享 AUFS

我使用 ubuntu server 12.04 作为文件服务器,它有 3 个磁盘,两个包含文件,一个包含其他磁盘的奇偶校验,使用 snapraid。我已经能够将一个磁盘共享为 SMB 和 NFS,但现在我想让两个磁盘显示为一个并共享它。所以我创建了一个文件夹来挂载我的 AUFS 分支:“storage_pool”,然后将我的 AUFS 分支添加到我的 fstab 文件中:

#AUFS Pool system
none /storage_pool aufs br:/mnt/disk1=rw:/mnt/disk2,sum,create=mfs 0 0

据我所知,create = mfs 会将下一个写入分支的文件放在具有最多可用空间的磁盘上。这就是我想要的方式。然后我通过 SMB 共享文件夹“storage_pool”以及每个磁盘自己共享的文件夹:

[Storage_Disk1]
path = /mnt/disk1
available = yes
valid users = nick
read only = no
browseable = yes
public = yes
writable = yes

[Storage_Disk2]
path = /mnt/disk2
available = yes
valid users = nick
read only = no
browseable = yes
public = yes
writable = yes

[XBMC_Pool]
path = /storage_pool
available = yes
valid users = nick
read only = no
browseable = yes
public = yes
writable = yes

现在,我可以从 Windows 桌面看到两个磁盘和 AUFS 分支。然后,我尝试将文件写入 AUFS 分支,并注意到它出现在几乎已满的磁盘 1 上,因此我预计它会出现在磁盘 2 上。然后,我尝试将文件写入磁盘 2 的根目录,并显示在 AUFS 分支的根目录中。我在磁盘 2 上创建了一个与磁盘 1 上同名的文件夹,以及一个包含 2 个文件的新名称的子文件夹。新文件夹和文件未显示在 AUFS 分支中。我不明白为什么。

我的下一个问题是如何通过 NFS 共享我的 AUFS 分支。我在 fstab 中的 NFS 绑定如下所示:

#NFS4 Share bindings
/mnt/disk1 /NFS4/XBMC none bind 0 0
/storage_pool /NFS4/XBMC_pool none bind 0 0

我的 NFS 导出如下所示:

/NFS4 *(rw,fsid=0,insecure,async,no_subtree_check)
/NFS4/XBMC *(rw,nohide,insecure,async,no_subtree_check)
/NFS4/XBMC_pool *(rw,fsid=0,nohide,insecure,async,no_subtree_check,crossmnt)

共享 /NFS4/XBMC 运行正常,但 /NFS4/XBMC_pool 显示为空。

我希望有人可以帮助我,如果需要更多信息,我会尝试添加它。

我现在尝试将我的 AUFS 分支挂载移动到我的 /etc/rc.local 而不是我的 fstab,如下所示:

mount -t aufs -o br:/mnt/disk1=rw:/mnt/disk2,sum,create=mfs none /storage_pool

然后我重新启动了服务器,现在 disk2 中的文件夹和文件显示在 AUFS 分支中。将文件写入分支仍然会出现问题,因为它只尝试写入 disk1,当从我的 Windows 桌面尝试时,它报告说磁盘空间不足,但只有 disk1 已满。

希望可以有人帮帮我。

问候尼克

答案1

我发现与我的 AUFS 分支相关的问题,mount 命令有缺陷。

代替:

mount -t aufs -o br:/mnt/disk1=rw:/mnt/disk2,sum,create=mfs none /storage_pool

它应该是这样的:

mount -t aufs -o br:/mnt/disk1=rw:/mnt/disk2=rw -o sum -o udba=reval -o create=mfs none /storage_pool

它现在可以正确安装,将新文件写入空间最大的磁盘,并直接写入池中的一个磁盘。

相关内容