分享最新优惠信息
购买主机更加划算

CentOS 8系统配置RAID 0 | RAID 1 | RAID 10简单方法介绍

RAID代表独立磁盘冗余阵列,基本开发目的是允许将多个磁盘(例如HDD、SSD和NVMe)组合到一个阵列中以实现冗余,这种阵列磁盘在计算机上显示为单个逻辑存储单元或驱动器,目前大多国外服务器均采用RAID冗余阵列磁盘。

由于不能在服务器中插入一个巨大的磁盘驱动器来实现冗余,因为在发生灾难的情况下几乎不可能恢复数据。在RAID中,即使阵列由多个磁盘组成,计算机(服务器)也将其“视为”一个驱动器或单个逻辑存储单元,这非常的有意义。

raid阵列磁盘

术语的定义

  • 热备用(Hot Spare): –如果磁盘没有在RAID阵列中使用,并且在磁盘出现故障时处于备用状态,则具有热备用功能,也就是来自故障磁盘的数据将自动迁移到该备用磁盘中。
  • 镜像(Mirroring): –众所周知,镜像就是将相同数据复制到另一个磁盘中,此功能使数据备份的想法成为可能。
  • 条带化(Striping): –一种使数据可以随机写入所有可用磁盘中的功能,就像在所有磁盘之间共享数据一样,因此所有磁盘均等地填充。
  • 奇偶校验(Parity): –一种从保存的奇偶校验信息中重新生成丢失数据的技术。

通过使用磁盘条带化(RAID 0),磁盘镜像(RAID 1)和带奇偶校验的磁盘条带化(RAID 5,4和6)等技术,RAID能够实现冗余,更低的延迟,增加的带宽和最大化的性能以及从硬盘崩溃中恢复的能力。

一般情况下,在服务器中使用RAID的主要原因包括以下几个方面:

  • 实现更好的访问速度
  • 使用单个虚拟磁盘增加存储容量
  • 最大限度地减少磁盘故障造成的数据丢失。根据RAID类型,将能够实现冗余,这将在以后发生数据丢失的情况下更加节省时间。

目前RAID技术分为三种类型:固件RAID,硬件RAID和软件RAID。硬件RAID独立于主机处理其阵列,并且仍为主机提供每个RAID阵列一个磁盘的功能。它使用硬件RAID控制器卡,该卡对操作系统透明地处理RAID任务。另一方面,软件RAID在内核磁盘(块设备)代码中实现了各种RAID级别,并提供了最便宜的解决方案,因为不需要昂贵的磁盘控制器卡或热插拔机箱。当前时代有更快的CPU,因此软件RAID通常优于硬件RAID。

软件RAID的基本功能。

  • 无需重构即可在Linux机器之间实现阵列的可移植性
  • 使用空闲系统资源进行后台阵列重建
  • 热插拔驱动器支持
  • 自动CPU检测以利用某些CPU功能(例如流SIMD支持)的优势
  • 自动纠正阵列中磁盘上的坏扇区
  • 定期检查RAID数据的一致性,以确保阵列的运行状况
  • 主动监视阵列,并在发生重要事件时将电子邮件警报发送到指定的电子邮件地址
  • 写意图位图,通过允许内核精确地知道磁盘的哪些部分需要重新同步,而不必重新同步整个阵列,从而极大地提高了重新同步事件的速度

在CentOS 8上设置RAID

这里简要说明下,可以根据问题的症结所在来对CentOS 8系统设置各种RAID级别。不过在开始之前,需要安装mdadm工具,该工具将有助于配置各种RAID级别,安装命令如下:

sudo dnf -y update
sudo dnf -y install mdadm

在CentOS 8上配置RAID 0

如前所述,RAID 0提供了无奇偶校验的条带化,并且至少需要两个硬盘。与其他速度相比,它的速度得到了很好的评价,因为它不存储任何奇偶校验数据,也不同时执行读取和写入操作。

首先查看服务器上的磁盘:

$ lsblk

NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0  128G  0 disk
├─sda1                8:1    0    1G  0 part /boot
└─sda2                8:2    0  127G  0 part
  ├─cl_centos8-root 253:0    0   50G  0 lvm  /
  ├─cl_centos8-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl_centos8-home 253:2    0   75G  0 lvm  /home
sdb                   8:16   0    1G  0 disk
sdc                   8:32   0    1G  0 disk
sdd                   8:48   0    1G  0 disk

如上所示,该服务器连接了三个原始磁盘(sdb,sdc和sdd),这里首先清除磁盘,然后对它们进行分区,然后在它们之上创建RAID,命令如下:

