我正在寻找为存储服务器设置文件系统/分区的最佳方法,其特点是部分数据丢失不是问题。
假设我有 4x3TB 磁盘,我想以这样的方式安排它们:a)我为存储分区提供了最大的可用空间,并且 b)系统分区是镜像的,可以承受一个磁盘的故障。(在这种情况下,部分数据丢失并不是什么大问题,假设我们存储了可重现的数据,但重新创建它非常耗时)
我目前的方法如下:
- RAID1->EXT4 位于不同磁盘上的两个~100GB 分区上,用于系统文件。
- LVM->DMCRYPT->EXT4 与其余分区和磁盘。(存储应该加密)
这里有趣的是:假设磁盘 #3(磁盘 #1 和磁盘 #2 是带有 RAID 分区的磁盘)发生故障(最坏的情况是所有数据都丢失)并被替换后,我是否能够安装 dmcrypt 设备?ext4 文件系统怎么样,我能修复它吗?我肯定会丢失存储在该特定磁盘上的所有数据,但其余数据怎么办?
也许我缺少一些可以很好地处理这种情况的文件系统/程序,但大多数情况下都是关于数据恢复的,这在这种情况下没有多大帮助。我愿意接受任何适合的不同方法。
编辑:当然,我可以在所有存储分区上执行 DMCRYPT->EXT4,但我想要一个挂载点,当然也不必在重启时打开所有 dmcrypts(使用上述设置我只需要执行一次)。
答案1
如果您不介意部分数据丢失,也不想要任何冗余 - 我建议您在每个物理磁盘上创建单独的文件系统,并以“程序”方式对其进行拆分。我猜您正在将其用于散列数据或其他东西 - 在这种情况下,通常可以将数据拆分为目录 - 例如 - 基于文件的 md5 总和 - 并将数据部分拆分到不同的磁盘上。将其挂载 - 不是问题 - 您可以使用共享密钥来解密放置在非加密存储上的块设备。
如果您需要冗余 - 只需使用 raid5 或类似的东西。或者 - 更多“软件”存储 - gluster 或 ceph。
标准文件系统并没有为其所在空间的一部分消失的情况做好准备。
答案2
除了底层 100GB 系统分区之外,根本不涉及 RAID。其他一切都取决于您的 LVM 及其底层组件的组织方式 - 您尚未提供的信息。