在我的工作中,我们会生成大量数据进行分析,因此我们必须不断购买新的 NAS 来存储数据。这就造成了这样一种情况:在我们的计算服务器上安装了许多 NAS,并且我们必须跟踪哪个数据集位于哪个 NAS 上。每个 NAS 都有相似的目录结构,例如,如果datasetA
位于 NAS 上foo
,则位于/mnt/foo/data/datasetA
服务器上,而datasetB
位于 NAS 上bar
则位于/mnt/bar/data/datasetB
.我正在考虑在本地文件系统上创建一个data
文件夹,并将所有数据集从已安装的 NAS 符号链接到该文件夹,例如:
mkdir /data
ln -s /mnt/foo/data/* /data
ln -s /mnt/bar/data/* /data
这样做,我们只需访问数据集/data
,而不必关心数据实际存储在哪个 NAS 上。我认为这可行,除非每当 NAS 上出现新数据集时,我们需要手动将其符号链接到/data
.有没有办法设置这些符号链接以便新目录自动出现?我想一个选择就是设置一个 cron 作业来定期重新运行链接命令,但也许有更好的解决方案。
答案1
特别是如果这些是只读的,overlayfs 设置可能会导致问题。
然而,
我们必须不断购买新的 NAS 来存储数据
听起来既昂贵又不可靠的解决方案。这听起来当然是我建议反对的事情,因为除此之外它也是管理密集型的 - 我的意思不仅是 IT 管理方面,还包括购买 NAS 的管理开销。
通常的解决方案是购买具有强大网络接口和大量驱动器托架的存储服务器,并在使用过程中添加新驱动器,并在旧驱动器随着时间的推移而开始退化时淘汰旧驱动器。设置 raid 6,您可以使用 lvmraid 相对简单地完成此操作。将所有数据放在一个逻辑存储设备上。
一旦我们谈论的不是太字节而是拍字节,迁移到更可集群的东西将成为选择的方法。我一点经验都没有,但我听说了 ceph 的一些优点,它是一种存储集群解决方案,适用于存储开始填满机架的情况。