Bootstrap

LVM最佳实践

一、什么是LVM?

LVM,即逻辑卷管理器,是一种在Linux和其他类Unix操作系统中用于更灵活地管理磁盘存储的系统。它允许您将多个物理硬盘或分区组合成一个或多个逻辑卷,这些逻辑卷可以像传统分区一样被格式化和挂载,用于存储文件和数据。

LVM 是Linux系统中一个非常强大和灵活的存储管理工具。它通过抽象物理存储,提供了动态调整大小、快照、条带化、镜像等高级功能,极大地提高了磁盘空间利用率和管理效率,并增强了数据的可靠性和灵活性。 掌握LVM对于系统管理员和需要管理服务器存储的用户来说是非常重要的技能。

1、可以把每块硬盘当做一个物理卷,然后加入到卷组中以增加卷组的空间。

  • 完全正确! 这是LVM的核心思想之一。您可以将系统中任何未被LVM管理的块设备(例如,一块完整的硬盘,硬盘上的一个分区,甚至RAID阵列)初始化为物理卷 (PV)。
  • 一旦硬盘或分区被创建为 PV,它就成为卷组 (VG) 可以使用的“原材料”。
  • 您可以将一个或多个 PV 加入到一个卷组中,卷组的空间大小就是所有加入的 PV 的空间总和。
  • 当卷组的空间不足时,您可以通过添加新的 PV(例如,添加一块新的硬盘并将其创建为 PV,然后加入到已有的 VG 中)来动态扩展卷组的总空间。

2、那么一个卷组可以创建多少个逻辑卷?

  • 理论上,一个卷组可以创建的逻辑卷数量没有硬性限制,主要取决于卷组的可用空间和系统的资源限制。

    • 空间限制: 最主要的限制是卷组的可用空间。您在卷组中创建的所有逻辑卷的总大小,不能超过卷组的总可用空间。 卷组的空间用尽后,就无法再创建新的逻辑卷,或者扩展已有的逻辑卷。
    • 资源限制: 虽然 LVM 本身没有硬性数量限制,但过多的逻辑卷可能会增加系统管理的复杂度和开销。操作系统的内核资源(例如,设备节点的数量)也可能存在一些理论上的限制,但这在实际应用中通常不是瓶颈。
    • 管理实践: 在实际生产环境中,通常会根据实际的应用需求和管理方便性来规划逻辑卷的数量。例如,为不同的应用或服务创建独立的逻辑卷,以便于隔离管理和资源分配。 不会无限制地在一个卷组中创建过多的逻辑卷,以免管理混乱。
  • 总结来说: 只要卷组有足够的可用空间,您就可以在其中创建多个逻辑卷。实际数量多少取决于您的具体需求和管理策略,而非技术上的硬性限制。

