是否可以从 CIFS 安装目录创建 NFS 共享?

是否可以从 CIFS 安装目录创建 NFS 共享?

问题是我有一个通过 CIFS 挂载的目录。我想为此目录创建一个 NFS 共享。我需要这个来在备份系统上创建备份,该系统只能从我们的 ESX 通过 CIFS 安装(但 ESX 只能在带有“ghettoVCB”的 NFS 共享目录上创建备份)。

为了解决这个问题,我的第一次尝试是使用 Debian 创建第三台 Linux 机器。

测试安排:

备份存储 -> Debian 计算机(挂载 CIFS 目录并创建 NFS 共享) -> ESX(我们在其中创建备份)

程序:

通过 CIFS 挂载目录。然后在 /etc/exports 中为这个挂载目录创建一个条目。创建导出后,我收到此错误:exportfs:/mnt/backup 不支持 NFS 导出

我希望你明白我想说的话。如果您需要更多信息,请告诉我。

好吧,有人对我说这是不可能的。也许你们中的任何人都可以帮助我解决这个问题,或者可以给我一个替代解决方案。

答案1

CIFS 不受官方支持。

http://nfs.sourceforge.net/

C6。我可以使用 Linux NFS 服务器导出哪些本地文件系统?

答:我们希望以下本地文件系统能够正常工作,因为它们经常经过测试:ext2、ext3、jfs、reiserfs、xfs。

这些本地文件系统可能可以工作,也可能有一些小问题:iso9660、ntfs、reiser4、udf。请在 NFS 邮件列表上询问详细信息。

任何基于 FAT 或无法提供永久 inode 编号的文件系统在使用 NFS 版本 2 和 3 时都会遇到问题(请参阅问题 C4)。

已知不能与 Linux NFS 服务器一起使用的本地文件系统有:procfs、sysfs、tmpfs(以及其他)

不知道这个支持的文件系统列表是否是最新的。不过,我建议仅使用这些受支持的其中之一。即使其他文件系统可能似乎工作中可能会出现一些微妙的错误,比如 ext4/nfs readdir 问题。

答案2

您可以通过熔断文件系统从 cifs 挂载传递到 nfs 导出,但我不认为我会推荐它用于像备份这样重要的事情。

当我尝试过一次时,我寻找了一个尽可能透明的保险丝文件系统,并最终以fuse-convmvfs.该软件旨在将文件名从一种编码转换为另一种编码,但如果您将其两侧配置为相同的编码,它似乎可以按照您的需要工作。

很简单,如果您的 cifs 挂载位置为,您可以使用以下条目通过 nfs/mnt/samba挂载保险丝并导出此目录/mnt/fuse/etc/exports

/mnt/fuse backupmachine(ro,fsid=55)

和命令

$ sudo sh -c 'echo user_allow_other >>/etc/fuse.conf'
$ sudo convmvfs /mnt/fuse -o srcdir=/mnt/samba,icharset=iso-8859-1,ocharset=iso-8859-1,user_allow_other
$ sudo exportfs -a

user_allow_othernfs 导出可能不需要该部分。虽然这作为一个实验是可以的,但请注意,nfs 对于不以可重复的方式使用相同 inode 的文件系统来说是危险的,这可能就是为什么不在 cifs 之上实现 nfs 的原因。添加保险丝层不一定能解决这个问题。也许如果您可以在 cifs 服务器本地和备份计算机本地独立生成每个文件的 md5 和列表,并对两者进行比较,您可能会对备份有一定的信心。

相关内容