Linux中LVM分区的创建、修改及删除

一、 LVM逻辑卷概述

LVM(Logical Volume Manager)是基于内核的一种逻辑卷管理器,LVM适合于管理大存储设备,并允许用户动态调整文件系统大小。
1.物理卷(Physical Volume, PV)
物理卷是LVM的最底层概念,是LVM的逻辑存储块,物理卷与磁盘分区是逻辑的对应关系。LVM提供了命令工具可以将分区转换为物理卷,通过组合物理卷生成卷组。
2.卷组( Volume Group,VG)
卷组是LVM逻辑概念上的磁盘设备,通过将单个或多个物理卷组合后生成卷组。卷组的大小取决于物理卷的容量及个数。在Centos7系统中,对容量与个数没有限制。
3.物理卷长度(Physical Extent,PE)
物理卷长度是将物理卷组合为卷组后,所划分的最小存储单位,即逻辑意义上磁盘的最小存储单元。LVM默认物理卷长度为4MB。
4.逻辑卷(Logical Volume, LV)
逻辑卷就是LVM逻辑意义上的分区,我们可以指定从卷组中提取多少容量来创建逻辑卷,最后对逻辑卷格式化并挂载使用。

命令:
1.pvcreate 使用LVM对磁盘或分区进行初始化
格式:pvcreate [选项] 物理卷 [物理卷…]

[root@gao ~]# pvcreate /dev/sdc4 /dev/sde
[root@gao ~]# pvcreate /dev/sda{1,2,3}

2.vgcreate 创建卷组
格式:vgcreate [选项] 卷组名称 物理设备路径 [物理设备路径…]

[root@gao ~]# vgcreate test_vg1 /dev/sdb5 /dev/sdb6
[root@gao ~]# vgcreate test_vg2 -s 16M /dev/sdc5 /dev/sdc6

3.lvcreate 从卷组中提取存储空间,创建逻辑卷
格式: lvcreate [选项] 卷组名称或路径 [物理卷路径]
选项:
-l 指定使用多少个卷组中的PE创建逻辑卷,PE的容量在创建卷组时已经指定。
-L 直接指定逻辑卷大小,单位可以是b(B),s(S),k(K),m(M),g(G),t(T),p(P)或e(E)。

-n 指定逻辑卷名称

[root@gao ~]# lvcreate -L 2G -n test_lv1 test_vg1
 //从test_vg1卷组中提取2GB容量,创建名称为test_lv1的逻辑卷
 
[root@gao ~]# lvcreate -l 200 -n test_lv2 test_vg2
//使用200个PE创建逻辑卷

[root@gao ~]# lvcreate -L 2G -n test_lv1 test_vg1 /dev/sdb6
//指定使用test_vg1卷组中的/dev/sdb6这个物理卷的存储空间,创建名称为test_lv1 的逻辑卷

二、 创建LVM分区实例

1.使用fdisk创建分区

[root@gao 桌面]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x060fbe13 创建新的 DOS 磁盘标签。

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

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

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

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

命令(输入 m 获取帮助):n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (9416704-10029055,默认为 9416704):
将使用默认值 9416704
Last 扇区, +扇区 or +size{K,M,G} (9416704-10029055,默认为 10029055):+100M
分区 5 已设置为 Linux 类型,大小设为 100 MiB

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

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

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

命令(输入 m 获取帮助):t 
分区号 (1-5,默认 5):4
Hex 代码(输入 L 列出所有代码):8e

You cannot change a partition into an extended one or vice versa.
Delete it first.

分区 4 的类型未更改:Extended

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

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

磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x060fbe13

   设备 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     9414655      512000   8e  Linux LVM
/dev/sdb4         9414656    10029055      307200    5  Extended
/dev/sdb5         9416704     9621503      102400   8e  Linux LVM

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@gao 桌面]# partprobe /dev/sdb       
//此命令在磁盘分区的时候有写到,作用是刷新磁盘分区表

2.使用pvcreate创建物理卷并使用pvdispaly查看结果

[root@gao 桌面]# pvcreate /dev/sdb{1,2,3,5}
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created
  Physical volume "/dev/sdb5" successfully created
