安装mdadm

这个工具允许我们在Linux中设置和管理软件RAID阵列。更新本地程序包高速缓存以检索可用程序包的最新列表,然后下载并安装该程序包:

sudo apt update
sudo apt install mdadm

这将安装mdadm及其所有依赖项。键入以下内容验证是否已安装该实用程序

sudo mdadm -V

应显示应用程序版本,表明mdadm已安装并可以使用。

创建RAID阵列

这里以Raid 0为例,会在内容中指出不同阵列配置所需修改的参数。

RAID 0阵列的工作原理是将数据分解为块并在可用磁盘上对其进行条带化。 这意味着每个磁盘包含一部分数据,并且在检索信息时将引用多个磁盘。

  • 要求:至少2个存储设备

识别所需硬件

要开始使用,请找到您将使用的原始磁盘的标识符:

# lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
NAME     SIZE FSTYPE TYPE MOUNTPOINT
sda      100G        disk
sdb      100G        disk
vda       25G        disk 
├─vda1  24.9G ext4   part /
├─vda14    4M        part 
└─vda15  106M vfat   part /boot/efi

如上所示,我们有两个没有文件系统的磁盘,每个磁盘大小为100G。 在此示例中,已为这些会话提供了/dev/sda/dev/sdb标识符。这些将是我们用于构建阵列的原始组件。

创建阵列

要使用这些组件创建RAID 0阵列,请执行mdadm --create命令。你需要指定要创建的设备名称(在我们的示例中为/dev/md0 ),RAID级别和设备数量:

sudo mdadm --create --verbose /dev/md0 --level=0(此处0即表示为Raid 0阵列) --raid-devices=2 /dev/sda /dev/sdb

您可以通过检查/proc/mdstat文件来确保成功创建RAID:

# cat /proc/mdstat
Personalities : [raid0] 
md0 : active raid0 sdb[1] sda[0]
      209584128 blocks super 1.2 512k chunks

unused devices: <none>

正如您在突出显示的行中所看到的,使用/dev/sda和/dev/sdb设备在RAID 0配置中创建了/dev/md0设备。

创建和挂载文件系统

格式化阵列:

sudo mkfs.ext4 -F /dev/md0

创建挂载点以附加新文件系统:

sudo mkdir -p /mnt/md0

使用以下命令来挂载文件系统:

sudo mount /dev/md0 /mnt/md0

键入以下命令检查新空间是否可用:

# df -h -x devtmpfs -x tmpfs
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        25G 1003M   23G   5% /
/dev/md0        196G   61M  186G   1% /mnt/md0

新文件系统已安装并可访问。

保存阵列布局

为了在下一次启动时时自动重新载入阵列,我们必须调整/etc/mdadm/mdadm.conf文件。通过以下指令保存阵列配置信息:

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

之后,更新initramfs:

sudo update-initramfs -u

将新的Raid阵列挂载选项添加到/etc/fstab文件,以便在开机时自动挂载:

echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

现在,您的RAID 0阵列应自动组装并在每次启动时安装。

移除现有RAID设备

警告:此过程将完全销毁阵列以及写入其中的任何数据。确保您正在使用正确的阵列,并且在销毁阵列之前复制了需要保留的所有数据。
# cat /proc/mdstat
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid0 sdc[1] sdd[0]
      209584128 blocks super 1.2 512k chunks

            unused devices: <none>

发现有已经初始化的raid驱动器md0

从文件系统中卸载阵列:

sudo umount /dev/md0

然后,键入以下命令停止并删除阵列:

sudo mdadm --stop /dev/md0

使用以下命令查找用于构建阵列的设备:

警告:请记住, /dev/sd*名称可以在您重新启动时更改!每次检查它们以确保您使用正确的设备。
# lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
NAME     SIZE FSTYPE            TYPE MOUNTPOINT
sda      100G                   disk 
sdb      100G                   disk 
sdc      100G linux_raid_member disk 
sdd      100G linux_raid_member disk 
vda       25G                   disk 
├─vda1  24.9G ext4              part /
├─vda14    4M                   part 
└─vda15  106M vfat              part /boot/efi

在发现用于创建阵列的设备后,将其超级块清零以删除RAID元数据并将其重置为正常:

sudo mdadm --zero-superblock /dev/sdc
sudo mdadm --zero-superblock /dev/sdd

您应该删除对该阵列的任何持久引用。 编辑/etc/fstab文件并注释掉或删除对阵列的引用:

# sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0  <== 注释掉有关md0的行。

另外,注释掉/删除/etc/mdadm/mdadm.conf文件中的阵列定义:

# sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91  <== 注释掉有关md0的行。

最后,更新initramfs:

sudo update-initramfs -u
最后修改:2020 年 01 月 30 日 11 : 23 AM