Linux Raid and LVM

  • RAID

  Introduction to RAID: RAID (Redundant Arrays of Independent Disks) independent redundant hard disk array; developed by the University of California, Berkeley in 1988

     Combine multiple hard drives into an "array" to provide better redundancy and performance

   Improve IO capability: Disk parallel read and write

   Increased durability: disk redundancy to achieve

RAID implementation

    hardware RAID

         External disk array: provide adaptability through expansion cards

         Internal RAID: motherboard integrated RAID controller; configure in BIOS before installing OS

    Software RAID

There are levels of RAID; levels: how multiple disks are organized together work differently

Common levels RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD  

   RAID-0   stripe set strip

    Working principle: Disperse continuous data evenly on multiple hard disks

    Performance improvements: read, write

    Redundancy: none

    Space utilization: n

    Number of hard drives: 2, 2+

    image.png

    RAID-1 mirror mirror

     How it works: store the same data on each disk

     Performance improvement: read performance improved, write performance decreased

     Redundancy: yes

     Space utilization: 1/2

     Number of hard drives: 2, 2n

      image.png

   RAID-4

      There is one hard disk to store the parity bit; other hard disks store data; because the disk that stores the parity bit is easily damaged; therefore, RAID-4 is less used

   RAID-5 Stripe Set with Parity

      Working principle: data and parity information are stored on different disks
      Performance improvement: read, write

      Redundancy: Yes Allow at most one bad disk

      Space utilization: (n-1)/n

      Number of hard drives: 3, 3+

     image.png

    RAID-6

      Working principle: A check digit is added on the basis of RAID-5; data and two check digit are stored on different hard disks respectively

      Performance improvements: read, write

      Redundancy: yes, allow up to two bad disks

      空间利用率:(n-2)/n

      硬盘个数: 4,4+

    image.png

   RAID-10

     工作原理:先实现RAID-1再组合成RAID-0

     性能提升:读、写

     冗余能力:有  每组镜像最多只能坏一块

     空间利用率:1/2

     硬盘个数:4,4+

     image.png

   RAID-01

     工作原理:先实现RAID-0再组合成RAID-1

     性能提升:读、写

     空间利用率:1/2

    硬盘个数:4,4+

     image.png

   RAID-50

     工作原理:先实现RAID-5再组合成RAID-0

     性能提升:读、写

     冗余能力:有  

     空间利用率:(n-2)/n

     硬盘个数:6,6+

     image.png

   JBOD 

      工作原理:将多块磁盘的空间合并一个大的连续空间使用

      性能提升:无

      冗余能力:无

      空间利用率:100%

      硬盘个数:至少2块

     image.png

     RAID7    理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

