感谢支持
我们一直在努力

Linux磁盘管理LVM使用手册

一、LVM简介

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

二、基本术语

  • 物理卷(Physical Volume,PV):指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元;
  • 卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷);
  • 逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

从上面的定义我们可以了解到:逻辑卷(LV)是建立在卷组(VG)上的,而卷组(VG)则是建立在物理卷(PV)上的。
从中还可以作更深一层的理解:LVM的可伸缩性无非是建立在卷组(VG)和逻辑卷(LV)的可伸缩性的基础上的:
– 只要存在尚未使用的磁盘或者分区,就可以动态的扩展卷组(VG)的大小;
– 只要卷组(VG)中存在尚未分配的空间,就可以动态的扩展逻辑卷的大小。
从以上二点出发就可以达到动态调整分区大小的目的。

因为本文中很多的命令都是以上述术语的缩写开头,因此了解各个缩写对命令的记忆和使用是非常有帮助的。

三、基本命令

示例中的 vg1lv1 分别为物理卷组名逻辑卷名,可自行替换成任意名称。

分类 命令 说明 示例
PV pvcreate 创建物理卷 pvcreate /dev/sdb1
PV pvdisplay 显示已创建的物理卷的详细信息  
PV pvs 显示已创建的物理卷的汇总信息  
PV pvremove 删除物理卷 pvremove /dev/sdb1
VG vgcreate 创建卷组 pvcreate vg1 /dev/sdb1 /dev/sdb2 …
VG vgdisplay 显示已创建的卷组的详细信息  
VG vgs 显示已创建的卷组的汇总信息  
VG vgextend 扩展卷组 vgextend vg1 /dev/sdb3 …
VG vgreduce 收缩卷组 vgreduce vg1 /dev/sdb5
VG vgremove 删除卷组 vgremove vg1
LV lvcreate 创建逻辑卷 lvcreate -L 1000M -n lv1 vg1
LV lvdisplay 显示已创建的逻辑卷的详细信息  
LV lvs 显示已创建的逻辑卷的汇总信息  
LV lvresize 重设逻辑卷大小 lvresize -L 1000M /dev/vg1/lv1
LV resize2fs 更新逻辑卷信息(ext4) resize2fs /dev/vg1/lv1
LV lvremove 删除逻辑卷 lvremove /dev/vg1/lv1
LV xfs_growfs 更新逻辑卷信息(xfs) xfs_growfs /dev/vg1/lv1
LV e2fsck 检查逻辑卷错误(ext4) e2fsck -f /dev/vg1/lv1

四、实验的操作环境

  • 虚拟机:VirtualBox 5.6.2
  • 操作系统:CentOS 7.4
  • 磁盘:二块:一块安装操作系统(/dev/sda),容量为20GB; 另一块用于进行lvm分区操作(/dev/sdb),容量为10GB
  • 因为CentOS 7.4默认没有安装支持上述命令的软件包,因此需要提前安装lvm2软件包,具体命令为:yum install -y lvm2

五、创建LVM

在这里我带着大家从一块全新的磁盘开始,一步步创建LVM分区。

流程

先介绍一下流程,以便大家从总体上对创建LVM有一个了解。
1. 对新磁盘进行分区操作(fdisk);
2. 逐一变更分区类型为Linux LVM(Hex代码为:8e);
3. 针对每个分区创建物理卷(pvcreate);
4. 创建卷组(vgcreate);
5. 创建逻辑卷(lvcreate);
6. 格式化(mkfs.ext4/mkfs.xfs),并挂载(mount)。

(一)、磁盘分区及分区类型更改

使用命令fdisk对需要进行LVM操作的磁盘/dev/sdb进行分区

fdisk /dev/sdb
  • 1

输入n进行分区,一共分五个分区,前三个是主分区,后二个分区在扩展分区里,每个分区2GB。以下只列出第一个分区的操作:

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB

输入p打印分区完成后的情况:

命令(输入 m 获取帮助):p

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    20971519     4193280    5  Extended
/dev/sdb5        12587008    16781311     2097152   83  Linux
/dev/sdb6        16783360    20971519     2094080   83  Linux

分区完成后除了扩展分区(上图的Extended)外,需要变更所有分区的磁盘类型:原类型为Linux,变更后为Linux LVM。这里只列出针对第一个分区的操作:

命令(输入 m 获取帮助):t
分区号 (1-6,默认 6):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

