Linux-LVM 磁盘扩容
安装lvm2后才支持如下命令
yum install -y lvm2
序号 | 功能 | PV物理卷命令 | VG卷组命令 | LV逻辑卷命令 |
01 | 扫描功能 | pvscan | vgscan | Ivscan |
02 | 建立功能 | pvcreate | vgcreate | Ivcreate |
03 | 查询功能 | pvdisplay | vgdisplay | Ivdisplay |
04 | 删除功能 | pvremove | vgremove | Ivremove |
05 | 扩容功能 | vgextend | Ivextend | |
06 | 缩容功能 | vgredyce | Ivreduce |
磁盘逻辑卷管理实践操作
01. 逻辑卷操作环境准备: 添加⼀块空硬盘sdb,在硬盘上创建两个分区sdb1 和sdb2 各500M:
先进行新增加的sdb磁盘进行分区操作
fdisk /dev/sdb
先划分一个500M“n”
再划分500M“n”
检查一下“P”
保存“w”
用fdisk -l /dev/sdb 检查磁盘分区,并用 ll /dev/sdb* 检查分区文件是否存在
分区操作完毕。
02. 逻辑卷功能基础配置:——物理卷PV
创建PV——sdb1+sdb2
pvcreat /dev/sdb1 /dev/sdb2
pvdisplay
注意1:此时"Total PE"是0,因为当PV放入VG组后,才会打散,生成多个PE
注意2:pvs可以简单查看PV的分组
创建VG组“vg1”
vgcreate vg1 /dev/sdb1 /dev/sdb2
详细查看vgdisplay,此时可以看到“Total PE”是248个,每个PE是4M大小,为什么是248个,通过pvdisplay查看可知
注意1:此时因为没有创建LV,所以VG里“Alloc PE / Size ”目前还是“0/0”
注意2:此时因为没有创建LV,所以VG里“Free PE / Size ”目前还是“248”都没有使用
通过pvdisplay查看可知,sdb1和sdb2每个分别是124个,因此这个VG是248个PE
VG创建后,创建LV
lvcreate -L 200M -n lv1 vg1 #从vg1中,创建一个名称叫做lv1的 200M空间
对lv1进行文件系统的创建(格式化)
mkfs -t ext4 /dev/vg1/lv1
注意:
ext4可以lvm缩容、扩容
xfs只能lvm扩容,xfs如果需要缩容,需要先格式化
挂载到/ mnt目录
df -h查看挂载情况
03.逻辑卷扩容实践:
lvextend -L +100M 或者 lvextend -l +100%free 这里-L -l 需要注意大小写
[root@xiaoq mnt ] # vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz -- n- 992.00m 792.00m
#确认vg中是否有可以扩容的空间
[root@xiaoq mnt] # lvextend -L +100M /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 300.00 MiB (75extents).
Logical volume vg1/lv1 successfully resized.
[ root@xiaoq mnt ] # lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao ---- 300.00m
[root@xiaoq mnt ] # lvscan
ACTIVE '/dev/vg1/lv1' [300.00 MiB ] inherit
#若扩容容量不对,可以用lvscan命令进行重新扫描识别
[root@xiaoq ~ ] # resize2fs /dev/vg1/lv1
#对于ext4文件系统类型,resize2fs让文件系统识别扩容的容量,如果是xfs可以使用xfs_growfs命令识别。
[root@xiaoq ~ ] # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 297M 11M 287M 4% /mnt
#空间容量已经实现100M扩容
04.逻辑卷缩容实践:
[ root@xiaoq ~ ] # umount /mnt
--缩容操作必须对存储设备进行卸载
[ root@xiaoq ~ ] # e2fsck -f /dev/vg1/lv1
--缩小文件系统前五名要先对文件系统做个扫描检测,保护缩减文件系统时不对数据损害
[ root@xiaoq ~ ] # resize2fs /dev/vg1/lv1 200M
--扫描缩容后剩余的200M文件系统空间
[ root@xiaoq ~ ] # lvreduce -L 200M /dev/vg1/lv1
WARNING: Reducing active logical volume to 200.00 MiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [ y/n ] : y
Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 200.00 MiB (50
extents).
Logical volume vg1/lv1 successfully resized.
--将lv1逻辑卷缩容回原有的 200 M
[ root@xiaoq ~ ] # lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a ----- 200.00m
[ root@xiaoq ~ ] # mount /dev/vg1/lv1 /mnt
[ root@xiaoq ~ ] # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /disk1
说明:企业当中尽量不要做磁盘缩容操作,因为缩容操作容易对⽂件系统造成不可逆的影响。
05.逻辑卷组扩容过程实践: 在虚拟主机环境中添加⼀块新的硬盘,并对新的硬盘设置为pv
[ root@xiaoQ ~ ] # pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
[ root@xiaoQ ~ ] # vgextend vg1 /dev/sdc
Volume group "vg1" successfully extended /dev/sdc VG
--已扩展完成VG物理卷组
[ root@oldboyedu ~ ] # vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz -- n- 20.96g 20.57 g
06. 逻辑卷组缩容过程实践:
[ root@xiaoQ ~ ] # vgreduce vg1 /dev/sdc
Removed “/dev/sdc”Volume group "vg1"
[ root@xiaoQ ~ ] # vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz -- n- 992.00m 792.00m
[ root@oldboyedu ~ ] # pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
-- /dev/sdc 已删除完成 PV物理卷
[ root@oldboyedu ~ ] # pvs
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- 500.00m 500.00m
/dev/sdb2 lvm2 --- 500.00m 500.00m
LVM 逻辑卷知识总结:
LVM 逻辑卷管理优势:
- 可以对磁盘的容量进⾏灵活的管理;
- 可以避免⽇后⼯作中数据迁移问题;
LVM 逻辑卷管理劣势:
- 可能会对磁盘的性能造成影响;
- 可能会对磁盘⽂件系统有损坏;(等价于对磁盘的数据有损坏)
- 如有条件尽量使⽤存储设备;(软件化的存储应⽤)
其他相关:视频学习:
首先使用“lsblk”查看现有磁盘情况
root@lzc-OpenWRT:/home/lzc# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 4K 1 loop /snap/bare/5
loop1 7:1 0 55.4M 1 loop /snap/core18/2128
loop2 7:2 0 55.6M 1 loop /snap/core18/2620
loop3 7:3 0 219M 1 loop /snap/gnome-3-34-1804/72
loop4 7:4 0 63.2M 1 loop /snap/core20/1695
loop5 7:5 0 219M 1 loop /snap/gnome-3-34-1804/77
loop6 7:6 0 346.3M 1 loop /snap/gnome-3-38-2004/119
loop7 7:7 0 65.1M 1 loop /snap/gtk-common-themes/1515
loop8 7:8 0 91.7M 1 loop /snap/gtk-common-themes/1535
loop9 7:9 0 51M 1 loop /snap/snap-store/547
loop10 7:10 0 49.7M 1 loop /snap/snapd/17576
loop11 7:11 0 45.9M 1 loop /snap/snap-store/599
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 49.5G 0 part
├─vgubuntu-root 253:0 0 48.5G 0 lvm /
└─vgubuntu-swap_1 253:1 0 976M 0 lvm [SWAP]
root@lzc-OpenWRT:/home/lzc#
然后用“lsblk -f”可以看到磁盘格式
root@lzc-OpenWRT:/home/lzc# lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0 squashfs 0 100% /snap/bare/5
loop1 squashfs 0 100% /snap/core18/2128
loop2 squashfs 0 100% /snap/core18/2620
loop3 squashfs 0 100% /snap/gnome-3-34-1804/72
loop4 squashfs 0 100% /snap/core20/1695
loop5 squashfs 0 100% /snap/gnome-3-34-1804/77
loop6 squashfs 0 100% /snap/gnome-3-38-2004/119
loop7 squashfs 0 100% /snap/gtk-common-themes/1515
loop8 squashfs 0 100% /snap/gtk-common-themes/1535
loop9 squashfs 0 100% /snap/snap-store/547
loop10 squashfs 0 100% /snap/snapd/17576
loop11 squashfs 0 100% /snap/snap-store/599
sda
├─sda1 vfat 8BE7-DF3D 511M 0% /boot/efi
├─sda2
└─sda5 LVM2_member eDSv3f-euPB-ePjk-3Nuz-pXuP-a4Tg-xvYwYY
├─vgubuntu-root ext4 c2545732-2cc3-47b2-a098-5c770211e1a0 5.9G 83% /
└─vgubuntu-swap_1 swap 0a3c99af-e9ef-432e-9e16-458b267d1027 [SWAP]
root@lzc-OpenWRT:/home/lzc#
第一步:df -h
查看磁盘情况
第二步:lvdisplay(逻辑卷)
第三步:vgdisplay(逻辑组)
第四步:pvdisplay(物理卷)
第五步:fdisk /dev/磁盘名
第六步:mkfs -t ext4 /dev/sdb1
第七步:vgextend centos /dev/sdb1
其中centos是nv的名字,在第三步查看,sdb1是磁盘名,可以lsblk查看
第八步:再用pvscan查看一下
第九步:lvextend -l 100%FREE /dev/centos/root
其中/dev/centos/root是lv的path,在第二步查看
第十步:resize2fs /dev/centos/root
如果是centos7的话,最后一步刷新空间会报错,正确命令:xfs_growfs -p -F /dev/cl_192/root