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




猜你喜欢

转载自www.cnblogs.com/Forever-x/p/f6be7b97825dbabcc2255c2a01f13a1c.html