一、本为中主要介绍RAID常用的RAID0RAID1RAID01RAID10RAID5格式的RAID卷和LVM卷的建立和测试

二、磁盘阵列是一种把若干硬磁盘驱动器按照一定的要求组成一个整体,整体磁盘阵列由阵列控制器管理的系统。冗余磁盘阵列RAID技术1987年由加州大学伯克利分销提出的。

三、RAID基本结束

RAIDRedundant Array of Inexpensive Disks,全称为廉价磁盘冗余阵列。

RAID的基本特性就是组合,捆绑2个或多个物理磁盘成组,形成一个单一的逻辑盘。在RAID内数据以块(chunks)的形式写入组合套中。另一个特性是具备数据校验功能,该校验可以用于RAID级别2345、的额外信息,当磁盘失败的情况发生时,校验功能结合完好的磁盘中的数据,可以重建失效的磁盘上的数据。

RAID的优点:提高磁盘的存储容量,多磁盘并行工作,提高了数据的传输率,由于数据的校验功能,提高了数据的可靠性!

四、RAID各个级别的介绍

1、RAID0:条带技术,亦称为带区集。

              所需硬盘:至少2

              处理数据:把数据分块写入组成RAID的磁盘内,从而提升了I/O速率。

              容错功能:不提供冗余功能,如果有一个磁盘损坏,则所有数据无法使用

              磁盘利用率:nS

              磁盘容量:n

2、RAID1:镜像技术,亦称为磁盘镜像。

              所需硬盘:至少2

              处理数据:把数据写入一个磁盘上后再复制到此磁盘的镜像盘上进行备份,从而造成写入能力减慢,但是读出的时候速度快。

              容错功能:提供冗余功能,只有保证两个磁盘中的有一个为好的,系统就可以使用此卷内的数据。

              磁盘利用率:1/2

              磁盘容量:   n/2

3、RAID10:镜像和条带技术

              所需硬盘:至少4

              处理数据:先把数据按照RAID1的方式进行镜像存储组合,然后把组合后的RAID1卷当成物理卷进行RAID0组合。从而读、写功能都得到了提高。

              容错功能:利用RAID1技术对数据提供容错功能。

              磁盘利用率:1/2

              磁盘容量:   n/2

4、RAID01:条带和镜像技术

              所需硬盘:至少4

              处理数据:先把数据按照RAID0的方式进行存储组合,然后把组合后的RAID0卷当成物理卷进行RAID1组合。从而读、写功能都得到了提高。

              容错功能:利用RAID1技术对数据提供容错功能。

              磁盘利用率:1/2

              磁盘容量:   n/2

