在 Amazon EFS 挂载点内执行 ls 时,它会挂起。
AWS 上的 EFS 故障排除部分有关 AWS EFS 故障排除的
提到以下内容:
安装没有响应
Amazon EFS 装载似乎没有响应。例如,像 lshang 这样的命令。
采取的行动
如果另一个应用程序正在向文件系统写入大量数据,则可能会发生此错误。在操作完成之前,对正在写入的文件的访问可能会被阻止。通常,任何尝试访问正在写入的文件的命令或应用程序都可能会挂起。例如,ls 命令在到达正在写入的文件时可能会挂起。这是因为某些 Linux 发行版给 ls 命令起了别名,以便除了列出目录内容之外还可以检索文件属性。
要解决此问题,请验证另一个应用程序是否正在将文件写入 Amazon EFS 挂载,并且它处于不间断睡眠 (D) 状态,如下例所示:
$ ps 辅助| grep large_io.py
根 33253 0.5 0.0 126652 5020 点/3 D+ 18:22 0:00 python large_io.py /efs/large_file
验证情况确实如此后,您可以通过等待其他写入操作完成或实施解决方法来解决该问题。在 ls 的示例中,您可以直接使用 /bin/ls 命令,而不是别名,这将允许命令继续执行,而不会挂在正在写入的文件上。一般来说,如果写入数据的应用程序可以强制定期刷新数据(也许通过使用 fsync(2)),这可能有助于提高文件系统对其他应用程序的响应能力。但是,这种改进可能会以牺牲应用程序写入数据时的性能为代价。
所以我验证了一下是否有东西写入其中,但唯一出现的是
根 43556 0.0 0.0 124356 756 点/6 D+ 19:15 0:00 ls --color=auto /efs/
根 43558 0.0 0.0 112664 972 点/3 S+ …
我需要将多个 TB 的信息从一个 NFS 系统(NFS 系统在 AWS 中)移动到亚马逊 EFS,但我需要它以最快的方式移动这些数据。我试过 rsync,但它花费的时间太长,我也试过与 rsync 并行使用,但它没有给我我需要的结果。
数据包含在多个目录中,其中包含许多小文件
是否有任何经过试验和测试的方法可以非常快速地移动数据,同时仍然确保它在到达时没有损坏(如 rsync)?