我使用 Ubuntu 机器作为使用 Samba 共享的 Windows/Linux/Mac 客户端的文件服务器。我需要它能够轻松扩展,只需添加更多硬盘即可,而无需来回移动任何数据。
到目前为止,我都是这样做的。我已成功添加了第四个硬盘。现在我想知道这是否应该这样做?我做错了什么或我可以做得更好吗?
创建初始 3 驱动器阵列
我从三个空驱动器开始:/dev/sdb、/dev/sdc 和 /dev/sdd。
首先,我为所有驱动器创建了空分区:
$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc
当所有三个磁盘都创建了空的 RAID 分区后,我创建了一个 RAID5 阵列:
$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
现在 RAID5 阵列已创建,并且正在构建中。这需要一些时间,但您可以继续创建新的物理 LVM2 卷:
$ pvcreate /dev/md0
现在让我们创建一个新的卷组:
$ vgcreate vd_raid /dev/md0
然后我们需要在该卷组内创建一个新的逻辑卷。首先我们需要确定所创建卷组的确切大小:
$ vgdisplay vg_raid
大小可以从表示物理范围中的“总 PE”的行中看到。假设它是 509。现在创建一个占用所有可用空间的新逻辑卷:
$ lvcreate -l 509 vg_raid -n lv_raid
最后,我们可以在该逻辑卷上创建一个文件系统:
$ mkfs.xfs /dev/mapper/vg_raid-lv_raid
为了能够使用我们新创建的 RAID 阵列,我们需要创建一个目录并挂载它:
$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid
现在它已准备好使用。但为了在重启后自动挂载,我们需要将 RAID 几何图形保存到 mdadm 的配置文件中:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
然后将以下行添加到 /etc/fstab 以自动挂载 RAID 阵列:
/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1
现在 RAID 阵列已可供使用,并且每次启动后都会自动挂载到 /raid 目录。
向阵列添加新驱动器
假设您现在有一个新的驱动器 /dev/sde,您想将其添加到之前创建的阵列中而不丢失任何数据。
首先,新驱动器需要像所有其他驱动器一样进行分区:
$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc
然后需要将其添加到RAID阵列:
$ mdadm --add /dev/md0 /dev/sde1
现在 RAID5 阵列包含四个驱动器,但目前只有三个正在使用。需要扩展阵列以包含所有四个驱动器:
$ mdadm --grow /dev/md0 --raid-devices=4
然后需要扩展物理LVM2卷:
$ pvresize /dev/md0
现在,物理卷默认调整大小以覆盖 RAID 阵列中的所有可用空间。我们需要找出物理范围的新大小:
$ vgdisplay vg_raid
假设新的大小现在是 764(可以从“Total PE”中看到)。现在扩展逻辑卷以覆盖这个大小:
$ lvextend /dev/mapper/vg_raid-lv_raid -l 764
然后扩展XFS文件系统。这需要在文件系统在线并挂载时完成:
$ xfs_grow /raid
默认情况下,它会扩展以覆盖所有可用空间。最后,需要更新 RAID 阵列几何结构,因为阵列现在包含一个新磁盘。首先从 /etc/mdadm/mdadm.conf 中删除添加的行,然后添加新的行:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
答案1
我认为您说得对。请确保您理解并留意有关在 中增加 RAID 5 的警告man 8 mdadm
。
就我个人而言,如果我要扩展 LVM 卷,我不会扩展现有的 RAID 阵列来执行此操作。我会创建另一个 RAID 阵列,从中创建一个新的 physvol,然后将其添加到同一卷组。这是一个更安全的操作(不涉及在新磁盘组上重写整个 RAID5 阵列),并且可以降低阵列的大小。