我有一个 NFSv3 服务器和大约 15 个客户端。我正在寻找async在服务器端启用的利弊。我已经读过它,但对我来说仍然有点不清楚。我知道如果服务器在写操作过程中崩溃,它会导致数据损坏。但是,我也读到客户端存储了相同操作的缓存,并且可以在需要时恢复它。我的问题是:
fsck也许)?;sync或者async?所有机器都是 Ubuntu OS 10.04。
我试图在这里找到类似的问题,但没有。我已经阅读了 NFS 主页并快速浏览了管理 NFS 和 NIS,第 2 版书籍。
所以NFSv3规范所说的基本上是针对以下两个 NFS 数据操作
只有在数据达到稳定存储后,服务器才允许向客户端返回成功。这是 Linux NFS 服务器使用默认的“同步”导出选项实现的。使用“异步”,即使数据不在稳定存储上,服务器也可以作弊并返回成功。
也就是说,异步的潜在损坏问题基本上是以下内容
现在,最后一点是严肃的事情,因为无法知道哪些数据丢失/损坏或没有。
OTOH,如果客户端崩溃,那么客户端缓存中的任何脏数据(尚未刷新的)都将丢失,但客户端程序员可以解决它(即只有在 fsync() 或 close() 返回成功后才能程序员假设数据在稳定存储中)。