NFS客户端通过NFS协议挂载NFS共享,能够像使用普通的文件系统一样使用NFS共享的挂载点。例如,你可以挂载阿里云NAS的fs0文件系统到你的NFS客户端上,命令行如下:
sudo mount -t nfs -o vers=3 fs0.region.nas.aliyuncs.com:/ /mountpoint
NFS挂载参数中包含Hard和Soft选项,这两个选项主要用于NFS客户端处理NFS服务端的故障。
Hard Mount:
当使用Hard参数挂载NFS共享时,如果发生网络故障或者NFS服务故障,将会导致NFS客户端的网络连接断开,NFS客户端的文件IO将会Hang住,直到后端的网络恢复或者NFS服务恢复,NFS客户端的文件IO才会继续执行。从前面的分析可以看出,Hard模式类似于SAN存储的IO处理方式。
优势:
- 在NFS网络连接断开的情况下,NFS客户端会一直等到NFS服务端重新连接,因此不会丢失数据。
- 确保数据完整性和消息一致性。
劣势:
- 如果NFS的网络连接断开时间过长,上层的业务就会出现IO长时间无法处理的情况,这种情况下可能导致业务性能下降或者业务中断。
Soft Mount:
Soft挂载模式通常都是应用在NFS和CIFS这样的网络文件系统中,当NFS客户端使用Soft参数挂载共享时,如果发生网络故障或者NFS服务故障,NFS客户端将会对IO进行重试,当出现以下条件时重试终止,返回业务程序IO错误:
- NFS客户端与服务端重新建立连接。
- NFS客户端IO重试次数超出阀值。
- NFS客户端IO重试超时。
优势:
- 业务程序能够快速感知错误,不用等待NFS服务恢复。
- 如果NFS服务不可用,内核可以根据配置的超时时间中断NFS客户端的文件IO。
劣势:
- 如果NFS客户端有数据缓存,当文件IO重试超时,那么业务程序无法得知当前写入数据的具体信息。
- 数据损坏或者数据丢失。
从以上分析可以看出,建议默认情况下都使用hard模式,如果业务程序对于快速failover要求很高,并且自身能够保证一致性的情况下,可以使用soft模式。
阿里云NAS NFS挂载帮助文档链接:https://help.aliyun.com/document_detail/90529.html