CentOS 8上的RAID 0配置| RAID 1 | RAID 10

这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

RAID代表独立磁盘冗余阵列。它的开发基本上是为了允许将许多磁盘(HDD,SSD,NVMe等)组合到一个阵列中以实现冗余。该设备阵列在计算机上显示为单个逻辑存储单元或驱动器。在发生灾难的情况下,几乎不可能恢复数据,并且无法通过在项目上连接一个巨大的磁盘驱动器来实现冗余。使用RAID,即使阵列由多个磁盘组成,计算机也会将其“视为”驱动器或单个逻辑存储单元。这真太了不起了。

术语的定义

  • 热备件: –如果RAID阵列中有未使用的磁盘,并且在磁盘发生故障时它们处于待机状态,则有热备用磁盘。故障磁盘上的数据将自动迁移到该备用磁盘。
  • 镜像: –您可以想象,镜像会将相同的数据复制到另一个磁盘。此功能使您可以备份数据。
  • 条纹: –能够将数据随机写入所有可用光盘的能力。这与在所有磁盘上共享数据相同,后者将均匀填充所有磁盘。
  • 平价: –从存储的奇偶校验信息中重新生成丢失数据的技术。

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

您应该考虑在项目中部署RAID的主要原因是:

  • 实现更快的速度
  • 通过单个虚拟磁盘增加存储容量
  • 最小化由于磁盘故障而导致的数据丢失。根据RAID类型的不同,可以实现冗余,可以在以后丢失数据时进行保存。

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

软件RAID的主要功能。来源(access.redhat.com)

  • 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提供带条带化而没有奇偶校验,并且至少需要2个硬盘。它不存储奇偶校验数据并同时执行读取和写入操作,因此与其他速度相比,它在提高速度时效果更好。

让我们看一下服务器上的磁盘。

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设备。级别条带类似于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: 

要么

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

如果您不知道文件系统类型,请发出以下命令并使用显示的TYPE更改ext4。

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个磁盘,因此需要2个硬盘,因此如果要使用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跨镜像对对数据进行条带化。在这种配置中,只要每个镜像对中的一个磁盘都可以工作,就可以检索数据。

我们将首先清除所有原始磁盘,就像处理已经运行的以前的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 10设备并检查其状态。

sudo mdadm --create /dev/md10 --level=10 --raid-devices=4 dev/sd[b-d]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,并且阵列将恢复良好状态。根据您的业务需求,您可以具有高级别的备份,这在灾难备份中很有用。

这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Sidebar