linux lvm逻辑卷

408笔记

练习lvm

练习

[root@bogon ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
对硬盘进行pv化
[root@bogon ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
[root@bogon ~]#
加入卷组,命名
[root@bogon ~]# vgcreate vg0224 /dev/sdb /dev/sdc
Volume group "vg0224" successfully created
给逻辑卷分配容量,命名为0224-lv1,分配为10G
[root@bogon ~]# lvcreate -n 0224-lv1 -L 10G vg0224
Logical volume "0224-lv1" created.
[root@bogon ~]# 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
0224-lv1 vg0224 -wi-a----- 10.00g
命名为0224-lv2,分配为15G
[root@bogon ~]# lvcreate -n 0224-lv2 -L 15G vg0224
Logical volume "0224-lv2" created.
命名为0224-lv3,分配为20G
[root@bogon ~]# lvcreate -n 0224-lv3 -L 20G vg0224
Logical volume "0224-lv3" created.
[root@bogon ~]# 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
0224-lv1 vg0224 -wi-a----- 10.00g
0224-lv2 vg0224 -wi-a----- 15.00g
0224-lv3 vg0224 -wi-a----- 20.00g
创建挂载点目录
[root@bogon ~]# mkdir /test1 /test2 /test3
[root@bogon ~]# ls /
bin data home md0_disk opt run sys test3 var
blog dev lib media proc sbin test1 tmp
boot etc lib64 mnt root srv test2 usr
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk
├─vg0224-0224--lv1 253:2 0 10G 0 lvm
└─vg0224-0224--lv2 253:3 0 15G 0 lvm
sdc 8:32 0 30G 0 disk
└─vg0224-0224--lv3 253:4 0 20G 0 lvm
sr0 11:0 1 4.2G 0 rom
给逻辑卷添加文件系统,分别是xfs,xfs,ext4
[root@bogon ~]# mkfs.xfs /dev/vg0224/0224-lv1
meta-data=/dev/vg0224/0224-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@bogon ~]# mkfs.xfs /dev/vg0224/0224-lv2
meta-data=/dev/vg0224/0224-lv2 isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=3932160, 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@bogon ~]# mkfs.ext4 /dev/vg0224/0224-lv3
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk
├─vg0224-0224--lv1 253:2 0 10G 0 lvm
└─vg0224-0224--lv2 253:3 0 15G 0 lvm
sdc 8:32 0 30G 0 disk
└─vg0224-0224--lv3 253:4 0 20G 0 lvm
sr0 11:0 1 4.2G 0 rom
挂载目录
[root@bogon ~]# mount /dev/vg0224/0224-lv1 /test1
[root@bogon ~]# mount /dev/vg0224/0224-lv2 /test2
[root@bogon ~]# mount /dev/vg0224/0224-lv3 /test3
[root@bogon ~]# xfs_info /test1
meta-data=/dev/mapper/vg0224-0224--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
[root@bogon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk
├─vg0224-0224--lv1 253:2 0 10G 0 lvm /test1
└─vg0224-0224--lv2 253:3 0 15G 0 lvm /test2
sdc 8:32 0 30G 0 disk
└─vg0224-0224--lv3 253:4 0 20G 0 lvm /test3
sr0 11:0 1 4.2G 0 rom
加入新硬盘50G的,给他pv化
[root@bogon ~]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
[root@bogon ~]# vgextend vg0224 /dev/sdd
Volume group "vg0224" successfully extended
加入vg0224卷组
[root@bogon ~]# vgextend vg0224 /dev/sdd
Volume group "vg0224" successfully extended
0224-lv1添加到30G,扩容
[root@bogon ~]# lvextend -L 30G /dev/vg0224/0224-lv1
Size of logical volume vg0224/0224-lv1 changed from 10.00 GiB (2560 extents) to 30.00 GiB (7680 extents).
Logical volume vg0224/0224-lv1 successfully resized.
刷新扩容后的xfs文件系统
[root@bogon ~]# xfs_growfs /dev/vg0224/0224-lv1
meta-data=/dev/mapper/vg0224-0224--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 7864320
0224-lv3添加到30G ,扩容
[root@bogon ~]# lvextend -L 30G /dev/vg0224/0224-lv3
Size of logical volume vg0224/0224-lv3 changed from 20.00 GiB (5120 extents) to0 extents).
Logical volume vg0224/0224-lv3 successfully resized.
[root@bogon ~]# resize2fs /test3
resize2fs 1.42.9 (28-Dec-2013)
open: Is a directory while opening /test3
刷新扩容后的ext4文件系统
[root@bogon ~]# resize2fs /dev/vg0224/0224-lv3
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg0224/0224-lv3 is mounted on /test3; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 4
The filesystem on /dev/vg0224/0224-lv3 is now 7864320 blocks long.
看ext4,文件系统
[root@bogon ~]# dumpe2fs /dev/vg0224/0224-lv3 |grep -Ei '^inode|^block'
dumpe2fs 1.42.9 (28-Dec-2013)
Inode count: 1310720
Block count: 5242880
Block size: 4096
Blocks per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Inode size: 256
查看文件系统
[root@bogon ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 6.3G 11G 37% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 12M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 130M 885M 13% /boot
tmpfs tmpfs 394M 0 394M 0% /run/user/0
/dev/mapper/vg0224-0224--lv1 xfs 30G 33M 30G 1% /test1
/dev/mapper/vg0224-0224--lv2 xfs 15G 33M 15G 1% /test2
/dev/mapper/vg0224-0224--lv3 ext4 30G 44M 28G 1% /test3
[root@bogon ~]#
查看pv化的磁盘
[root@bogon ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb vg0224 lvm2 a-- <30.00g 0
/dev/sdc vg0224 lvm2 a-- <30.00g 0
/dev/sdd vg0224 lvm2 a-- <50.00g <34.99g
查看vg,机器上的卷组
[root@bogon ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg0224 3 3 0 wz--n- <109.99g <34.99g
查看lv,逻辑卷
[root@bogon ~]# 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
0224-lv1 vg0224 -wi-ao---- 30.00g
0224-lv2 vg0224 -wi-ao---- 15.00g
0224-lv3 vg0224 -wi-ao---- 30.00g

文件系统

xfs文件系统
mkfs.xfs 指定硬盘路径 创建硬盘为xfs文件系统类型
xfs_info 查看xfs文件系统的设备的详细文件系统信息(inode block的信息)
xfs_growfs 挂载点路径 刷新xfs类型的硬盘,刷新扩容后的xfs文件系统
ext4文件系统
mkfs.ext4 指定硬盘路径 创建硬盘为ext4文件系统类型
看ext4,文件系统
dumpe2fs 指定硬盘的路径
dumpe2fs /dev/sdc |grep -Ei '^inode|^block'
刷新扩容后的ext4文件系统
resize2fs 硬盘路径

lvm原理以及工作流程

250G 虚拟机
试想一下,企业里的生产服务器,一开始就没有规划好磁盘,随着用户的增长,磁盘可能会逐渐被填满,这个时候你只能添加新的硬盘,新分区
但是旧的数据还在旧的磁盘分区上,你就只能停止业务进行数据迁移了
lvm也是把多个磁盘,化为一个大硬盘,但是特点是,后期可以继续加入新的硬盘,这个逻辑卷组的容量就扩大了,等于这个大硬盘容量更大了
使用这个逻辑卷(100G+300G=400G)
获取部分的容量,化为一个逻辑卷(分区)
逻辑卷进行格式化,(分区进行格式化)
挂载使用
但是如果你用了lvm,你可以将多个物理分区,抽象为一个逻辑卷,并且这个逻辑卷组是可以动态扩容,缩容的
但逻辑卷组容量不够了,只需要买新的硬盘,通过命令再添加到这个指定的逻辑卷组中,可以在不停机的情况下,立即实现扩容,且被linux识别,yyds

lvm重点名词

普通磁盘
格式化文件系统,block=4KB,有N个block
挂载分区使用
lvm磁盘
磁盘,格式化为pv (磁盘的容量被分为N个PE),PE默认单位是4MB,等于1024block
PV加入卷组VG(动态伸缩的大磁盘)
创建逻辑卷LV(等于创建了分区)
格式化文件系统xfs,(sdb,sdc,sdd),逻辑卷
挂载使用

pv命令

前提是需要安装lvm命令
yum install lvm2 -y
安装该工具后,方可使用lvm的命令
pvcreate /dev/sdb 创建pv,对硬盘进行pv化
pvremove /dev/sdb 删除pv
pvs ,pvdisplay 查看pv的信息

vg命令

vgs,vgscan,vgdispay 查看机器上现有的卷组信息
vgcreate vg0224 /dev/sdb /dev/sdc 将两块硬盘 sdb,sdc创建为vg0224,
但是先得pv化它两
pvcreate /dev/sdb /dev/sdc
删除vg卷组
vgremove vg0224
扩容
vgextend vg0224 /dev/sdd
缩容,一般不用
vgreduce
改变容量
vgresize

lv命令

lv的参数选项
lvcreate 创建逻辑卷
-L 指定逻辑卷的大小,单位为“kKmMgGtT”字节
-l 指定逻辑卷的大小(PE个数)
-n 后面跟逻辑卷名
-s 创建快照
-n:指定逻辑卷的名字
lvs 查看当前机器得逻辑卷信息
查看逻辑卷具体的信息
lvdisplay
创建0224lv1 指定它为20G的容量
lvcreate -n 0224lv1 -L 20G vg0224
删除逻辑卷
lvremove /dev/vg0224/0224lv1
扩容,
lvextend
缩容,一般用不到
Lvreduce

清空lvm的环境

删除逻辑卷 lv
删除卷组 vg
删除 pv化
lvremove /dev/vg0224/0224lv1
vgremove vg0224
pvremove /dev/sdb /dev/sdc

lvm创建流程

1.安装lvm
2.查看pv
3.创建pv
4.查看创建后的pv
5.查看vg
6.创建vg
7.查看创建后的vg
8.查看lv
9.创建lv(创建分区)
10.查看lv
11.查看磁盘设备信息
blkid
查看/dev/卷组/
12.给lv格式化文件系统
13.挂载lv
14.查看挂载
15.开机自动挂载
16.重启

lvm扩容

1.创建新物理卷,pv
2.查看pv
3.查看vg
4.vg扩容
5.再次查看vg
6.扩容lv
7.再次查看lv
8.调整xfs文件系统
9.查看磁盘挂载容量情况
posted @   并不是那么牛  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示