目录

前言

一、LVM的基本概念

二、LVM的特点

三、LVM的应用场景

四、总结

资源列表

一、基础环境

关闭防火墙

关闭内核安全机制

设置主机名

二、磁盘分区

使用fdisk命令将磁盘划分为三个主分区

将这三个分区ID标记好修改为”8e“

三、创建物理卷

创建物理卷

查看物理卷

将物理卷还原成普通分区或磁盘

四、创建卷组

使用/dev/sdb1 /dev/sdb2创建名为test的卷组

使用vgdisplay查看卷组

删除指定的卷组

扩展卷组的磁盘空间

五、创建逻辑卷

创建逻辑卷

查看逻辑卷

逻辑卷扩展

删除逻辑卷命令

备注


前言

        LVM,即逻辑卷管理器,是Linux系统下一种高效、灵活的磁盘分区管理方案。其核心功能在于将物理磁盘或磁盘分区组织成逻辑卷组(Volume Group,简称VG),进而从逻辑卷组中划分出逻辑卷(Logical Volume,简称LV),以满足用户对存储空间的需求。下面将从多个方面对LVM进行详细介绍。

一、LVM的基本概念

  1. 物理磁盘(Physical Disk):指的是系统中实际的硬盘设备,如sda、sdb等。
  2. 物理卷(Physical Volume,简称PV):通过pvcreate命令将物理磁盘或磁盘分区转换为LVM管理的物理卷。
  3. 卷组(Volume Group,简称VG):通过vgcreate命令将多个物理卷组合成一个卷组,作为逻辑卷分配的存储空间池。
  4. 物理扩展(Physical Extend,简称PE):LVM存储结构中的最小单元,默认大小为4MB。卷组中的物理卷空间被划分为多个PE。
  5. 逻辑卷(Logical Volume,简称LV):从卷组中划分出的存储空间,通过lvcreate命令创建,可用于挂载文件系统或作为其他存储设备的存储空间。

二、LVM的特点

  1. 灵活性:LVM允许在不停机的情况下动态调整逻辑卷的大小,方便管理存储空间。
  2. 可扩展性:通过将多个物理卷组合成卷组,LVM可以方便地添加或移除物理卷,以扩大或缩小卷组的可用容量。
  3. 跨分区/跨硬盘:逻辑卷可以跨越多个物理卷或物理硬盘,实现存储空间的充分利用。
  4. 易于管理:LVM提供了丰富的命令行工具,方便用户对存储空间进行创建、删除、调整等操作。

三、LVM的应用场景

  1. 磁盘容量管理:随着公司业务的发展,数据增长迅速,初始规划的磁盘容量可能无法满足需求。LVM可以方便地增加或减少逻辑卷的大小,以满足磁盘容量调整的需求。
  2. 数据备份与恢复:LVM允许用户将逻辑卷视为可动态扩展、快速创建和方便管理的分区,从而方便地进行数据备份和恢复操作。
  3. 灵活的数据迁移:LVM可以将不同物理硬盘的存储空间合并起来,使得文件系统不再关心底层物理磁盘的概念,从而可以灵活地进行数据迁移。

四、总结

        LVM作为Linux系统下一种高效、灵活的磁盘分区管理方案,其灵活性和可扩展性得到了广泛的认可和应用。在企业的云存储服务器、Web服务器、文件共享服务器、邮件服务器等网络环境中,LVM都发挥着重要的作用。通过合理利用LVM技术,可以大大提高系统的存储管理效率和数据安全性。

资源列表

操作系统配置主机名IP磁盘
CentOS7.3.16112C4Glvm192.168.207.13160G

一、基础环境

关闭防火墙

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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