您的位置:首页 > 其它

4周第1次课 lvm创建、扩容、缩减 磁盘故障小案例

2017-11-06 23:41 726 查看
一、LVM讲解
好处:方便在线扩容和缩容磁盘空间
坏处:损坏后恢复数据的难度增加(确保磁盘的冗余,例如使用 RD 创建 PV)
下图为 lvm 逻辑卷的抽象图,便于理解



创建 LVM 卷大致步骤
1.在磁盘上创建 PV 如: pvcreate /dev/sdb1
2.在 PV 的基础上创建 VG 如:vgcreate "vg-name" /dev/sdb1 /dev/sdb2

3.在 VG 中划分 LV 如:lvcreate -L 300M -n "lv-name" /dev/vg_ding/

4.挂载使用 同标准分区一样

5.扩容/缩容 lv和 vg 见步骤8-11

实验准备
磁盘 /dev/sdb 5GB 或者 两个不同的的磁盘、yum install -y lvm2
如果忘记一个命令所关联的 rpm 包名,可以使用匹配命令的办法找到对应的 rmp包名,如下:
yum provides "/*/pvcreate"
1.创建分区
新建3个分区,每个1GB。利用t改变分区类型为“8e”即 lvm,如果在输入“8e” 的时候,不小心输入错误,请使用“ctrl-u”进行删除修正,最终结果如下:
#fdisk /dev/sdb
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x091b524f

设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 8e Linux LVM
/dev/sdb2 2099200 4196351 1048576 8e Linux LVM
/dev/sdb3 4196352 6293503 1048576 8e Linux LVM
确认无误后.w 保存退出

2.创建物理卷(PV)
pvdisplay 查看系统中的物理卷信息
pvremove [设备路径] 删除系统中指定的物理卷
pvcreate [设备路径] 创建物理卷
partprobe 如果分区后系统中并没有物理卷,可以使用此命令刷新获取

[root@centos701 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@centos701 ~]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@centos701 ~]# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.

3.创建卷组(VG)
vgdisplay 查看系统中的物理卷组信息
vgremove [设备路径] 删除系统中指定的物理卷组
vgcreate "卷组名" [PV 路径] 创建卷组, 多个PV用空格分开
#vgcreate vg_ding /dev/sdb1 /dev/sdb2

4.创建逻辑卷(lv)
lvdisplay或者 lvs 查看系统中的逻辑卷信息
lvremove [设备路径] 删除系统中指定的逻辑卷
lvcreate -L [容量] [卷名] [卷组名] 创建逻辑卷
#在卷组 vg_ding上创建一个大小100M 名称为 lv1的逻辑卷。
[root@centos701 ~]# lvcreate -L 100M -n lv1 vg_ding

5.格式化逻辑卷 lv(ext4)
[root@centos701 ~]# mkfs.ext4 /dev/vg_ding/lv1

