簡單來說就是:
PV:是物理的磁盤分區
VG:LVM中的物理的磁盤分區,也就是PV,必須加入VG,可以將VG理解為一個倉庫或者是幾個大的硬盤
LV:也就是從VG中划分的邏輯分區
如下圖所示PV、VG、LV三者關系:
-----------------------------------------------------------------------
特別注意的是:
resize2fs命令 針對的是ext2、ext3、ext4文件系統
xfs_growfs命令 針對的是xfs文件系統
-----------------------------------------------------------------------
一、LVM在線擴容
0.查看/home大小為96G
[root@PT233v184 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 50G 1.7G 49G 4% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 12K 3.9G 1% /dev/shm tmpfs 3.9G 8.4M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda1 1014M 139M 876M 14% /boot /dev/mapper/cl-home 96G 32G 64G 34% /home tmpfs 783M 0 783M 0% /run/user/1000
1.假設新增的磁盤為/dev/vdb,對磁盤分區。這一步不分區也可行,后文另有說明。
[root@PT233v184 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x304ff336.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-629145599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599):
Using default value 629145599
Partition 1 of type Linux and of size 300 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
2.創建PV
[root@PT233v184 ~]# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created
3.加入VG,lvdisplay查看已存在的"VG Name",cl
[root@PT233v184 ~]# vgdisplay --- Volume group --- VG Name cl System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 149.00 GiB PE Size 4.00 MiB Total PE 38143 Alloc PE / Size 38142 / 148.99 GiB Free PE / Size 1 / 4.00 MiB VG UUID dGSxPy-2MJ2-TgiB-n3f8-tRCb-NAco-ZCcoSo [root@PT233v184 ~]# vgextend cl /dev/vdb1 Volume group "cl" successfully extended
4.擴容LV分區,lvdisplay查看要擴容的"LV Path",/dev/cl/home
[root@PT233v184 ~]# lvdisplay --- Logical volume --- LV Path /dev/cl/swap LV Name swap VG Name cl LV UUID NCfBQB-hUSM-ISL0-GUL0-KNru-2qsC-qqoBuE LV Write Access read/write LV Creation host, time localhost.localdomain, 2017-10-13 09:24:40 +0800 LV Status available # open 2 LV Size 3.88 GiB Current LE 992 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/cl/home LV Name home VG Name cl LV UUID KUyFmw-TeAX-EcBd-fOX3-vJ00-ceCQ-tHcL4I LV Write Access read/write LV Creation host, time localhost.localdomain, 2017-10-13 09:24:40 +0800 LV Status available # open 1 LV Size 95.12 GiB Current LE 24350 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 --- Logical volume --- LV Path /dev/cl/root LV Name root VG Name cl LV UUID 7u7ZgM-Zn2l-n2ET-y3Ec-EFHx-bzyP-sNVsJK LV Write Access read/write LV Creation host, time localhost.localdomain, 2017-10-13 09:24:41 +0800 LV Status available # open 1 LV Size 50.00 GiB Current LE 12800 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 #vgdisplay查看可用空間"Free PE / Size",76800 [root@PT233v184 ~]# vgdisplay --- Volume group --- VG Name cl System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 2 Act PV 2 VG Size 448.99 GiB PE Size 4.00 MiB Total PE 114942 Alloc PE / Size 38142 / 148.99 GiB Free PE / Size 76800 / 300.00 GiB VG UUID dGSxPy-2MJ2-TgiB-n3f8-tRCb-NAco-ZCcoSo [root@PT233v184 ~]# lvextend -l +76800 /dev/cl/home Size of logical volume cl/home changed from 95.12 GiB (24350 extents) to 395.12 GiB (101150 extents). Logical volume cl/home successfully resized.
4.a.多種lvextend擴容參數
lvextend -L 390G /dev/cl/home #增大至390G lvextend -L +300G /dev/cl/home #增加300G lvextend -l 100126 /dev/cl/home #增加至100126個PE lvextend -l +76800 /dev/cl/home #增加76800個PE lvextend -l +100%FREE /dev/cl/home #剩余的空間全部增加給LV
5.執行重設大小
ext2/ext3/ext4文件系統的調整命令是resize2fs resize2fs /dev/cl/home xfs文件系統的調整命令是xfs_growfs xfs_growfs /dev/cl/home
[root@PT233v184 ~]# xfs_growfs /dev/cl/home meta-data=/dev/mapper/cl-home isize=512 agcount=4, agsize=6233600 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=24934400, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=12175, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 24934400 to 103577600
6.再次查看/home大小
[root@PT233v184 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/cl-root 50G 1.7G 49G 4% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 12K 3.9G 1% /dev/shm tmpfs 3.9G 8.4M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda1 1014M 139M 876M 14% /boot /dev/mapper/cl-home 396G 34G 362G 9% /home tmpfs 783M 0 783M 0% /run/user/1000
二、LVM初次增加
#磁盤分區 無論新掛載點或者現有掛載點在線擴容,不需要分區,直接pvcreate走起,我也不知道磁盤分區的目的是什么了,可能是不想把整塊磁盤的空間全部擴容給lv吧。 # 創建PV、VG、LV pvcreate /dev/vdb vgcreate vg_data /dev/vdb lvcreate -l 25599 -n lv_data vg_data lvcreate -l +100%FREE -n lv_data vg_data # 格式化磁盤 mkfs.xfs /dev/vg_data/lv_data # 修改/etc/fstab,掛載磁盤 echo "/dev/vg_data/lv_data /data xfs defaults 0 0" >> /etc/fstab mkdir -p /data mount -a df -h
三、LVM減小磁盤