lvm动态调整空间使用
lvm优点:
(1)lvm的文件系统可以跨越多个磁盘,分区大小不受磁盘容量限制
(2)可以在系统运行中,直接动态扩容文件系统大小
(3)可以直接增加新的硬盘,到lvm的vg卷组中
lvm的创建流程:
1、物理分区阶段,针对物理磁盘或者分区,进行fdisk格式化,修改系统的id,默认是83,改为8e类型,是lvm类型
2、PV阶段,通过pvcreate、pvdisplay将linux分区改为物理卷PV
3、创建VG阶段,通过vgcreate、vgdisplay,将创建好的物理卷PV改为物理卷组VG
4、创建LV,通过lvcreate,将卷组分为若干个逻辑卷
转换为命令操作:
1、fdisk修改系统id
2、pvcreate,创建PV,以及显示PV信息 pvdisplay ,也可以直接输入pvs查看简单的信息
3、创建VG卷组,vgcreate;vgs显示卷组信息
4、创建lv逻辑卷,lvcreate;lvs,显示逻辑卷组信息
5、开始格式化文件系统,使用lv分区
lvm管理的常见命令:
pv物理卷
pvcreate:创建物理卷
pvscan:扫描物理卷信息
pvdisplay:显示各个物理卷详细参数
pvremove:删除物理卷
vg卷组
vgcreate:创建卷组
vgscan:扫描卷组信息
vgdisplay:显示各个卷组详细参数
vgremove:删除卷组
vgreduce:缩小卷组,把物理卷从卷组中移除
vgextend:扩大卷组,把某个新的物理卷加入到卷组中
lv逻辑卷
lvcreate:创建卷组
lvscan:扫描卷组信息
lvdisplay:显示各个卷组详细参数
lvremove:删除卷组
lvreduce:缩小卷组,把物理卷从卷组中移除
lvextend:扩大卷组,把某个新的物理卷加入到卷组中
实际创建lvm
挑选/dev/sdb、/dev/sdc两块硬盘,创建物理卷,然后添加之卷组
1、创建pv
[root@WALKER ~]# pvcreate /dev/sdb /dev/sdc
WARNING: ext4 signature detected on /dev/sdb at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sdb.
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y
Wiping dos signature on /dev/sdb.
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
[root@WALKER ~]#
2、创建卷组
[root@WALKER ~]# vgcreate vg1 /dev/sdb /dev/sdc
Volume group "vg1" successfully created
[root@WALKER ~]#
3、我们可以扫描一下,看看详细信息
[root@WALKER ~]# pvscan(pvs/pvdisplay)
PV /dev/sdb VG vg1 lvm2 [<20.00 GiB / <20.00 GiB free]
PV /dev/sdc VG vg1 lvm2 [<10.00 GiB / <10.00 GiB free]
PV /dev/sda2 VG centos_walker lvm2 [<29.00 GiB / 0 free]
Total: 3 [<58.99 GiB] / in use: 3 [<58.99 GiB] / in no VG: 0 [0 ]
[root@WALKER ~]# vgscan(vgs/vgdisplay)
Reading volume groups from cache.
Found volume group "vg1" using metadata type lvm2
Found volume group "centos_walker" using metadata type lvm2
[root@WALKER ~]#
4、尝试扩容,扩大vg卷组
第一步:把新的硬盘创建物理卷
[root@WALKER ~]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
第二步:检查一下物理卷的信息
[root@WALKER ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos_walker lvm2 a-- <29.00g 0
/dev/sdb vg1 lvm2 a-- <20.00g <20.00g
/dev/sdc vg1 lvm2 a-- <10.00g <10.00g
/dev/sdd lvm2 --- 10.00g 10.00g
第三步:把新创建的物理卷扩容到vg1中
[root@WALKER ~]# vgextend vg1 /dev/sdd
Volume group "vg1" successfully extended
[root@WALKER ~]#
5、显示一下卷组的信息
[root@WALKER ~]# vgdisplay |grep 'VG Size'
VG Size <39.99 GiB
[root@WALKER ~]#
6、还可以缩小卷组的大小
[root@WALKER ~]# vgreduce vg1 /dev/sdd
Removed "/dev/sdd" from volume group "vg1"
[root@WALKER ~]#
7、删除/dev/sdd的物理卷
[root@WALKER ~]# pvremove /dev/sdd
Labels on physical volume "/dev/sdd" successfully wiped.
[root@WALKER ~]#
[root@WALKER ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos_walker lvm2 a-- <29.00g 0
/dev/sdb vg1 lvm2 a-- <20.00g <20.00g
/dev/sdc vg1 lvm2 a-- <10.00g <10.00g
(没有/dev/sdd信息了!)
[root@WALKER ~]#
8、使用此时的卷组,创建逻辑卷
[root@WALKER ~]# lvcreate -n lv1 -L +500M vg1
WARNING: swap signature detected on /dev/vg1/lv1 at offset 4086. Wipe it? [y/n]: y
Wiping swap signature on /dev/vg1/lv1.
Logical volume "lv1" created.
9、检查lv的信息
[root@WALKER ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos_walker -wi-ao---- <26.00g
swap centos_walker -wi-ao---- 3.00g
lv1 vg1 -wi-a----- 500.00m
[root@WALKER ~]#
10、对刚创建的lv1逻辑卷进行格式化文件系统
[root@WALKER ~]# mkfs.xfs /dev/vg1/lv1
meta-data=/dev/vg1/lv1 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@WALKER ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs e7079a82-b3e5-460a-b14c-f7f1893ba0b8 /boot
└─sda2 LVM2_member ifp8oe-aibY-2R0x-OXX5-nxsx-5arK-ofVn4N
├─centos_walker-root xfs 67259b70-f702-47b4-97ac-34d696b74606 /
└─centos_walker-swap swap f06310bf-bd56-4ffa-9dd3-fc9cd78133da [SWAP]
sdb LVM2_member ovTmhn-Zdsl-uWFe-03Fx-N9Tt-1dPs-sUiQUo
└─vg1-lv1 xfs 5024f810-7262-4862-8854-23536de32d4a
sdc LVM2_member fyyM3Q-HzPV-fH1N-KCcV-XMD8-RTAa-UVBlfh
sdd
sde
sdf
sr0 iso9660 CentOS 7 x86_64 2020-04-22-00-54-00-00
[root@WALKER ~]#
11、向lv1逻辑卷中,进行挂载以及数据写入(就可以当做一个普通分区来使用了)
[root@WALKER ~]# mkdir /test_lv1
[root@WALKER ~]# mount /dev/vg1/lv1 /test_lv1/
[root@WALKER ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 xfs 497M 26M 472M 6% /test_lv1
[root@WALKER ~]#
将挂载的信息写入开机自动挂载文件中,以后就不需要每次挂载了
[root@WALKER test_lv1]# vim /etc/fstab
[root@WALKER test_lv1]# tail -1 /etc/fstab
/dev/vg1/lv1 /test_lv1 xfs defaults 0 0
[root@WALKER test_lv1]# mount -a(读取fstab文件中的信息)
12、向磁盘中写入数据,查看磁盘容量
[root@WALKER ~]# cd /test_lv1/
[root@WALKER test_lv1]# ls
test.txt
[root@WALKER test_lv1]# cp test.txt test1.txt
[root@WALKER test_lv1]# cp test.txt test.txt.2
[root@WALKER test_lv1]# cp test.txt test.txt.3
[root@WALKER test_lv1]# cp test.txt test.txt.4
[root@WALKER test_lv1]# cp test.txt test.txt.5
[root@WALKER test_lv1]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 xfs 497M 65M 432M 14% /test_lv1
[root@WALKER test_lv1]#
13、针对lv逻辑卷的扩容操作,只要卷组中的容量够用,就可以针对lv逻辑卷扩容
第一步:先卸载lv的设备
[root@WALKER /]# umount /test_lv1
第二步:命令扩容逻辑卷的大小
[root@WALKER /]# lvextend -L +10G /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 500.00 MiB (125 extents) to <10.49 GiB (2685 extents).
Logical volume vg1/lv1 successfully resized.
[root@WALKER /]#
第三步:挂载逻辑卷开始使用
[root@WALKER /]# mount /dev/vg1/lv1 /test_lv1/
[root@WALKER /]#
14、还得调整xfs文件系统的大小
[root@WALKER /]# xfs_growfs //dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1 isize=512 agcount=4, agsize=32000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=128000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 128000 to 2749440
[root@WALKER /]# df -hT |grep lv1
/dev/mapper/vg1-lv1 xfs 11G 69M 11G 1% /test_lv1
[root@WALKER /]#
15、当你不想用lv之后,删除逻辑卷
第一步:卸载设备
[root@WALKER /]# umount /test_lv1
[root@WALKER /]#
第二步:删除逻辑卷
[root@WALKER /]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
Logical volume "lv1" successfully removed
[root@WALKER /]#
第三步:删除卷组
[root@WALKER /]# vgremove vg1
Volume group "vg1" successfully removed
[root@WALKER /]#
第四步:删除物理卷设备
[root@WALKER /]# pvremove /dev/sdb /dev/sdc
Labels on physical volume "/dev/sdb" successfully wiped.
Labels on physical volume "/dev/sdc" successfully wiped.
[root@WALKER /]#
最后一步:检查所有的lv信息
pvs
vgs
lvs
如果均没有相关信息,就表示lvm彻底删除了