我对 LVM 和 RAID 管理还不熟悉。
我有一台 Linux 机器(Ubuntu 18.04),它有两个 4Tb HDD,它们合并到一个 LVM 组中。该 PC 还有两个 1.8 Tb SSD。操作系统安装在单独的 NVME 驱动器上。
最近我们老板又购买了 10 个 4 Tb 的 SSD。我已将其中 8 个安装到 PC 中,其他两个驱动器留作备用(所有十个驱动器都没有可用插槽)。
由于 PC 供应商的保修限制,我无法用 4Tb SSD 替换 HDD 或 1.8Tb SSD。我只能添加新的 SSD。
我想将所有这些固态硬盘用作一个具有错误恢复功能的大型数据存储器。
该数据存储的目的是存储机器学习任务的数据集(许多随机访问的相对较小的文件)。
根据我所读的内容,我得出结论,我应该将这些驱动器加入一个或多个 RAID5 组,然后在它们之上创建 LVM 组。
但是,我无法找出最佳分组。
事情有些复杂,因为其中一些驱动器现在还在使用,数据不应该丢失。而且我没有额外的驱动器用于备份。
我目前的配置如下:五个 4Tb SSD 空闲且未格式化;一个 4Tb SSD 占用率接近 100%,两个 1.8Tb SSD 和两个 4Tb SSD 加入到一个 LVM 组。
以下是 lsblk 的输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 89.1M 1 loop /snap/core/7917
loop1 7:1 0 89.1M 1 loop /snap/core/8039
sda 8:0 0 3.7T 0 disk
└─vg0-lv--0 253:0 0 10.8T 0 lvm /ssdata
sdb 8:16 0 3.7T 0 disk
└─vg0-lv--0 253:0 0 10.8T 0 lvm /ssdata
sdc 8:32 0 3.7T 0 disk
sdd 8:48 0 3.7T 0 disk
sde 8:64 0 1.8T 0 disk
└─vg0-lv--0 253:0 0 10.8T 0 lvm /ssdata
sdf 8:80 0 1.8T 0 disk
└─vg0-lv--0 253:0 0 10.8T 0 lvm /ssdata
sdg 8:96 0 3.7T 0 disk
└─vg1-lv--0 253:1 0 7.3T 0 lvm /home
sdh 8:112 0 3.7T 0 disk
└─vg1-lv--0 253:1 0 7.3T 0 lvm /home
sdi 8:128 0 3.7T 0 disk /mnt/SAITds
sdj 8:144 0 3.7T 0 disk
sdk 8:160 0 3.7T 0 disk
sdl 8:176 0 3.7T 0 disk
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 1M 0 part
├─nvme0n1p2 259:2 0 200G 0 part /
├─nvme0n1p3 259:3 0 150G 0 part
└─nvme0n1p4 259:4 0 127G 0 part [SWAP]
此输出显示了我之前的实验。我尝试过 LVM 分组和扩展 SSD LVM 组,并使用另外两个 4Tb SSD。
我的问题是:
将这些驱动器分组为 RAID 和 LVM 的最佳方法是什么?
我是否正确认为 RAID5 阵列无法在不同大小的驱动器上实现?
什么是“在线”创建和增加 RAID/LVM 组的算法,以便保存数据(允许将数据移动到另一个目录)?
更新:该电脑的主板是华硕 Z10PE-D8 WS。根据规格,它支持 RAID - 0、1、5 和 10。但是,我不明白这个“支持”是什么意思。
所以,我有两个选择:带有 md 实用程序的软件 Linux raid 或主板的硬件 raid。
答案1
我用 :lvcreate在 pvgroup:vgroup 上创建卷:lvol
例子:lvcreate -l 100%FREE --type raid5 -i 7 -n lvol vgroup
-i 表示突袭中的条带数(n-1)