3、每个逻辑卷的空间大小能否动态扩展加大或者减小?

  • 完全可以! 这正是LVM最强大的灵活性体现之一:逻辑卷的大小可以动态地、在线地进行扩展和缩小。

    • 动态扩展 (增大):

      • 当逻辑卷的空间不足时,您可以随时在线扩展逻辑卷的大小,而无需卸载逻辑卷、重新格式化,更不需要重启系统。
      • 扩展逻辑卷的过程通常非常快速且平滑,不会中断正在运行的应用和服务。
      • 扩展逻辑卷的步骤一般包括:
        1. 扩展逻辑卷本身: 使用 lvextend 命令增加逻辑卷的大小。您可以指定增加多少空间,或者将逻辑卷扩展到卷组的剩余全部空间。
        2. 扩展逻辑卷上的文件系统: 在逻辑卷扩展后,您还需要同步扩展逻辑卷上的文件系统,以使文件系统能够识别并使用新增加的空间。 例如,对于 ext4 文件系统,可以使用 resize2fs 命令;对于 XFS 文件系统,可以使用 xfs_growfs 命令。
    • 动态缩小 (减小):

      • 逻辑卷也可以被缩小,但缩小操作比扩展操作要谨慎得多,并且通常需要先缩小逻辑卷上的文件系统,然后再缩小逻辑卷本身。
      • 重要警告:缩小逻辑卷操作如果处理不当,可能会导致数据丢失! 因为如果您缩小逻辑卷的大小,超出了文件系统实际使用的数据量,那么超出部分的数据就会被截断丢失。
      • 缩小逻辑卷的步骤一般包括:
        1. 卸载逻辑卷: 通常需要先卸载逻辑卷。
        2. 检查文件系统: 强烈建议在缩小文件系统之前,先检查文件系统的完整性 (fsck)。
        3. 缩小逻辑卷上的文件系统: 例如,对于 ext4 文件系统,可以使用 resize2fs 命令并指定新的较小的大小。 必须确保新的文件系统大小足够容纳已有的数据,否则数据会丢失。
        4. 缩小逻辑卷本身: 使用 lvreduce 命令缩小逻辑卷的大小。 确保缩小后的逻辑卷大小不小于已经缩小后的文件系统大小。
        5. 重新挂载逻辑卷: 缩小完成后,重新挂载逻辑卷。
  • 动态调整的意义: 逻辑卷动态调整大小的能力,极大地提高了磁盘空间利用率和管理灵活性。 您可以根据实际需求,随时调整存储空间的分配,无需预先规划过多的空间,也无需担心空间不足的问题。

LVM 的核心优势就在于其灵活性和动态性。 您可以自由地将物理硬盘组织成卷组,并在卷组中创建和管理逻辑卷。 逻辑卷的大小可以根据需要动态调整,这使得存储管理变得更加高效、便捷和安全。 掌握 LVM 是 Linux 系统管理的重要技能,它能帮助您更好地管理和利用存储资源。

二、为什么要使用LVM?

传统的磁盘分区方式在创建后大小固定,如果磁盘空间不足或需要调整分区大小,往往需要重新分区、格式化,甚至可能导致数据丢失,操作繁琐且风险较高。LVM的出现正是为了解决这些问题,它提供了以下关键优势:

1、灵活性和动态调整

  • 动态调整大小: 这是LVM最核心的优势。您可以随时增加或缩小逻辑卷的大小,而无需停机或重新格式化。这意味着您可以根据实际需求动态地分配和调整存储空间,极大地提高了磁盘空间利用率和管理效率。
  • 跨物理磁盘扩展: 逻辑卷可以跨越多个物理硬盘。如果一个逻辑卷空间不足,您可以向卷组中添加新的物理硬盘,并将这些新空间动态地扩展到逻辑卷中,从而突破单个物理硬盘容量的限制。

2、快照功能

  • LVM允许您创建逻辑卷的快照。快照是逻辑卷在特定时间点的“副本”,但它只占用极少的额外空间(仅存储自快照创建以来发生变化的数据)。
  • 快照可以用于数据备份、测试和回滚。例如,在进行系统升级或软件安装前,可以创建逻辑卷的快照。如果升级或安装失败,您可以快速回滚到快照时的状态,避免数据丢失或系统损坏。

3、条带化(Striping)

  • LVM支持条带化,可以将数据分散存储到多个物理硬盘上。这可以提高数据读写性能,特别是对于需要高I/O吞吐量的应用场景。

4、镜像(Mirroring)

  • LVM可以创建镜像逻辑卷,将数据同时写入到多个物理硬盘上。这提供了数据冗余和容错能力,当一个硬盘发生故障时,系统可以继续从镜像卷的另一个硬盘读取数据,保障数据的可靠性。

5、更方便的磁盘管理

  • LVM将物理硬盘抽象成逻辑卷,使得磁盘管理更加简单和直观。管理员无需直接面对底层的物理磁盘,而是操作逻辑卷这一概念,简化了存储管理流程。

三、LVM 的基本概念和组件

LVM 由几个关键组件构成,理解这些组件之间的关系是掌握LVM的基础:

