简介LVM概念,术语和操作

LVM,或逻辑卷管理,是一种存储设备管理技术,使用户能够集中电源和部件的存储设备,以方便和灵活的管理抽象的物理布局。利用该设备映射Linux内核框架下,...

介绍

LVM,或逻辑卷管理,是一种存储设备管理技术,使用户能够集中电源和部件的存储设备,以方便和灵活的管理抽象的物理布局。 利用设备映射器Linux内核框架,当前迭代LVM2可以用于将现有存储设备聚集成组,并根据需要从组合空间中分配逻辑单元。

LVM的主要优点是提高了抽象,灵活性和控制。 逻辑卷可以具有有意义的名称,例如“databases”或“root-backup”。 随着空间需求的改变,卷可以动态调整大小,并在正在运行的系统上的池中的物理设备之间迁移或轻松导出。 LVM还提供了高级功能,如快照,条带化和镜像。

在本指南中,我们将简要讨论LVM如何工作,然后演示快速启动和运行所需的基本命令。

LVM架构和术语

在我们深入了解实际的LVM管理命令之前,了解LVM如何组织存储设备及其使用的术语非常重要。

LVM存储管理结构

LVM通过在物理存储设备之上分层抽象来实现功能。 LVM使用的基本层,从最原始的开始,是。

  • 物理卷
    • LVM实用前缀pv...
    • 描述 :物理块设备或其他圆盘状设备(例如,通过设备映射器,如RAID阵列创建的其他装置)用于通过LVM作为原料建筑材料为更高级别的抽象。 物理卷是常规存储设备。 LVM将头写入设备以将其分配给管理。
  • 卷组
    • LVM实用前缀vg...
    • 说明 :LVM结合物理卷成称为卷组的存储池。 卷组提取底层设备的特性,并作为具有组件物理卷的组合存储容量的统一逻辑设备。
  • 逻辑卷
    • LVM实用前缀lv... (通用LVM实用程序可能会首先lvm...
    • 说明 :一个卷组可切片成任意数量的逻辑卷。 逻辑卷在功能上等同于物理磁盘上的分区,但具有更大的灵活性。 逻辑卷是用户和应用程序将与之交互的主要组件。

总之,LVM可用于将物理卷组合成卷组以统一系统上可用的存储空间。 之后,管理员可以将卷组分段为任意逻辑卷,作为灵活分区。

什么是范围?

卷组内的每个卷分割成小的,固定大小的块称为扩展 扩展区的大小由卷组确定(组内的所有卷都符合相同的扩展区大小)。

一个物理卷上的盘区被称为物理盘 ,而逻辑卷的盘区被称为逻辑盘区 逻辑卷只是LVM在逻辑和物理盘区之间维护的映射。 由于这种关系,区段大小表示LVM可分配的最小空间量。

范围背后了LVM的大部分灵活性和强大功能。 由LVM呈现为统一设备的逻辑盘区不必映射到连续的物理盘区。 LVM可以复制和重新组织构成逻辑卷的物理盘区,而不会对用户造成任何中断。 通过向卷中添加扩展数据块或从卷中删除扩展数据块,也可以轻松地扩展或缩小逻辑卷。

简单用例

现在,您已经熟悉了LVM使用的一些术语和结构,我们可以探索一些常用的LVM使用方法。 我们将开始通过一个基本过程,将使用两个物理磁盘来形成四个逻辑卷。

将物理设备标记为物理卷

我们的第一步是扫描LVM可以查看和管理的块设备的系统。 您可以输入以下命令:

sudo lvmdiskscan

输出将显示LVM可以与之交互的所有可用块设备:

  /dev/ram0  [      64.00 MiB] 
  /dev/sda   [     200.00 GiB] 
  /dev/ram1  [      64.00 MiB] 

  . . .

  /dev/ram15 [      64.00 MiB] 
  /dev/sdb   [     100.00 GiB] 
  2 disks
  17 partitions
  0 LVM physical volume whole disks
  0 LVM physical volumes

从上面的输出,我们可以看到目前有两个磁盘和17个分区。 分区大多是/dev/ram*所使用的系统为一个分区RAM磁盘的性能增强。 在本实施例的磁盘/dev/sda ,其具有空间200G,和/dev/sdb ,它有100G。

警告 :请确保您仔细检查您打算使用LVM使用的设备没有任何做重要数据已写入其中。 在LVM中使用这些设备将覆盖当前内容。 如果您的服务器上已有重要数据,请在继续之前进行备份。

现在,我们知道我们想要使用物理设备,我们可以将其标记为使用LVM中的物理卷pvcreate命令:

sudo pvcreate /dev/sda /dev/sdb
  Physical volume "/dev/sda" successfully created
  Physical volume "/dev/sdb" successfully created

这将向设备写入LVM头以指示它们已准备好添加到卷组。

您可以通过键入以下内容快速验证LVM是否已注册物理卷:

sudo pvs
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sda        lvm2 ---  200.00g 200.00g
  /dev/sdb        lvm2 ---  100.00g 100.00g

正如你所看到的,这些设备都是在目前PV列,它代表物理卷。

将物理卷添加到卷组

现在我们已经从我们的设备创建了物理卷,我们可以创建一个卷组。 我们将必须为卷组选择一个名称,我们将保留通用名称。 大多数情况下,每个系统只有一个卷组,以实现最大的分配灵活性。 我们会打电话给我们的卷组LVMVolGroup为简单起见。

要在单个命令中创建卷组并向其中添加两个物理卷,请键入:

sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
  Volume group "LVMVolGroup" successfully created

如果我们检查pvs再次输出,我们可以看到,我们的物理卷正与新的卷组关联:

sudo pvs
  PV         VG          Fmt  Attr PSize   PFree  
  /dev/sda   LVMVolGroup lvm2 a--  200.00g 200.00g
  /dev/sdb   LVMVolGroup lvm2 a--  100.00g 100.00g

我们可以通过键入以下内容查看卷组本身的简要摘要:

sudo vgs
  VG          #PV #LV #SN Attr   VSize   VFree  
  LVMVolGroup   2   0   0 wz--n- 299.99g 299.99g

如您所见,我们的卷组目前有两个物理卷,零逻辑卷,并具有底层设备的组合容量。

从卷组池创建逻辑卷

现在我们有一个卷组可用,我们可以使用它作为一个池,我们可以从中分配逻辑卷。 与传统分区不同,在使用逻辑卷时,您不需要知道卷的布局,因为LVM会为您映射和处理此卷。 您只需要提供卷的大小和名称。

我们将从卷组中创建四个单独的逻辑卷:

  • 10G“投射”音量
  • 5G“www”卷的Web内容
  • 20G“db”卷
  • “工作区”卷将填充剩余空间

要创建逻辑卷,我们使用lvcreate命令。 我们必须通过卷组从拉中,并且可以命名与逻辑卷-n选项。 直接指定大小,你可以使用-L选项。 相反,如果你希望在扩展的数量方面指定大小,您可以使用-l选项。

我们可以创建一个与前三逻辑卷-L这样的选项:

sudo lvcreate -L 10G -n projects LVMVolGroup
sudo lvcreate -L 5G -n www LVMVolGroup
sudo lvcreate -L 20G -n db LVMVolGroup
  Logical volume "projects" created.
  Logical volume "www" created.
  Logical volume "db" created.

我们可以看到逻辑卷,并通过选择自定义输出自己的卷组关系vgs命令:

sudo vgs -o +lv_size,lv_name
  VG          #PV #LV #SN Attr   VSize   VFree   LSize  LV      
  LVMVolGroup   2   3   0 wz--n- 299.99g 264.99g 10.00g projects
  LVMVolGroup   2   3   0 wz--n- 299.99g 264.99g  5.00g www     
  LVMVolGroup   2   3   0 wz--n- 299.99g 264.99g 20.00g db

我们添加了最后两列输出,以便我们可以看到分配给逻辑卷的空间。

现在,我们可以在卷组中的空间分配给其余使用的“工作空间”卷-l标志,这在程度上起作用。 我们还可以提供一个百分比和一个单位,以更好地沟通我们的意图。 在我们的例子中,我们要分配剩余的可用空间,因此,我们可以通过100%FREE

sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
  Logical volume "workspace" created.

如果我们重新检查卷组信息,我们可以看到我们已用尽所有可用空间:

sudo vgs -o +lv_size,lv_name
  VG          #PV #LV #SN Attr   VSize   VFree LSize   LV       
  LVMVolGroup   2   4   0 wz--n- 299.99g    0   10.00g projects 
  LVMVolGroup   2   4   0 wz--n- 299.99g    0    5.00g www      
  LVMVolGroup   2   4   0 wz--n- 299.99g    0   20.00g db       
  LVMVolGroup   2   4   0 wz--n- 299.99g    0  264.99g workspace

如您所见,“工作区”卷已创建,“LVMVolGroup”卷组已完全分配。

格式化和安装逻辑卷

现在我们有逻辑卷,我们可以使用它们作为正常块设备。

逻辑器件是中可用/dev目录下,就像其他的存储设备。 您可以在两个地方访问它们:

  • /dev/ volume_group_name / logical_volume_name
  • /dev/mapper/ volume_group_name - logical_volume_name

因此,要使用Ext4文件系统来格式化四个逻辑卷,我们可以键入:

sudo mkfs.ext4 /dev/LVMVolGroup/projects
sudo mkfs.ext4 /dev/LVMVolGroup/www
sudo mkfs.ext4 /dev/LVMVolGroup/db
sudo mkfs.ext4 /dev/LVMVolGroup/workspace

或者我们可以输入:

sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace

格式化后,我们可以创建安装点:

sudo mkdir -p /mnt/{projects,www,db,workspace}

然后,我们可以将逻辑卷安装到适当的位置:

sudo mount /dev/LVMVolGroup/projects /mnt/projects
sudo mount /dev/LVMVolGroup/www /mnt/www
sudo mount /dev/LVMVolGroup/db /mnt/db
sudo mount /dev/LVMVolGroup/workspace /mnt/workspace

为了让坐骑持续性,把它们添加到/etc/fstab ,就像你会与正常的块设备:

sudo nano /etc/fstab
/ etc / fstab
. . .

/dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0
/dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0
/dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0
/dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0

操作系统现在应该在引导时自动安装LVM逻辑卷。

结论

希望,到目前为止,您将对LVM管理的各种组件有相当好的了解,以创建灵活的存储系统。 您还应该基本了解如何在LVM设置中启动和运行存储设备。

本指南仅简要介绍了LVM为Linux系统管理员提供的功能和控制。 要了解更多关于使用LVM,看看我们的指南,使用LVM与Ubuntu 16.04