传统磁盘分区存在的问题:
●分区大小不能自由调节
●多个磁盘或者分区的空间不能充分利用
LVM:
lvm用到了虚拟化的思想。
pv:物理卷(磁盘或者分区等物理层面的存储设备,如果想要通过lvm进行管理,需要将这些设备装换为物理卷)
vg: 卷组(由多个物理卷组成一种虚拟的类似于磁盘的设备)
pe:物理卷(是物理卷在添加到卷组过程中的一种统一的分隔方式)
lv: 逻辑卷(在卷组上,通过任意数量的pe组成的一个类似于分区的设备)
创建逻辑卷的过程:
先创建物理卷,再根据物理卷创建卷组,在创建卷组的时候可以指定物理块的信息,之后再创建逻辑卷。
查看系统的块设备:
[root@localhost redhat]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 5G 0 disk sdb 8:16 0 3G 0 disk ├─sdb1 8:17 0 1G 0 part /mnt/data ├─sdb2 8:18 0 1G 0 part └─sdb3 8:19 0 1023M 0 part sr0 11:0 1 9.4G 0 rom /run/media/redhat/RHEL-8-4-0-BaseOS-x86_6 nvme0n1 259:0 0 20G 0 disk ├─nvme0n1p1 259:1 0 1G 0 part /boot └─nvme0n1p2 259:2 0 19G 0 part ├─rhel-root 253:0 0 17G 0 lvm / └─rhel-swap 253:1 0 2G 0 lvm [SWAP] nvme0n2 259:3 0 5G 0 disk
查看物理卷相关的命令:pv+两次tab
[root@localhost redhat]# pv pvchange pvcreate pvmove pvresize pvscan pvck pvdisplay pvremove pvs
创建物理卷(用sda磁盘)
[root@localhost redhat]# pvcreate /dev/sda Physical volume "/dev/sda" successfully created.
创建逻辑卷(用sdb3分区)
[root@localhost redhat]# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created.
查看系统中的物理卷:
[root@localhost redhat]# pvscan PV /dev/nvme0n1p2 VG rhel lvm2 [<19.00 GiB / 0 free] PV /dev/sda lvm2 [5.00 GiB] Total: 2 [<24.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [5.00 GiB]
查看卷组的相关命令:vg+两次tab:
[root@localhost redhat]# vg vgcfgbackup vgconvert vgexport vgmerge vgrename vgcfgrestore vgcreate vgextend vgmknodes vgs vgchange vgdb vgimport vgreduce vgscan vgck vgdisplay vgimportclone vgremove vgsplit
用新创建的物理卷sda sdb3创建vg:
[root@localhost redhat]# vgcreate myvg /dev/sdb3 /dev/sda Volume group "myvg" successfully created
vgscan:查看系统中卷组
[root@localhost redhat]# vgscan Found volume group "rhel" using metadata type lvm2 Found volume group "myvg" using metadata type lvm2
vgdispaly:查看卷组详细信息
[root@localhost redhat]# vgdisplay myvg --- Volume group --- VG Name myvg System ID Format lvm2 Metadata Areas 2 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 2 Act PV 2 VG Size 5.99 GiB #卷组大小 PE Size 4.00 MiB #分隔大小 Total PE 1534 Alloc PE / Size 0 / 0 Free PE / Size 1534 / 5.99 GiB VG UUID 7kd5Vt-qbRN-EqDF-YsJR-elG7-QGBr-Sgz3CT
lv+两次tab:逻辑卷操作
[root@localhost redhat]# lv lvchange lvdisplay lvmconfig lvmpolld lvreduce lvresize lvconvert lvextend lvmdiskscan lvmsadc lvremove lvs lvcreate lvm lvmdump lvmsar lvrename lvscan
用myvg卷组创建名为mylv的逻辑卷,大小401M
[root@localhost redhat]# lvcreate -n mylv -L 401M myvg Rounding up size to full physical extent 404.00 MiB Logical volume "mylv" created.
查看系统中的逻辑卷
[root@localhost redhat]# lvscan ACTIVE '/dev/rhel/swap' [2.00 GiB] inherit ACTIVE '/dev/rhel/root' [<17.00 GiB] inherit ACTIVE '/dev/myvg/mylv' [404.00 MiB] inherit
查看系统中逻辑卷的详细信息
[root@localhost redhat]# lvdisplay /dev/myvg/mylv --- Logical volume --- LV Path /dev/myvg/mylv LV Name mylv VG Name myvg LV UUID bNTq3b-nJTq-K7C0-66tP-KiYS-JSAl-1J9291 LV Write Access read/write LV Creation host, time localhost.localdomain, 2022-05-28 11:06:18 +0800 LV Status available # open 0 LV Size 404.00 MiB Current LE 101 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2
对逻辑卷进行格式化(建立文件系统)
[root@localhost redhat]# mkfs.ext4 /dev/myvg/mylv mke2fs 1.45.6 (20-Mar-2020) Creating filesystem with 413696 1k blocks and 103632 inodes Filesystem UUID: d551c5a6-fe70-499d-a1d6-3b7b2e2cb97f Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
对逻辑卷进行挂载:把mylv挂载到目录/mnt/mylv上
[root@localhost redhat]# mkdir -p /mnt/mylv [root@localhost redhat]# mount /dev/myvg/mylv /mnt/mylv
查看系统的文件系统
[root@localhost redhat]# df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 908M 0 908M 0% /dev tmpfs tmpfs 939M 0 939M 0% /dev/shm tmpfs tmpfs 939M 10M 929M 2% /run tmpfs tmpfs 939M 0 939M 0% /sys/fs/cgroup /dev/mapper/rhel-root xfs 19G 5.6G 13G 31% / /dev/nvme0n1p1 xfs 1.1G 255M 810M 24% /boot tmpfs tmpfs 188M 4.8M 183M 3% /run/user/1000 /dev/sr0 iso9660 11G 11G 0 100% /run/media/redhat/RHEL-8-4-0-BaseOS-x86_64 /dev/sdb1 ext4 1.1G 2.7M 951M 1% /mnt/data /dev/mapper/myvg-mylv ext4 402M 2.4M 375M 1% /mnt/mylv
逻辑卷的大小调节功能:
扩大899块大小
[root@localhost redhat]# lvresize -l +899 /dev/myvg/mylv Size of logical volume myvg/mylv changed from 404.00 MiB (101 extents) to <3.91 GiB (1000 extents). Logical volume myvg/mylv successfully resized.
查看系统中的文件系统
[root@localhost redhat]# df -TH Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 908M 0 908M 0% /dev tmpfs tmpfs 939M 0 939M 0% /dev/shm tmpfs tmpfs 939M 10M 929M 2% /run tmpfs tmpfs 939M 0 939M 0% /sys/fs/cgroup /dev/mapper/rhel-root xfs 19G 5.6G 13G 31% / /dev/nvme0n1p1 xfs 1.1G 255M 810M 24% /boot tmpfs tmpfs 188M 4.8M 183M 3% /run/user/1000 /dev/sr0 iso9660 11G 11G 0 100% /run/media/redhat/RHEL-8-4-0-BaseOS-x86_64 /dev/sdb1 ext4 1.1G 2.7M 951M 1% /mnt/data /dev/mapper/myvg-mylv ext4 402M 2.4M 375M 1% /mnt/mylv
[root@localhost redhat]# lsblk | grep /mnt/mylv └─myvg-mylv 253:2 0 3.9G 0 lvm /mnt/mylv └─myvg-mylv 253:2 0 3.9G 0 lvm /mnt/mylv
发现逻辑卷的大小已经发生了变化,但是文件系统没有变化。
文件系统的大小是文件存储空间的大小,块设备的大小决定了文件系统的大小上限。
[root@localhost redhat]# lvresize -l 1000 -r /dev/myvg/mylv Size of logical volume myvg/mylv unchanged from <3.91 GiB (1000 extents). Logical volume myvg/mylv successfully resized. resize2fs 1.45.6 (20-Mar-2020) Filesystem at /dev/mapper/myvg-mylv is mounted on /mnt/mylv; on-line resizing required old_desc_blocks = 4, new_desc_blocks = 32 The filesystem on /dev/mapper/myvg-mylv is now 4096000 (1k) blocks long.
加上-r参数,在调整逻辑卷大小的同时,一并通知文件系统调节大小
当有文件系统时,在调整逻辑卷大小的时候,切记需要通过-r参数顺带调节文件系统相关的信息
[root@localhost redhat]# df -TH |grep /dev/mapper/myvg-mylv /dev/mapper/myvg-mylv ext4 4.1G 3.1M 3.9G 1% /mnt/mylv
注意事项:
ext4文件系统支持在线扩容,离线缩容。
xfs文件系统仅支持在线扩容。
逻辑卷的设备名称:
/dev/卷组名/逻辑卷名
/dev/mapper/卷组名-逻辑卷名
链接(快捷方式,别名):
[root@localhost redhat]# ll /dev/mapper/myvg-mylv lrwxrwxrwx. 1 root root 7 May 28 11:25 /dev/mapper/myvg-mylv -> ../dm-2 [root@localhost redhat]# ll /dev/myvg/mylv lrwxrwxrwx. 1 root root 7 May 28 11:25 /dev/myvg/mylv -> ../dm-2
真正的块设备的文件
[root@localhost redhat]# ll /dev/dm-2 brw-rw----. 1 root disk 253, 2 May 28 11:25 /dev/dm-2



