iSCSI 和 NFS 文件锁定和并发

iSCSI 和 NFS 文件锁定和并发

我有一台 Linux 主机,需要挂载位于 NAS 上的数据共享。选择是 NFS v3(​​NAS 限制)和 iSCSI。最初的想法是将 NFS 挂载到文件服务器,为网络的其余部分提供 samba 挂载点,并将 NFS 挂载到备份服务器,该备份服务器显然会备份数据。(这个想法不适用于 iSCSI,我知道您不能/不应该将多个启动器连接到同一个 iSCSI 目标。)

       数据服务器 - + - (SMB) - 用户 1
      /|-(SMB)-用户(..)
   (NFS)+-(SMB)-用户(n)
存储区域网络 /
    \
   (网络文件系统)
      \
       备份服务器

可能存在理解缺陷 - 我认为问题在于,由于 NFS v3 是无状态的,因此它不知道哪个服务器可以访问该文件,也不知道用户正在对该文件执行什么操作。因此,如果用户通过 SMB 共享写入文件,而备份服务器正在尝试备份该文件,则服务器可能会备份中间/损坏的文件?如果确实如此,并且如果配置发生变化,使得 NFS 共享仅安装在数据服务器上,那么备份脚本 ssh 即可完成其工作,这种并发行为在 NFS 上仍然会是个问题吗?(我想如果它使用锁定文件,一切都会很好,但是是否有其他内核锁定方法会因无状态 NFS v3 而受到破坏?)

似乎如果我使用仅由数据服务器安装的 iSCSI 共享,并且备份服务器必须通过 SSH 才能执行其工作,那么所有问题都会消失。这是基于 iSCSI 作为块级设备呈现,这意味着文件访问控制的更高级别逻辑是在操作系统级别执行的。

最后,如果使用了使用 iSCSI 的最后一种方法并且在 Samba 上启用了 Oplocks,以解决通过 samba 连接的用户之间的并发文件访问,这是否也会对尝试通过非 samba 访问相同文件的进程施加访问限制,即,当备份守护程序尝试读取文件时,samba 用户正在写入文件?

谢谢

答案1

通常部署 NFSv3,rpc.lockd它提供网络锁管理器协议。

您的 NFS 客户端应该通过 NLM 锁定 SAN 上的文件,因此如果数据服务器正在访问文件,则备份服务器就不会通过并发访问损坏该文件。

相关内容