前言
LVM 代表逻辑卷管理器,它是一种用于 Linux 和类 Unix 操作系统的磁盘管理和存储技术。LVM 允许用户独立于底层物理存储创建逻辑卷 (LV)、调整大小和移动逻辑卷 (LV),从而提供了一种灵活、动态的磁盘空间管理方式。
目录
LVM的组成
LVM的优点
LVM的使用场景
LVM的实战流程
创建物理卷(PV)
创建卷组 (VG)
创建逻辑卷(LV)
格式化挂载
扩展卷组
KVM相关命令
LVM的组成
1. 物理卷(PV)
物理卷是LVM管理的最小存储单元,可以是整个磁盘、磁盘分区或者RAID卷。物理卷用于存储逻辑卷的数据。
2. 卷组( VG)
卷组是由一个或多个物理卷组成的逻辑存储池。在卷组中,所有物理卷的空间都被合并在一起,供逻辑卷使用。
3. 逻辑卷( LV)
逻辑卷是LVM提供给用户使用的虚拟存储空间,可以被格式化为文件系统并挂载使用。逻辑卷的大小可以根据需要进行调整,并且可以跨越多个物理卷。
LVM的优点
灵活性:LVM可以将多个物理磁盘的空间聚合成一个虚拟的存储池,从而提供更大的灵活性。
可扩展性:LVM可以根据需要动态扩充逻辑卷的大小,从而满足不断增长的存储需求。
高可用性:LVM支持RAID技术,可以提高数据的安全性。
易管理性:LVM提供了一系列的管理工具,可以简化磁盘管理的复杂性。
特性 | LVM | 传统方式硬盘 |
---|---|---|
灵活性 | 可以将多个物理磁盘的空间聚合成一个虚拟的存储池,从而提供更大的灵活性 | 每个物理磁盘只能独立使用 |
可扩展性 | 可以根据需要动态扩充逻辑卷的大小,从而满足不断增长的存储需求 | 需要预先规划好分区大小,一旦创建无法动态扩充 |
高可用性 | 支持RAID技术,可以提高数据的安全性 | 不支持RAID技术,数据安全性相对较低 |
易管理性 | 提供了一系列的管理工具,可以简化磁盘管理的复杂性 | 管理相对复杂,需要熟悉分区工具 |
LVM的使用场景
服务器虚拟化:LVM可以为虚拟机提供灵活、可扩展的存储空间。
数据库应用:LVM可以为数据库提供高性能、高可用的存储环境。
Web服务器:LVM可以为Web服务器提供高容量、高可靠性的存储空间。
云计算:LVM可以为云计算平台提供灵活、可扩展的存储资源
LVM的实战流程
创建物理卷(PV)
代码语言:javascript复制#查看硬盘
ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd
#创建物理卷(PV)
[root@localhost ~]# pvcreate /dev/sd[bc]
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
#查看
[root@localhost ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<19.00 GiB / 0 free]
PV /dev/sdb lvm2 [10.00 GiB]
PV /dev/sdc lvm2 [5.00 GiB]
Total: 3 [<34.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 2 [15.00 GiB]
[root@localhost ~]# pvdisplay
"/dev/sdb" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID zRj13S-ft4A-1PmG-93sB-mwHW-cIFW-VxoBlT
"/dev/sdc" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 8KO5VH-Ks28-U9hf-aSx7-CWHI-
n2Kt-ZOwHEF
#删除物理卷
#pvremove /dev/sdf
创建卷组 (VG)
代码语言:javascript复制#创建卷组(VG)
[root@localhost ~]# vgcreate csdn /dev/sd[bc]
Volume group "csdn" successfully created
#查看
[root@localhost ~]# vgscan
Reading volume groups from cache.
Found volume group "csdn" using metadata type lvm2
Found volume group "centos" using metadata type lvm2
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name csdn
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 14.99 GiB
PE Size 4.00 MiB
Total PE 3838
Alloc PE / Size 0 / 0
Free PE / Size 3838 / 14.99 GiB
VG UUID htUHbV-h2Ot-VIj0-w7zY-whJo-JRtK-UMkti8
#vgremove vgname
创建逻辑卷(LV)
代码语言:javascript复制#创建逻辑卷(LV)
[root@localhost ~]# lvcreate -L 12G -n csdn_lv csdn
Logical volume "csdn_lv" created.
#查看
[root@localhost ~]# lvscan
ACTIVE '/dev/csdn/csdn_lv' [12.00 GiB] inherit
ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/csdn/csdn_lv
LV Name csdn_lv
VG Name csdn
LV UUID ewQipt-2zcv-WS9n-fM03-Xvyu-0jsd-LknCF0
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2024-02-28 10:53:31 0700
LV Status available
# open 0
LV Size 12.00 GiB
Current LE 3072
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
格式化挂载
代码语言:javascript复制#自动挂载
vim /etc/fstab
加入以下
/dev/csdn/csdn_lv /data xfs defaults,usrquota,grpquota 0 0
#查看是否成功
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 659M 0 659M 0% /dev
tmpfs 676M 0 676M 0% /dev/shm
tmpfs 676M 11M 665M 2% /run
tmpfs 676M 0 676M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 5.2G 12G 31% /
/dev/sda1 1014M 172M 843M 17% /boot
tmpfs 136M 28K 136M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/csdn-csdn_lv 12G 33M 12G 1% /data
扩展卷组
代码语言:javascript复制[root@localhost ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd
#加入添加的硬盘
[root@localhost ~]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
[root@localhost ~]# vgextend csdn /dev/sdd
Volume group "csdn" successfully extended
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name csdn
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size <19.99 GiB
PE Size 4.00 MiB
Total PE 5117
Alloc PE / Size 3072 / 12.00 GiB
Free PE / Size 2045 / <7.99 GiB
VG UUID htUHbV-h2Ot-VIj0-w7zY-whJo-JRtK-UMkti8
扩展完成之后建议重新挂载一次
KVM相关命令
命令 | 功能 |
---|---|
pvcreate | 将物理卷添加到 LVM 中 |
pvdisplay | 显示物理卷信息 |
pvscan | 扫描所有物理卷 |
pvremove | 从 LVM 中删除物理卷 |
vgcreate | 创建卷组 |
vgdisplay | 显示卷组信息 |
vgscan | 扫描所有卷组 |
vgremove | 从 LVM 中删除卷组 |
lvcreate | 创建逻辑卷 |
lvdisplay | 显示逻辑卷信息 |
lvscan | 扫描所有逻辑卷 |
lvremove | 从 LVM 中删除逻辑卷 |
lvextend | 扩展逻辑卷大小 |
lvreduce | 缩减逻辑卷大小 |
lvchange | 更改逻辑卷属性 |
mkswap | 创建交换空间 |
swapon | 激活交换空间 |
swapoff | 停用交换空间 |