Tas*_*nen 13 linux raid xfs software-raid raid5
我使用我的 Ubuntu 机器作为使用 Samba 共享的 Windows/Linux/Mac 客户端的文件服务器。我需要它只需添加更多硬盘即可轻松扩展,而无需来回移动任何数据。
到目前为止,我就是这样做的。我已经成功添加了第四个硬盘。现在很高兴知道这是应该如何做的?我做错了什么或我可以做得更好?
我从三个空驱动器开始:/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
Run Code Online (Sandbox Code Playgroud)
当所有三个磁盘都创建了空的 RAID 分区后,我创建了一个 RAID5 阵列:
$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
Run Code Online (Sandbox Code Playgroud)
现在 RAID5 阵列已创建,并且已经在构建中。这需要时间,但您可以继续创建新的物理 LVM2 卷:
$ pvcreate /dev/md0
Run Code Online (Sandbox Code Playgroud)
现在让我们创建一个新的卷组:
$ vgcreate vd_raid /dev/md0
Run Code Online (Sandbox Code Playgroud)
然后我们需要在该卷组内创建一个新的逻辑卷。首先,我们需要弄清楚创建的卷组的确切大小:
$ vgdisplay vg_raid
Run Code Online (Sandbox Code Playgroud)
可以从指示物理范围中的“总 PE”的行中看到大小。让我们假设它是 509。现在创建一个新的逻辑卷,它占用所有可用空间:
$ lvcreate -l 509 vg_raid -n lv_raid
Run Code Online (Sandbox Code Playgroud)
最后,我们可以在该逻辑卷之上创建一个文件系统:
$ mkfs.xfs /dev/mapper/vg_raid-lv_raid
Run Code Online (Sandbox Code Playgroud)
为了能够使用我们新创建的 RAID 阵列,我们需要创建一个目录并挂载它:
$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid
Run Code Online (Sandbox Code Playgroud)
现在可以使用了。但是为了让它在重启后自动挂载,我们需要将 RAID 几何保存到 mdadm 的配置文件中:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Run Code Online (Sandbox Code Playgroud)
然后将以下行添加到 /etc/fstab 自动挂载 RAID 阵列:
/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1
Run Code Online (Sandbox Code Playgroud)
现在 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
Run Code Online (Sandbox Code Playgroud)
然后需要将它添加到 RAID 阵列中:
$ mdadm --add /dev/md0 /dev/sde1
Run Code Online (Sandbox Code Playgroud)
现在 RAID5 阵列包括四个驱动器,目前只有三个在使用。阵列需要扩展以包括所有四个驱动器:
$ mdadm --grow /dev/md0 --raid-devices=4
Run Code Online (Sandbox Code Playgroud)
那么物理LVM2卷需要扩展:
$ pvresize /dev/md0
Run Code Online (Sandbox Code Playgroud)
现在,物理卷默认调整大小以覆盖 RAID 阵列中的所有可用空间。我们需要找出物理范围的新大小:
$ vgdisplay vg_raid
Run Code Online (Sandbox Code Playgroud)
假设新的大小现在是 764(可以从“总 PE”中看出)。现在扩展逻辑卷以涵盖这一点:
$ lvextend /dev/mapper/vg_raid-lv_raid -l 764
Run Code Online (Sandbox Code Playgroud)
然后展开 XFS 文件系统。这需要在文件系统在线并挂载期间完成:
$ xfs_grow /raid
Run Code Online (Sandbox Code Playgroud)
默认情况下,它会扩展以覆盖所有可用空间。最后,需要更新 RAID 阵列几何结构,因为阵列现在包含一个新磁盘。首先从 /etc/mdadm/mdadm.conf 中删除添加的行,然后添加一个新的:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Run Code Online (Sandbox Code Playgroud)
我认为你做对了。确保您了解并注意有关在man 8 mdadm.
就我个人而言,如果我要增加 LVM 卷,我就不会增加现有的 RAID 阵列来做到这一点。我会创建另一个 RAID 阵列,从中创建一个新的 physvol,然后将其添加到同一个卷组。这是一个更安全的操作(不涉及在新的磁盘集上重写整个 RAID5 阵列)并减小阵列的大小。
| 归档时间: |
|
| 查看次数: |
10103 次 |
| 最近记录: |