Linux-LVM 磁盘扩容

LVM技术详解:视频1视频2视频3

安装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 逻辑卷管理优势:

  1. 可以对磁盘的容量进⾏灵活的管理;
  2. 可以避免⽇后⼯作中数据迁移问题;

LVM 逻辑卷管理劣势:

  1. 可能会对磁盘的性能造成影响;
  2. 可能会对磁盘⽂件系统有损坏;(等价于对磁盘的数据有损坏)
  3. 如有条件尽量使⽤存储设备;(软件化的存储应⽤)

 

其他相关:视频学习:

首先使用“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

 

posted @ 2022-11-18 13:41  Magiclala  阅读(2455)  评论(0编辑  收藏  举报