for i in sdb sdc sdd; do
  sudo wipefs -a /dev/$i
  sudo mdadm --zero-superblock /dev/$i
done

在磁盘上分别创建一个分区并设置RAID标志。

for i in sdb sdc sdd; do
  sudo parted --script /dev/$i "mklabel gpt"
  sudo parted --script /dev/$i "mkpart primary 0% 100%"
  sudo parted --script /dev/$i "set 1 raid on"
done

这时应该会看到创建了新分区(sdb1,sdc1,sdd1):

$ lsblk

NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                   8:0    0  128G  0 disk
├─sda1                8:1    0    1G  0 part /boot
└─sda2                8:2    0  127G  0 part
  ├─cl_centos8-root 253:0    0   50G  0 lvm  /
  ├─cl_centos8-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cl_centos8-home 253:2    0   75G  0 lvm  /home
sdb                   8:16   0    1G  0 disk
└─sdb1                8:17   0 1022M  0 part
sdc                   8:32   0    1G  0 disk
└─sdc1                8:33   0 1022M  0 part
sdd                   8:48   0    1G  0 disk
└─sdd1                8:49   0 1022M  0 part

分区准备就绪后,继续创建RAID 0设备。级别条带(Level stripe)与RAID 0相同,因为它仅提供数据条带化。

sudo mdadm --create /dev/md0 --level=stripe --raid-devices=3 /dev/sd[b-d]1

使用以下任何命令找出RAID设备状态:

$ cat /proc/mdstat

Personalities : [raid0]
md0 : active raid0 sdd1[2] sdc1[1] sdb1[0]
      3133440 blocks super 1.2 512k chunks

unused devices: <none>

或者

$ sudo mdadm --detail /dev/md0

