首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当RAID BBU和UPS存在时,NFS异步有多危险?

当RAID BBU和UPS存在时,NFS异步有多危险?
EN

Server Fault用户
提问于 2011-11-08 15:55:38
回答 3查看 6.1K关注 0票数 4

我有一个NFSv3服务器和大约15个客户端。我正在寻找利弊使async在服务器端。我读过这篇文章,但对我来说还有点不清楚。如果服务器在写操作中崩溃,我知道这会导致数据损坏。但是,我也读到客户端存储相同操作的缓存,如果需要的话可以恢复它。我的问题是:

  • 如果我的服务器崩溃,会发生什么情况(例如,它会丢失待定的写入数据,会不会破坏底层文件系统,等等)?
  • 如果服务器和客户端同时崩溃(即电源故障/故障和UPS故障处理),会发生什么情况?
  • 如果服务器崩溃了,但我有RAID BBU。服务器会安全恢复吗?
  • 有没有任何方法可以检测到这样的腐败(可能类似于fsck )?
  • 如果UPS正常关闭服务器怎么办?那么,我会不会有数据损坏的机会?
  • 你们用什么- sync还是async

所有机器都是UbuntuOS10.04。

我试着在这里找出类似的问题。我读过NFS主页,并快速查看了管理NFS和NIS,第二版的书。

EN

回答 3

Server Fault用户

回答已采纳

发布于 2011-11-08 16:42:03

因此,NFSv3规范的意思是,对于以下两个NFS数据操作,

  • 具有稳定位集的写入操作
  • 承诺

只有在数据到达稳定存储后,服务器才能将成功返回给客户端。这是Linux服务器使用默认的“同步”导出选项实现的。有了“异步”,即使数据没有稳定的存储,服务器也可以欺骗并返回成功。

也就是说,异步的潜在腐败问题基本上如下所示

  1. 服务器返回写入或提交操作的成功。
  2. 客户端看到了成功,并在某个时候从自己的缓存中删除了页面(它认为,既然它们已经在服务器存储中,所以浪费空间来保留它们)。
  3. 服务器崩溃,从而丢失未提交给稳定存储的数据。
  4. 客户端重新连接到服务器,但由于没有写入或未写入哪些数据的日志,因此无法确切地知道丢失了哪些数据。

现在,最后一点是严重的问题,因为无法知道哪些数据丢失/损坏了,哪些数据没有损坏。

OTOH,如果客户端崩溃,那么客户机缓存中的任何脏数据(尚未刷新)都将丢失,但是客户端程序员可以绕过它(即只有在fsync()或close()返回成功后,程序员才能假定数据处于稳定存储状态)。

票数 5
EN

Server Fault用户

发布于 2011-11-09 15:20:22

如果我的服务器崩溃,会发生什么情况(例如,它会丢失待定的写入数据,会不会破坏底层文件系统,等等)?

与计算机是NFS服务器这一事实无关,如果它崩溃,您将丢失页面缓存中的数据(即已经写入但尚未从RAM刷新到磁盘的数据)。对于日志记录文件系统,应该在下一次挂载时使用日志自动修复文件系统。

janneb对NFS服务器上下文中的崩溃意味着什么做了很好的解释。

如果服务器和客户端同时崩溃(即电源故障/故障和UPS故障处理),会发生什么情况?

你要核实任何重要的数据。

如果服务器崩溃了,但我有RAID BBU。服务器会安全恢复吗?

不是的。使用异步导出意味着服务器告诉客户端“我已经在稳定的存储中存储了您给我的东西,您现在可以不再担心它了”,甚至在它试图将数据写到您的RAID之前。

有没有办法发现这种腐败(可能类似于fsck )?

就像詹妮布说的,不。

如果UPS正常关闭服务器怎么办?那么,我会不会有数据损坏的机会?

不是,因为在这种情况下,NFS服务器将把所有数据写入稳定的存储。

票数 1
EN

Server Fault用户

发布于 2011-11-09 21:29:25

不是的。使用异步导出意味着服务器告诉客户端“我已经在稳定的存储中存储了您给我的东西,您现在可以不再担心它了”,甚至在它试图将数据写到您的RAID之前。

为了进一步了解这一点,由于您有一个RAID卡BBU,通过启用写缓存,您将获得更快的NFS性能。这就是BBU的目的,在断电后保持这个缓存中的数据存活。我不会在生产中启用异步。正如上述作者所述,这是链的一个单独部分。

我推荐这篇包含一些通用NFS和性能信息的ZFS文章:

https://blogs.oracle.com/roch/entry/nfs_和_zfs_一个_很好

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/328931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档