1、物理卷 (Physical Volume, PV)

  • 物理卷是LVM的基础构建块。它可以是一个物理硬盘,也可以是硬盘上的一个分区,甚至是RAID阵列或其他存储设备。
  • 当您将物理硬盘或分区标记为物理卷后,它就成为了LVM可以管理的资源。
  • PV 包含了关于物理存储介质的信息,并被卷组 (VG) 用于创建逻辑卷 (LV)。

2、卷组 (Volume Group, VG)

  • 卷组是由一个或多个物理卷 (PV) 组成的逻辑容器。
  • VG 将多个 PV 聚合成一个大的存储池。可以将卷组理解为一个“虚拟硬盘”,逻辑卷 (LV) 就是在这个“虚拟硬盘”上划分出来的“分区”。
  • VG 负责管理其包含的所有 PV,并为创建 LV 提供空间。

3、逻辑卷 (Logical Volume, LV)

  • 逻辑卷是从卷组 (VG) 中划分出来的虚拟分区。
  • LV 就像传统的物理分区一样,可以被格式化为文件系统 (例如 ext4, XFS 等),然后挂载到Linux系统的目录树中使用。
  • 用户实际操作和使用的是逻辑卷,而不是底层的物理卷或卷组。
  • LV 可以动态调整大小,快照等功能都是针对逻辑卷而言的。

四、LVM 的工作流程

LVM 的基本工作流程可以用以下步骤概括:

1、创建物理卷 (PV): 

首先,将物理硬盘或分区初始化为物理卷。这相当于告诉LVM,这些存储空间可以被LVM管理。

2、创建卷组 (VG): 

将一个或多个物理卷组合成一个卷组。卷组形成一个存储池,可用于创建逻辑卷。

3、创建逻辑卷 (LV): 

从卷组中划分出逻辑卷。您可以指定逻辑卷的大小、名称等。

4、格式化逻辑卷: 

将逻辑卷格式化为所需的文件系统类型,例如 ext4、XFS 等。

5、挂载逻辑卷: 

将格式化后的逻辑卷挂载到Linux系统的某个目录 (例如 /mnt, /data 等),就可以像使用普通分区一样使用逻辑卷了。

五、常用 LVM 命令

以下是一些常用的 LVM 命令及其功能,帮助您进行LVM的管理:

1、物理卷 (PV) 相关命令

  • pvcreate /dev/sdX1 /dev/sdb : 创建物理卷。将 /dev/sdX1 分区和 /dev/sdb 硬盘初始化为物理卷。
  • pvdisplay /dev/sdX1 : 显示物理卷 /dev/sdX1 的详细信息。
  • pvs : 显示系统中所有物理卷的简要信息。
  • pvremove /dev/sdX1 : 移除物理卷 /dev/sdX1。注意:移除物理卷前,需要先将其从卷组中移除。

2、卷组 (VG) 相关命令

  • vgcreate myvg /dev/pv1 /dev/pv2 : 创建卷组。创建一个名为 myvg 的卷组,包含物理卷 /dev/pv1/dev/pv2
  • vgdisplay myvg : 显示卷组 myvg 的详细信息。
  • vgs : 显示系统中所有卷组的简要信息。
  • vgextend myvg /dev/pv3 : 扩展卷组。向卷组 myvg 中添加新的物理卷 /dev/pv3
  • vgreduce myvg /dev/pv3 : 缩减卷组。从卷组 myvg 中移除物理卷 /dev/pv3。注意:在缩减卷组前,需要确保该物理卷上的逻辑卷数据已被迁移。
  • vgremove myvg : 移除卷组 myvg。注意:移除卷组前,需要先移除卷组中的所有逻辑卷。