/dev/md0:
           Version : 1.2
     Creation Time : Wed Aug 26 21:20:57 2020
        Raid Level : raid0
        Array Size : 3133440 (2.99 GiB 3.21 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Wed Aug 26 21:20:57 2020
             State : clean
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0

            Layout : -unknown-
        Chunk Size : 512K

Consistency Policy : none

              Name : centos8.localdomain:0  (local to host centos8.localdomain)
              UUID : 2824d400:1967473c:dfa0938f:fbb383ae
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1
       2       8       49        2      active sync   /dev/sdd1

如果一切进行很顺利的话,请在新的RAID设备上创建所选择的文件系统。

sudo mkfs.ext4 /dev/md0

接下来需要在文件系统上挂载新设备,以使其开始保存文件和目录。创建一个新的挂载点:

sudo mkdir /mnt/raid0

在/ etc / fstab中配置挂载:

echo "/dev/md0 /mnt/raid0 ext4 defaults 0 0" | sudo tee -a /etc/fstab

如果不确定文件系统类型,请输入以下命令,并将ext4更改为将显示的TYPE。

sudo blkid /dev/md0
/dev/md0: UUID="e6fe86e5-d241-4208-ab94-3ca79e59c8b6" TYPE="ext4"

确认它可以正确安装:

$ sudo mount -a
$ df -hT

Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  865M     0  865M   0% /dev
tmpfs                       tmpfs     882M     0  882M   0% /dev/shm
tmpfs                       tmpfs     882M   17M  865M   2% /run
tmpfs                       tmpfs     882M     0  882M   0% /sys/fs/cgroup
/dev/mapper/cl_centos8-root xfs        50G  2.1G   48G   5% /
/dev/sda1                   ext4      976M  139M  770M  16% /boot
/dev/mapper/cl_centos8-home xfs        75G  568M   75G   1% /home
tmpfs                       tmpfs     177M     0  177M   0% /run/user/1000
/dev/md0                    ext4      2.9G  9.0M  2.8G   1% /mnt/raid0    ##Our New Device.

在CentOS 8上配置RAID 1

RAID 1提供磁盘镜像或奇偶校验而不带条带化。它仅将所有数据写入两个磁盘,因此,如果一个磁盘发生故障或弹出,则所有数据将在另一磁盘上可用。由于RAID 1是在两个磁盘上写入的,因此它需要双硬盘,如果要使用2个磁盘,则必须安装4个磁盘以进行设置。

在开始之前,需要启动RAID配置之前清除所有磁盘,以确保从纯净的磁盘开始。

for i in sdb sdc sdd; do
  sudo wipefs -a /dev/$i
  sudo mdadm --zero-superblock /dev/$i
done

在磁盘上分别创建一个分区并设置RAID标志。

for i in sdb sdc sdd; do
  sudo parted --script /dev/$i "mklabel gpt"
  sudo parted --script /dev/$i "mkpart primary 0% 100%"
  sudo parted --script /dev/$i "set 1 raid on"
done

创建RAID 1设备:

sudo mdadm --create /dev/md1 --level=raid1 --raid-devices=2 /dev/sd[b-c]1 --spare-devices=1 /dev/sdd1

检查新阵列的状态:

$ sudo mdadm --detail /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Wed Aug 26 21:32:52 2020
        Raid Level : raid1
        Array Size : 1045504 (1021.00 MiB 1070.60 MB)
     Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Wed Aug 26 21:33:02 2020
             State : clean
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

              Name : centos8.localdomain:1  (local to host centos8.localdomain)
              UUID : 9ca1da1d:a0c0a26b:6dd27959:a84dec0e
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

       2       8       49        -      spare   /dev/sdd1

RAID设备准备就绪后,如果其中没有文件系统,则无法使用它。要解决此问题,请创建所需的文件系统。下面显示了一个示例,其中正在设置xfs。

sudo mkfs.xfs /dev/md1

之后,创建将在其上安装设备的安装点:

sudo mkdir /mnt/raid1

同样,在/ etc / fstab中配置挂载:

echo "/dev/md1 /mnt/raid1 xfs defaults 0 0" | sudo tee -a /etc/fstab

确认它可以正确安装:

$ sudo mount -a
$ df -hT

Filesystem                  Type      Size  Used Avail Use% Mounted on
devtmpfs                    devtmpfs  865M     0  865M   0% /dev
tmpfs                       tmpfs     882M     0  882M   0% /dev/shm
tmpfs                       tmpfs     882M   17M  865M   2% /run
tmpfs                       tmpfs     882M     0  882M   0% /sys/fs/cgroup
/dev/mapper/cl_centos8-root xfs        50G  2.1G   48G   5% /
/dev/sda1                   ext4      976M  139M  770M  16% /boot
/dev/mapper/cl_centos8-home xfs        75G  568M   75G   1% /home
tmpfs                       tmpfs     177M     0  177M   0% /run/user/1000
/dev/md1                    xfs      1016M   40M  977M   4% /mnt/raid1

在CentOS 8上配置RAID 10

RAID 10结合了磁盘镜像(一次写入两个磁盘)和磁盘条带化以保护数据。RAID 10至少需要4个磁盘,才能跨镜像对对数据进行条带化。使用此配置,只要每个镜像对中的一个磁盘都可以工作,就可以检索数据。

和此前已有,请先清除所有原始磁盘。

for i in sdb sdc sdd sde; do
  sudo wipefs -a /dev/$i
  sudo mdadm --zero-superblock /dev/$i
done

在磁盘上分别创建一个分区并设置RAID标志。

for i in sdb sdc sdd sde; do
  sudo parted --script /dev/$i "mklabel gpt"
  sudo parted --script /dev/$i "mkpart primary 0% 100%"
  sudo parted --script /dev/$i "set 1 raid on"
done

然后继续创建RAID 10设备并检查其状态:

sudo mdadm --create /dev/md10 --level=10 --raid-devices=4 dev/sd[b-e]1
sudo mdadm -–query --detail /dev/md10

设置RAID设备后,创建特定需求所需的文件系统。下面显示了一个示例,其中正在设置xfs。

sudo mkfs.xfs /dev/md10

之后,创建将在其上安装设备的安装点:

sudo mkdir /mnt/raid10

在/ etc / fstab中配置挂载:

echo "/dev/md10 /mnt/raid10 xfs defaults 0 0" | sudo tee -a /etc/fstab

确认它可以正确安装:

$ sudo mount -a
$ df -hT

停止并删除RAID阵列

如果希望从系统中删除RAID设备,只需卸载挂载点,将其停止并使用以下命令删除即可。请记住,/ mnt / raid0替换为安装点,将/ dev / md0替换为RAID设备

sudo umount /mnt/raid0
sudo mdadm --stop /dev/md0
sudo mdadm --remove /dev/md0

总结

由于RAID的多功能性和易于安装的特性,因此它还是比较值得选用的。如上所述,配置RAID仅需执行几个命令,相对来说还是比较简单的。与此同时,根据业务需求的不同,可以实现高级别的备份,以便在发生灾难时进行备份。

总之,以上就是在CentOS 8系统配置RAID 0 | RAID 1 | RAID 10磁盘的简单过程,仅供参考。如果有想在服务器中配置RAID冗余阵列的话,不妨参考上述教程进行操作。

未经允许不得转载:惠主机 » CentOS 8系统配置RAID 0 | RAID 1 | RAID 10简单方法介绍