6.挂载逻辑卷 lv
[root@centos701 ~]# mount /dev/vg_ding/lv1 /mnt
[root@centos701 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 26G 1.8G 25G 7% /
...............
/dev/sda1 197M 109M 89M 56% /boot
..............
/dev/mapper/vg_ding-lv1 93M 1.6M 85M 2% /mnt
[root@centos701 ~]# ls -l /dev/mapper/vg_ding-lv1 #实际挂载名和真实路径都是指向 dm-0的设备
lrwxrwxrwx. 1 root root 7 11月 6 22:04 /dev/mapper/vg_ding-lv1 -> ../dm-0
[root@centos701 ~]# ls -l /dev/vg_ding/lv1
lrwxrwxrwx. 1 root root 7 11月 6 22:04 /dev/vg_ding/lv1 -> ../dm-0

7.测试 lv
进入挂载目录,创建一个文件夹和对应的文件,写入一定内容后能保存退出,即表示创建 LV 成功。
[root@centos701 ~]# cd /mnt/
[root@centos701 mnt]# mkdir lv1test
[root@centos701 mnt]# cd lv1test/
[root@centos701 lv1test]# touch lv1.txt
[root@centos701 lv1test]# vi lv1.txt

8.扩容逻辑卷(ext4),并验证数据是否丢失
[root@centos701 ~]# umount /mnt/ #卸载lv1
[root@centos701 ~]# lvresize -L 300M /dev/vg_ding/lv1 ##为 lv1指定新的容量 300M
[root@centos701 ~]# e2fsck -f /dev/vg_ding/lv1 ##检查磁盘错误(ext4执行)
[root@centos701 ~]# resize2fs /dev/vg_ding/lv1 ##更新逻辑卷信息(ext4执行)
[root@centos701 ~]# mount /dev/vg_ding/lv1 /mnt
[root@centos701 ~]# ls -l /mnt/
总用量 14
drwx------. 2 root root 12288 11月 6 22:04 lost+found
drwxr-xr-x. 2 root root 1024 11月 6 22:08 lv1test
[root@centos701 ~]# cat /mnt/lv1test/lv1.txt
lv1 one test
至此,基于 ext4文件格式的lv1逻辑卷扩容成功。

9.缩减逻辑卷(步骤与扩容相反,xfs 格式不支持缩减)
[root@centos701 ~]# umount /mnt/ #卸载lv1
[root@centos701 ~]# e2fsck -f /dev/vg_ding/lv1 ##检查磁盘错误(ext4执行)
[root@centos701 ~]# resize2fs /dev/vg_ding/lv1 100M ##更新逻辑卷信息(ext4执行)
[root@centos701 ~]# lvresize -L 100M /dev/vg_ding/lv1 ##为 lv1指定新的容量 100M
在重新指定容量时,请评估现有数据量是否大于缩减后的容量,谨慎操作!!!
[root@centos701 ~]# mount /dev/vg_ding/lv1 /mnt
[root@centos701 ~]# ls -l /mnt ##验证文件是否丢失
逻辑卷缩减容量完成。

10.xfs 逻辑卷的扩容
xfs 格式扩容的时候并不需要卸载,直接执行扩容,然后更新即可
[root@centos701 ~]#lvcreate -L 200M -n lv2 vg_ding ##创建一个大小200M 的逻辑卷
[root@centos701 ~]#mkfs.xfs /dev/vg_ding/lv2 ##格式化成 xfs 格式
[root@centos701 ~]#mount /dev/vg_ding/lv2 /mnt2 ##挂载至新的目录
[root@centos701 mnt2]#lvresize -L 300M /dev/vg_ding/lv2 ##重新设定 lv2的大小
[root@centos701 mnt2]#xfs_growfs /dev/vg_ding/lv2 ##更新卷信息
[root@centos701 mnt2]# df -h ##验证扩容
文件系统 容量 已用 可用 已用% 挂载点
..........
...........
/dev/mapper/vg_ding-lv2 297M 11M 287M 4% /mnt2
/dev/mapper/vg_ding-lv1 93M 1.6M 85M 2% /mnt
[root@centos701 mnt2]# ls /mnt2 ##验证lv2上的数据
lv2 lv2.txt

11.扩容卷组 vg
场景:当系统中的 lv 卷消耗完 vg 容量后,我们就需要对 vg 进行扩容了
##查看现有系统所有 vg 的信息,包含每个vg 的容量、pv 成员 lv信息等
[root@centos701 ~]# vgdisplay --verbose
[root@centos701 ~]# pvcreate /dev/sdb3 ##创建需要加入 vg 的 pv
[root@centos701 ~]# vgextend vg_ding /dev/sdb3 ##将空闲的PV 设备加入指定 vg
[root@centos701 ~]# vgdisplay或者 vgs ##查看扩容的容量是否成功

二、启动故障案列—磁盘挂载类
系统无法启动出现以下信息:

“journalctl -xb systemctl reboot”
Give root password for maintenance
Control-D 等信息



出现此提示通常是磁盘挂载出现问题,
按照提示输入 root 密码后,输入"journalctl -xb" 进行故障排查
一般是编辑/etc/fstab ,先去掉非系统的挂载,保存退出。
reboot 机器看能否正常进入系统,如不行请继续排错!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  创建 lvm 扩容