目录
使用/dev/sdb1 /dev/sdb2创建名为test的卷组
前言
LVM,即逻辑卷管理器,是Linux系统下一种高效、灵活的磁盘分区管理方案。其核心功能在于将物理磁盘或磁盘分区组织成逻辑卷组(Volume Group,简称VG),进而从逻辑卷组中划分出逻辑卷(Logical Volume,简称LV),以满足用户对存储空间的需求。下面将从多个方面对LVM进行详细介绍。
一、LVM的基本概念
- 物理磁盘(Physical Disk):指的是系统中实际的硬盘设备,如sda、sdb等。
- 物理卷(Physical Volume,简称PV):通过
pvcreate
命令将物理磁盘或磁盘分区转换为LVM管理的物理卷。 - 卷组(Volume Group,简称VG):通过
vgcreate
命令将多个物理卷组合成一个卷组,作为逻辑卷分配的存储空间池。 - 物理扩展(Physical Extend,简称PE):LVM存储结构中的最小单元,默认大小为4MB。卷组中的物理卷空间被划分为多个PE。
- 逻辑卷(Logical Volume,简称LV):从卷组中划分出的存储空间,通过
lvcreate
命令创建,可用于挂载文件系统或作为其他存储设备的存储空间。
二、LVM的特点
- 灵活性:LVM允许在不停机的情况下动态调整逻辑卷的大小,方便管理存储空间。
- 可扩展性:通过将多个物理卷组合成卷组,LVM可以方便地添加或移除物理卷,以扩大或缩小卷组的可用容量。
- 跨分区/跨硬盘:逻辑卷可以跨越多个物理卷或物理硬盘,实现存储空间的充分利用。
- 易于管理:LVM提供了丰富的命令行工具,方便用户对存储空间进行创建、删除、调整等操作。
三、LVM的应用场景
- 磁盘容量管理:随着公司业务的发展,数据增长迅速,初始规划的磁盘容量可能无法满足需求。LVM可以方便地增加或减少逻辑卷的大小,以满足磁盘容量调整的需求。
- 数据备份与恢复:LVM允许用户将逻辑卷视为可动态扩展、快速创建和方便管理的分区,从而方便地进行数据备份和恢复操作。
- 灵活的数据迁移:LVM可以将不同物理硬盘的存储空间合并起来,使得文件系统不再关心底层物理磁盘的概念,从而可以灵活地进行数据迁移。
四、总结
LVM作为Linux系统下一种高效、灵活的磁盘分区管理方案,其灵活性和可扩展性得到了广泛的认可和应用。在企业的云存储服务器、Web服务器、文件共享服务器、邮件服务器等网络环境中,LVM都发挥着重要的作用。通过合理利用LVM技术,可以大大提高系统的存储管理效率和数据安全性。
资源列表
操作系统 | 配置 | 主机名 | IP | 磁盘 |
---|---|---|---|---|
CentOS7.3.1611 | 2C4G | lvm | 192.168.207.131 | 60G |
一、基础环境
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭内核安全机制
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
# 重启服务器使配置生效
reboot
设置主机名
hostnamectl set-hostname lvm
二、磁盘分区
使用fdisk命令将磁盘划分为三个主分区
[root@lvm ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xea1b373c 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-125829119,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (41945088-125829119,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119):+20G
分区 2 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (83888128-125829119,默认为 83888128):
将使用默认值 83888128
Last 扇区, +扇区 or +size{K,M,G} (83888128-125829119,默认为 125829119):
将使用默认值 125829119
分区 3 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xea1b373c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 83888127 20971520 83 Linux
/dev/sdb3 83888128 125829119 20970496 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@lvm ~]#
将这三个分区ID标记好修改为”8e“
[root@lvm ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xea1b373c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 83888127 20971520 83 Linux
/dev/sdb3 83888128 125829119 20970496 83 Linux
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xea1b373c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 8e Linux LVM
/dev/sdb2 41945088 83888127 20971520 8e Linux LVM
/dev/sdb3 83888128 125829119 20970496 8e Linux LVM
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@lvm ~]#
三、创建物理卷
创建物理卷
pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
# 执行回显
[root@192 ~]# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
查看物理卷
[root@lvm ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name cl
PV Size 49.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 12543
Free PE 1
Allocated PE 12542
PV UUID LJHn7a-wXEL-E02b-MnSB-8qhR-lG2b-7lhxwm
"/dev/sdb1" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID cgELvq-hGPu-FJkI-FICw-ClK0-oy0F-oK9jNL
"/dev/sdb3" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID RTwFs3-GG09-Bae5-4HkM-Tni0-UGd9-HdixKX
"/dev/sdb2" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 20.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Br3r9M-o3DQ-yFoi-GUsL-1CnH-P3lt-Eapmne
将物理卷还原成普通分区或磁盘
pvremove /dev/sdb3
四、创建卷组
使用/dev/sdb1 /dev/sdb2创建名为test的卷组
vgcreate test /dev/sdb1 /dev/sdb2
# 有以下回显
[root@lvm ~]# vgcreate test /dev/sdb1 /dev/sdb2
Volume group "test" successfully created
使用vgdisplay查看卷组
vgdisplay test
# 有以下回显
[root@lvm ~]# vgdisplay test
--- Volume group ---
VG Name test
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 39.99 GiB
PE Size 4.00 MiB
Total PE 10238
Alloc PE / Size 0 / 0
Free PE / Size 10238 / 39.99 GiB
VG UUID 2VzuVC-z2FC-qiTa-o0fb-rr1y-Vevg-KHLCMr
删除指定的卷组
vgremove test
扩展卷组的磁盘空间
# 先使用vgcreate再同一个卷组里添加一个物理卷
vgcreate test /dev/sdb5
# 然后通过vgextend命令将物理卷/dev/sdb5添加到卷组test中、
vgextend test /dev/sdb5
五、创建逻辑卷
创建逻辑卷
lvcreate -L 10G -n lvtest test
-L 指定大小
-n 指定逻辑卷名称
查看逻辑卷
[root@lvm ~]# lvdisplay /dev/test/lvtest
--- Logical volume ---
LV Path /dev/test/lvtest
LV Name lvtest
VG Name test
LV UUID I3A3ju-Kku0-dkQe-4GUQ-KASE-nrnb-WeEM6i
LV Write Access read/write
LV Creation host, time 192.168.207.131, 2021-06-18 17:40:40 +0800
LV Status available
# open 0
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
逻辑卷扩展
# 扩容10G
lvextend -L +10G /dev/test/lvtest
# 分配所有剩余空间
lvextend -l +100%FREE /dev/test/lvtest
# 注意使用xfs文件系统需要以下命令激活
xfs_growfs /dev/test/lvtest
# 对于基于 ext3 和 ext4 的文件系统,运行以下命令
resize2fs /dev/test/lvtest
删除逻辑卷命令
# 此命令可以删除逻辑卷,实际执行的时候替换为自己的路径
lvremove /dev/test/lvtest
备注
-
使用以下命令可以不重启识别硬盘
echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan