Linux逻辑卷及RAID5的创建

    • 逻辑卷
        • 创建逻辑卷步骤:
        • 扩容
        • 移除逻辑卷
        • 缩减逻辑卷
        • 缩减卷组
    • 磁盘阵列RAID
        • 建立RAID磁盘
        • 磁盘的故障处理
        • 磁盘阵列的还原
        • 问答:

逻辑卷

物理卷:不能调整文件系统大小
卷组:将一块或多块硬盘融合成一块
逻辑卷:逻辑卷才能建立文件系统,逻辑卷支持扩容(在线扩容),可用来实现对分区的动态扩展。

创建逻辑卷步骤:

  1. 添加硬盘
  2. 创建物理卷、合成卷组、划分逻辑卷
  3. mkdir建立挂载点目录、mfks格式化、挂载
  • pvcreate /dev/sd[bcd] ---- 将sdb sdc sdd 三块硬盘建立成物理卷

  • vgcreate -s 16M kaso_vg /dev/sdb /dev/sdc — 建立卷组两块硬盘c和b 指定物理单元为16M(为了划分容量时候便于计算使用的)
    -s 16M 指定最小物理单元PE为16M,默认4M
    vgextend kaso_vg /dev/sdd – 扩容卷组容量

  • lvcreat 逻辑建立 (建立文件系统)
     -n 指定名字
     -L 指定大小
     -l 10 表示单位,10个PE
    lvcreate -n team_lv1 -L 200M team_vg
     //若上面卷组指定最小单位PE为16M,则划分200M给逻辑卷后其实际大小不是200M,而是208M!
     //就高不就低,实际值会按给的值向大的给。若PE为4M,则实际大小就是200M
    lvcreate -n team_lv2 -l 10 team_vg
     //若上面指定卷组PE为16M,则此步划分10个单位PE给逻辑卷即160M

  • 建立文件系统 格式化设备的路径(两个路径都可以用)
     两个路径:
      ①/dev/卷组名/逻辑卷名 如:/dev/test_vg/test_lv(此方式需要建立挂载目录)
      ②/dev/mapper/卷组名-逻辑卷名 如:/dev/mapper/test_vg-test_lv
     mkfs.ext4 /dev/mapper/kaso_vg-kaso_lv1
     vim /etc/fstab 挂载,但现在还没有挂上,需reboot或mount -a
     mount -a 所有的重新挂载

扩容

(支持在线扩容)注意区分 逻辑卷空间 和 文件系统空间
加密分区最好不要扩容
lvextend -L +160M /dev/team_vg/team_lv1 在原基础上增加160M
lvextend -L 368M /dev/team_vg/team_lv1 总大小增加至368M
lvscan 看逻辑卷扩容状态
df -Th 看文件系统状态,若有一部分容量还没格式化,则那部分容量不会累加进来。
resize2fs /dev/team_vg/team_lv1 重新刷新文件系统。
逻辑卷扩容后,扩容的那部分还没有格式化,但也不能对kaso_lv1重新格式化(前面的数据会全没了)。resize2fs可以将扩容那部分进行单独格式化并挂载以便创建文件系统。此时通过df -Th 可以查看到已格式化并挂载后容量更新的逻辑卷team_lv1
最后再查看一次文件系统df -Th

移除逻辑卷

取消挂载umount—lvremove—vgremove—pvremove

缩减逻辑卷

(不建议用 尤其是生产环境 数据丢失)
逻辑卷缩减

  1. 先卸载(确认文件系统中的数据不能大于要缩减到的总容量)
     umount 设备  //卸载挂载点 或 卸载目录都可以
  2. 先检查文件系统信息(对文件系统进行强制性检查)
     e2fsck -f /dev/team_vg/team1_lv
  3. 先缩减文件系统
     resize2fs /dev/team_vg/team1_lv 160M
  4. 缩减逻辑卷
     lvreduce -L 160M /dev/team_vg/team1_lv
  5. 挂载验证
     mount 设备 挂载点

缩减卷组

若要求 kaso_vg sdb sdc sdd 60G 将sdb从卷组中移除

  1. pvscan分析 pe的使用率。
  2. 移动pe单元
     pvmove 源 目标
     pvmove /dev/sdb /dev/sdd
  3. 缩减卷组
     vgreduce kaso_vg /dev/sdb 将硬盘移除
  4. 删除pv

