网站搜索

使用条带化 I/O 管理多个逻辑卷管理磁盘


在本文中,我们将了解逻辑卷如何通过条带化 I/O 将数据写入磁盘。逻辑卷管理有一项很酷的功能,可以通过条带化 I/O 将数据写入多个磁盘。

什么是 LVM 条带化?

LVM条带化是将数据写入多个磁盘的功能之一,而不是在单个物理卷上持续写入。

条纹的特点
  1. 它将提高磁盘的性能。
  2. 一次又一次地将硬写保存到单个磁盘上。
  3. 使用多个磁盘上的条带化可以减少磁盘填充。

在逻辑卷管理中,如果我们需要创建逻辑卷,则扩展卷将完全映射到卷组和物理卷。在这种情况下,如果PV(物理卷)之一被填满,我们需要从其他物理卷添加更多扩展。相反,通过向 PV 添加更多扩展,我们可以将逻辑卷指向使用写入 I/O 的特定物理卷。

假设我们有四个磁盘驱动器并指向四个物理卷,如果每个物理卷总共能够100 I/O,我们的卷组将获得400I/O

如果我们不使用条带方法,文件系统将跨底层物理卷进行写入。例如,对物理卷 100 I/O 的某些数据写入将仅写入第一个 (sdb1) PV。如果我们在写入时使用条带选项创建逻辑卷,它将通过分割 100 个 I/O 写入每四个驱动器,这意味着每四个驱动器将分别接收 25 个 I/O。

这将在循环过程中完成。如果任何一个逻辑卷需要扩展,在这种情况下我们不能添加12 PV。我们必须添加所有4 pv 以扩展逻辑卷大小。这是条带功能的缺点之一,由此我们可以知道,在创建逻辑卷时,我们需要为所有逻辑卷分配相同的条带大小。

逻辑卷管理具有这些功能,我们可以同时将数据条带化到多个 pv 上。如果您熟悉逻辑卷,则可以直接设置逻辑卷条带。如果没有,那么您必须了解逻辑卷管理基础知识,请阅读以下文章以了解有关逻辑卷管理的更多信息。

要求

  1. 在 Linux 中设置灵活的 LVM 磁盘存储 – 第一部分
  2. 如何在 Linux 中扩展/减少 LVM – 第二部分
我的服务器设置

在这里,我使用 Centos6.5 进行锻炼。相同的步骤可用于 RHEL、Oracle Linux 和大多数发行版。

Operating System :	CentOS 6.5
IP Address :		192.168.0.222
Hostname : 		tecmint.storage.com

使用条带化 I/O 进行逻辑卷管理

为了演示目的,我使用了 4 个硬盘,每个硬盘大小为 1 GB。让我向您展示使用“fdisk”命令的四个驱动器,如下所示。

fdisk -l | grep sd

现在我们必须使用 '< 为这 4 个硬盘 sdbsdcsddsde 创建分区强>fdisk'命令。要创建分区,请按照本文第 1 部分(上面给出的链接)中给出的步骤 #4 说明进行操作,并确保将类型更改为 LVM (8e),同时创建分区。

成功创建分区后,现在继续使用所有这 4 个驱动器创建物理卷。要创建 PV,请使用以下“pvcreate”命令,如图所示。

pvcreate /dev/sd[b-e]1 -v

创建 PV 后,您可以使用“pvs”命令列出它们。

pvs

现在我们需要使用这 4 个物理卷来定义卷组。在这里,我使用 16MB 物理扩展大小 (PE) 定义卷组,并将卷组命名为 vg_strip

vgcreate -s 16M vg_strip /dev/sd[b-e]1 -v

命令中使用的上述选项的描述。

  1. [b-e]1 – 定义硬盘名称,例如 sdb1、sdc1、sdd1、sde1。
  2. -s – 定义您的物理范围大小。
  3. -v – 详细。

接下来,使用验证新创建的卷组。

vgs vg_strip

要获取有关 VG 的更多详细信息,请使用开关“-v”和 vgdisplay 命令,它将为我们提供 vg_strip 中所有使用的每个物理卷b> 卷组。

vgdisplay vg_strip -v

回到我们的主题,现在在创建逻辑卷时,我们需要定义条带值,数据需要如何使用条带方法写入逻辑卷中。

在这里,我以 lv_howtoing_strp1 的名称创建一个大小为 900MB 的逻辑卷,它需要位于 vg_strip 卷组中,并且我我定义为 4 个条带,这意味着写入我的逻辑卷的数据需要在 4 个 PV 上条带化。

lvcreate -L 900M -n lv_tecmint_strp1 -i4 vg_strip
  1. -L – 逻辑卷大小
  2. -n – 逻辑卷名称
  3. -i – 条纹

在上图中,我们可以看到stripe-size的默认大小是64 KB,如果我们需要定义自己的stripe值,我们可以使用-I(首都一)。只需要确认逻辑卷已创建,请使用以下命令。

lvdisplay vg_strip/lv_tecmint_strp1

现在下一个问题是,我们如何知道条带正在写入 4 个驱动器?这里我们可以使用‘lvdisplay’和-m(显示逻辑卷的映射)命令来验证。

lvdisplay vg_strip/lv_tecmint_strp1 -m

为了创建我们定义的条带大小,我们需要使用我自己定义的条带大小 256KB 创建一个 1GB 大小的逻辑卷。现在我将只对 3 个 PV 进行条带化,在这里我们可以定义要对哪些 pv 进行条带化。

lvcreate -L 1G -i3 -I 256 -n lv_tecmint_strp2 vg_strip /dev/sdb1 /dev/sdc1 /dev/sdd1

接下来,检查条带大小以及条带化的卷。

lvdisplay vg_strip/lv_tecmint_strp2 -m

是时候使用设备映射器了,为此我们使用命令“dmsetup”。它是一个低级逻辑卷管理工具,用于管理使用设备映射器驱动程序的逻辑设备。我们可以使用 dmsetup 命令查看 lvm 信息,以了解哪个条带取决于哪些驱动器。

dmsetup deps /dev/vg_strip/lv_tecmint_strp[1-2]

这里我们可以看到strp1依赖于4个驱动器,strp2依赖于3个设备。

希望您已经了解了如何通过逻辑卷进行条带化来写入数据。对于此设置,必须了解逻辑卷管理的基础知识。在我的下一篇文章中,我将向您展示如何迁移逻辑卷管理,在此之前请继续关注更新,并且不要忘记对本文提出宝贵的评论。