> Linux教程 > Linux学习 >

如何在 Linux 中创建/配置 LVM(逻辑卷管理)

Logical Volume Management(LVM)在 Linux 系统中扮演着重要的角色,它可以提高可用性、磁盘 I/O、性能和磁盘管理的能力。

LVM 是一种被广泛使用的技术,对于磁盘管理来说,它是非常灵活的。

它在物理磁盘和文件系统之间增加了一个额外的层,允许你创建一个逻辑卷而不是物理磁盘。

LVM 允许你在需要的时候轻松地调整、扩展和减少逻辑卷的大小。

如何创建 LVM 物理卷?

你可以使用任何磁盘、RAID 阵列、SAN 磁盘或分区作为 LVM 物理卷Physical Volume(PV)。

让我们想象一下,你已经添加了三个磁盘,它们是 /dev/sdb、/dev/sdc 和 /dev/sdd。

运行以下命令来发现 Linux 中新添加的 LUN 或磁盘:


  1. # ls /sys/class/scsi_host
  2. host0

  1. # echo "- - -" > /sys/class/scsi_host/host0/scan

  1. # fdisk -l

创建物理卷 (pvcreate) 的一般语法:


  1. pvcreate [物理卷名]

当在系统中检测到磁盘,使用 pvcreate 命令初始化 LVM PV:


  1. # pvcreate /dev/sdb /dev/sdc /dev/sdd
  2. Physical volume "/dev/sdb" successfully created
  3. Physical volume "/dev/sdc" successfully created
  4. Physical volume "/dev/sdd" successfully created

请注意:

  • 上面的命令将删除给定磁盘 /dev/sdb、/dev/sdc 和 /dev/sdd 上的所有数据。
  • 物理磁盘可以直接添加到 LVM PV 中,而不必是磁盘分区。

使用 pvdisplay 和 pvs 命令来显示你创建的 PV。pvs 命令显示的是摘要输出,pvdisplay 显示的是 PV 的详细输出:


  1. # pvs
  2. PV VG Fmt Attr PSize PFree
  3. /dev/sdb lvm2 a-- 15.00g 15.00g
  4. /dev/sdc lvm2 a-- 15.00g 15.00g
  5. /dev/sdd lvm2 a-- 15.00g 15.00g

  1. # pvdisplay
  2.  
  3. "/dev/sdb" is a new physical volume of "15.00 GiB"
  4. --- NEW Physical volume ---
  5. PV Name /dev/sdb
  6. VG Name
  7. PV Size 15.00 GiB
  8. Allocatable NO
  9. PE Size 0
  10. Total PE 0
  11. Free PE 0
  12. Allocated PE 0
  13. PV UUID 69d9dd18-36be-4631-9ebb-78f05fe3217f
  14.  
  15. "/dev/sdc" is a new physical volume of "15.00 GiB"
  16. --- NEW Physical volume ---
  17. PV Name /dev/sdc
  18. VG Name
  19. PV Size 15.00 GiB
  20. Allocatable NO
  21. PE Size 0
  22. Total PE 0
  23. Free PE 0
  24. Allocated PE 0
  25. PV UUID a2092b92-af29-4760-8e68-7a201922573b
  26.  
  27. "/dev/sdd" is a new physical volume of "15.00 GiB"
  28. --- NEW Physical volume ---
  29. PV Name /dev/sdd
  30. VG Name
  31. PV Size 15.00 GiB
  32. Allocatable NO
  33. PE Size 0
  34. Total PE 0
  35. Free PE 0
  36. Allocated PE 0
  37. PV UUID d92fa769-e00f-4fd7-b6ed-ecf7224af7faS

如何创建一个卷组

卷组Volume Group(VG)是 LVM 结构中的另一层。基本上,卷组由你创建的 LVM 物理卷组成,你可以将物理卷添加到现有的卷组中,或者根据需要为物理卷创建新的卷组。

创建卷组 (vgcreate) 的一般语法:


  1. vgcreate [卷组名] [物理卷名]

使用以下命令将一个新的物理卷添加到新的卷组中:


  1. # vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd
  2. Volume group "vg01" successfully created

请注意:默认情况下,它使用 4MB 的物理范围Physical Extent(PE),但你可以根据你的需要改变它。