5、RAID5:校验码技术

              所需硬盘:至少3

              处理数据:把数据分别写入其中的n-1块磁盘上,然后在另外一块磁盘上存储数据的校验码,提高了数据的读写能力。

              容错功能:根据效验码提供冗余功能,

              磁盘利用率:(n-1/n

              磁盘容量:   n-1

6、RAID50:校验码和条带存储技术

              所需硬盘:至少6

              处理数据:先把磁盘安装RAID5进行数据存储,然后再把RAID5安装RAID0的方式组合起来,这样既提供了读写能力,也提供了数据冗余功能。

              容错功能:提供冗余功能

              磁盘利用率:(n-2/n

              磁盘容量:   n-2

五、RAIDlinux系统上的实现:

1RAID的实现有两种方式:硬RAID和软RAID

        硬RAID是在硬件上进行RAID阵列的假设,要求主机上面具有RAID卡和RAID控制器。然后在计算机BIOS里进行设置,此处先不做详细介绍。

        软RAIDlinux系统内核内提供了md模块,来提供在linux系统内进行RAID磁盘阵列架设所需要的服务和支持。

2、mdadm命令;linux系统上建立RAID卷的命令,这是个模式化的命令

          创建模式:

                  -C:新建RAID

                     专用选项:

                       -l:选择RAID级别

                       -n:硬盘设备个数

                       -a:自动为其创建设备文件,后跟yesno

                       -c:指定chunk(数据库)大小,为2的整数次方默认为64K

                       -x:指定空闲盘个数--提供冗余,磁盘损坏后直接加载上去

                      Fg:创建raid0

                           madadm  -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{6,7}

                           Mke2fs -j  /dev/md0

                           Mount /dev/mdo /mnt                      

          管理模式:

               -f | --fail :模拟磁盘为损坏盘

                       Fgmdadm /dev/md0 --fail /dev/sda7

               -a | --add :新增硬盘

                        Fgmdadm /dev/md0 -a /dev/sda8

              -r | --remove :移除损坏的硬盘

          监控模式:

               -F

          增长模式:

               -G

          装配模式:

               -A

               Fg:mdadm -A  /dev/md0 /dev/sda8 /dev/sda9

3、查看当前系统的RAID信息:

           -D:显示RAID的相关信息

           --detail:显示信息

4、停止RAID阵列

           -S | --stop

5、将当前RAID信息保存至配置文件,一便以后进行装配

            Mdadm -D --scan  > /dev/mdadm.conf

             装配:mdadm -A /dev/md#

六、RAID小练习:

    创建一个空间大小为10GRAID5设备;其chuck大小为32k;要求此设备开机时可以自动挂载至/backup目录;

     1、先建立3个大小为5G的磁盘分别为sda{5,6,7},文件格式为fd.

          fdisk /dev/sda

          n

          +5G

          t

          fd

          w

          Partprobe

         创建完成以后查看磁盘效果如下图

Linux系统下RAID和LVM的实现_RAID

     2、创建RAID5,并制定chunk32K,结果如下图

Linux系统下RAID和LVM的实现_RAID_02

3、建立完成,同步结束后效果如下图:

Linux系统下RAID和LVM的实现_Linux_03

4、格式化md0并挂载至/backup目录,并设置为开机启动

  mke2fs -j /dev/md0

  monut /dev/md0 /backup

Linux系统下RAID和LVM的实现_LVM_04


设置为开机启动:

   Vim /etc/fstab

Linux系统下RAID和LVM的实现_Linux_05

七、LVM:由linux内核模块DMDevice Mapper提供,简称为逻辑设备。

    1LVM设备能提供RAIDLVM2、块照、多路径等功能,在linux系统内通常利用MD来进行RAID,利用DM来设置LVM2

    2、逻辑卷分为三层:

                第一层:逻辑卷LVLogical Volume

                第二层:卷组VGVolume Group

                第三层:物理卷PVPhysiacl Volum

    在创建LVM的时候是从第三层向第一层进行一层一层的创建的,第三层的物理卷在linux系统内文件系统为8e

     3、物理层PV的创建:

          pvcreate :创建PV pvmore:挪动数据、pvremove:擦除PV卷、pvdisplay:显示物理卷的信息、pvscan:扫描并显示系统上的pv卷、pvs:查看pv信息

          Fg:创建物理卷

              pvcreate  /dev/sda{10,11}

     4、卷组的创建:

         vgcreate :创建Vg vgmore:移除、vgremove:删除vgvgdisplay:显示vg的信息、vgs:查看vg信息

           Vgcreate -s #:指定pe大小,默认为4Mb,默认单位为mb    

           Fg:创建vg

              Vgcreate myvg /dev/sda{10,11}

      5、逻辑卷的创建:

           lvcreatelvreduce、、lvremove(移除lv,后加路径)、lvextendlvdisplay(查看lv相关信息)、lvs(查看lv信息)

            Lvcreate -L #:指定lv卷的大小

            Lvcreate -n NAME:指定lv的名字

            Fg:创建个50Mlv

               Lvcreate -L 50M -n mylv myvg

               mke2fs -j /dev/myvg/mylv

       6、扩展逻辑卷

          LVM的扩展:先扩展物理卷,再扩展逻辑卷

              lvextend:扩展物理边界

              Lvextend -L [+]# /PATH/TO/PV+是至增加多大,不接+号时,则为扩展到多大

              resize2fs:扩展逻辑边界

              resize2fs /PATH/TO/LV 5G:扩展逻辑边界到5G

              resize2fs -p /PATH/TO/LV :有多大扩展到多大

       7、缩减逻辑卷

           LVM缩减:先缩减逻辑边界,再缩减物理卷边界、

                1、不能在线缩减,得先卸载

        2、确保缩减后的空间大小能储存原来所有文件

        3、在缩减之前应该强行检查文件,以确保文件系统处于一致性状态。

    e2fsck -f:强行检查文件

df -lh:检查利用率

umount:缩减之前必须先卸载

e2fsck -f:强行检查文件

resize2fs /PATH/TO/LV 5G:缩减逻辑卷到5G

lvreduce -L [-]# /PATH/TO/PV: 缩减物理卷

重新挂载。  

        8、快照卷:

                  1、生命周期为整个数据时长:在这段时长内,数据的增长量不能超出块照卷大小:

              2、快照卷应该是只读的

              3、跟原卷在同一卷组内

   创建快照命令:  

        lvcreate

    -s :指定类型为块照

-p r|w:表示指定权限

   Fg:创建、还原过程

        lvcreate -s -L # SLV_NAME -p -r /PATH/TO/LV

    tar jcf /tmp/usrs.tar.bz2 块照挂载点内的内容

    tar -xf /tmp/users.tar.bz2 解压缩            

八、LVM创建练习

创建一个由两个物理卷组成的大小为15G的卷组myvg,要求其PE大小为16M;而后在此卷组中创建一个大小为5G的逻辑卷mylv,此逻辑卷要能在开机后自动挂载至/mnt目录;然后对mylv进行扩展2G

1、创建两个物理卷大小分别为7G8Gsda{8,9},并设置为lvm格式的磁盘格式8e

      fdisk /dev/sda

      n

      +7G

      T

      8e

      W

      pvcreate /dev/sda{8,9}

Linux系统下RAID和LVM的实现_Linux_06

2、创建卷组myvg

       Vgcreate -s 16 myvg /dev/sda{7,8}

Linux系统下RAID和LVM的实现_LVM_07

3、创建逻辑卷mylv

       lvreate -L 5G  -n  mylv  /dev/myvg

Linux系统下RAID和LVM的实现_Linux_08

4、逻辑卷要能在开机后自动挂载至/mnt目录

      Mke2fs -j /dev/myvg/mylv

      mount /dev/myvg/mylv /mnt

      Vim /etc/fstab内加入启动项

Linux系统下RAID和LVM的实现_LVM_09

   5、对然后对mylv进行扩展3G

Lvextend -L +3G /dev/myvg/mylv

Linux系统下RAID和LVM的实现_Linux_10