1-5LVM逻辑卷组
LVM逻辑卷组
-
LVM逻辑卷管理
LVM(Logical Volume Manager)逻辑卷组管理,是linux下对磁盘分区的进行管理的一种机制。
普通的磁盘分区管理方式划分好了之后就无法改变其大小,当一个分区存放不下某个文件时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。
简单来说LVM就是物理磁盘整合成一个或几个大的虚拟磁盘存储池,按照我们的需求去存储池划分空间来使用,由于是虚拟的存储池,所以划分空间时可以自由的调整大小。
-
LVM的组成部分
-
物理卷(PV,Physical Volume): 由磁盘或分区转化而成
-
卷组(VG,Volume Group): 将多个物理卷组合在一起组成了卷组,组成同一个卷组的可以是同一个硬盘的不同分区,也可是不同硬盘上的不同分区,我们通常把卷组理解为一块硬盘
-
逻辑卷(LV,Logical Volume):把卷组理解为硬盘的话,那么我们的逻辑卷则是硬盘上的分区,硬盘上的分区,逻辑卷可以进行格式化,存储数据。
-
物理扩展(PE,Physical Extend):PE卷组的最小存储单元,PE所在的位置是VG卷组,即硬盘上,那么我们可以把PE理解为硬盘上的扇区,默认是4MB,可自由配置。
-
LVM的创建
-
将物理磁盘分区,或整块磁盘分成一个区
-
将物理磁盘上的分区建立成物理卷(PV)
-
将创建好和物理组合成卷组(VG)通过添加或者删除一块物理卷,来实现卷组大小的调整。
-
最后将卷组划分成逻辑卷(LV),逻辑卷也可以随意调整大小的,逻辑卷相当于真正的分区,那么要使用必须进行格式化和挂载。
-
物理卷管理
-
使用fdisk来进行分区,分区的系统ID需要使用t选项修改为8e
-
创建物理卷--pvcreate
-
查看物理卷--pvscan & pvdisplay
-
删除物理卷--pvremove
1、创建物理卷(PV)
[root@chenyun ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
Physical volume "/dev/sde" successfully created.
Physical volume "/dev/sdf" successfully created.
查看物理卷
[root@chenyun ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb lvm2 [20.00 GiB]
PV /dev/sdf lvm2 [20.00 GiB]
PV /dev/sdd lvm2 [20.00 GiB]
PV /dev/sde lvm2 [20.00 GiB]
PV /dev/sdc lvm2 [20.00 GiB]
Total: 6 [<119.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 5 [100.00 GiB]
删除物理卷
[root@chenyun ~]# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
[root@chenyun ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb lvm2 [20.00 GiB]
PV /dev/sdf lvm2 [20.00 GiB]
PV /dev/sdd lvm2 [20.00 GiB]
PV /dev/sde lvm2 [20.00 GiB]
Total: 5 [<99.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 4 [80.00 GiB]
2、创建卷组(VG)
格式: vggreate 选项 卷组名 物理卷名(可以写多个,空格分开)
[root@chenyun ~]# vgcreate -s 8M vg1 /dev/sdb /dev/sdc /dev/sdd
Volume group "vg1" successfully created
-s 指定VG的PE大小(不建议指定)
查看卷组 vgscan $ vgdisplay
[root@chenyun ~]# vgscan 查看VG卷组信息
[root@chenyun ~]# vgscan
Reading volume groups from cache.
Found volume group "centos" using metadata type lvm2
Found volume group "vg1" using metadata type lvm2
[root@chenyun ~]# vgdisplay 查看vg卷组详细信息
[root@chenyun ~]# vgdisplay
--- Volume group ---
VG Name vg1
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 3
Act PV 3
VG Size <59.98 GiB
PE Size 8.00 MiB
Total PE 7677
Alloc PE / Size 0 / 0
Free PE / Size 7677 / <59.98 GiB
VG UUID 0cpKn9-lRss-WjeY-6ikv-1xEl-FpFH-HbOo3V
删除VG逻辑卷组
[root@chenyun ~]# vgremove vg1
Volume group "vg1" successfully removed
注意:卷组删除以后才能删除物理卷,vg1还没有添加任何逻辑卷,如果有逻辑卷,需要先删除逻辑卷再删除卷组
增加卷组容量 vgextend
格式: vgextend 卷组名 物理卷名
[root@chenyun ~]# vgextend vg1 /dev/sde /dev/sdf
Volume group "vg1" successfully extended
减小卷组容量 vgreduce
格式: vgreduce 卷组名 物理卷
[root@chenyun ~]# vgreduce vg1 /dev/sdf
Removed "/dev/sdf" from volume group "vg1"
建立逻辑卷
格式: lvcreate [选项] -n(逻辑卷名) 卷组名
-L 容量 指定逻辑卷的大小,单位MB, GB, TB
-l 个数 按照PE个数指定逻辑卷大小,这个参数需要换算容量
-n 逻辑卷名 指定逻辑卷名
[root@localhost ~]# lvcreate -L 5GB -n lv1 vg1 建立逻辑卷lv1,容量5GB
[root@chenyun ~]# lvcreate -L 10G -n lv1 vg1
Wiping xfs signature on /dev/vg1/lv1.
Logical volume "lv1" created.
查看LV逻辑卷组
[root@chenyun ~]# lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
ACTIVE '/dev/vg1/lv1' [10.00 GiB] inherit
查看LV逻辑卷组详细信息
[root@chenyun ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg1/lv1 --- 逻辑卷设备文件名
LV Name lv1 --- 逻辑卷名
VG Name vg1 --- 所属卷组
LV UUID nkLlUr-6lwK-0Tcu-b6lg-oo6o-D1qd-cUerNe
LV Write Access read/write
LV Creation host, time chenyun, 2019-10-26 07:04:42 +0800
LV Status available
# open 0
LV Size 10.00 GiB --- 逻辑卷容量
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
格式化逻辑卷
[root@chenyun ~]# mkfs.xfs /dev/vg1/lv1
[root@chenyun ~]# mkfs -t xfs /dev/vg1/lv1
注:两个命令都可以格式化,任选其一
[root@chenyun ~]# mkfs.xfs /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@chenyun ~]# fdisk -l
Disk /dev/mapper/vg1-lv1: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
建立挂载点,并挂载
[root@chenyun ~]# mount /dev/mapper/vg1-lv1 /mnt
[root@chenyun ~]# mount /dev/mapper/vg1-lv1 /mnt 临时挂载
[root@chenyun ~]# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.6G 16G 10% /
/dev/sda1 1014M 153M 862M 15% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg1-lv1 10G 33M 10G 1% /mnt
[root@chenyun ~]# vim /etc/fstab 永久挂载
/dev/mapper/vg1-lv1 /mnt xfs defaults 0 0
调整逻辑卷大小
格式: lvresize [选项] 逻辑卷设备文件名
-L 容量 安装容量调整大小,单位KB, MB,GB,TB等,使用”+”代表增 加空间, “-”代表减少空间,如果直接写容量,代表设定逻辑卷大小为指定大小
-l 个数 按照PE个数调整逻辑卷大小
[root@chenyun ~]# lvresize -L +5G /dev/mapper/vg1-lv1
Size of logical volume vg1/lv1 changed from 10.00 GiB (1280 extents) to 15.00 GiB (1920 extents).
Logical volume vg1/lv1 successfully resized.
此时逻辑卷大小已经改变了,但lv1分区的大小并没有发生改变,如果想要分区使
用这个新的逻辑分区,还需要使用resize2fs命令来调整分区的大小,这里就体现了
LVM的优势了,我们不需要卸载分区,直接就可以调整分区大小。resize2fs命令如
[root@chenyun ~]# resize2fs [选项] [设备文件名] [调整的大小]
-f 强制调整
设备文件名:指调整哪个分区的大小
调整的大小:指定把分区调整到多大,要加M,G等单位。如果不加大小,会
使用整个分区
[root@chenyun ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/vg1/lv1
Couldn't find valid filesystem superblock.
如果文本系统的格式为xfs,则使用以下命令即可强制调整逻辑卷大小,不用卸载
格式:xfs_growfs /dev/vg1/lv1
[root@chenyun ~]# xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 2621440 to 3932160
[root@chenyun ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.6G 16G 10% /
/dev/sda1 1014M 153M 862M 15% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/mapper/vg1-lv1 15G 33M 15G 1% /mnt
2. 减小分区大小(xfs不支持缩减逻辑卷)
[root@chenyun ~]# umount /dev/vg1/lv1
[root@chenyun ~]# lvreduce -L 5G /dev/vg1/lv1
[root@chenyun ~]# lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
ACTIVE '/dev/vg1/lv1' [5.00 GiB] inheri
-
删除逻辑卷
[root@localhost lv1]# lvremove 逻辑卷设备文件名
#删除lv1这个逻辑卷,记得删除时先卸载。命令如下:
[root@chenyun ~]#umount /dev/vg1/lv1
[root@chenyun ~]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
Logical volume "lv1" successfully removed
[root@chenyun ~]# lvscan
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
/dev/vg1/lv1已经删除了,没有了