Linux--管理LVM逻辑卷

前言

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

  • 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区
  • 虽然有很多动态调整磁盘的工具可以使用,例如PartitionMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。
  • 因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。

LVM管理命令主要包括三大类

PV物理卷管理

VG卷组管理

LV逻辑卷管理

对应的命令程序文件分别以“PV”“VG”“LV”开头

功能 物理卷管理(PV) 卷组管理(VG) 逻辑卷管理(LV)
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/卷组名/逻辑卷名

PV物理卷管理

pvcreate命令
pvcreate用于将分区或整个硬盘转换为物理卷,主要是添加LVM属性并划分PE存储单元
该命令需要使用硬盘或分区的设备文件作为参数
[root@localhost ~]# pvcreate /dev/sdd1

pvscan命令
pvscan命令用于扫描系统中的所有物理卷,并输出相关信息。
[root@localhost ~]# pvscan

pvdisplay命令
pvdisplay命令用于显示物理卷的详细信息
需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷信息
[root@localhost ~]# pvdisplay /dev/sdd1

pvremove命令
pvremove命令用于将物理卷还原成普通分区或磁盘,不再用于LVM体系
被移除的物理卷将无法被pvscan命令识别
[root@localhost ~]# pvscan

VG卷组管理

vgcreate命令
vgcreate命令用于将一个或多个物理卷创建为一个卷组
第一个命令参数用于设置新卷组的名称。然后依次指定需要加入到该卷组的物理卷作为参数
[root@localhost ~]# vgcreate 卷组名称 物理卷
[root@localhost ~]# vgscan 123 /dev/sdb1 /dev/sdd1

vgscan命令
vgscan命令用于扫描系统中已建立的LVM卷组及相关信息
[root@localhost ~]# vgscan

vgdisplay命令
vgdisplay命令用于显示系统中各卷组的详细信息
需要指定卷组名称作为命令参数(未指定卷组名称时将显示所有卷组的信息)
[root@localhost ~]# vgdisplay

vgremove命令
vgremove命令用于删除指定的卷组,指定卷组名称作为参数即可
删除时应确保该卷组中没有正在使用的逻辑卷
[root@localhost ~]# vgremove 123

vgextend命令
vgextend命令用于扩展卷组的磁盘空间
当建立了新的物理卷,并需要将其添加到已有的卷组中时,就可以使用vgextend命令
vgextend命令第一个参数为需要扩展容量的卷组名称,其后为需要添加到该卷组中的各物理卷
[root@localhost ~]# vgextend 123 /dev/sdd1

vgreduce命令
vgreduce命令:从卷组中删除物理卷
vgreduce指令通过删除LVM卷组中的物理卷来减少卷组容量。
删除删除卷组中丢失的物理卷,使卷组恢复正常状态
vgreduce [选项] [参数] 
[root@localhost ~]# vgreduce 123 /dev/sdd1

LV逻辑卷管理

lvcreate命令
lvcreate命令用于从指定的卷组中分割空间,以创建新的逻辑卷
需要指定逻辑卷大小,名称和所在的卷组名称作为参数
逻辑卷创建好以后,可以通过“/dev/卷组名/逻辑卷名”形式的设备文件进行访问(或/dev/mapper/卷组名-逻辑卷名)
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
[root@localhost ~]# lvcreate -L 10G -n 111 123

lvscan命令
lvscan命令用于扫描系统中已建立的逻辑卷及相关信息
[root@localhost ~]# lvscan

lvdisplay命令
lvdisplay命令用于显示逻辑卷的详细信息
需要指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数(显示该卷组中的所有逻辑卷信息)
不指定参数则显示所有,同pvdisplay和vgdisplay
[root@localhost ~]# lvdisplay

lvextend命令
lvextend命令用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展
需要指定增加的容量大小和逻辑卷文件位置
前提是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量
挂载文件系统后扩容,需要执行以下命令才能被系统识别
xfs格式的扩容需要输入这条命令
xfs_growfs /dev/卷组名/逻辑卷名
ext 4 格式的扩容需要输入这条命令
resize2fs /dev/卷组名/逻辑卷名
xfs 只支持扩容,不支持减少
ext 4 的更新形式。可以reduce
lvextend -L +大小 /dev/卷组名/逻辑卷名
[root@localhost ~]# lvextend -L +10G /dev/123/111

lvremove命令
lvremove命令用于删除指定的逻辑卷
直接使用逻辑卷的设备文件作为参数即可
[root@localhost ~]# lvremove /dev/123/111

lvreduce命令
lvreduce命令用于减少LVM逻辑卷占用的空间大小。
使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。
[root@localhost ~]# lvreduce -L -5G /dev/123/111

LVM应用步骤

在这里插入图片描述

命令实操

VMware里添加三块硬盘

[root@localhost ~]# fdisk -l

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6f0bd510

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   83  Linux

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xcb65e171

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   83  Linux

磁盘 /dev/sda:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000aaecb

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   629145599   313523200   8e  Linux LVM

磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8166bb0a

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048    41943039    20970496   83  Linux

磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:263.2 GB, 263192576000 字节,514048000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# pvcreate /dev/sd[b-d]1  		#创建物理卷	
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.
  Physical volume "/dev/sdd1" successfully created.
[root@localhost ~]# pvscan							#查看物理卷
  PV /dev/sda2   VG centos          lvm2 [<299.00 GiB / 4.00 MiB free]
  PV /dev/sdc1                      lvm2 [<20.00 GiB]
  PV /dev/sdd1                      lvm2 [<20.00 GiB]
  PV /dev/sdb1                      lvm2 [<20.00 GiB]
  Total: 4 [358.99 GiB] / in use: 1 [<299.00 GiB] / in no VG: 3 [<60.00 GiB]
  [root@localhost ~]# vgcreate mail-stor /dev/sd[b-d]1     	#创建卷组
  Volume group "mail-stor" successfully created
[root@localhost ~]# vgscan									#扫描卷组
  Reading volume groups from cache.
  Found volume group "centos" using metadata type lvm2
  Found volume group "mail-stor" using metadata type lvm2
[root@localhost ~]# vgdisplay 								#查看卷组详细信息
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <299.00 GiB
  PE Size               4.00 MiB
  Total PE              76543
  Alloc PE / Size       76542 / 298.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               HqLg08-jB8S-OYiq-WxEx-Hblj-xNzw-6QdSCL

在这里插入图片描述

[root@localhost ~]# lvcreate -L 20G -n mbox mail-stor 			#创建逻辑卷
  Logical volume "mbox" created.
[root@localhost ~]# lvdisplay 									#查看逻辑卷详细信息
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                re07E9-7poE-bG5H-UWGp-ZP8k-0z8Y-tIWBfZ
  LV Write Access        read/write
  LV Creation host, time localhost, 2020-06-12 22:39:20 +0800
  LV Status              available
  # open                 2
  LV Size                <3.88 GiB
  Current LE             992
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

在这里插入图片描述

[root@localhost ~]# mkfs.xfs /dev/mail-stor/mbox 			#格式化逻辑卷
meta-data=/dev/mail-stor/mbox    isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, 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

在这里插入图片描述

设置自动挂载
[root@localhost ~]# vim /etc/fstab

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CN_PanHao/article/details/107040881