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