使用 vgs 和 vgdisplay 命令来显示你创建的 VG 的信息:


  1. # vgs vg01
  2. VG #PV #LV #SN Attr VSize VFree
  3. vg01 3 0 0 wz--n- 44.99g 44.99g

  1. # vgdisplay vg01
  2. --- Volume group ---
  3. VG Name vg01
  4. System ID
  5. Format lvm2
  6. Metadata Areas 3
  7. Metadata Sequence No 1
  8. VG Access read/write
  9. VG Status resizable
  10. MAX LV 0
  11. Cur LV 0
  12. Open LV 0
  13. Max PV 0
  14. Cur PV 3
  15. Act PV 3
  16. VG Size 44.99 GiB
  17. PE Size 4.00 MiB
  18. Total PE 11511
  19. Alloc PE / Size 0 / 0
  20. Free PE / Size 11511 / 44.99 GiB
  21. VG UUID d17e3c31-e2c9-4f11-809c-94a549bc43b7

如何扩展卷组

如果 VG 没有空间,请使用以下命令将新的物理卷添加到现有卷组中。

卷组扩展 (vgextend)的一般语法:


  1. vgextend [已有卷组名] [物理卷名]

  1. # vgextend vg01 /dev/sde
  2. Volume group "vg01" successfully extended

如何以 GB 为单位创建逻辑卷?

逻辑卷Logical Volume(LV)是 LVM 结构中的顶层。逻辑卷是由卷组创建的块设备。它作为一个虚拟磁盘分区,可以使用 LVM 命令轻松管理。

你可以使用 lvcreate 命令创建一个新的逻辑卷。

创建逻辑卷(lvcreate) 的一般语法:


  1. lvcreate –n [逻辑卷名] –L [逻辑卷大小] [要创建的 LV 所在的卷组名称]

运行下面的命令,创建一个大小为 10GB 的逻辑卷 lv001:


  1. # lvcreate -n lv001 -L 10G vg01
  2. Logical volume "lv001" created

使用 lvs 和 lvdisplay 命令来显示你所创建的 LV 的信息:


  1. # lvs /dev/vg01/lvol01
  2. LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
  3. lv001 vg01 mwi-a-m-- 10.00g lv001_mlog 100.00

  1. # lvdisplay /dev/vg01/lv001
  2. --- Logical volume ---
  3. LV Path /dev/vg01/lv001
  4. LV Name lv001
  5. VG Name vg01
  6. LV UUID ca307aa4-0866-49b1-8184-004025789e63
  7. LV Write Access read/write
  8. LV Creation host, time localhost.localdomain, 2020-09-10 11:43:05 -0700
  9. LV Status available
  10. # open 0
  11. LV Size 10.00 GiB
  12. Current LE 2560
  13. Segments 1
  14. Allocation inherit
  15. Read ahead sectors auto
  16. - currently set to 256
  17. Block device 253:4

如何以 PE 大小创建逻辑卷?

或者,你可以使用物理范围(PE)大小创建逻辑卷。

如何计算 PE 值?

很简单,例如,如果你有一个 10GB 的卷组,那么 PE 大小是多少?

默认情况下,它使用 4MB 的物理范围,但可以通过运行 vgdisplay 命令来检查正确的 PE 大小,因为这可以根据需求进行更改。


  1. 10GB = 10240MB / 4MB (PE 大小) = 2560 PE

用 PE 大小创建逻辑卷 (lvcreate) 的一般语法:


  1. lvcreate –n [逻辑卷名] –l [物理扩展 (PE) 大小] [要创建的 LV 所在的卷组名称]

要使用 PE 大小创建 10GB 的逻辑卷,命令如下:


  1. # lvcreate -n lv001 -l 2560 vg01

如何创建文件系统

在创建有效的文件系统之前,你不能使用逻辑卷。

创建文件系统的一般语法:


  1. mkfs –t [文件系统类型] /dev/[LV 所在的卷组名称]/[LV 名称]

使用以下命令将逻辑卷 lv001 格式化为 ext4 文件系统:


  1. # mkfs -t ext4 /dev/vg01/lv001

对于 xfs 文件系统:


  1. # mkfs -t xfs /dev/vg01/lv001

挂载逻辑卷

最后,你需要挂载逻辑卷来使用它。确保在 /etc/fstab 中添加一个条目,以便系统启动时自动加载。

创建一个目录来挂载逻辑卷:


  1. # mkdir /lvmtest

使用挂载命令挂载逻辑卷:


  1. # mount /dev/vg01/lv001 /lvmtest

在 /etc/fstab 文件中添加新的逻辑卷详细信息,以便系统启动时自动挂载:


  1. # vi /etc/fstab
  2. /dev/vg01/lv001 /lvmtest xfs defaults 0 0

使用 df 命令检查新挂载的卷:


  1. # df -h /lvmtest
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/vg01-lv001 15360M 34M 15326M 4% /lvmtest

via: https://www.2daygeek.com/create-lvm-storage-logical-volume-manager-in-linux/

 


(责任编辑:IT)