3、逻辑卷 (LV) 相关命令

  • lvcreate -L 10G -n mylv myvg : 创建逻辑卷。在卷组 myvg 中创建一个名为 mylv,大小为 10GB 的逻辑卷。 -L 指定大小, -n 指定名称。
  • lvdisplay /dev/myvg/mylv : 显示逻辑卷 /dev/myvg/mylv 的详细信息。
  • lvs : 显示系统中所有逻辑卷的简要信息。
  • lvextend -L +5G /dev/myvg/mylv : 扩展逻辑卷大小。将逻辑卷 /dev/myvg/mylv 的大小增加 5GB。 -L + 表示增加量。
  • lvreduce -L -2G /dev/myvg/mylv : 缩小逻辑卷大小。将逻辑卷 /dev/myvg/mylv 的大小缩小 2GB。 -L - 表示减少量。注意:缩小逻辑卷可能导致数据丢失,请谨慎操作,并且通常需要先缩小逻辑卷上的文件系统。
  • lvremove /dev/myvg/mylv : 移除逻辑卷 /dev/myvg/mylv。注意:移除逻辑卷前,需要先卸载该逻辑卷。

4、快照 (Snapshot) 相关命令

  • lvcreate -s -L 2G -n mysnap -p r /dev/myvg/mylv : 创建快照。为逻辑卷 /dev/myvg/mylv 创建一个名为 mysnap,大小为 2GB 的快照。 -s 表示创建快照, -p r 表示只读快照(默认)。
  • lvdisplay /dev/myvg/mysnap : 显示快照 mysnap 的详细信息。
  • lvs --snapshots : 显示所有快照信息。
  • lvconvert --merge /dev/myvg/mysnap : 合并快照。将快照 mysnap 合并回原始逻辑卷 /dev/myvg/mylv
  • lvremove /dev/myvg/mysnap : 移除快照 mysnap

六、简单的LVM操作示例

假设您有两块新的硬盘 /dev/sdb/dev/sdc,您想使用LVM创建一个卷组 myvg,并在其中创建一个 20GB 的逻辑卷 mylv,并将其格式化为 ext4 文件系统并挂载到 /mnt/data 目录。操作步骤如下:

1、创建物理卷 (PV)

sudo pvcreate /dev/sdb /dev/sdc

2、 创建卷组 (VG)

sudo vgcreate myvg /dev/sdb /dev/sdc

3、创建逻辑卷 (LV)

sudo lvcreate -L 20G -n mylv myvg

4、格式化逻辑卷

sudo mkfs.ext4 /dev/myvg/mylv

5、创建挂载点目录

sudo mkdir /mnt/data

6、挂载逻辑卷

sudo mount /dev/myvg/mylv /mnt/data

7、设置开机自动挂载 (可选): 编辑 /etc/fstab 文件,添加以下行:

/dev/mapper/myvg-mylv  /mnt/data  ext4  defaults  0  0

七、如果卷组(VG)中的物理卷(PV)损坏可能带来的影响

如果卷组 (VG) 中的某个物理卷 (PV) 损坏了,很有可能会影响到逻辑卷 (LV) 中的文件,影响程度取决于多种因素,包括逻辑卷的配置方式以及损坏的严重程度。

下面详细解释一下各种情况和可能的影响:

1、最直接的影响:数据丢失或损坏

  • 直接数据丢失: 如果损坏的物理卷上恰好存储了逻辑卷的数据,那么这些数据将很可能丢失或损坏。 逻辑卷本质上是分布在物理卷上的,一旦物理卷出现故障,其上存储的数据自然会受到影响。
  • 文件系统错误: 即使部分数据没有直接丢失,物理卷的损坏也可能导致文件系统出现错误,例如文件系统元数据损坏、文件索引错误等。这可能导致逻辑卷上的文件无法访问、无法读取,甚至整个文件系统崩溃。

