LVM(Logical Volume Manager);逻辑卷管理技术
,是一种让磁盘分区更加灵活和高效的软件。它的原理就像是在磁盘和文件系统之间加了一层管理工具,可以将多个物理磁盘分区组合成一个或多个虚拟磁盘,再将这些虚拟磁盘分配给文件系统使用。这样可以方便地动态调整磁盘空间的大小,而不需要重新分区或重新格式化文件系统。
使用LVM可以方便管理硬盘空间,可以随时调整硬盘空间的大小
,而不需要重新分区或重新格式化硬盘
。此外,LVM还可以提高系统的可靠性、性能和灵活性,让系统管理员更加方便地管理硬盘,降低管理成本。
举个例子,就像是将多个硬盘组合成一个大硬盘,然后再将其分成多个分区使用。这样可以提高数据存储的可用性和可靠性,也方便了系统管理员的管理和维护工作。
LVM的优点
灵活性
:LVM可以在逻辑卷和物理卷之间进行动态的分配和调整,从而更好地管理和分配硬盘空间。可靠性
:LVM支持热插拔、热扩展和热备份等特性,可以在不中断系统运行的情况下进行磁盘管理和维护,提高了系统的可用性和可靠性性能
:LVM可以通过多种方式提高磁盘I/O的性能,比如通过RAID技术实现数据冗余和读写速度的提升,通过分布式存储技术实现数据负载均衡和高可用性等。高级功能
:LVM还支持多种高级功能,比如快照(Snapshot)、迁移(Migration)、镜像(Mirror)等,可以实现数据备份、数据恢复、数据迁移和数据保护等功能。简化管理
:LVM简化了硬盘管理的复杂性,使得系统管理员可以通过一个统一的管理接口来管理和维护磁盘。这种简化管理使得系统管理员可以更加高效地进行管理和维护工作,同时也降低了管理成本。PP (physical partition)
是LVM中用于划分物理卷的最小单位,它是物理卷的基本构成单元,类似于磁盘分区中的扇区物理卷(PV,Physical Volume)
:物理卷是指硬盘上的一个分区或整个硬盘,用于创建卷组和逻辑卷。卷组(VG,Volume Group)
:卷组是由一个或多个物理卷组成的逻辑磁盘,它是逻辑卷的容器。逻辑卷(LV,Logical Volume
):逻辑卷是在卷组上划分出来的逻辑单位,它可以格式化为文件系统,并可以挂载到指定的目录上。PE(Physical Extent)
:物理区块是LVM中的基本单位,它是物理卷和卷组之间的桥梁,用于管理逻辑卷。LE(Logical Extent)
:逻辑区块是逻辑卷的基本单位,它是逻辑卷和文件系统之间的桥梁,用于管理文件系统。LVM的常见命令主要包括Pv、Vg、Lv
三个部分,分别对应LVM的物理卷、卷组和逻辑卷
。
具体命令如下:
物理卷命令(pv)
pvcreate:创建物理卷
,初始化物理卷为LVM格式,例如:pvcreate /dev/sdb1
pvremove:删除物理卷
,将物理卷上的数据删除并还原为原始状态,例如:pvremove /dev/sdb1
pvdisplay:显示物理卷的详细信息
,例如:pvdisplay /dev/sdb1
卷组命令(vg)
vgcreate:创建卷组
,将多个物理卷放到同一个卷组中,例如:vgcreate myvg /dev/sdb1 /dev/sdc1
vgextend:扩展卷组
,将新的物理卷加入到已有卷组中,例如:vgextend myvg /dev/sdd1
vgreduce:缩小卷组
,将某个物理卷从卷组中移除,例如:vgreduce myvg /dev/sdb1
vgremove:删除卷组
,将卷组上的所有逻辑卷和物理卷删除并还原为原始状态,例如:vgremove myvg
vgdisplay:显示卷组的详细信息
,例如:vgdisplay myvg
逻辑卷命令(lv)
lvcreate:创建逻辑卷
,将卷组中的一部分空间分配给逻辑卷,例如:lvcreate -L 10G -n mylv myvg
lvextend:扩展逻辑卷
,将卷组中的剩余空间分配给逻辑卷,例如:lvextend -L +5G /dev/myvg/mylv
lvreduce:缩小逻辑卷
,将逻辑卷的空间缩小到指定大小,例如:lvreduce -L 2G /dev/myvg/mylv
lvremove:删除逻辑卷
,将逻辑卷上的数据删除并还原为原始状态,例如:lvremove /dev/myvg/mylv
lvdisplay:显示逻辑卷的详细信息
,例如:lvdisplay /dev/myvg/mylv
以上就是LVM的常见命令,使用这些命令可以对LVM进行创建、扩容、缩容、删除等操作。通过这些命令,可以更加灵活地管理磁盘空间,提高系统的可用性和可扩展性
注意:上述命令仅作为示例,实际操作需要根据具体情况进行调整。
准备磁盘
安装新硬盘或使用已有硬盘。
对磁盘进行分区(可选),切割出物理卷的空间。
初始化物理卷
使用pvcreate命令将物理卷格式化为LVM格式
创建卷组
使用vgcreate命令将多个物理卷组成卷组
创建逻辑卷
使用lvcreate命令将卷组中的一部分空间分配给逻辑卷
格式化逻辑卷
使用mkfs命令将逻辑卷格式化为文件系统
挂载逻辑卷
使用mount命令将逻辑卷挂载到指定目录
设置开机自动挂载
将挂载信息写入/etc/fstab文件,以便开机自动挂载
准备磁盘
:使用disk或parted等分区工具将硬盘划分出一段区域作为物理卷,并使用pvcreate命令将其初始化为LVM物理卷。
# 创建物理卷sdb1,sdb2,两个大小分别为5G
fdisk /dev/sdb
# 初始化sdb1和sdb2为LVM物理卷
pvcreate /dev/sdb1 /dev/sdb2
创建卷组
:将刚刚创建完成的2个LVM物理卷放到同一个卷组中,使用vgcreate命令创建卷组。
# 创建一个名为myjuanzu的卷组,将sdb1,sdb2放入卷组内
vgcreate myjuanzu /dev/sdb1 /dev/sdb2
# 使用vgdisplay命令查看是否放到同一个卷组中
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name myjuanzu # 卷组名
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 9.99 GiB # 已经把sdb1,sdb2添加在卷组内了
PE Size 4.00 MiB
Total PE 2558
Alloc PE / Size 0 / 0
Free PE / Size 2558 / 9.99 GiB
VG UUID 6NaYUr-ELu8-oF91-otfX-HBdc-IWFB-HVFizN
创建逻辑卷
:在卷组中创建逻辑卷
# 在一个名为myjuanzu卷组里创建一个myluojijuan01的逻辑卷
lvcreate -L 2G -n myluojijuan01 myjuanzu
# -L 创建逻辑卷的大小
# -n 创建逻辑卷的名字
# 查看逻辑卷是否创建成功
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myjuanzu/myluojijuan01 # 逻辑卷存储地址
LV Name myluojijuan01 # 创建逻辑卷的名字
VG Name myjuanzu # 卷组名字
LV UUID OAvCYp-ogff-Z5no-Q9cc-aUV8-6Ehf-4YFpoJ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2023-04-03 17:04:17 +0800
LV Status available
# open 0
LV Size 2.00 GiB # 逻辑卷大小
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
格式化逻辑卷
:将刚刚创建的myluojijuan01的逻辑卷格式化(如:mkfs.xfs)将逻辑卷格式化为可用的文件
mkfs.xfs /dev/myjuanzu/myluojijuan01
挂载逻辑卷
: 使用mount命令将逻辑卷挂载到/mnt/myjuanzu/luojijuan/下
# 创建文件目录
mkdir -p /mnt/myjuanzu/luojijuan/
# 将逻辑卷挂载到创建的文件目录下
mount /dev/myjuanzu/myluojijuan01 /mnt/myjuanzu/luojijuan01/
# 在逻辑卷中写入一些内容查看逻辑卷是否可用
[root@localhost luojijuan01]# echo csq{1..1000000} >> csq.txt
[root@localhost luojijuan01]# cp -rf csq.txt csq1.txt
[root@localhost luojijuan01]# cp -rf csq.txt csq2.txt
[root@localhost luojijuan01]# cp -rf csq.txt csq3.txt
[root@localhost luojijuan01]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 12M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 55G 11G 44G 20% /
/dev/sda2 xfs 30G 33M 30G 1% /home
/dev/sda1 xfs 7.9G 142M 7.7G 2% /boot
tmpfs tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/myjuanzu-myluojijuan01 xfs 2.0G 71M 2.0G 4% /mnt/myjuanzu/luojijuan01
# 可用
设置开机自动挂载
:将逻辑卷的挂载信息添加到/etc/fstab文件中,以便在系统启动时自动挂载该逻辑卷
# 将逻辑卷的挂载信息写入/etc/fstab中
echo "/dev/myjuanzu/myluojijuan01 /mnt/myjuanzu/luojijuan xfs defaults 0 0" >>/etc/fstab
# 重启系统测试
reboot
# 查看是否自动挂载
Last login: Mon Apr 3 17:43:42 2023 from 192.168.100.1
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 12M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda5 xfs 55G 11G 44G 20% /
/dev/sda2 xfs 30G 33M 30G 1% /home
/dev/sda1 xfs 7.9G 143M 7.7G 2% /boot
/dev/mapper/myjuanzu-myluojijuan01 xfs 2.0G 33M 2.0G 2% /mnt/myjuanju/myluojijuan01
tmpfs tmpfs 781M 0 781M 0% /run/user/0
# 重启系统后发现已经自动挂载了
取消挂载
umount /mnt/myjuanzu/luojijuan
删除自动挂载文件信息
# 进去删除自动挂载的那一行的硬盘信息
vi /etc/fstab
删除逻辑卷
lvremove /dev/myjuanzu/myluojijuan01
删除卷组
vgremove myjuanzu
删除物理卷
pvremove /dev/sdb1 /dev/sdb2 /dev/sdb3
注意:上述命令仅作为示例,实际操作需要根据具体情况进行调整