挂载能力
海量文件服务OceanFS支持跨AZ挂载吗?
支持。在归属相同VPC的前提下,文件系统支持同一地域下跨可用区挂载,从而实现多AZ交叉互访。
例如:在可用区1创建的文件系统,可以挂载在同一地域下,归属相同VPC内的可用区2的云主机上,实现跨可用区文件共享与访问。
本地的数据中心/个人客户端可以挂载访问海量文件服务OceanFS吗?
本服务默认云上内网访问,若是本地数据中心或者个人客户端无法直接挂载,需要通过云专线打通网络后挂载。具体操作步骤参见通过专线实现本地数据中心访问云上文件系统。
海量文件服务OceanFS支持裸金属挂载访问吗?
本服务支持标准裸金属和弹性裸金属挂载访问,具体操作步骤参见使用物理机(弹性/标准裸金属)挂载文件系统。
海量文件服务OceanFS支持挂载子目录吗?
本服务原生支持子目录挂载,具体操作步骤参见挂载NFS文件系统子目录到Linux云主机。
CIFS文件系统是否能挂载到Linux操作系统?
不推荐CIFS协议的文件系统挂载至Linux操作系统,因为Linux系统对CIFS协议的兼容程度较低,并且Linux上的CIFS客户端存在一些安全漏洞隐患,且性能不佳,可能影响正常使用。如果仍然期望采用CIFS协议的文件系统挂载至Linux的方式,请提交工单申请技术支撑,同时请务必知晓上述风险,若采用此种挂载方式,本服务不承诺SLA。
NFS文件系统是否能挂载到Windows操作系统?
不推荐NFS协议的文件系统挂载至Windows操作系统,因为Windows系统对NFS协议文件系统兼容性较差,会出现中文乱码和无法进行文件和目录重命名等问题,且性能不佳,可能影响正常使用。如果仍然期望采用NFS协议的文件系统挂载至Windows的方式,请提交工单申请技术支撑,同时请务必知晓上述风险,若采用此种挂载方式,本服务不承诺SLA。
其它使用问题
部分操作系统中,在文件系统写满的情况下,报错是IO error,而不是No Space Left。
问题原因:
5.10内核的部分 NFS 客户端存在可能将 Space Full 事件错误的返回为 EIO 的问题,导致返回的报错不一致。解决方案:
如果客户端操作系统是ctyun,需要升级到5.10.0-136.12.0.96.1以上内核版本。其他操作系统,请升级到最新版本。
多进程或多客户端并发写同一个文件可能导致数据异常,如何避免?
问题原因:
由于NFS协议本身不支持原子追加操作,可能会导致写覆盖、交叉、串行等异常现象。
解决方案:
在不同进程或不同客户端中将写入的数据分别保存到不同的文件中,然后在后续的分析处理阶段再进行归并操作。这种方案可以很好地解决并发写入导致的问题,同时无需使用文件锁,对性能影响较小。对于并发追加写入同一个文件(如日志)的场景,可以使用 flock+seek 机制来保证写入的原子性和一致性。但是 flock+seek 是一个相对耗时的操作,可能会对性能产生显著影响。
为何无法使用showmount -e ip 查看共享文件目录?
基于安全因素考虑,目前已禁用该命令。您可以通过登录海量文件服务控制台查看账号下所有的文件系统。
如何避免NFS4.0监听端口被误认为木马?
问题描述:
在通过NFSv4.0协议挂载NAS文件系统后,会出现一个随机端口(0.0.0.0)被监听的情况,并且无法通过netstat命令确定监听所属的进程,这可能导致误判为文件传输受到木马攻击的情况。
问题原因:
该随机端口是NFSv4.0客户端为了支持Callback而监听的。由于内核参数fs.nfs.nfs_callback_tcpport默认值为0,因此NFSv4.0客户端会随机选择一个端口进行监听,而这个随机端口本身并不会带来安全风险。
解决方案:
在挂载文件系统之前,您可以通过配置参数fs.nfs.nfs_callback_tcpport来指定一个非零的确定值,以固定该监听端口。命令如下:
说明
请将下方命令中的替换为您希望使用的具体端口号。通过下述操作,您可以固定NFSv4.0客户端的Callback监听端口,避免随机端口的出现,从而减少误判为木马攻击的可能性。
sudo sysctl fs.nfs.nfs_callback_tcpport=<port>
为什么写入文件系统的中文字符在客户端显示为乱码?
问题描述:
在跨平台的环境中,例如在Linux或Windows客户端向海量文件系统写入中文字符(文件名、内容等),可能会导致在另一个平台的客户端显示为乱码的问题。
问题原因:
Windows客户端默认使用GBK字符集进行中文编码码,而Linux客户端默认使用UTF-8字符集进行中文编解码。当数据写入海量文件系统时,会以各自平台对应字符集编码后的内容进行存储。当在另一个平台上读取这些数据时,由于两个平台使用的字符集不兼容,无法正确解码,导致显示的内容变成了乱码。
解决方案:
建议您在 Windows客户端上使用CIFS协议挂载海量文件服务,在Linux客户端上使用NFS协议挂载文件系统,通过这种方式,可以避免平台不兼容的问题,确保中文字符能够正常显示和解码。
当CIFS文件系统无法结束进程时,如何清理客户端泄露的句柄?
Windows客户端可使用tcpview工具来断开CIFS文件系统的所有连接并释放所有句柄,具体操作如下:
在浏览器中搜索下载并安装tcpview工具。
打开tcpview工具。
在工具中找到与CIFS文件系统相关的连接。
右键点击连接,并选择“Close Connection”来断开连接。Linux客户端可使用killcx工具来断开CIFS文件系统的所有连接,请参考https://killcx.sourceforge.net/。
为什么执行ls命令时,会卡顿或无响应?
问题原因:
默认情况下,ls会遍历目录下的所有文件,获取文件的元数据信息并展现给用户,如果目录过大如包含10万个文件,可能需要发出10万个读指令,需要耗费很长时间。
解决方案:
避免单个目录包含过多的文件,建议单目录下文件数量不超过1万个。
执行ls时采用全路径/usr/bin/ls,不添加--color=auto参数,可避免遍历目录下文件,大幅减少读指令数量。