2、影响程度取决于逻辑卷的配置方式

  • 线性逻辑卷 (Linear LV): 这是最基本的逻辑卷类型。线性逻辑卷只是简单地将物理卷的空间串联起来。 如果线性逻辑卷所使用的任何一个物理卷损坏,整个逻辑卷都会受到影响。 数据丢失的风险非常高,尤其是当损坏的物理卷上存储了逻辑卷的关键数据或文件系统元数据时。 想象一下,如果一个逻辑卷跨越了 PV1, PV2, PV3,而 PV2 损坏了,那么逻辑卷在 PV2 上的数据就无法访问了。

  • 条带化逻辑卷 (Striped LV): 条带化逻辑卷将数据分散存储到多个物理卷上,以提高 I/O 性能。 对于条带化逻辑卷,如果任何一个参与条带化的物理卷损坏,整个条带化逻辑卷通常都会变得不可用,数据丢失的风险极高。 因为条带化逻辑卷的数据是分散存储的,缺少任何一部分数据都会导致整个数据条带不完整,无法重建。 这就像一副扑克牌被抽走了一张,整副牌的顺序和完整性就被破坏了。

  • 镜像逻辑卷 (Mirrored LV): 镜像逻辑卷是LVM提供的一种数据冗余保护机制。 它会将数据同时写入到多个物理卷上,形成数据的副本。 对于镜像逻辑卷,如果一个物理卷损坏,数据不会立即丢失。 逻辑卷仍然可以从镜像卷的另一个(或多个)物理卷上正常读取数据。 但是,此时镜像卷的数据冗余能力会下降,系统会处于“降级 (degraded)”状态。 此时需要尽快更换损坏的物理卷,并重建镜像,以恢复数据的冗余保护。 如果镜像卷的多个副本同时损坏(例如,双副本镜像,两个物理卷都坏了),那么数据仍然会丢失。 镜像卷只能容忍一定数量的物理卷故障。

  • 快照 (Snapshot): 快照是逻辑卷在某个时间点的只读副本。 如果快照的源逻辑卷所使用的物理卷损坏,快照本身也会受到影响,可能无法使用或者数据损坏。 快照的可靠性依赖于源逻辑卷的物理卷的健康状态。

3、损坏的严重程度

  • 轻微损坏 (例如,少量坏扇区): 如果物理卷只是出现轻微的损坏,例如少量坏扇区,可能只有部分数据受到影响,文件系统可能仍然可以挂载,但可能会出现数据读取错误或文件损坏。
  • 严重损坏 (例如,硬盘物理故障,磁头损坏,电路故障): 如果物理卷发生严重的物理故障,例如硬盘完全损坏,那么整个物理卷上的数据都将无法访问。 这将对线性逻辑卷和条带化逻辑卷造成灾难性的影响,对于镜像逻辑卷则会降低数据冗余能力。

4、可能发生的具体情况

  • 文件系统无法挂载: 如果损坏的物理卷上存储了文件系统的关键元数据(例如,超级块、inode 表等),文件系统可能无法正常挂载。 此时逻辑卷上的所有文件都将无法访问。
  • 部分文件丢失或损坏: 如果损坏的物理卷上存储了部分文件的数据,那么这些文件可能会出现损坏,无法正常打开或读取,或者只能读取到部分内容。
  • 系统不稳定或崩溃: 如果损坏的物理卷被系统频繁访问,可能会导致系统I/O错误增加,系统响应变慢,甚至可能导致系统崩溃。
  • 数据不一致: 在某些情况下,即使文件系统仍然可以挂载,但由于数据损坏,可能会出现数据不一致的情况,例如应用程序读取到错误的数据,数据库数据损坏等。

总结:

物理卷损坏对逻辑卷的影响是直接且潜在严重的。 对于线性逻辑卷和条带化逻辑卷,物理卷损坏几乎必然导致数据丢失或逻辑卷不可用。 对于镜像逻辑卷,虽然可以提供一定程度的保护,但也会降低数据冗余能力,需要及时修复。

为了最大限度地降低物理卷损坏带来的风险,建议采取以下措施:

  • 定期监控硬盘健康状态: 使用工具(例如 smartctl)定期检查硬盘的 SMART 状态,及时发现潜在的硬盘故障。
  • 使用 RAID 技术: 在物理卷层面使用 RAID (例如 RAID1, RAID5, RAID6, RAID10) 可以提供硬件级别的冗余保护,即使一个或多个硬盘损坏,数据仍然可以得到保护。 可以将 RAID 阵列作为物理卷加入到卷组中,进一步提高数据可靠性。
  • 使用 LVM 镜像: 对于重要的数据,使用 LVM 镜像逻辑卷可以提供应用层面的数据冗余保护。
  • 定期备份数据: 无论采取何种冗余措施,定期备份数据始终是最重要的数据保护手段。 即使 LVM 和 RAID 都失效,备份仍然是最后一道防线。
  • 热备盘 (Hot Spare): 在 RAID 阵列中使用热备盘,可以在硬盘故障时自动替换,快速重建阵列,缩短数据冗余能力降低的时间。

