吸烟
有害健康!

openEuler欧拉系统raid10和raid5的基础搭建

一、openEular欧拉系统组建RAID 10实验笔记 2023.12.23

1、准备4个新的虚拟硬盘作为组建RAID 10的基础。

2、使用mdadm命令创建RAID 10

其中,-C参数的作用是创建一个RAID阵列,-v参数用来显示创建阵列的过程,-a yes参数代表自动创建设备文件,-n参数后跟上你组阵列所用到的硬盘数目。设置好前面这些参数后,再加上每个硬盘的设备文件名称即可。

[root@openEular dev]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdc  /dev/sdd /dev/sde  /dev/sdf 

  mdadm: layout defaults to n2

  mdadm: layout defaults to n2

  mdadm: chunk size defaults to 512K

  mdadm: size set to 10476544K

  mdadm: Defaulting to version 1.2 metadata

   mdadm: array /dev/md0 started.

3、将RAID 10阵列格式化,这边我将其格式化为ext4格式。

[root@openEular dev]# mkfs.ext4 /dev/md0  

  mke2fs 1.46.4 (18-Aug-2021)

  Creating filesystem with 5238272 4k blocks and 1310720 inodes

  Filesystem UUID: 0ac07849-26e1-4ac8-bc84-6ff78ebfcf16

  Superblock backups stored on blocks: 

          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 

          4096000

  Allocating group tables: done                            

  Writing inode tables: done                            

  Creating journal (32768 blocks): done

   Writing superblocks and filesystem accounting information: done

4、查看/dev/md0磁盘阵列的详细信息

关键命令:

 [root@openEular ~]# mdadm -D /dev/md0 

如下图所示:

5、创建一个目录作为挂载点,并将硬盘设备挂载到此目录下。

[root@openEular ~]# mkdir myProject_2023 

   [root@openEular ~]# mount /dev/md0 myProject_2023

6、这里要注意!

如果仅仅是按照上面第5步这么做,则只是实现了临时挂载,当下次重启系统还需要再次挂载,这就很麻烦。因此这里我准备将挂载信息写进/etc/fstab中,以实现永久挂载。永久挂载,即要将挂载信息写进/etc/fstab中。之后我们可以通过mount -a命令,使系统按照从/etc/fstab文件中读取到的信息再重新进行一次挂载。

[root@openEular ~]# vi /etc/fstab

   [root@openEular ~]# mount -a 

7、观察myProject_2023目录的总容量是否有变化:

[root@openEular ~]# df -h 

  Filesystem                  Size  Used Avail Use% Mounted on

  devtmpfs                    4.0M     0  4.0M   0% /dev

  tmpfs                       715M   12K  714M   1% /dev/shm

  tmpfs                       286M  8.3M  278M   3% /run

  tmpfs                       4.0M     0  4.0M   0% /sys/fs/cgroup

  /dev/mapper/openeuler-root   20G  7.8G   11G  42% /

  tmpfs                       715M     0  715M   0% /tmp

  /dev/sdb1                   4.0G  179M  3.9G   5% /boot

  tmpfs                       143M   20K  143M   1% /run/user/42

  tmpfs                       143M     0  143M   0% /run/user/0

/dev/md0                     20G   24K   19G   1% /root/myProject_2023

观察到,/root/myProject_2023总容量为20G。虽然我们四块硬盘加起来一共是40G,但是组建的磁盘阵列是RAID 10,所以有效总容量为20G。

二、磁盘阵列故障处理与修复操作

一般来说,当RAID里面的个别磁盘出现故障后,可以用mdadm命令对故障硬盘进行移除。

参数

作用

-a

检查磁盘名称添加磁盘

-n

指定设备数量

-l

指定RAID级别

-C

创建

-v

显示过程

-f

模拟设备损坏

-r

移除设备

-Q

查看摘要信息

-D

查看详细信息

-S

停止RAID磁盘阵列

1、模拟磁盘损坏

使用-f参数,以模拟磁盘损坏的现象。这里我选择让sde去模拟硬盘损坏。

[root@openEular ~]# mdadm -f /dev/md0  /dev/sde 

   mdadm: set /dev/sde faulty in /dev/md0