输入p打印分区类型变更后的情况:

命令(输入 m 获取帮助):p

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   8e  Linux LVM
/dev/sdb2         4196352     8390655     2097152   8e  Linux LVM
/dev/sdb3         8390656    12584959     2097152   8e  Linux LVM
/dev/sdb4        12584960    20971519     4193280    5  Extended
/dev/sdb5        12587008    16781311     2097152   8e  Linux LVM
/dev/sdb6        16783360    20971519     2094080   8e  Linux LVM

以上操作完成后,输入w将操作写入磁盘,完成分区:

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
(二)、创建物理卷

针对新创建的分区创建物理卷,这是创建LVM的第一步。使用如下命令对每一个分区进行操作:

pvcreate /dev/sdb1
  • 1

其他分区的操作类似,这里就不逐一介绍了。
创建完物理卷后,有二种查看的方法:

1、详细信息:pvdisplay,这里只列出第一个分区的信息:

[root@localhost ~]# pvdisplay
  "/dev/sdb1" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SCIOKN-i2fO-PylF-CJGI-T8Yw-e2dH-BYX0xq

2、汇总信息:pvs

[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize  PFree
  /dev/sdb1     lvm2 ---   2.00g  2.00g
  /dev/sdb2     lvm2 ---   2.00g  2.00g
  /dev/sdb3     lvm2 ---   2.00g  2.00g
  /dev/sdb5     lvm2 ---   2.00g  2.00g
  /dev/sdb6     lvm2 ---  <2.00g <2.00g
(三)、创建卷组

创建物理卷完成后,就需要将物理卷加入到特定的卷组。
下面的操作将前二个分区/dev/sdb1/dev/sdb2加入到名称为gv1的卷组中:

[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2
  Volume group "vg1" successfully created
  • 1
  • 2

查看卷组也有二种方法进行查看:详细信息和汇总信息:

1、详细信息:

[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               vg1
  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               3.99 GiB
  PE Size               4.00 MiB
  Total PE              1022
  Alloc PE / Size       0 / 0
  Free  PE / Size       1022 / 3.99 GiB
  VG UUID               N2mK2P-tvev-bex2-LX4C-1DIs-nFci-Ay5e8H

2、汇总信息:

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   2   0   0 wz--n- 3.99g 3.99g
(四)、创建逻辑卷

创建卷组完成后,我们就可以在卷组上创建逻辑卷。使用下面的命令,我们在卷组vg1上创建一个名称为lv1、大小为1GB的逻辑卷:

[root@localhost ~]# lvcreate -L 1G -n lv1 vg1
  Logical volume "lv1" created.

查看逻辑卷也有二种方法进行查看:详细信息和汇总信息:

1、详细信息:

[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg1/lv1
  LV Name                lv1
  VG Name                vg1
  LV UUID                LaLTid-eLAG-DNlq-h4fT-Xiia-PTDG-HnXL3i
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2017-11-08 09:27:21 +0800
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

2、汇总信息:

[root@localhost ~]# lvs
  LV   VG  Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-a----- 1.00g
(五)、格式化逻辑卷并挂载

使用下面的命令,对逻辑卷lv1进行格式化:

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1

格式化完成后,将该逻辑卷挂载到目录/mnt上:

[root@localhost ~]# mount /dev/vg1/lv1 /mnt

查看挂载后的情况:

[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda2             17G  1.5G   15G   10% /
devtmpfs             488M     0  488M    0% /dev
tmpfs                497M     0  497M    0% /dev/shm
tmpfs                497M  6.6M  490M    2% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/sda1            976M  115M  795M   13% /boot
tmpfs                100M     0  100M    0% /run/user/0
/dev/mapper/vg1-lv1  976M  2.6M  907M    1% /mnt
(六)、设置开机自动挂载分区

1、查看逻辑卷的UUID:

[root@localhost ~]# blkid
/dev/sda1: UUID="ee8a3a12-cb3e-4890-b255-4b706a718600" TYPE="ext4"
/dev/sda2: UUID="5863f890-3eb8-41a5-8239-4f41f48299bd" TYPE="ext4"
/dev/sda3: UUID="f7c02dd9-73e9-4a26-8da7-a2ca29f58747" TYPE="swap"
/dev/sdb1: UUID="2l1Llw-yFjj-YwbF-TtiN-P0XI-i7W8-9Lq4CF" TYPE="LVM2_member"
/dev/sdb2: UUID="h3uEZx-gw1W-1PMM-PPVT-dAuQ-zf1i-3RZThD" TYPE="LVM2_member"
/dev/sdb3: UUID="aFBSn0-0hwb-Mklg-vCKU-nhmF-lk1k-0uP9Ns" TYPE="LVM2_member"
/dev/sdb5: UUID="5kT4gk-6TRC-2jCj-Sbb5-HAeo-P0CE-cJZzm8" TYPE="LVM2_member"
/dev/sdb6: UUID="57LR2H-Kaua-vY0v-QgbQ-9Eej-qHJe-zXsVvf" TYPE="LVM2_member"
/dev/mapper/vg1-lv1: UUID="11262806-d796-4f49-8f08-897181e8ec33" TYPE="ext4"

最后一行就是逻辑卷的信息,把该行的UUID复制出来,不含引号。

2、编辑fstab:
在最后添加一行,输入如下内容:

UUID=11262806-d796-4f49-8f08-897181e8ec33 /mnt                    ext4    defaults        0 0

然后保存退出(:wq),重启后查看结果,如果能正常挂载就没有问题了。

以上便完成的了LVM的创建和挂载的全部流程。

六、卷组扩容

我们上一节创建LVM中创建了五个分区,但只使得了其中二个分区,在这一节中,我们要把剩余的三个分区加入到卷组vg1中,对其进行扩容。下面的流程只针对新加入的磁盘或者分区,因此这里对流程1-3步的操作就不再做介绍了,具体的操作方法可参照创建LVM

流程

  1. 创建新的磁盘分区(fdisk);
  2. 变更分区类型为Linux LVM(Hex代码为:8e);
  3. 创建物理卷(pvcreate);
  4. 扩展卷组(vgextend);
扩展卷组

使用如下命令将剩余的三个分区加入到卷组vg1

[root@localhost ~]# vgextend vg1 /dev/sdb3 /dev/sdb5 /dev/sdb6
  Volume group "vg1" successfully extended

查看扩展后的卷组:

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   5   1   0 wz--n- 9.98g 8.98g

已经完了卷组的扩容。

七、卷组缩容

如果想要对卷组缩容,实际上就是要把加入的卷组的物理卷从卷组中移除。
这时需要注意的是:如果要移除的物理卷,已经被使用的话,移除操作可能会对文件系统造成操作。因此移除操作应针对未被使用的物理卷。

(一)、确认物理卷使用情况

[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize  PFree
  /dev/sdb1  vg1 lvm2 a--  <2.00g     0
  /dev/sdb2  vg1 lvm2 a--  <2.00g     0
  /dev/sdb3  vg1 lvm2 a--  <2.00g <1.99g
  /dev/sdb5  vg1 lvm2 a--  <2.00g <2.00g
  /dev/sdb6  vg1 lvm2 a--  <2.00g <2.00g

只有PFree等于PSize,也就是说没有被使用的物理卷,还能被列入考虑范围。根据上面命令的执行结果,只有/dev/sdb5/dev/sdb6二个可以被移除。
查看卷组的使用情况:

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   5   0   0 wz--n- 5.99g 9.98g
(二)、卷组缩容


[root@localhost ~]# vgreduce vg1 /dev/sdb5 /dev/sdb6
Removed "/dev/sdb5" from volume group "vg1"
Removed "/dev/sdb6" from volume group "vg1"

查看结果:

[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 3 1 0 wz--n- <5.99g <1.99g

可以看到VFree的容量已经减少了,到此完成了卷组缩容

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2017-12/149610p2.htm

八、逻辑卷扩容(ext4格式)

流程

  1. 卸载逻辑卷(umount)
  2. 重设逻辑卷(LV)大小(lvresize);
  3. 检测磁盘(e2fsck);
  4. 重设文件系统大小(resize2fs);
  5. 重新挂载逻辑卷(mount)
(一)、卸载逻辑卷

使用如下命令卸载掉挂载在/mnt上的逻辑卷:

[root@localhost ~]# umount /mnt
(二)、重设逻辑卷大小

使用下面的命令,将逻辑卷lv1的大小从1GB扩容至3GB:

[root@localhost ~]# lvresize -L 3G /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 1.00 GiB (256 extents) to 3.00 GiB (768 extents).
  Logical volume vg1/lv1 successfully resized.

查看逻辑卷信息:

[root@localhost ~]# lvs
  LV   VG  Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-a----- 3.00g
(三)、检测磁盘

[root@localhost ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3: 检查目录连接性
Pass 4: Checking reference counts
第5: 检查簇概要信息
/dev/vg1/lv1: 11/65536 files (0.0% non-contiguous), 12955/262144 blocks
(四)、重设文件系统大小

因为重设逻辑卷的大小后,文件系统的大小并没有一起进行改变,因此还需要针对文件系统进行一次操作。

[root@localhost ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 786432 (4k) blocks.
The filesystem on /dev/vg1/lv1 is now 786432 blocks long.
(五)、重新挂载逻辑卷,并查看信息:

逻辑卷大小进行变更后,并不需要对逻辑卷重新进行格式化,直接挂载便可使用。

[root@localhost ~]# mount /dev/vg1/lv1 /mnt
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda2             17G  1.5G   15G   10% /
devtmpfs             488M     0  488M    0% /dev
tmpfs                497M     0  497M    0% /dev/shm
tmpfs                497M  6.6M  490M    2% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/sda1            976M  115M  795M   13% /boot
tmpfs                100M     0  100M    0% /run/user/0
/dev/mapper/vg1-lv1  3.0G  3.0M  2.8G    1% /mnt

九、逻辑卷扩容(xfs格式)

流程

  1. 重设逻辑卷(LV)大小(lvresize);
  2. 重设文件系统大小(xfs_grows).
    xfs扩容不需要进行逻辑卷卸载.
(一)、查看所要操作的逻辑卷的文件系统是否是xfs

[root@localhost ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/sda2           ext4       17G  1.5G   15G   10% /
devtmpfs            devtmpfs  488M     0  488M    0% /dev
tmpfs               tmpfs     497M     0  497M    0% /dev/shm
tmpfs               tmpfs     497M  6.6M  490M    2% /run
tmpfs               tmpfs     497M     0  497M    0% /sys/fs/cgroup
/dev/sda1           ext4      976M  115M  795M   13% /boot
tmpfs               tmpfs     100M     0  100M    0% /run/user/0
/dev/mapper/vg1-lv1 xfs       3.0G   33M  3.0G    2% /mnt
(二)、重设逻辑卷大小

将逻辑卷从3GB扩容到4GB:

[root@localhost ~]# lvresize -L 4G /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 3.00 GiB (768 extents) to 4.00 GiB (1024 extents).
  Logical volume vg1/lv1 successfully resized.
(三)、重设文件系统大小

[root@localhost ~]# xfs_growfs /dev/vg1/lv1
meta-data=/dev/mapper/vg1-lv1    isize=512    agcount=4, agsize=196608 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=786432, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 786432 to 1048576

查看结果:

[root@localhost ~]# df -hT
文件系统            类型      容量  已用  可用 已用% 挂载点
/dev/sda2           ext4       17G  1.5G   15G   10% /
devtmpfs            devtmpfs  488M     0  488M    0% /dev
tmpfs               tmpfs     497M     0  497M    0% /dev/shm
tmpfs               tmpfs     497M  6.6M  490M    2% /run
tmpfs               tmpfs     497M     0  497M    0% /sys/fs/cgroup
/dev/sda1           ext4      976M  115M  795M   13% /boot
tmpfs               tmpfs     100M     0  100M    0% /run/user/0
/dev/mapper/vg1-lv1 xfs       4.0G   33M  4.0G    1% /mnt

十、逻辑卷缩容(ext4格式)

这里需要注意几点:
1. 缩容操作只针对ext4文件系统,xfs文件系统不支持缩容;
2. 缩容流程的第2-3步是扩容流程的第3-4步。总体的操作思路是:扩容操作先改变逻辑卷大小,再重设文件系统大小;而缩容操作是先重设文件系统大小,再改变逻辑卷大小;在重设文件系统之前,必须先进行磁盘检测。

流程

  1. 卸载逻辑卷(umount)
  2. 检测磁盘(e2fsck);
  3. 重设文件系统大小(resize2fs);
  4. 重设逻辑卷(LV)大小(lvresize);
  5. 重新挂载逻辑卷(mount)
(一)、卸载逻辑卷

使用如下命令卸载掉挂载在/mnt上的逻辑卷:

[root@localhost ~]# umount /mnt
(二)、检测磁盘

[root@localhost ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3: 检查目录连接性
Pass 4: Checking reference counts
第5: 检查簇概要信息
/dev/vg1/lv1: 11/196608 files (0.0% non-contiguous), 21308/786432 blocks
(三)、重设文件系统大小

将逻辑卷lv1的文件系统大小缩至2GB

[root@localhost ~]# resize2fs /dev/vg1/lv1 2G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 524288 (4k) blocks.
The filesystem on /dev/vg1/lv1 is now 524288 blocks long.
(四)、重设逻辑卷大小

[root@localhost ~]# lvresize -L 2G /dev/vg1/lv1
  WARNING: Reducing active logical volume to 2.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
  Size of logical volume vg1/lv1 changed from 3.00 GiB (768 extents) to 2.00 GiB (512 extents).
  Logical volume vg1/lv1 successfully resized.

由于缩容操作可能会对现有的数据造成损坏,因此该操作会需要用户进行确认一次。

(五)、挂载分区并查看信息

[root@localhost ~]# mount /dev/vg1/lv1 /mnt
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/sda2             17G  1.5G   15G   10% /
devtmpfs             488M     0  488M    0% /dev
tmpfs                497M     0  497M    0% /dev/shm
tmpfs                497M  6.6M  490M    2% /run
tmpfs                497M     0  497M    0% /sys/fs/cgroup
/dev/sda1            976M  115M  795M   13% /boot
tmpfs                100M     0  100M    0% /run/user/0
/dev/mapper/vg1-lv1  2.0G  9.0M  1.8G    1% /mnt

十一、删除操作

如果不需要使用lvm,就涉及到逻辑卷、卷组、物理卷的删除操作,下面我来一下进行介绍。

(一)、删除逻辑卷

查看现有的逻辑卷:

[root@localhost ~]# lvs
  LV   VG  Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-ao---- 4.00g

先卸载逻辑卷:

[root@localhost ~]# umount /mnt

使用lvremove命令进行删除操作:

[root@localhost ~]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
  Logical volume "lv1" successfully removed

查看执行结果:

[root@localhost ~]# lvs

由于这里我只有lv1这一个逻辑卷,所以删除后,执行查看,没有任何结果返回。

(二)、删除卷组

查看现有的卷组:

[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize  VFree
  vg1   3   0   0 wz--n- <5.99g <5.99g

使用vgremove命令来进行删除操作:

[root@localhost ~]# vgremove vg1
  Volume group "vg1" successfully removed

查看执行结果:

[root@localhost ~]# vgs

由于这里我只有vg1这一个卷组,所以删除后,执行查看,没有任何结果返回

(三)、删除物理卷

查看现有的物理卷:

[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize  PFree
  /dev/sdb1     lvm2 ---   2.00g  2.00g
  /dev/sdb2     lvm2 ---   2.00g  2.00g
  /dev/sdb3     lvm2 ---   2.00g  2.00g
  /dev/sdb5     lvm2 ---   2.00g  2.00g
  /dev/sdb6     lvm2 ---  <2.00g <2.00g

下面使用pvremove命令来进行删除/dev/sdb6

[root@localhost ~]# pvremove /dev/sdb6
  Labels on physical volume "/dev/sdb6" successfully wiped.

查询执行结果:

[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sdb1     lvm2 ---  2.00g 2.00g
  /dev/sdb2     lvm2 ---  2.00g 2.00g
  /dev/sdb3     lvm2 ---  2.00g 2.00g
  /dev/sdb5     lvm2 ---  2.00g 2.00g

/dev/sdb6已经从物理卷中删除了。如果将剩余物理卷逐一删除,就可以将磁盘恢复到创建lvm之前的状态了。当然,你如果要重新分区的话,还要使用fdisk命令来进行相关操作。

十二、LVM容灾

LVM从本质上说只是一种解决运维过程中出现的指定分区容量耗尽问题的解决方案。虽然卷组的操作与raid操作十分类似,但是如果仔细分析就会发现LVM根本不存在容灾的功能。如果物理卷所在分区或者磁盘出现问题,可能会导致整个LVM出现问题且不可恢复。因此在日常运维过程中还是需要将LVM建立在raid5或者raid10的基础之上,同时日常定期的备份工作也是万万不可缺少的。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149610.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Linux磁盘管理LVM使用手册
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