总而言之,对于 LVM 环境,物理卷的健康至关重要。 需要采取综合措施,从硬件层面到软件层面,多层次地保障数据的安全和可靠性。

八、LVM最佳实践

先使用三块或更多物理硬盘创建 RAID 阵列作为物理卷 (PV),然后再将这些 RAID 阵列组成的 PV 纳入卷组 (VG) 的确是一种非常优秀且强烈推荐的最佳实践,尤其是在对数据可靠性有较高要求的生产环境中。

下面详细地解释一下为什么这是一种最佳实践,并补充一些关键的考量因素:

1、为什么 RAID + LVM 是最佳实践?

这种方案结合了 RAID 和 LVM 两者的优势,从而构建了一个既可靠又灵活的存储架构:

1.RAID 提供硬件级别的冗余和数据保护:
  • 硬件容错: RAID 在物理硬盘层面提供了数据冗余。 例如:
    • RAID 1 (镜像): 即使一块硬盘完全损坏,数据仍然可以从另一块镜像盘上读取,系统可以继续正常运行,数据不会丢失。
    • RAID 5/6 (带奇偶校验的条带化): 允许一到两块硬盘(取决于 RAID 级别)发生故障而不丢失数据。 RAID 控制器或软件可以利用奇偶校验信息重建丢失的数据。
    • RAID 10 (镜像条带化): 结合了 RAID 1 的镜像和 RAID 0 的条带化,提供高性能和高冗余。可以容忍同一镜像组内的一块硬盘损坏,甚至在某些情况下可以容忍更多硬盘损坏。
  • 提高数据可靠性: 通过 RAID,您的数据不再仅仅依赖于单块硬盘的可靠性,而是由整个 RAID 阵列来保障。这大大降低了因单点硬盘故障导致数据丢失的风险。
  • 热备盘: 许多 RAID 配置支持热备盘。当阵列中的一块硬盘故障时,热备盘可以自动顶替上去,并开始重建阵列,最大限度地缩短数据处于降级状态的时间。
2.LVM 提供灵活的存储管理:
  • 动态调整大小: LVM 的核心优势依然保留。您仍然可以动态地扩展或缩小逻辑卷的大小,而无需关心底层 RAID 阵列的复杂性。
  • 快照功能: 您可以使用 LVM 快照功能进行数据备份和回滚,而无需影响在线业务。
  • 统一管理多个 RAID 阵列: 如果您有多个 RAID 阵列,可以将它们都作为 PV 加入到同一个 VG 中,统一管理,形成一个更大的存储池。
  • 简化管理: 管理员只需要管理 LVM 逻辑卷和卷组,而无需直接面对底层的物理硬盘和 RAID 阵列的细节。
3.性能提升 (在某些 RAID 级别下):
  • RAID 0 和 RAID 10: 条带化 RAID 级别 (RAID 0, RAID 10) 可以显著提高数据读写性能,特别是在顺序 I/O 场景下。 虽然 RAID 0 没有冗余,但在 RAID 10 中,性能和冗余可以兼得。
  • RAID 5/6: 虽然 RAID 5/6 的写入性能相比 RAID 0/10 稍逊,但在读取性能方面也有提升,并且提供了良好的冗余保护。

