• 17、RAID和LVM


    一、RAID

    1.什么是raid

    磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。

    2.raid诞生背景

    提高读写能力
    保证数据安全

    3.raid有什么用

    提高读写能力
    保证数据安全

    4.raid的模式

    raid1 条带卷,最少两块盘。读写性能好,但没有容错机制。坏一块磁盘数据全丢。容量是多快盘之和
    
    raid1 镜像卷,写入性能一般、读取性能快、有容错机制,但磁盘有50%浪费
    
    raid5 校验卷, 至少3快盘,只允许坏一块盘,有效空间1/3,读写速度快。坏掉一块盘,读会慢。
    -------------------
    raid10:raid1和raid0的组合

    4.1实验环境:

    sdb 8:16 0 20G 0 disk 
    sdc 8:32 0 20G 0 disk 
    sdd 8:48 0 20G 0 disk 
    sde 8:64 0 20G 0 disk 
    sdf 8:80 0 20G 0 disk 
    sdg 8:96 0 20G 0 disk 
    sdh 8:112 0 20G 0 disk 

    4.2.安装模拟环境的软件

    yum install mdadm -y 
    
    mdadm命令常见参数解释:
     -A 激活磁盘阵列
     -C 建立一个新阵列
     -D 打印阵列设备的信息
     -G 改变阵列大小或形态
     -S 停止阵列
    
     -r 移除设备
     -l 设定磁盘阵列的级别
     -n 指定阵列磁盘的数量
     -x 指定阵列中备用盘的数量
     -f 将设备状态定为故障
     -a 添加设备到阵列

    4.3.实验

    创建RAID0实验环境

    raid种类  磁盘   
    1.创建RAID0
    [root@oldboy ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc 
    
    
    [root@oldboy ~]# mdadm -Ds
    ARRAY /dev/md0 metadata=1.2 name=oldboy:0 UUID=55b053ef:4e189cab:e892fbe9:33317588

    创建RAID1实验环境

    raid种类  磁盘  热备盘
    raid1   sdd、sde、    sdf
    
    1)创建RAID1,并添加1个热备盘
    2)模拟磁盘故障,看备用盘是否会自动顶替故障盘
    3)从raid1中移出故障盘
    
    [root@oldboy ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f]

    创建RAID5实验环境

    raid种类  磁盘  热备盘
    raid5   sdg、sdh、sdi sdj
    
    1)使用三块盘创建RAID5, 使用-x添加1个热备盘
    2)模拟损坏一块磁盘,然后备用盘自动顶上,只能顶一次
    3)在模拟损坏,检测数据是否丢失,如果没有再次模拟损坏.
    
    
    1、创建RAID5阵列,添加一块备用盘
    [root@oldboy ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 /dev/sd{g,h,i,j}
    
    2、格式化RAID5,并挂载使用
    [root@oldboy ~]# mkfs.xfs /dev/md5
    [root@oldboy ~]# mkdir /raid5
    [root@oldboy ~]# mount /dev/md5 /raid5/
    
    3、检查RAID详情
    [root@oldboy ~]# mdadm -D /dev/md5
    
    4、模拟一块磁盘损坏
    [root@oldboy ~]# mdadm -f /dev/md5 /dev/sdj
    
    5 检查备用盘是否顶上
    [root@oldboy ~]# mdadm -D /dev/md5 
    
    6、在模拟一块磁盘损坏
    [root@oldboy ~]# mdadm -f /dev/md5 /dev/sdh
    
    ......持续此步骤进行验证

    二、LVM

    sdb 8:16 0 20G 0 disk  
    sdc 8:32 0 20G 0 disk  

    1.实现逻辑卷

    1.将普通磁盘转为pv物理卷
    [root@oldboy ~]# pvcreate /dev/sdb
    
    2.将/dev/sdb物理卷加入卷组(资源池)-->名字lvm_test
    [root@oldboy ~]# vgcreate lvm_test /dev/sdb
    
    
    3.分配lv逻辑卷(分区)
    [root@oldboy ~]# lvcreate -L 100M -n lv1 lvm_test
    
    4.格式化分区
    [root@oldboy ~]# mkfs.xfs /dev/lvm_test/lv1
    
    5.挂载使用
    [root@oldboy ~]# mount /dev/lvm_test/lv1 /lv1/

    2.扩展vg卷组的大小

    分配一个25GB的存储空间 (原有的不到20GB)

    1.如何扩大VG卷组 (注意卷组的名称---)

    #1.新硬盘加入pv
    [root@xuliangwei~]# pvcreate /dev/sdc
    
    #2.先检查当前的vg卷组大小
    [root@oldboyedu ~]# vgs
      VG #PV #LV #SN Attr VSize VFree
      datavg 1 1 0 wz--n- 1020.00m 920.00m
    
    #3.使用vgextend扩展卷组
    [root@xuliangwei~]# vgextend datavg /dev/sdc
    Volume group "datavg" successfully extended
    
    #4.再次检查,发现卷组已经扩大
    [root@oldboyedu ~]# vgs
      VG #PV #LV #SN Attr VSize VFree
      datavg 2 1 0 wz--n- 1.99g 1.89g

    3.减少vg卷组的大小

    假设想移除/dev/sdb磁盘,建议先将sdb磁盘数据先迁移到sdc磁盘,然后在移除。
    (同一卷组的磁盘才可以进行在线迁移) (注意卷组的名称---)

    #1.检查当前逻辑卷VG中PV使用情况
    [root@xuliangwei~]# pvs
    PV VG Fmt Attr PSize PFree
    /dev/sdb vg1 lvm2 a -- 2.00g 1.76g 
    /dev/sdc vg1 lvm2 a -- 2.00g 2.00g
    
    #2.pvmove在线数据迁移,将sdb的数据迁移至sdc 
    [root@xuliangwei~]# pvmove /dev/sdb
      /dev/sdb: Moved: 100.00%
    
    #3.检查是否将sdb数据迁移至sdc 
    [root@xuliangwei~]# pvs
    PV VG Fmt Attr PSize PFree 
    /dev/sdb vg1 lvm2 a -- 2.00g 2.00g 
    /dev/sdc vg1 lvm2 a -- 2.00g 1.76g
    
    #4.从卷组中移除sdb磁盘
    [root@xuliangwei~]# vgreduce datavg /dev/sdb
      Removed "/dev/sdb" from volume group "datavg"

    4.动态的调整逻辑卷大小

    1.逻辑卷的扩展,是取决于vg卷中是否还有剩余的容量,注意扩展逻辑卷不能超过卷组VG的总大小

    [root@xuliangwei~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    datavg 1 1 0 wz--n- 1020.00m 920.00m
    
    #1.扩展lv逻辑卷,增加800M分配给逻辑卷 {注意: 800M +800M 不一样}
    [root@xuliangwei~]# lvextend -L +800M /dev/datavg/lv1
        #或者可以选择分配磁盘池中多少百分比给逻辑卷
    [root@xuliangwei~]# lvextend -l +50%FREE /dev/datavg/lv1
    
    #2.扩展逻辑卷后需要更新fs文件系统
    [root@xuliangwei~]# xfs_growfs /dev/datavg/lv1 #xfs文件格式扩容

    5.删除逻辑卷

    3.删除逻辑卷,如果不想使用逻辑卷可以选择删除
    [root@oldboyedu ~]# umount /dev/datavg/lv1
    [root@oldboyedu ~]# lvremove /dev/datavg/lv1
    
    
    LVM如果有一个磁盘损坏,整个lvm都坏了. lvm只有动态扩展作用
     底层用RAID + 上层LVM = 既有冗余又有动态扩

    6.总结

     1.RAID
     2.RAID模式 0 1 5 10
     3.RAID实现 硬 软
     4.系统的mdadm工具实现的软RAID (看看效果)
    
     5.LVM逻辑卷
      动态调整分区的大小(如果不是逻辑卷,无法调整)
      PV    pvcreate pvs
      VG    vgcreate vgextend vgremove vgs 
      LV    lvcreate lvextend lvremove lvs




  • 相关阅读:
    Go语言通道(chan)——goroutine之间通信的管道
    GO语言数组,切片,MAP总结
    GO数组
    GO切片
    GO语言测试
    GO语言html模板
    Go语言中defer语句使用小结
    微信小程序 某个页面直接返回首页
    小程序常用变量
    bzoj1030
  • 原文地址:https://www.cnblogs.com/Forever-x/p/f6be7b97825dbabcc2255c2a01f13a1c.html
Copyright © 2020-2023  润新知