添加磁盘,模拟现实环境中发现坏盘后再增加新硬盘的操作。因为我做实验的平台是VMware,如果我要加一块新硬盘,则需要先关闭虚拟机。重新开机后,输入下面的命令,模拟现实中将新硬盘换上去后的操作。

[root@openEular ~]# mdadm -a /dev/md0  /dev/sde  

  mdadm: added /dev/sde

  [root@openEular ~]# mdadm -D /dev/md0

  /dev/md0:

             Version : 1.2

       Creation Time : Sat Dec 23 17:33:42 2023

          Raid Level : raid10

          Array Size : 20953088 (19.98 GiB 21.46 GB)

       Used Dev Size : 10476544 (9.99 GiB 10.73 GB)

        Raid Devices : 4

       Total Devices : 4

         Persistence : Superblock is persistent

         Update Time : Sat Dec 23 19:44:12 2023

               State : clean 

      Active Devices : 4

     Working Devices : 4

      Failed Devices : 0

       Spare Devices : 0

              Layout : near=2

          Chunk Size : 512K

  Consistency Policy : resync

                Name : openEular:0  (local to host openEular)

                UUID : 10f499a1:47abe941:ca8b45ff:4083dda2

              Events : 68

      Number   Major   Minor   RaidDevice State

         0       8       32        0      active sync set-A   /dev/sdc

         1       8       48        1      active sync set-B   /dev/sdd

         4       8       64        2      active sync set-A   /dev/sde

          3       8       80        3      active sync set-B   /dev/sdf

添加成功,RAID 10照常使用。

三、openEuler组建RAID 5+备份盘基础操作实验笔记

1、组建 RAID 5磁盘阵列+备份盘

命令如下,其中-n参数则是指明组建RAID 5需要用到的硬盘数,-l参数是指明要组建的RAID级别,-x参数则是代表有1块备份盘。

