码迷,mamicode.com
首页 > 系统相关 > 详细

基于VMWare下RAID5和RAID10的配置流程

时间:2019-10-21 19:12:07      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:机制   存储   其他   根据   stopped   host   com   备份   基于   

首先我们来了解一下RAID这个概念

1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢失还加入了冗余备份机制。

RAID的早先设计理念为”redundant array of Inexpensive disks“即不贵的硬盘组,而现在的定义是”Redundant Array ofIndependent Disks“即独立的硬盘组,作用是防止硬盘物理损坏以及增加存储设备的吞吐量。RAID常见的组合有01510

RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。

技术图片

 

 

 

将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。

RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。

技术图片

 

 

 

实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。

RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。

技术图片

 

 

 

如上图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。

这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。

RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。

技术图片

 

 

 

继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。

因这种结构的成本高,一般用于存放要求速度与差错控制的数据。

名称结构:

技术图片

 

 

下面我们来具体操作

首先我们先来挂载RAID5    设置为3个做RAID,2个用来做备份。

首先我们需要将虚拟机关机

技术图片

 

 点击此处添加5个硬盘,注意要添加五个。因为sda已经被虚拟机本身占用。

技术图片

 

 此时的虚拟机上共有6个磁盘。

打开虚拟机,打开终端,输入命令

[root@fanwenting-hbza ~]# mdadm -Cv /dev/md0  -n 3 -l 5 -x 2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

-C代表创建操作,-v显示创建过程,-n是用到的硬盘个数,-l是定义RAID的级别而后面写上要加入阵列的硬盘名称,-x是用于备份的磁盘个数。

技术图片

 

 技术图片

 

 此处需要输入y 来确认创建这个阵列。

下面用mdadm来查看阵列的详细信息

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

(Spare Devices数量为2)

然后将磁盘阵列格式化为ext4系统:

[root@fanwenting-hbza ~]# mkfs.ext4 /dev/md0

技术图片

 

 

[root@fanwenting-hbza ~]# mount -a

将/dev/sdb设备设置为故障并移出阵列:

[root@fanwenting-hbza ~]# mdadm /dev/md0 -f /dev/sdb

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

此时再查看阵列的详细信息

/dev/md0:

           Version : 1.2

     Creation Time : Tue Oct 22 00:54:55 2019

        Raid Level : raid5

        Array Size : 41908224 (39.97 GiB 42.91 GB)

     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)

      Raid Devices : 3

     Total Devices : 5

       Persistence : Superblock is persistent

 

       Update Time : Tue Oct 22 01:00:08 2019

             State : clean, degraded, recovering

    Active Devices : 2

   Working Devices : 4

    Failed Devices : 1

     Spare Devices : 2

 

            Layout : left-symmetric

        Chunk Size : 512K

 

Consistency Policy : resync

 

    Rebuild Status : 51% complete

 

              Name : fanwenting-hbza:0  (local to host fanwenting-hbza)

              UUID : 2b3024a3:c4d4d3d1:3cd84251:622b8f9c

            Events : 28

 

    Number   Major   Minor   RaidDevice State

       4       8       80        0      spare rebuilding   /dev/sdf

       1       8       32        1      active sync   /dev/sdc

       5       8       48        2      active sync   /dev/sdd

 

       0       8       16        -      faulty   /dev/sdb

       3       8       64        -      spare   /dev/sde

你会发现sdf直接顶替上去了。这样大大方便了运维人员对磁盘的管理,磁盘损坏造成的损失大大减小了。

 

下面我们来挂载一个使用磁盘数为5的RAID10

因为现在RAID5在虚拟机上运行着,所以需要先输入命令将阵列设备停用。

[root@fanwenting-hbza ~]#umount /dev/md0

[root@fanwenting-hbza ~]#mdadm -S /dev/md0

 

mdadm: stopped /dev/md0

将阵列彻底停用,现在阵列已经找不到了。

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

此时就可以开始创建你RAID10新的阵列了。

输入指令

[root@fanwenting-hbza ~]#mdadm -Cv /dev/md0 -a yes -n 5 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

 

-C代表创建操作,-v显示创建过程,-a yes检查RAID名称,-n是用到的硬盘个数,-l是定义RAID的级别而后面写上要加入阵列的硬盘名称。

 

需要y来确认建立这个阵列,然后进行格式化并挂载使用。

将RAID磁盘阵列格式化为ext4格式:

[root@fanwenting-hbza ~]# mkfs.ext4 /dev/md0

然后创建挂载目录:

[root@fanwenting-hbza ~]#mkdir /RAID

 进行文件系统的挂载:

 [root@fanwenting-hbza ~]# mount /dev/md0 /RAID

 查看磁盘的挂载信息:

[root@fanwenting-hbza ~]# df -h

最后将它设为重启后也依然生效:

[root@fanwenting-hbza ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

这样磁盘在重启以后也依然挂载在虚拟机上,如果想将RAID5挂载在虚拟机上且重启后生效也可以执行上述操作。

参数-D查看RAID阵列的详细信息:

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

 

现在我们来模拟一个硬盘损坏的情况

 

使用mdadm的-f参数将/dev/sdb移出阵列:

 

[root@fanwenting-hbza ~]# mdadm /dev/md0 -f /dev/sdb

 

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

(此时的/dev/sdb状态被是移除,失败状态)

 

因为RAID10级别能够允许一组RAID1硬盘中存在一个故障盘而不影响使用,所以依然可以正常的创建或删除文件~

现在就把新的硬盘添加进去吧,当然也可以让硬盘sdb恢复使用:请重启后执行“ mdadm /dev/md0 -a /dev/sdb”。

基于VMWare下RAID5和RAID10的配置流程

标签:机制   存储   其他   根据   stopped   host   com   备份   基于   

原文地址:https://www.cnblogs.com/fairyting/p/11715127.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!