内容纲要

转载:NFS Hard Mount Vs Soft Mount-阿里云开发者社区 (aliyun.com)

NFS客户端通过NFS协议挂载NFS共享,能够像使用普通的文件系统一样使用NFS共享的挂载点。例如,你可以挂载阿里云NAS的fs0文件系统到你的NFS客户端上,命令行如下:

sudo mount -t nfs -o vers=3 fs0.region.nas.aliyuncs.com:/ /mountpoint

NFS挂载参数中包含HardSoft选项,这两个选项主要用于NFS客户端处理NFS服务端的故障。

Hard Mount:

当使用Hard参数挂载NFS共享时,如果发生网络故障或者NFS服务故障,将会导致NFS客户端的网络连接断开,NFS客户端的文件IO将会Hang住,直到后端的网络恢复或者NFS服务恢复,NFS客户端的文件IO才会继续执行。从前面的分析可以看出,Hard模式类似于SAN存储的IO处理方式。

优势:

  1. 在NFS网络连接断开的情况下,NFS客户端会一直等到NFS服务端重新连接,因此不会丢失数据。

  2. 确保数据完整性和消息一致性。

    劣势:

  3. 如果NFS的网络连接断开时间过长,上层的业务就会出现IO长时间无法处理的情况,这种情况下可能导致业务性能下降或者业务中断。

Soft Mount:

Soft挂载模式通常都是应用在NFS和CIFS这样的网络文件系统中,当NFS客户端使用Soft参数挂载共享时,如果发生网络故障或者NFS服务故障,NFS客户端将会对IO进行重试,当出现以下条件时重试终止,返回业务程序IO错误:

  1. NFS客户端与服务端重新建立连接。

  2. NFS客户端IO重试次数超出阀值。

  3. NFS客户端IO重试超时。

    优势:

  4. 业务程序能够快速感知错误,不用等待NFS服务恢复。

  5. 如果NFS服务不可用,内核可以根据配置的超时时间中断NFS客户端的文件IO。

    劣势:

  6. 如果NFS客户端有数据缓存,当文件IO重试超时,那么业务程序无法得知当前写入数据的具体信息。

  7. 数据损坏或者数据丢失。

从以上分析可以看出,建议默认情况下都使用hard模式,如果业务程序对于快速failover要求很高,并且自身能够保证一致性的情况下,可以使用soft模式。

阿里云NAS NFS挂载帮助文档链接:https://help.aliyun.com/document_detail/90529.html