2、实际操作建议和注意事项:

  • 选择合适的 RAID 级别: 根据您的需求选择合适的 RAID 级别。

    • RAID 1: 最高的冗余性,但磁盘利用率较低 (50%),适用于对数据安全至关重要,但容量需求不高的场景。
    • RAID 5: 较好的磁盘利用率和较好的读取性能,可以容忍一块硬盘故障,适用于大多数服务器应用。 但写入性能相对 RAID 10 稍差,重建时间较长。
    • RAID 6: 更高的冗余性,可以容忍两块硬盘故障,数据安全性更高,但成本也更高,写入性能可能比 RAID 5 更低。
    • RAID 10: 最佳的性能和不错的冗余性,但磁盘利用率中等 (50%),适用于需要高性能和高可靠性的数据库、虚拟化等场景。
    • 避免 RAID 0: 除非对数据安全性没有要求,否则不建议在生产环境中使用 RAID 0,因为它没有任何冗余能力。
  • 硬件 RAID vs. 软件 RAID:

    • 硬件 RAID: 使用专门的 RAID 控制器卡来管理 RAID 阵列。 硬件 RAID 通常性能更好,可以将 RAID 计算任务从 CPU 上卸载下来,但成本较高,并且对硬件的依赖性较强。
    • 软件 RAID (mdadm): 使用 Linux 内核中的 mdadm 工具通过软件方式实现 RAID。 软件 RAID 的成本较低,灵活性较高,但会占用 CPU 资源,性能可能不如硬件 RAID。 对于现代多核 CPU 的服务器,软件 RAID 的性能通常也足够满足大多数应用需求。
  • 物理硬盘数量:

    • RAID 1: 至少需要 2 块硬盘。
    • RAID 5: 至少需要 3 块硬盘 (更常见的是 4 块或更多)。
    • RAID 6: 至少需要 4 块硬盘 (更常见的是 5 块或更多)。
    • RAID 10: 至少需要 4 块硬盘 (必须是偶数,例如 4, 6, 8 ...)。
    • 越多硬盘,冗余性越高 (对于 RAID 5/6/10): 例如,使用更多硬盘的 RAID 6 阵列可以容忍更多硬盘故障。
  • 创建 RAID 阵列: 根据您选择的 RAID 类型和使用的工具 (硬件 RAID 卡配置界面或 mdadm 命令),创建 RAID 阵列。 创建完成后,操作系统会将 RAID 阵列识别为一个块设备 (例如 /dev/md0 或通过硬件 RAID 卡识别的设备)。

  • 创建 PV, VG, LV: 将 RAID 阵列创建的块设备作为物理卷 (PV) 初始化,然后创建卷组 (VG),最后在卷组中创建逻辑卷 (LV),步骤与之前讲解的 LVM 操作相同。

3、一个简单的 RAID 5 + LVM 的示例 (软件 RAID - mdadm):

假设您有三块硬盘 /dev/sdb, /dev/sdc, /dev/sdd,希望创建 RAID 5 阵列,并在此基础上创建 LVM。

1.创建 RAID 5 阵列 (使用 mdadm):
sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
    • --create /dev/md0: 创建 RAID 阵列,设备名为 /dev/md0
    • --level=5: 指定 RAID 级别为 RAID 5。
    • --raid-devices=3: 指定参与 RAID 的硬盘数量为 3。
    • /dev/sdb /dev/sdc /dev/sdd: 指定参与 RAID 的硬盘设备。
2.创建物理卷 (PV) (使用 RAID 阵列 /dev/md0):
sudo pvcreate /dev/md0
3.创建卷组 (VG): 
sudo vgcreate myvg /dev/md0
4.创建逻辑卷 (LV): 例如创建一个 20GB 的逻辑卷 mylv
sudo lvcreate -L 20G -n mylv myvg
 5.格式化和挂载逻辑卷: 步骤与之前相同。

总结:

将 RAID 和 LVM 结合使用,是在数据可靠性、存储灵活性和管理效率之间取得良好平衡的最佳实践方案。 对于任何对数据安全有要求的服务器和存储系统,都强烈建议采用这种架构。 虽然初期配置可能会稍微复杂一些,成本也可能略有增加 (主要是硬盘成本),但从长远来看,它能提供更高的数据保障和更便捷的存储管理,是绝对值得的投入。 当然,对于一些非关键的应用场景或者个人使用,简单的 LVM 方案可能也足够满足需求。 关键在于根据实际需求和重要程度来权衡选择最合适的存储方案。

;