Linux基础-逻辑卷管理
一、LVM概述
1.逻辑卷管理(Logical Volume Manager)
作用:能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
注:/boot分区用于存放引导文件,不能基于LVM创建
2.LVM机制的基本概念
PV (物理卷):设定那些硬盘和分区(做逻辑卷时分区必须是8e类型)可以做逻辑卷
VG (卷组):将物理卷告诉的硬盘,卷组将硬盘的大小打碎成PE,一个PE大概4M
LV (逻辑卷):从VG中取需要的PE来决定逻辑卷的大小

二、LVM的管理命令
主要命令:
| 功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
|---|---|---|---|
| Scan 扫描 | pvscan | vgscan | lvscan |
| Create 建立 | pvcreate | vgcreate | lvcreate |
| Display 显示 | pvdisplay | vgdisplay | lvdisplay |
| Remove 删除 | pvremove | vgremove | lvremove |
| Extend 扩展 | —— | vgextend | lvextend |
| Reduce 减少 | —— | vgreduce | lvreduce |
基本格式:
pvcreate 设备名1 [设备名2…]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
三、创建逻辑卷
1.准备两块未使用的硬盘
[root@yang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 91G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom
2.先使用 fdisk 工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的 id 记号改为 “8e”
[root@yang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 91G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
sr0 11:0 1 4.4G 0 rom
3.创建物理卷
[root@yang ~]# pvcreate /dev/sdb1 /dev/sdc1
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdc1" successfully created.
4.创建卷组,卷组名为haiyang
[root@yang ~]# vgcreate haiyang /dev/sdb1 /dev/sdc1
Volume group "haiyang" successfully created
5.创建逻辑卷,逻辑卷名为xiaowang,容量为 15GB,生成的文件路径为/dev/haiyang/xiaowang
[root@yang ~]# lvcreate -L 15G -n xiaowang haiyang
Logical volume "xiaowang" created.
6.对逻辑卷进行格式化,创建 xfs 文件系统
[root@yang ~]# mkfs -t xfs /dev/haiyang/xiaowang
meta-data=/dev/haiyang/xiaowang 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
7.将创建好的逻辑卷挂载到 /opt 目录下
[root@yang ~]# mount /dev/haiyang/xiaowang /opt/
[root@yang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 91G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─haiyang-xiaowang 253:2 0 15G 0 lvm /opt
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
sr0 11:0 1 4.4G 0 rom
8.对逻辑卷进行扩容处理
[root@yang ~]# lvextend -L +20G -r /dev/haiyang/xiaowang
Size of logical volume haiyang/xiaowang changed from 15.00 GiB (3840 extents) to 35.00 GiB (8960 extents).
Logical volume haiyang/xiaowang successfully resized.
meta-data=/dev/mapper/haiyang-xiaowang isize=512 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=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 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 3932160 to 9175040
[root@yang ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 91G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─haiyang-xiaowang 253:2 0 35G 0 lvm /opt
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
└─haiyang-xiaowang 253:2 0 35G 0 lvm /opt
sr0 11:0 1 4.4G 0 rom