SoYouStart配置全局软raid10(raid1转换为raid0)

购买的SoYouStart的SYS-2-SAT-32独服,配置有4 块硬盘,但是 So you Start 后台默认根目录的RAID 级别RAID1,这样使得可用的空间只有25%,虽然硬盘安全性级别比较高(允许多块硬盘损坏的情况下依然不丢数据)但是空间可用率太低了所以折中一下可以使用 RAID-10(允许一块硬盘损坏而不丢失数据),这里就记录一下如何把 SoYouStart 的独服从 RAID-1 级别在线调整成 RAID-10。正常情况下 OVH 旗下的主机品牌,包括 Ovh,SoYouStart, Kimsufi都适用本教程,其他独服的操作也类似。

在线由Raid1转换为Raid10

虽然数据不会丢失,但是Raid0风险较大,建议在使用前将重要数据备份。

查看阵列

cat /proc/mdstat

可以看到一个md2的Raid1

root@debian:~# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid1 sda2[0] sdc2[1] sdd2[3] sdb2[2]
      511868928 blocks super 1.2 [4/4] [UUUU]
      bitmap: 2/4 pages [8KB], 65536KB chunk

第一步我们先要将Raid1转换为Raid10

mdadm --grow /dev/md2 --level=0 --backup-file=/home/backup-md2

查看是否转换完成

cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid0 sdb2[2]
      511868928 blocks super 1.2 64k chunks

查看挂载点

mdadm --misc --detail /dev/md2
/dev/md2:
        Version : 1.2
  Creation Time : Sat Jan 29 17:33:29 2022
     Raid Level : raid0
     Array Size : 3897970688 (3717.39 GiB 3991.52 GB)
   Raid Devices : 1
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Sun Jan 30 03:19:46 2022
          State : clean
Active Devices : 1
Working Devices : 1
Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 64K

           Name : jupiter:1  (local to host jupiter)
           UUID : b95b33c4:26ad8f39:950e870c:03a3e87c
         Events : 68

    Number   Major   Minor   RaidDevice State
       1       8       34        0      active sync   /dev/sdd2

可以看到有一个硬盘在Raid0中,我们需要将其他硬盘加入到阵列,并将阵列的等级提升至Raid10。

mdadm --grow /dev/md2 --level=10 --backup-file=/home/backup-md0 --raid-devices=4 --add /dev/sda2 /dev/sdb2 /dev/sdc2

查看阵列

cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid10 sdc2[4] sdb2[3] sda2[2] sdd2[1]
      3889583104 blocks super 1.2 64K chunks 2 near-copies [2/1] [UUUU]
      [>....................]  reshape =  1.1% (45550720/3889583104) finish=390.7min speed=158740K/sec

耐心等待,当它跑完时。

mdadm --misc --detail /dev/md2
/dev/md2:
           Version : 1.2
     Creation Time : Sun Jan 30 03:20:57 2022
        Raid Level : raid10
        Array Size : 3897970688 (3717.39 GiB 3991.52 GB)
     Used Dev Size : 3897970688 (3717.39 GiB 3991.52 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sun Jan 30 09:22:19 2022
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : bitmap

              Name : md2
              UUID : 0686b64f:07957a70:4e937aa2:23716f6e
            Events : 158

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       2       8       18        1      active sync   /dev/sdb2

可以看到我们的Raid10只有两块硬盘,还有两个备用设备空着。我们需要将另外两块硬盘加入阵列。

mdadm --grow /dev/md2 --raid-devices=4
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md2 : active raid10 sdc2[4] sdb2[3] sda2[2] sdd2[1]
      3889583104 blocks super 1.2 64K chunks 2 near-copies [4/4] [UUUU]
      [>....................]  reshape =  1.1% (45550720/3889583104) finish=430.7min speed=148740K/sec

耐心等待完成即可。由于我们是由raid1转换为raid10无需更新Grub,如果你转换的是其他的(Raid5)那么需要更新Grub。

sudo grub-mkconfig -o /boot/grub/grub.cfg

不仅要有正确的Grub配置,还需要为每一块硬盘安装Grub引导加载程序。

sudo grub-install /dev/sdX  例如:sudo grub-install /dev/sda