软件RAID

     为空余磁盘添加冗余;设备命名为/dev/md0、/dev/md1,...

   mdadm 为软RAID提供管理界面;模式化的工具
       支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

     mdadm [mode] <raiddevice> [options] <component-devices>

            -C  装载

               -a {yes|no}:自动创建目标raid设备的设备文件

               -l #:指定raid级别

               -n #:指明使用#个块设备来创建raid

               -x #:指明空闲盘个数

               -c #:指定chunk大小

      mdadm -C /dev/md0 -a yes -l5 -c 256 -n3 -x1 /dev/sda{c,d,e,f}

            -D | --detail:显示raid详细信息

          mdadm -D /dev/md#

            cat /proc/mdstat  显示raid状态

             -f:标记指定磁盘为损坏

          mdadm /dev/md# -f /dev/DEVICE  模拟磁盘故障

             -a:添加磁盘

          mdadm /dev/md# -a /dev/DEVICE  

          mdadm -G /dev/md# -a /dev/DEVICE  添加新成员

             -r:移除磁盘

          mdadm /dev/md# -r /dev/DEVICE  

        mdadm -Ds /dev/md#  >> /etc/mdadm.conf   生成配置文件

        mdadm -S /dev/md#  停止设备

        mdadm -As  /dev/md#  激活设备

        mdadm -R /dev/md#  强制启动

        mdadm --zero-superblock /dev/DEVICE  清除raid信息

     软件raid实现步骤

             1、准备硬盘或分区

             2、创建RAID

             3、创建文件系统

             4、挂载

             5、创建RAID配置文件 

    删除raid

           1、取消挂载

           2、删除raid配置文件

           3、停止raid

           4、清除raid信息

           5、删除硬盘分区

  • LVM

  LVM(Logical Volume Manager)逻辑卷管理

    dm:device mapper,将一个或多个底层块设备组合成一个逻辑设备的模块

  设备名  /dev/dm-#
   软链接

         /dev/vg_name /lv_name --> /etc/dm-#

         /dev/vg_name/lv_name --> /etc/dm-#

   image.png

   LVM可弹性更改LVM容量

        通过交换PE来进行资料转换,将原来LV内的PE移动到其它设备中以降低LV容量,或将其它设备中的PE添加到LV中以加大容量

     PE:Physical Extent 分配卷组空间的单位

     PV(Physical Volumes):物理卷;VG(Volume Group):卷组;LV(Logical Volumes):逻辑卷

              image.png

  逻辑卷管理器

     允许对卷进行方便操作的抽象层,包括重新设定文件系统大小;在多个物理设备间重新组织文件系统

        1、将设备指定为物理卷

              物理卷用固定大小的物理区域(PE)来定义

        2、用一个或多个物理卷来创建卷组

        3、在物理卷上创建逻辑卷

        4、可以在逻辑卷上创建文件系统

 PV管理工具

  pvs | pvdisplay 查看物理卷信息

  pvcreate /dev/DEVICE...  创建物理卷

  pvremove /dev/DEVICE  删除物理卷

  pvmove /dev/DEVICE  把指定设备中数据从一个物理卷中移到同一卷组中另一个物理卷上

 VG管理工具

  vgs | vgdisplay  查看卷组

  vgcreate  /dev/DEVICE  /dev/DEVICE1... 创建卷组

  vgchange [options...]  vgname

                   -s #:改变PE大小

                    -an:禁用卷组

                    -ay:激活卷组

  vgextend [options...]  /dev/vgname/lvname  扩展卷组

                    -L #:以容量为单位

                    -l #:以PE数量为单位

                       -r:扩展容量同时重新设定文件系统大小

  vgextend vgname /dev/vgname/lvname  新物理卷加入到旧卷组中

  vgreduce  vgname /dev/DEVICE  缩减卷组

  vgexport  vgname 导出卷组

  vgimport  vgname 导入卷组

  vgrename vgname vgrename 重命名卷组

  vgremove vgname 删除卷组

  LV管理工具

 lvs | lvdisplay  查看逻辑卷

 lvcreate  [options...]  vgname

                -n:指定逻辑卷

             -L #:指定大小,以容量为单位

              -l #:指定大小,以PE个数为单位

 lvextend  [options...]  /dev/vgname/lvname  扩展逻辑卷

                -L #:以容量为单位

                       +#:增加多少

                          #:指定多少

                -l:以PE为单位

                -r:扩展容量时同时重新设定文件系统大小

 lvreduce  [options...]  /dev/vgname/lvname  缩减逻辑卷

                 -L #:指定缩减容量

 lvremove vgname   删除逻辑卷

 lvrename lvname /dev/vgname/lvrename    重命名逻辑卷

一、创建逻辑卷

          pvcreate  /dev/sdx  /dev/sdy

          vgcreate  [-s 16M] vgname  /dev/sd{x,y}

          lvcreate  -n  lvname  -L  50G  vgname

二、扩展逻辑卷

    1、添加物理硬盘

    2、创建物理卷

    3、添加物理卷到旧卷组中(扩展卷组)

    4、扩展逻辑卷

    5、重新设定文件系统大小

   相关命令

       pvcreate  /dev/sdx  

       vgextend   vgname  /dev/sdx

       lvextend -L  50G  /dev/vgname/lvname

       resize2fs   /dev/vgname/lvname 

三、缩减逻辑卷

    1、取消挂载

    2、检查文件系统

    3、重新设定文件系统大小

    4、缩减逻辑卷

    5、挂载

      umount  

      ckfs -f  /dev/vgname/lvname

      resize2fs  /dev/vgname/lvname  10G

      lvreduce -L 10G /dev/vgname/lvname

      mount 

  注意:缩减文件系统有可能会造成数据丢失

四、删除vg中的pv缩减vg

       1、添加物理硬盘或分区

       2、创建物理卷

       3、创建卷组并把物理卷加入

       4、迁移空间(把存放数据的物理卷上所有占用的PE移到同一卷组里的其它成员上)

       5、缩减卷组

       6、删除物理卷(物理卷变为普通硬盘)

   相关命令

       pvcreate /dev/sdx

       vgcreate vgname /dev/sdx

       pvmove  /dev/sdy

       vgreduce vgname /dev/sdy

       pvremove /dev/sdy 

5. Migrating volume groups across hosts

     source host

         1. Cancel the mount

         2. Disable the volume group

         3. Export the volume group

    target host

         4. Import the volume group

         5. Activate the volume group

         6. Mount

    Related commands

         umount

         vgchange  -an  vgname

         vgexport  vgname

         vgimport vgname

         vgchange -ay vgname

         mount  

6. Snapshot management

   Create snapshot

   Snapshot recovery

   delete snapshot




Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324915233&siteId=291194637