磁盘阵列RAID

磁盘A 磁盘B 磁盘C
 0   0   0 校验位 异或 (特点相同为0 不同1)
 0   1   1
 1   0   1
 1   1   0

要求 sdb sdc sdd 建立一个名为md0的虚拟磁盘 raid5技术
当 sdb 磁盘出现故障,保证数据仍然有效。
使用sde磁盘 加入阵列 代替 sdb工作。

建立RAID磁盘

  1. mdadm -C /dev/md0 -l5 -n3 /dev/sd[bcd]
     -C 创建
     -l level
     -n number 3块盘
  2. watch -n1 cat /proc/mdstat 看进度条的状态到100%使用其建立物理卷卷组 逻辑卷
  3. 创建物理卷、合成卷组、划分逻辑卷、建立挂载点、格式化、挂载、df -Th查看、reboot
     ①pvcreate /dev/md0 ②vgcreate test_vg /dev/md0 ③lvcreate -n test_lv -L 30G test_vg
     ④mkdir /mnt/test ⑤mkfs.ext4 /dev/test_vg/test_lv
     ⑥vim /etc/fstab
      /dev/test_vg/test_lv /mnt/test ext4 dafaults 0 0
     ⑦df -Th ⑧reboot
    注:设备名称md0 会因为没有建立配置文件而产生变化 (/etc/mdadm.conf
    ARRAY /dev/md0 UUID=? //UUID可在 mdadm -D /dev/md0 中找到
    mdadm -D /dev/mdxxx 查看阵列状态以及阵列的UUID值

磁盘的故障处理

  1. 标记故障盘
     mdadm /dev/md0 -f /dev/sdc — 标记故障盘
     mdadm -D /dev/md0 可查看磁盘阵列,也可查看UUID
     cat /proc/mdstat 查看状态
  2. mdadm /dev/md0 -r /dev/sdc — 移除故障盘
  3. mdadm /dev/md0 -a /dev/sde ---- 添加新磁盘进入阵列

磁盘阵列的还原

阵列上建立的信息先还原/dev/md0
mdadm -S /dev/md0 — 停用阵列
每个被建立过阵列的磁盘前面4096个字节中都包含了文件系统信息 superblock
mdadm --zero-superblock /dev/sd[bcde]

问答:

1.命令将/dev/sdb sdc sdd建立成为raid5,的磁盘阵列。并使md0设备永久有效的在系统中被识别(mdadm.conf)。
 mdadm -C /dev/md0 -l5 -n3 /dev/sd[bcd]
 vim /etc/mdadm.conf
 ARRAY /dev/md0 UUID=xxxxx
 mdadm -D /dev/md0

2.命令将md0设备建立成为物理卷,卷组,以及大小为10G的逻辑卷test_lv,后将lv进行扩容到15G。
 pvcreate /dev/md0
 vgcreate kaso_vg /dev/md0
 lvcreate -n test_lv -L 10G kaso_vg
 lvextend -L 15G /dev/kaso_vg/test_lv

3.现发现md0阵列中的sdd磁盘故障,请将其从阵列中移除并更换新硬盘sde到阵列中。
 mdadm /dev/md0 -f /dev/sdd
 mdadm /dev/md0 -r /dev/sdd
 mdadm /dev/md0 -a /dev/sde

课堂练习:
1.为虚拟机添加三块大小为20GB的磁盘sdb sdc sdd
2.将三块硬盘转换为物理卷,并将sdc sdd两pv建立成名为class_vg的卷组,并将sde扩展进该卷组
3.建立一个名为class_lv的逻辑卷,大小为30G,并将该逻辑卷建立ext4文件系统。建立挂载点/mnt/lvm后挂载。
4.将class_lv文件系统扩展到50GB。
5.将建立的逻辑卷、卷组和物理卷删除(严格注意顺序)
6.为虚拟机添加4块大小为20G的硬盘sd[bcde],将sd[bcd]三块硬盘建立为raid5,并将虚拟磁盘md0设定为物理卷。建立卷组和一个大小为30G的逻辑卷。
7.模拟磁盘sdd故障将其冲阵列中剔除,并将sde加入阵列
8.停用磁盘阵列

你可能感兴趣的:(Linux)