[root@gao 桌面]# pvdisplay 
 --- 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               aD9ohz-dDAQ-s7h7-fifC-a7Bz-6f0J-Y1mL8v

其他物理卷信息省略

3.使用vgcreate创建卷组并使用vgdisplay查看结果

[root@gao 桌面]# vgcreate test_vg /dev/sdb{1,2,3,5}
  Volume group "test_vg" successfully created
[root@gao 桌面]# vgdisplay 
  --- Volume group ---
  VG Name               test_vg          //卷组名称
  System ID             
  Format                lvm2
  Metadata Areas        4
  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                4
  Act PV                4
  VG Size               4.57 GiB             //卷组大小
  PE Size               4.00 MiB              //物理长度大小
  Total PE              1170
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1170 / 4.57 GiB                //剩余容量
  VG UUID               GBQk9Z-xOxE-Z7O5-I3V9-wWKt-v7a6-wnY49C

4.使用lvcreate创建逻辑卷并使用lvdisplay查看结果

[root@gao 桌面]# lvcreate -n test_web -L 1G test_vg
  Logical volume "test_web" created.
[root@gao 桌面]# lvcreate -n test_data -l 256 test_vg
  Logical volume "test_data" created.
[root@gao 桌面]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/test_vg/test_web                    //逻辑卷路径
  LV Name                test_web                                 //逻辑卷名称
  VG Name                test_vg                                  //卷组名称
  LV UUID                2xZYBb-YYng-DafY-DqQY-4TOn-NJA8-s0H8fO
  LV Write Access        read/write
  LV Creation host, time gao.exmaple.com, 2019-03-26 22:42:31 +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:2

5.格式化并挂载

[root@gao 桌面]# mkfs.xfs /dev/test_vg/test_web 
[root@gao 桌面]# mkfs.xfs /dev/test_vg/test_data
[root@gao 桌面]# mkdir -p /test/{web,data}
[root@gao 桌面]# cat >> /etc/fstab < /dev/test_vg/test_data /test/data xfs defaults 0 0
> /dev/test_vg/test_web /test/web xfs defaults 0 0
> EOF
[root@gao 桌面]# mount -a                 
[root@gao 桌面]# df -h                         //查看文件系统挂载状态

3、修改LVM分区容量

使用lvextend命令调整逻辑卷大小,调整完大小后,还需使用xfs_growfs命令更新文件系统的大小,具体方法如下:

[root@gao 桌面]# lvextend -L +2G /dev/test_vg/test_data     //扩容逻辑卷
[root@gao 桌面]# lvs                                        //查看逻辑卷已经扩容完成
[root@gao 桌面]# df -h                                      
[root@gao 桌面]# xfs_growfs /dev/test_vg/test_data          //更新文件系统大小
[root@gao 桌面]# df -h        

4、 删除 LVM分区

删除LVM之前创建的物理卷,卷组,逻辑卷时,删除顺序应该与创建时的顺序相反。也就是卸载文件系统,删除逻辑卷,删除卷组,删除物理卷。卸载文件系统时需要注意,如果有必要,应该更新/etc/fstab文件

[root@gao 桌面]# umount /dev/test_vg/test_web 
[root@gao 桌面]# umount /dev/test_vg/test_data 
[root@gao 桌面]# lvremove /dev/test_vg/test_data 
Do you really want to remove active logical volume test_data? [y/n]: y
  Logical volume "test_data" successfully removed
[root@gao 桌面]# lvremove /dev/test_vg/test_web
Do you really want to remove active logical volume test_web? [y/n]: y
  Logical volume "test_web" successfully removed
[root@gao 桌面]# vgremove test_vg 
  Volume group "test_vg" successfully removed
  [root@gao 桌面]# pvremove /dev/sdb{1,2,3,5}
  Labels on physical volume "/dev/sdb1" successfully wiped
  Labels on physical volume "/dev/sdb2" successfully wiped
  Labels on physical volume "/dev/sdb3" successfully wiped
  Labels on physical volume "/dev/sdb5" successfully wiped

你可能感兴趣的:(Linux中LVM分区的创建、修改及删除)