[root@openEular ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde 

  mdadm: layout defaults to left-symmetric

  mdadm: layout defaults to left-symmetric

  mdadm: chunk size defaults to 512K

  mdadm: size set to 10476544K

  mdadm: Defaulting to version 1.2 metadata

   mdadm: array /dev/md0 started.

2、查看磁盘阵列细节信息

[root@openEular ~]# mdadm -D /dev/md0 

  /dev/md0:

             Version : 1.2

       Creation Time : Sat Dec 23 22:41:26 2023

          Raid Level : raid5

          Array Size : 20953088 (19.98 GiB 21.46 GB)

       Used Dev Size : 10476544 (9.99 GiB 10.73 GB)

        Raid Devices : 3

       Total Devices : 4

         Persistence : Superblock is persistent

         Update Time : Sat Dec 23 22:42:19 2023

               State : clean 

      Active Devices : 3

     Working Devices : 4

      Failed Devices : 0

       Spare Devices : 1

              Layout : left-symmetric

          Chunk Size : 512K

  Consistency Policy : resync

                Name : openEular:0  (local to host openEular)

                UUID : e98ba8e7:5251fdbb:64508616:cc0f579e

              Events : 18

      Number   Major   Minor   RaidDevice State

       0       8       16        0      active sync   /dev/sdb

       1       8       32        1      active sync   /dev/sdc

       4       8       48        2      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde

3、对磁盘阵列进行格式化

[root@openEular ~]# mkfs.ext4 /dev/md0  

  mke2fs 1.46.4 (18-Aug-2021)

  Creating filesystem with 5238272 4k blocks and 1310720 inodes

  Filesystem UUID: 52ee602b-32ac-4596-9981-d9ed070af83c

  Superblock backups stored on blocks: 

          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 

          4096000

  Allocating group tables: done                            

  Writing inode tables: done                            

  Creating journal (32768 blocks): done

   Writing superblocks and filesystem accounting information: done

4、在root的家目录下创建一个文件夹作为挂载点,并进行永久挂载

[root@openEular ~]# mkdir ./mystorage 

  [root@openEular ~]# echo "/dev/md0 /root/mystorage ext4 defaults 0 0" >> /etc/fstab

   [root@openEular ~]# mount -a

5、功能测试

测试当RAID 5 中的某个硬盘坏了,spare盘是否会自动顶替上去。笔者管理的机房中,有的存储设备就是采用RAID 5 +热备盘的,如果是单独组建RAID 5 那么最多坏一块盘,用RAID 5+热备盘的话,最多允许坏两块盘。

5.1 因为sde才是spare盘,所以这里随便挑了sdd来模拟硬盘故障。

[root@openEular ~]# mdadm /dev/md0 -f /dev/sdd  

   mdadm: set /dev/sdd faulty in /dev/md0

5.2 sdd故障后,sde作为spare盘马上顶上去承担工作,状态也由原来的spare变成active sync。

[root@openEular ~]# mdadm -D /dev/md0  

  /dev/md0:

             Version : 1.2

       Creation Time : Sat Dec 23 22:41:26 2023

          Raid Level : raid5

          Array Size : 20953088 (19.98 GiB 21.46 GB)

       Used Dev Size : 10476544 (9.99 GiB 10.73 GB)

        Raid Devices : 3

       Total Devices : 4

         Persistence : Superblock is persistent

         Update Time : Sat Dec 23 23:06:11 2023

               State : clean 

      Active Devices : 3

     Working Devices : 3

      Failed Devices : 1

       Spare Devices : 0

              Layout : left-symmetric

          Chunk Size : 512K

  Consistency Policy : resync

                Name : openEular:0  (local to host openEular)

                UUID : e98ba8e7:5251fdbb:64508616:cc0f579e

              Events : 40

      Number   Major   Minor   RaidDevice State

         0       8       16        0      active sync   /dev/sdb

         1       8       32        1      active sync   /dev/sdc

       3       8       64        2      active sync   /dev/sde

       4       8       48        -      faulty   /dev/sdd

5.3 如果RAID 5阵列出现坏盘后

spare盘会顶替原来坏盘的位置,并进行数据重建。当重建成功后可以将坏盘拔出来,然后关闭虚拟机,再添加一块新的硬盘。重启系统后先通过mdadm命令查看现在与ls命令对比查看相关信息,之后将新硬盘加入到RAID 5中。

在虚拟机环境下:

[root@openEular ~]# mdadm  /dev/md0 -f /dev/sde    ##用sde模拟硬盘故障 

  mdadm: set /dev/sde faulty in /dev/md0

  [root@openEular ~]# mdadm  /dev/md0 -r /dev/sde    ##卸载硬盘sde

  mdadm: hot removed /dev/sde from /dev/md0

  [root@openEular ~]# mdadm -D /dev/md0 

  /dev/md0:

             Version : 1.2

       Creation Time : Sat Dec 23 22:41:26 2023

          Raid Level : raid5

          Array Size : 20953088 (19.98 GiB 21.46 GB)

       Used Dev Size : 10476544 (9.99 GiB 10.73 GB)

        Raid Devices : 3

       Total Devices : 3

         Persistence : Superblock is persistent

         Update Time : Sun Dec 24 17:07:30 2023

               State : clean 

      Active Devices : 3

     Working Devices : 3

      Failed Devices : 0

       Spare Devices : 0

              Layout : left-symmetric

          Chunk Size : 512K

  Consistency Policy : resync

                Name : openEular:0  (local to host openEular)

                UUID : e98ba8e7:5251fdbb:64508616:cc0f579e

              Events : 63

      Number   Major   Minor   RaidDevice State

         0       8       16        0      active sync   /dev/sdb

         1       8       32        1      active sync   /dev/sdc

          4       8       48        2      active sync   /dev/sdd

关机,然后换上一块新硬盘后再重启系统,并用ls命令查看相关信息,发现新加的硬盘被系统识别到的名字为sde:

[root@openEular ~]# ls /dev/sd* 

  /dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde

  [root@openEular ~]# mdadm -D /dev/md0

  /dev/md0:

             Version : 1.2

       Creation Time : Sat Dec 23 22:41:26 2023

          Raid Level : raid5

          Array Size : 20953088 (19.98 GiB 21.46 GB)

       Used Dev Size : 10476544 (9.99 GiB 10.73 GB)

        Raid Devices : 3

       Total Devices : 3

         Persistence : Superblock is persistent

         Update Time : Sat Dec 23 23:26:49 2023

               State : clean 

      Active Devices : 3

     Working Devices : 3

      Failed Devices : 0

       Spare Devices : 0

              Layout : left-symmetric

          Chunk Size : 512K

  Consistency Policy : resync

                Name : openEular:0  (local to host openEular)

                UUID : e98ba8e7:5251fdbb:64508616:cc0f579e

              Events : 64

      Number   Major   Minor   RaidDevice State

         0       8       16        0      active sync   /dev/sdb

         1       8       32        1      active sync   /dev/sdc

          4       8       48        2      active sync   /dev/sdd

将新换上的硬盘sde加入到RAID 5中,作为RAID 5的热备盘:

[root@openEular ~]# mdadm /dev/md0 -a /dev/sde     

  mdadm: added /dev/sde

  [root@openEular ~]# mdadm -D /dev/md0

  /dev/md0:

             Version : 1.2

       Creation Time : Sat Dec 23 22:41:26 2023

          Raid Level : raid5

          Array Size : 20953088 (19.98 GiB 21.46 GB)

       Used Dev Size : 10476544 (9.99 GiB 10.73 GB)

        Raid Devices : 3

       Total Devices : 4

         Persistence : Superblock is persistent

         Update Time : Sat Dec 23 23:29:22 2023

               State : clean 

      Active Devices : 3

     Working Devices : 4

      Failed Devices : 0

       Spare Devices : 1

              Layout : left-symmetric

          Chunk Size : 512K

  Consistency Policy : resync

                Name : openEular:0  (local to host openEular)

                UUID : e98ba8e7:5251fdbb:64508616:cc0f579e

              Events : 65

      Number   Major   Minor   RaidDevice State

         0       8       16        0      active sync   /dev/sdb

         1       8       32        1      active sync   /dev/sdc

         4       8       48        2      active sync   /dev/sdd

       3       8       64        -      spare   /dev/sde

6、测试RAID 5的性能

6.1 测试写入效率

[root@openEular ~]# dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file 

  125000+0 records in

  125000+0 records out

   1024000000 bytes (1.0 GB, 977 MiB) copied, 0.504061 s, 2.0 GB/s

【备注】

(1)关于写入速度测试命令

其中/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

[root@openEular ~]# time dd if=/dev/zero of=/root/mystorage/1GB.file bs=1M count=10000  

  10000+0 records in

  10000+0 records out

  10485760000 bytes (10 GB, 9.8 GiB) copied, 22.1772 s, 473 MB/s

  real    0m22.224s

  user    0m0.014s

   sys     0m4.128s

(2)关于bs和count的设置值

关于dd命令,网上提供了一个常用得到最恰当的block size的方法—— 通过比较dd指令输出中所显示的命令执行时间(选时间最少的那个),即可确定系统最佳的block size大小。像下面这样反复测试,看哪一个时间比较少,判断出最适合的块大小。

但是在虚拟机上面做测试,感觉多种组合的写入速度都差不多…..

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file 

  dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

  dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

   dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

在实验中,发现关于dd命令的bs参数的单位是Byte。如果敲了bs=2048,就是告诉系统我们设定的块大小为2048Byte,即2KB。它等价于在命令行敲入bs=2K。如下所示,你会发现两种不同的输入方式,达成的结果都是一样的(参照高亮显示数据):

[root@openEular ~]# dd if=/dev/zero bs=2K count=500000 of=/root/1Gb.file 

  500000+0 records in

  500000+0 records out

  1024000000 bytes (1.0 GB, 977 MiB) copied, 0.723629 s, 1.4 GB/s

  [root@openEular ~]# dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

  500000+0 records in

  500000+0 records out

  1024000000 bytes (1.0 GB, 977 MiB) copied, 0.915566 s, 1.1 GB/s

   [root@openEular ~]#

6.2 测试读取效率

测试磁盘读能力命令:time dd if=/dev/sdb1 of=/dev/null bs=8k 
因为/dev/md0是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以这个命令的IO只发生在/dev/md0上,也相当于测试磁盘的读能力。

[root@openEular ~]# time dd if=/dev/md0 of=/dev/null bs=8k  

  2619136+0 records in

  2619136+0 records out

  21455962112 bytes (21 GB, 20 GiB) copied, 10.4111 s, 2.1 GB/s

  real    0m10.412s

  user    0m0.200s

   sys     0m9.774s
赞(3) 打赏
未经允许不得转载:交换云生 » openEuler欧拉系统raid10和raid5的基础搭建
分享到

评论 抢沙发

交换云生

始于1908

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