LVM根分区扩容
查看设备状态
/sys/class/scsi_device/
目录包含了系统中每个 SCSI 设备对应的文件和子目录,通过执行ls
/sys/class/scsi_device/
命令,可以查看系统中所有 SCSI 设备的相关信息,比如设备名称、状态等。
ls /sys/class/scsi_device/
有时候已经加了磁盘,为什么lsblk还是不会实时出现,可以通过
提醒
的当时来解决这个问题
echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan
基本概念
- PV:物理卷(Physical volume):物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。一块硬盘,或多块硬盘。
- VG:卷组(Volume Group):卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。一堆磁盘的统称。
- LV:逻辑卷(Logical Volume):逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。一个逻辑分区,一个分区。
- PE(Physical Extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
- LE(Logical Extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
创建LVM
创建PV
#创建pv
[root@linux-server ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
#查看pv
[root@linux-server ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 --- 10.00g 10.00g
#查看pv
[root@linux-server ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb lvm2 [10.00 GiB]
Total: 2 [<29.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [10.00 GiB]
创建vg
#创建vg
[root@linux-server ~]# vgcreate vg1 /dev/sdb
Volume group "vg1" successfully created
参数解释:
-s 16M 指的是在分区的时候指定vg的大小。
#查看vg
[root@linux-server ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 1 0 0 wz--n- <10.00g <10.00g
[root@linux-server ~]# vgscan
Reading volume groups from cache.
Found volume group "centos" using metadata type lvm2
Found volume group "vg1" using metadata type lvm2
#查看vg 查看剩余pe
[root@linux-server ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <10.00 GiB
PE Size 4.00 MiB
Total PE 2559
Alloc PE / Size 0 / 0 MiB
Free PE / Size 2559 / <10.00 GiB
VG UUID bVvQxe-4M2A-mMuk-b3gJ-4Maj-0xDy-5QZDOp
创建LV
[root@linux-server ~]# lvcreate -L 150M (+150M) -n lv1 vg1 #创建lv
Rounding up size to full physical extent 152.00 MiB
Logical volume "lv1" created.
[root@linux-server ~]# lvcreate -l 20 -n lv2 vg1 #采用PE方式在创建一个lv
Logical volume "lv2" created.
参数解释:
-L 指定lv的大小
-n 给创建的lv起一个名字
-l 20 指定PE
[root@linux-server ~]# lvs #查看lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 152.00m
lv2 vg1 -wi-a----- 80.00m
创建LV
#创建lv
[root@linux-server ~]#lvcreate -L 150M (+150M) -n lv1 vg1
Rounding up size to full physical extent 152.00 MiB
Logical volume "lv1" created.
#采用PE方式在创建一个lv
[root@linux-server ~]# lvcreate -l 20 -n lv2 vg1
Logical volume "lv2" created.
参数解释:
-L 指定lv的大小
-n 给创建的lv起一个名字
-l 20 指定PE
#查看lv
[root@linux-server ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 152.00m
lv2 vg1 -wi-a----- 80.00m
制作文件系统并挂载
[root@linux-server ~]# mkfs.xfs /dev/vg1/lv1
[root@linux-server ~]# mkfs.ext4 /dev/vg1/lv2
[root@linux-server ~]# mkdir /mnt/lv{1..2}
[root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1
[root@linux-server ~]# mount /dev/vg1/lv2 /mnt/lv2
[root@linux-server ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 149M 7.8M 141M 6% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 74M 1.6M 67M 3% /mnt/lv2
LVM扩容
PV管理
#注意:如果lv所在的vg有空间直接lv扩容就ok了!如果没有空间则需要先对vg进行扩容。
[root@linux-server ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
VG管理
直接vgextend扩容
[root@linux-server ~]# vgextend vg1 /dev/sdc #vg1卷组名字,将/dev/sdc扩展到vg1中
Volume group "vg1" successfully extended
[root@linux-server ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 2 0 wz--n- 19.99g 18.23g
LV扩容
[root@linux-server ~]# vgs #查看vg
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 1 2 0 wz--n- <19.99g <9.77g
[root@linux-server ~]# lvextend -L 850M /dev/vg1/lv1 #扩展到850M
[root@linux-server ~]# lvextend -L +850M /dev/vg1/lv1 #在原有基础上加850M
[root@linux-server ~]# lvs 查看lv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-ao---- 1.66g
lv2 vg1 -wi-ao---- 80.00m
[root@linux-server ~]# lvextend -l +15 /dev/vg1/lv1 #在原有基础上加15个PE
[root@linux-server ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-ao---- <1.68g
lv2 vg1 -wi-ao---- 80.00m
检验文件系统扩容
[root@linux-server ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 149M 7.8M 141M 6% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 74M 1.6M 67M 3% /mnt/lv2
[root@linux-server ~]# xfs_growfs /dev/vg1/lv1 #xfs扩容
[root@linux-server ~]# resize2fs /dev/vg1/lv2 #ext4扩容
[root@linux-server ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 1.7G 9.1M 1.7G 1% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 74M 1.6M 67M 3% /mnt/lv2