无条带化的多卷数据存储

无条带化的多卷数据存储

我有一台运行 Debian 的网络存储服务器,其中包含多个硬盘。这些硬盘都安装在 samba 共享文件夹的子目录中。网络中的所有成员都具有完全的读写访问权限。

这种设置的问题在于缺乏灵活性。文件直接存储在一个文件夹中,一旦驱动器满了,用户就必须在另一台硬盘上创建一个新文件夹。

动态分配空间的最佳解决方案是什么?这是我到目前为止想到的:

  • RAID 0:由于单个 HDD 的每次故障都会导致大量数据丢失,因此无法进行条带化
  • RAID 1:我的目的是重新使用不同大小的旧硬盘,所以这也行不通
  • RAID 5:与上述相同,由于硬盘大小不同,因此无法工作
  • LVM:很酷,因为它是可扩展的,但是有没有防止条带化的选项?如果没有,单个磁盘的故障将导致部分存储在该特定磁盘上的所有文件丢失...
  • btrfs:子卷管理很好,但是单个文件夹可以跨越多个卷吗?

基本上,我正在寻找一个没有条带化的类似 LVM 的系统,或者至少可以手动(cron 作业等)将所有多卷文件移回单个卷。

答案1

您可以直接在 Linux LVM 中获得有效的 RAID 替代方案,无需 mdadm 或硬件 RAID 控制器。这样您还可以使用不同大小的磁盘。

您无法避免条带化,但会有冗余条带,因此单个磁盘故障不会丢失任何数据。

只需将所有磁盘初始化为 LVM 物理卷,将它们分配给同一个卷组,并在设置逻辑卷时使用正确的标志。

-m, --mirrors Mirrors 使用镜像副本创建镜像逻辑卷。例如,指定 -m1 将产生具有双面的镜像;即线性卷加上一个副本。

例如,命令lvcreate -m1 -L 10G -n <name> <volume_group>行将创建镜像逻辑卷或相当于 RAID1 阵列。

-i, --stripes Stripes 给出条带数。这等于分散逻辑卷的物理卷数。创建 RAID 4/5/6 逻辑卷时,内部考虑了奇偶校验所需的额外设备。指定 -i3 将使用 3 个设备作为条带逻辑卷,4 个设备作为 RAID 4/5,5 个设备作为 RAID 6。

如果您有三个磁盘,则 2 将是最大条带数(第三个用于奇偶校验),lvcreate --type raid5 -i2 -L 20G -n <name> <volume_group>并将设置相当于三个磁盘 RAID5 阵列。

当您的文件系统已满时,您可以添加一个额外的磁盘并扩展 LVM 和文件系统,而无需手动创建新目录和重新排列数据。

相关内容