67.7. 配置 RAID 逻辑卷
您可以使用逻辑卷管理器(LVM)创建和管理 Redundant Array of Independent Disks (RAID)卷。LVM 支持 RAID 0、1、4、5、6 和 10。LVM RAID 卷有以下特征:
- LVM 会创建和管理利用多设备 (MD) 内核驱动程序的 RAID 逻辑卷。
- 您可以从阵列中临时分割 RAID1 镜像,并在之后将其合并到阵列中。
- LVM RAID 卷支持快照。
- RAID 逻辑卷不是集群感知的。您可以只在一台机器中创建和激活 RAID 逻辑卷,但不能在多台机器中同时激活它们。
- 
							当您创建 RAID 逻辑卷(LV)时,LVM 会创建一个元数据子卷,它是阵列中的每个数据或奇偶校验子卷的大小的一个区块。例如,创建一个双向 RAID1 阵列会导致两个元数据子卷(lv_rmeta_0和lv_rmeta_1)以及两个数据子卷(lv_rimage_0和lv_rimage_1)。
- 在 RAID LV 中添加完整性可减少或防止软损坏。
67.7.1. RAID 级别和线性支持
以下是 RAID 支持的配置,包括级别 0、1、4、5、6、10 和线性:
- 0 级
- RAID 级别 0,通常称为条带化的数据映射技术。这意味着,要写入阵列的数据被分成条块,并在阵列的成员磁盘中写入,这样可以在成本低的情况下提供高的 I/O 性能,但不提供冗余。 - RAID 级别 0 的实现只在成员设备间条状分布到阵列中最小设备的大小。就是说,如果您有多个设备,它们的大小稍有不同,那么每个设备的大小都被视为与最小设备的大小相同。因此,级别 0 阵列的常见存储容量是所有磁盘的总容量。如果成员磁盘具有不同的大小,RAID0 将使用可用区使用这些磁盘的所有空间。 
- 1 级
- RAID 级别 1 或称为镜像(mirroring),通过将相同数据写入阵列的每个磁盘来提供冗余,在每个磁盘上保留"镜像"副本。因为其简单且数据高度可用,RAID 1 仍然被广泛使用。级别 1 需要两个或者多个磁盘,它提供了很好的数据可靠性,提高了需要读取的应用程序的性能,但是成本相对高。 - 为了实现数据可靠性,需要向阵列中的所有磁盘写入相同的信息,所以 RAID 1 的成本会很高。与基于奇偶校验的其他级别(如级别 5)相比,空间的利用效率较低。然而,对空间利用率的牺牲提供了高性能:基于奇偶校验的 RAID 级别会消耗大量 CPU 资源以便获得奇偶校验,而 RAID 级别 1 只是一次向多个 RAID 成员中写入同样数据,其对 CPU 的消耗较小。因此,在使用软件 RAID 的系统中,或系统中有其他操作需要大量使用 CPU 资源时,RAID 1 可能会比使用基于奇偶校验的 RAID 级别的性能更好。 - 级别 1 阵列的存储容量等于硬件 RAID 中最小镜像硬盘或者软件 RAID 中最小镜像分区的容量相同。级别 1 所提供的冗余性是所有 RAID 级别中最高的,因为阵列只需要在有一个成员可以正常工作的情况下就可以提供数据。 
- 级别 4
- 级别 4 使用单一磁盘驱动器中的奇偶校验来保护数据。奇偶校验信息根据阵列中其余成员磁盘的内容计算。然后当阵列中的一个磁盘失败时,这个信息就可以被用来重建数据。然后,在出现问题的磁盘被替换前,使用被重建的数据就可以满足 I/O 的请求。在磁盘被替换后,可以在上面重新生成数据。 - 因为专用奇偶校验磁盘代表所有写交易到 RAID 阵列的固有瓶颈,因此在没有写回缓存等技术的情况下,级别 4 很少被使用。或者在特定情况下,系统管理员有意设计具有这个瓶颈的软件 RAID 设备,比如当阵列使用数据填充后没有写入事务的数组。因此,Anaconda 中并没有提供 RAID 4 这个选项。但是,如果需要,用户可以手动创建它。 - 硬件 RAID 4 的存储容量等于分区数量减一乘以最小成员分区的容量。RAID 4 阵列的性能是非对称的,即读的性能会好于写的性能。这是因为,写操作会在生成奇偶校验时消耗额外的 CPU 和主内存带宽,然后在将实际数据写入磁盘时也会消耗额外的总线带宽,因为您不仅写数据,而且还写奇偶校验。读操作只需要读取数据而不是奇偶校验,除非该阵列处于降级状态。因此,在正常操作条件下,对于相同数量的数据传输,读操作会对驱动器和计算机总线产生较少的流量。 
- 5 级
- 这是最常见的 RAID 类型。通过在一个阵列的所有成员磁盘中分布奇偶校验,RAID 5 解除了级别 4 中原有的写入瓶颈。唯一性能瓶颈是奇偶校验计算过程本身。现代 CPU 可以非常快速地计算奇偶校验。但是,如果您在 RAID 5 阵列中有大量磁盘,以便在所有设备间合并数据传输速度非常高,则奇偶校验计算可能会成为瓶颈。 - 5 级具有非对称性能,读性能显著提高。RAID 5 的存储容量的计算方法与级别 4 的计算方法是一样的。 
- 级别 6
- 如果数据的冗余性和保护性比性能更重要,且无法接受 RAID 1 的空间利用率低的问题,则通常会选择使用级别 6。级别 6 使用一个复杂的奇偶校验方式,可以在阵列中出现任意两个磁盘失败的情况下进行恢复。因为使用的奇偶校验方式比较复杂,软件 RAID 设备会对 CPU 造成较大负担,同时对写操作造成更大的负担。因此,与级别 4 和 5 相比,级别 6 的性能不对称性更严重。 - RAID 6 阵列的总容量与 RAID 5 和 4 类似,但您必须从额外奇偶校验存储空间的设备数中减去 2 个设备(而不是 1 个)。 
- 级别 10
- 这个 RAID 级别将级别 0 的性能优势与级别 1 的冗余合并。它还可减少在具有多于两个设备的 1 级阵列中发现的一些空间。对于 10 级,可以创建一个 3 个驱动器阵列,来仅存储每块数据的 2 个副本,然后允许整个阵列的大小为最小设备的 1.5 倍,而不是只等于最小设备(这与 3 设备1 级阵列类似)。与 RAID 级别 6 相比,计算奇偶校验对 CPU 的消耗较少,但空间效率较低。 - 在安装过程中,不支持创建 RAID 10。您可在安装后手动创建。 
- 线性 RAID
- 线性 RAID 是创建更大的虚拟驱动器的一组驱动器。 - 在线性 RAID 中,块会被从一个成员驱动器中按顺序分配,只有在第一个完全填充时才会进入下一个驱动器。这个分组方法不会提供性能优势,因为 I/O 操作不太可能在不同成员间同时进行。线性 RAID 也不提供冗余性,并会降低可靠性。如果有任何一个成员驱动器失败,则无法使用整个阵列,数据可能会丢失。该容量是所有成员磁盘的总量。 
67.7.2. LVM RAID 片段类型
						要创建 RAID 逻辑卷,您可以使用 lvcreate 命令的 --type 参数指定 RAID 类型。对于大多数用户,指定五个可用主类型之一 raid1、raid4、raid5、raid6 和 raid10 应足够。
					
下表描述了可能的 RAID 片段类型。
| 片段类型 | 描述 | 
|---|---|
| 
										 | 
										RAID1 镜像。当您指定  | 
| 
										 | RAID4 专用奇偶校验磁盘。 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 
 | 
| 
										 | 条带。RAID0 以条带大小的单位在多个数据子卷间分布逻辑卷数据。这可以提高性能。如果任何数据子卷失败,逻辑卷数据将会丢失。 | 
67.7.3. 创建 RAID0 的参数
						您可以使用 lvcreate --type raid0[meta] --stripes _Stripes --stripesize StripeSize VolumeGroup [PhysicalVolumePath] 命令创建 RAID0 条状逻辑卷。
					
下表描述了不同的参数,您可以在创建 RAID0 条状逻辑卷时使用它们。
| 参数 | 描述 | 
|---|---|
| 
										 | 
										指定  | 
| 
										 | 指定在其中分割逻辑卷的设备数。 | 
| 
										 | 以 KB 为单位指定每个条的大小。这是在移动到下一个设备前写入一个设备的数据量。 | 
| 
										 | 指定要使用的卷组。 | 
| 
										 | 指定要使用的设备。如果没有指定,LVM 将选择 Stripes 选项指定的设备数,每个条带一个。 | 
67.7.4. 创建 RAID 逻辑卷
						您可以根据您为 -m 参数指定的值,来创建具有不同副本数的 RAID1 阵列。同样,您可以使用 -i 参数为 RAID 0、4、5、6 和 10 逻辑卷指定条带数。您还可以使用 -I 参数指定条带大小。下面的步骤描述了创建不同类型的 RAID 逻辑卷的不同方法。
					
流程
- 创建一个双向 RAID。以下命令在卷组 my_vg 中创建一个名为 my_lv 的双向 RAID1 阵列,大小为 1G : - lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg - # lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg Logical volume "my_lv" created.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用条带创建 RAID5 阵列。以下命令在卷组 my_vg 中创建具有三个条带的 RAID5 阵列和一个隐式奇偶校验驱动器,名为 my_lv,大小为 1G。请注意,您可以指定与 LVM 条带卷类似的条带数。自动添加正确奇偶校验驱动器数。 - lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg - # lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用条带创建 RAID6 阵列。以下命令在卷组 my_vg 中创建具有三个 3 个条带的 RAID6 阵列,以及名为 my_lv 的两个隐式奇偶校验驱动器,大小为 1G : - lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg - # lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 显示 LVM 设备 my_vg/my_lv,它是一个双向 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.5. 使用 storage RHEL 系统角色配置一个带有 RAID 的 LVM 池
						使用 storage 系统角色,您可以使用 Red Hat Ansible Automation Platform 在 RHEL 上配置一个带有 RAID 的 LVM 池。您可以使用可用参数建立一个 Ansible playbook,来配置带有 RAID 的 LVM 池。
					
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
- 
								您用于连接到受管节点的帐户对它们具有 sudo权限。
流程
- 创建一个包含以下内容的 playbook 文件,如 - ~/playbook.yml:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 有关 playbook 中使用的所有变量的详情,请查看控制节点上的 - /usr/share/ansible/roles/rhel-system-roles.storage/README.md文件。
- 验证 playbook 语法: - ansible-playbook --syntax-check ~/playbook.yml - $ ansible-playbook --syntax-check ~/playbook.yml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。 
- 运行 playbook: - ansible-playbook ~/playbook.yml - $ ansible-playbook ~/playbook.yml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 验证您的池是否在 RAID 上: - ansible managed-node-01.example.com -m command -a 'lsblk' - # ansible managed-node-01.example.com -m command -a 'lsblk'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.6. 创建 RAID0 条带化逻辑卷
RAID0 逻辑卷以条的大小为单位,将逻辑卷数据分散到多个数据子卷中。下面的步骤创建了一个名为 mylv 的 LVM RAID0 逻辑卷,该逻辑卷在磁盘间条状分布数据。
先决条件
- 您已创建了三个或者多个物理卷。有关创建物理卷的更多信息,请参阅 创建 LVM 物理卷。
- 您已创建了卷组。如需更多信息,请参阅创建 LVM 卷组。
流程
- 从现有卷组中创建 RAID0 逻辑卷。以下命令从卷组 myvg 中创建 RAID0 卷 mylv,大小为 2G,有三个条带,条带大小为 4kB : - lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg - # lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB(513 extents). Logical volume "mylv" created.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 RAID0 逻辑卷中创建文件系统。以下命令在逻辑卷中创建 ext4 文件系统: - mkfs.ext4 /dev/my_vg/mylv - # mkfs.ext4 /dev/my_vg/mylv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 挂载逻辑卷并报告文件系统磁盘空间使用情况: - mount /dev/my_vg/mylv /mnt df - # mount /dev/my_vg/mylv /mnt # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/my_vg-mylv 2002684 6168 1875072 1% /mnt- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 查看创建的 RAID0 剥离的逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.7. 使用 storage RHEL 系统角色为 RAID LVM 卷配置条带大小
						使用 storage 系统角色,您可以使用 Red Hat Ansible Automation Platform 在 RHEL 上为 RAID LVM 卷配置条带大小。您可以使用可用参数建立一个 Ansible playbook,来配置带有 RAID 的 LVM 池。
					
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
- 
								您用于连接到受管节点的帐户对它们具有 sudo权限。
流程
- 创建一个包含以下内容的 playbook 文件,如 - ~/playbook.yml:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 有关 playbook 中使用的所有变量的详情,请查看控制节点上的 - /usr/share/ansible/roles/rhel-system-roles.storage/README.md文件。
- 验证 playbook 语法: - ansible-playbook --syntax-check ~/playbook.yml - $ ansible-playbook --syntax-check ~/playbook.yml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 请注意,这个命令只验证语法,不能防止错误的、但有效的配置。 
- 运行 playbook: - ansible-playbook ~/playbook.yml - $ ansible-playbook ~/playbook.yml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 验证条带大小是否被设置为所需的大小: - ansible managed-node-01.example.com -m command -a 'lvs -o+stripesize /dev/my_pool/my_volume' - # ansible managed-node-01.example.com -m command -a 'lvs -o+stripesize /dev/my_pool/my_volume'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.8. 软数据崩溃
数据存储中的软崩溃意味着,从存储设备中检索的数据与写入到那个设备中的数据不同。错误的数据可以在存储设备中无限期存在。在检索并尝试使用此数据之前,您可能不会发现此损坏数据。
根据配置类型,一个独立磁盘的冗余阵列 (RAID) 逻辑卷 (LV) 可防止设备失败时数据丢失。如果由 RAID 阵列组成的设备失败,可以从 RAID LV 一部分的其他设备中恢复数据。但是 RAID 配置不能保证数据本身的完整性。软崩溃、静默崩溃、软错误和静默错误用来描述,即使系统和软件仍继续按预期工作,但数据已损坏的情况的术语。
当创建一个具有 DM 完整性或在现有 RAID LV 中添加完整性的 RAID LV 时,请考虑以下点:
- 完整性元数据需要额外的存储空间。对于每个 RAID 镜像,每个 500MB 数据都需要 4MB 的额外存储空间,因为校验和被添加到数据中。
- 添加 DM 完整性会因为访问数时延迟而影响到性能,有些 RAID 的配置会比其他 RAID 配置受到的影响更大。RAID1 配置通常比 RAID5 或其变体提供更好的性能。
- RAID 完整性块的大小也会影响性能。配置更大的 RAID 完整块可提供更好的性能。但是,一个较小的 RAID 完整性块可以提供更好的兼容性。
- 
								完整性有两种模式:位图(bitmap)或日志(journal)。bitmap完整性模式通常比journal模式提供更好的性能。
如果您遇到性能问题,请使用带有完整性的 RAID1,或者测试特定 RAID 配置的性能以确保它满足您的要求。
67.7.9. 创建带有 DM 完整性的 RAID 逻辑卷
当您创建一个具有设备映射器(DM)完整性的 RAID LV 或者在现有 RAID 逻辑卷(LV)中添加完整性时,它会降低因为软损坏而丢失数据的风险。在使用 LV 前,等待完整性同步和 RAID 元数据完成。否则,在后台进行的初始化可能会影响 LV 的性能。
设备映射程序(DM)完整性与 RAID 级别 1、4、5、6 和 10 一起使用,用于缓解或防止软崩溃导致数据丢失。RAID 层可确保数据没有破坏的副本可以修复软崩溃错误。
流程
- 创建具有 DM 完整性的 RAID LV。以下示例在 my_vg 卷组中创建一个名为 test-lv 的 RAID LV,可用大小为 256M 和 RAID 级别 1: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 要在现有 RAID LV 中添加 DM 完整性,请使用以下命令: - lvconvert --raidintegrity y my_vg/test-lv - # lvconvert --raidintegrity y my_vg/test-lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在 RAID LV 中添加完整性限制了您可以在那个 RAID LV 上执行的一些操作。 
- 可选:在执行某些操作前删除完整性。 - lvconvert --raidintegrity n my_vg/test-lv - # lvconvert --raidintegrity n my_vg/test-lv Logical volume my_vg/test-lv has removed integrity.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 查看有关添加的 DM 完整性的信息: - 查看在 my_vg 卷组中创建的 test-lv RAID LV 的信息: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 下面描述了此输出的不同选项: - g属性
- 
													它是 Attr 列下的属性列表,表示 RAID 镜像使用完整性。完整性将校验和存储在 _imetaRAID LV 中。
- Cpy%Sync列
- 它指示顶层 RAID LV 和每个 RAID 镜像的同步进度。
- RAID 镜像
- 
													它通过 raid_image_N在 LV 列中指示。
- LV列
- 它确保对顶层 RAID LV 和每个 RAID 镜像显示 100% 同步进度。
 
- 显示每个 RAID LV 的类型: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 有一个增量的计数器,它计算在每个 RAID 镜像上检测到的不匹配数。查看 my_vg/test-lv 下的 - rimage_0检测到的数据不匹配:- lvs -o+integritymismatches my_vg/test-lv_rimage_0 - # lvs -o+integritymismatches my_vg/test-lv_rimage_0 LV VG Attr LSize Origin Cpy%Sync IntegMismatches [test-lv_rimage_0] my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 100.00 0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在这个示例中,完整性还没有检测到任何不匹配的数据,因此 - IntegMismatches计数器会显示 0 (0)。
- 查看 - /var/log/messages日志文件中的数据完整性信息,如下例所示:- 例 67.1. 内核消息日志中的 dm-integrity 不匹配示例 - device-mapper: integrity: dm-12:校验和在扇区 0x24e7 时失败 - 例 67.2. 来自内核消息日志的 dm-integrity 数据更正示例 - md/raid1:mdX: 读取错误修正(8 扇区位在 dm-16 上 的 9448) 
 
67.7.10. 将 RAID 逻辑卷转换为另一个 RAID 级别
LVM 支持 RAID 接管,这意味着将 RAID 逻辑卷从一个 RAID 级别转换为另一个 RAID 级别,例如从 RAID 5 转换到 RAID 6。您可以更改 RAID 级别,以增加或减少设备故障的恢复能力。
流程
- 创建 RAID 逻辑卷: - lvcreate --type raid5 -i 3 -L 500M -n my_lv my_vg - # lvcreate --type raid5 -i 3 -L 500M -n my_lv my_vg Using default stripesize 64.00 KiB. Rounding size 500.00 MiB (125 extents) up to stripe boundary size 504.00 MiB (126 extents). Logical volume "my_lv" created.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看 RAID 逻辑卷: - lvs -a -o +devices,segtype - # lvs -a -o +devices,segtype LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type my_lv my_vg rwi-a-r--- 504.00m 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0),my_lv_rimage_3(0) raid5 [my_lv_rimage_0] my_vg iwi-aor--- 168.00m /dev/sda(1) linear- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 RAID 逻辑卷转换为另一个 RAID 级别: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:如果这个命令提示重复转换,请运行: - lvconvert --type raid6 my_vg/my_lv - # lvconvert --type raid6 my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 查看具有转换的 RAID 级别的 RAID 逻辑卷: - lvs -a -o +devices,segtype - # lvs -a -o +devices,segtype LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type my_lv my_vg rwi-a-r--- 504.00m 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0),my_lv_rimage_3(0),my_lv_rimage_4(0) raid6 [my_lv_rimage_0] my_vg iwi-aor--- 172.00m /dev/sda(1) linear- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.11. 将线性设备转换为 RAID 逻辑卷
						您可以将现有的线性逻辑卷转换为 RAID 逻辑卷。要执行此操作,请使用 lvconvert 命令的 --type 参数。
					
						RAID 逻辑卷由元数据和数据子卷对组成。当您将线性设备转换为 RAID1 阵列时,它会创建一个新的元数据子卷,并将其与线性卷所在的同一物理卷中的原始逻辑卷相关联。其他镜像添加到 metadata/data 子卷对中。如果无法将与原始逻辑卷配对的元数据镜像放在同一个物理卷上,则 lvconvert 将失败。
					
流程
- 查看需要转换的逻辑卷设备: - lvs -a -o name,copy_percent,devices my_vg - # lvs -a -o name,copy_percent,devices my_vg LV Copy% Devices my_lv /dev/sde1(0)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将线性逻辑卷转换为 RAID 设备。以下命令将卷组 __my_vg 中的线性逻辑卷 my_lv 转换为双向 RAID1 阵列: - lvconvert --type raid1 -m 1 my_vg/my_lv - # lvconvert --type raid1 -m 1 my_vg/my_lv Are you sure you want to convert linear LV my_vg/my_lv to raid1 with 2 images enhancing resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 确定逻辑卷是否转换为 RAID 设备: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.12. 将 LVM RAID1 逻辑卷转换为 LVM 线性逻辑卷
						您可以将现有的 RAID1 LVM 逻辑卷转换为 LVM 线性逻辑卷。要执行此操作,请使用 lvconvert 命令并指定 -m0 参数。这会删除所有 RAID 数据子卷以及构成 RAID 阵列的所有 RAID 元数据子卷,保留顶层 RAID1 镜像作为线性逻辑卷。
					
流程
- 显示现有 LVM RAID1 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将现有的 RAID1 LVM 逻辑卷转换为 LVM 线性逻辑卷。以下命令将 LVM RAID1 逻辑卷 my_vg/my_lv 转换为 LVM 线性设备: - lvconvert -m0 my_vg/my_lv - # lvconvert -m0 my_vg/my_lv Are you sure you want to convert raid1 LV my_vg/my_lv to type linear losing all resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 当您将 LVM RAID1 逻辑卷转换成 LVM 线性卷,,您可以指定要删除的物理卷。在以下示例中, - lvconvert命令指定要删除 /dev/sde1,保留 /dev/sdf1 作为组成线性设备的物理卷:- lvconvert -m0 my_vg/my_lv /dev/sde1 - # lvconvert -m0 my_vg/my_lv /dev/sde1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 验证 RAID1 逻辑卷是否转换为 LVM 线性设备: - lvs -a -o name,copy_percent,devices my_vg - # lvs -a -o name,copy_percent,devices my_vg LV Copy% Devices my_lv /dev/sdf1(1)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.13. 将镜像 LVM 设备转换为 RAID1 逻辑卷
						您可以将片段类型为 mirror 的现有镜像 LVM 设备转换为 RAID1 LVM 设备。要执行此操作,请使用带有 --type raid1 参数的 lvconvert 命令。这会将名为 mimage 的镜像子卷重命名为名为 rimage 的 RAID 子卷。
					
						另外,它还会删除镜像日志,并为同一物理卷上的数据子卷创建名为 rmeta 的元数据子卷,来作为响应的数据子卷。
					
流程
- 查看镜像逻辑卷 my_vg/my_lv 的布局: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将镜像逻辑卷 my_vg/my_lv 转换为 RAID1 逻辑卷: - lvconvert --type raid1 my_vg/my_lv - # lvconvert --type raid1 my_vg/my_lv Are you sure you want to convert mirror LV my_vg/my_lv to raid1 type? [y/n]: y Logical volume my_vg/my_lv successfully converted.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 验证镜像逻辑卷是否转换为 RAID1 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.14. 更改现有 RAID1 设备中的镜像数
您可以更改现有 RAID1 阵列中的镜像数量,类似于更改 LVM 镜像实现中的镜像数量。
						当您使用 lvconvert 命令将镜像添加到 RAID1 逻辑卷时,您可以执行以下操作:
					
- 指定生成的设备的镜像总数,
- 要添加到该设备的镜像数量,以及
- 可以指定新元数据/数据镜像对所在的物理卷。
流程
- 显示 LVM 设备 my_vg/my_lv,它是一个双向 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 元数据子卷(名为 - rmeta)始终与它们的数据子卷- rimage存在于同一物理设备上。元数据/数据子卷对不会与 RAID 阵列中另一元数据/数据子卷对创建在同一物理卷上(除非您指定了- --alloc anywhere)。
- 将双向 RAID1 逻辑卷 my_vg/my_lv 转换为三向 RAID1 逻辑卷: - lvconvert -m 2 my_vg/my_lv - # lvconvert -m 2 my_vg/my_lv Are you sure you want to convert raid1 LV my_vg/my_lv to 3 images enhancing resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下是更改现有 RAID1 设备中的镜像数的几个示例: - 您还可以在 RAID 中添加镜像时要使用的物理卷。以下命令通过指定用于阵列的物理卷 /dev/sdd1 ,将双向 RAID1 逻辑卷 my_vg/my_lv 转换为三向 RAID1 逻辑卷: - lvconvert -m 2 my_vg/my_lv /dev/sdd1 - # lvconvert -m 2 my_vg/my_lv /dev/sdd1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将三向 RAID1 逻辑卷转换成双向 RAID1 逻辑卷: - lvconvert -m1 my_vg/my_lv - # lvconvert -m1 my_vg/my_lv Are you sure you want to convert raid1 LV my_vg/my_lv to 2 images reducing resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 通过指定物理卷 /dev/sde1,其中包含要删除的镜像,将三向 RAID1 逻辑卷转换成双向 RAID1 逻辑卷: - lvconvert -m1 my_vg/my_lv /dev/sde1 - # lvconvert -m1 my_vg/my_lv /dev/sde1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 另外,当您删除镜像及其关联的元数据子卷时,任何高数字镜像都会被切换以填充插槽。如果您从包含 - lv_rimage_0、- lv_rimage_1和- lv_rimage_2的三向 RAID1 阵列中删除- lv_rimage_1,则会产生一个由- lv_rimage_0和- lv_rimage_1组成的 RAID1 阵列。- lv_rimage_2将会被重命名,并接管空插槽,成为- lv_rimage_1。
 
验证
- 在更改现有 RAID1 设备中的镜像数后查看 RAID1 设备: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.15. 将 RAID 镜像分离为一个独立的逻辑卷
您可以分离 RAID 逻辑卷的镜像形成新的逻辑卷。和您从现有 RAID1 逻辑卷中删除 RAID 镜像一样,当您从设备的中间部分删除 RAID 数据子卷(及其关联的元数据子卷)时,会使用数字高的镜像来填充空的位置。因此,构成 RAID 阵列的逻辑卷上的索引号将是一个完整的整数序列。
如果 RAID1 阵列还没有同步,您就无法分离 RAID 镜像。
流程
- 显示 LVM 设备 my_vg/my_lv,它是一个双向 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 RAID 镜像分成一个单独的逻辑卷: - 以下示例将一个双向 RAID1 逻辑卷 my_lv 分成两个线性逻辑卷 my_lv 和 new: - lvconvert --splitmirror 1 -n new my_vg/my_lv - # lvconvert --splitmirror 1 -n new my_vg/my_lv Are you sure you want to split raid1 LV my_vg/my_lv losing all resilience? [y/n]: y- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下示例将一个三向 RAID1 逻辑卷 my_lv 分成一个双向 RAID1 逻辑卷 my_lv 以及一个线性逻辑卷 new : - lvconvert --splitmirror 1 -n new my_vg/my_lv - # lvconvert --splitmirror 1 -n new my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
验证
- 在分离 RAID 逻辑卷的镜像后查看逻辑卷: - lvs -a -o name,copy_percent,devices my_vg - # lvs -a -o name,copy_percent,devices my_vg LV Copy% Devices my_lv /dev/sde1(1) new /dev/sdf1(1)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.16. 分割和合并 RAID 镜像
						您可以使用 lvconvert 命令的 --trackchanges 参数(使用 --trackchanges 参数和 lvconvert 命令的 --splitmirrors 参数),临时分离 RAID1 阵列的镜像以进行只读使用。这可让您以后将镜像合并到阵列中,同时只重新同步那些自镜像被分割后更改的阵列的部分。
					
						当您使用 --trackchanges 参数分离 RAID 镜像时,您可以指定要分离哪个镜像,但您不能更改要分离的卷的名称。另外,得到的卷有以下限制:
					
- 创建的新卷为只读。
- 不能调整新卷的大小。
- 不能重命名剩余的数组。
- 不能调整剩余的数组大小。
- 您可以独立激活新卷和剩余的阵列。
您可以合并分离的镜像。当您合并镜像时,只有自镜像分割后更改的阵列部分会被重新同步。
流程
- 创建 RAID 逻辑卷: - lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg - # lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg Logical volume "my_lv" created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:查看创建的 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 从创建的 RAID 逻辑卷中分割镜像,并跟踪对剩余的阵列的更改: - lvconvert --splitmirrors 1 --trackchanges my_vg/my_lv - # lvconvert --splitmirrors 1 --trackchanges my_vg/my_lv my_lv_rimage_2 split from my_lv for read-only purposes. Use 'lvconvert --merge my_vg/my_lv_rimage_2' to merge back into my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:在分割镜像后查看逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将卷合并回阵列中: - lvconvert --merge my_vg/my_lv_rimage_1 - # lvconvert --merge my_vg/my_lv_rimage_1 my_vg/my_lv_rimage_1 successfully merged back into my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 查看合并的逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.17. 将 RAID 失败策略设置为 allocate
						您可以在 /etc/lvm/lvm.conf 文件中将 raid_fault_policy 字段设置为 allocate 参数。使用这个首选项,系统会尝试使用卷组中的备用设备替换失败的设备。如果没有备用设备,系统日志会包含此信息。
					
流程
- 查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果 /dev/sdb 设备失败,请查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果 /dev/sdb 设备失败,您还可以查看系统日志中的错误消息。 
- 在 - lvm.conf文件中,将- raid_fault_policy字段设置为- allocate:- vi /etc/lvm/lvm.conf - # vi /etc/lvm/lvm.conf raid_fault_policy = "allocate"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如果将 - raid_fault_policy设置为- allocate,但没有备用设备,则分配会失败,逻辑卷保留原样。如果分配失败,您可以使用- lvconvert --repair命令修复和替换失败的设备。如需更多信息,请参阅 在逻辑卷中替换失败的 RAID 设备。
验证
- 验证失败的设备现在是否被卷组中的新设备替换了: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 即使失败的设备现在被替换了,但显示仍然表示 LVM 没有找到失败的设备,因为该设备还没有从卷组中删除。您可以通过执行 - vgreduce --removemissing my_vg命令从卷组中删除失败的设备。
67.7.18. 将 RAID 失败策略设置为 warn
						您可以在lvm.conf 文件中将 raid_fault_policy 字段设置为 warn 参数。有了这个首选项,系统会在系统日志中添加了一条指示失败设备的警告。根据警告,您可以确定后续步骤。
					
						默认情况下,lvm.conf 中 raid_fault_policy 字段的值是 warn。
					
流程
- 查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 lvm.conf 文件中将 raid_fault_policy 字段设置为 warn : - vi /etc/lvm/lvm.conf - # vi /etc/lvm/lvm.conf # This configuration option has an automatic default value. raid_fault_policy = "warn"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果 /dev/sdb 设备失败,请查看系统日志以显示错误消息: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 如果 /dev/sdb 设备失败,系统日志会显示错误消息。在这种情况下,LVM 将不会自动尝试通过替换其中一个镜像修复 RAID 设备。如果设备失败,您可以使用 - lvconvert命令的- --repair参数替换该设备。如需更多信息,请参阅 在逻辑卷中替换失败的 RAID 设备。
67.7.19. 替换正常工作的 RAID 设备
						您可以使用 lvconvert 命令的 --replace 参数替换逻辑卷中正常工作的 RAID 设备。
					
如果 RAID 设备失败,以下命令无法工作。
先决条件
- RAID 设备没有失败。
流程
- 创建 RAID1 阵列: - lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg - # lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg Logical volume "my_lv" created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检查创建的 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 根据您的要求,使用以下任一方法替换 RAID 设备: - 通过指定要替换的物理卷来替换 RAID1 设备: - lvconvert --replace /dev/sdb2 my_vg/my_lv - # lvconvert --replace /dev/sdb2 my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 通过指定要用于替换的物理卷来替换 RAID1 设备: - lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1 - # lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 通过指定多个 replace 参数来一次替换多个 RAID 设备: - lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv - # lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
验证
- 在指定要替换的物理卷后检查 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在指定要用于替换的物理卷后检查 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 一次替换多个 RAID 设备后检查 RAID1 阵列: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.20. 在逻辑卷中替换失败的 RAID 设备
RAID 与传统的 LVM 镜像不同。如果是 LVM 镜像,请删除失败的设备。否则,当 RAID 阵列继续使用失败的设备运行时,镜像逻辑卷将挂起。对于 RAID1 以外的 RAID 级别,删除设备意味着转换到较低 RAID 级别,例如从 RAID6 转换到 RAID5,或者从 RAID4 或 RAID5 转换到 RAID0。
						您可以使用 lvconvert 命令的 --repair 参数替换 RAID 逻辑卷中作为物理卷的故障设备,而不是删除失败的设备并分配一个替换品。
					
先决条件
- 卷组包含一个物理卷,它有足够的可用容量替换失败的设备。 - 如果卷组中没有有足够可用扩展的物理卷,请使用 - vgextend程序添加一个新的、足够大的物理卷。
流程
- 查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 /dev/sdc 设备失败后查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 替换失败的设备: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:手动指定替换失败设备的物理卷: - lvconvert --repair my_vg/my_lv replacement_pv - # lvconvert --repair my_vg/my_lv replacement_pv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用替换检查逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在您从卷组中删除失败的设备前,LVM 工具仍然指示 LVM 无法找到失败的设备。 
- 从卷组中删除失败的设备: - vgreduce --removemissing my_vg - # vgreduce --removemissing my_vg- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 删除失败的设备后查看可用的物理卷: - pvscan - # pvscan PV /dev/sde1 VG rhel_virt-506 lvm2 [<7.00 GiB / 0 free] PV /dev/sdb1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free] PV /dev/sdd1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free] PV /dev/sdd1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 替换失败的设备后检查逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.21. 检查 RAID 逻辑卷中数据的一致性
						LVM 提供对 RAID 逻辑卷的清理支持。RAID 清理是读取阵列中的所有数据和奇偶校验块的过程,并检查它们是否是分配的。lvchange --syncaction repair 命令对阵列启动后台同步操作。
					
流程
- 可选:通过设置以下选项之一来控制 RAID 逻辑卷初始化的速率: - 
										--maxrecoveryrate Rate[bBsSkKmMgG]为 RAID 逻辑卷设置最大恢复率,使其不会驱逐正常的 I/O 操作。
- --minrecoveryrate Rate[bBsSkKmMgG]设置 RAID 逻辑卷的最小恢复率,以确保 sync 操作的 I/O 达到最小吞吐量,即使存在大量标准 I/O 时- lvchange --maxrecoveryrate 4K my_vg/my_lv - # lvchange --maxrecoveryrate 4K my_vg/my_lv Logical volume _my_vg/my_lv_changed.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 使用恢复率值替换 4K,它是阵列中每个设备的每秒的量。如果没有后缀,选项会假定为 kiB/每秒/每个设备。 - lvchange --syncaction repair my_vg/my_lv - # lvchange --syncaction repair my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 当您执行 RAID 清理操作时, - sync操作所需的后台 I/O 可能会排挤 LVM 设备的其它 I/O,如对卷组元数据的更新。这可能导致其它 LVM 操作速度下降。注意- 您还可以在创建 RAID 设备时使用这些最大和最小 I/O 速率。例如, - lvcreate --type raid10 -i 2 -m 1 -L 10G --maxrecoveryrate 128 -n my_lv my_vg创建一个双向 RAID10 阵列 my_lv,它在卷组 my_vg 中,有大小为 10G,最大恢复率为 128 kiB/sec/device 的 3 个条带。
 
- 
										
- 显示阵列中未修复的差异的数量,没有修复它们: - lvchange --syncaction check my_vg/my_lv - # lvchange --syncaction check my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 此命令对阵列启动后台同步操作。 
- 
								可选:查看 var/log/syslog文件以了解内核消息。
- 修正阵列中的差异: - lvchange --syncaction repair my_vg/my_lv - # lvchange --syncaction repair my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 这个命令修复或者替换 RAID 逻辑卷中失败的设备。您可以在执行此命令后,在 - var/log/syslog文件查看内核消息。
验证
- 显示有关清理操作的信息: - lvs -o +raid_sync_action,raid_mismatch_count my_vg/my_lv - # lvs -o +raid_sync_action,raid_mismatch_count my_vg/my_lv LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert SyncAction Mismatches my_lv my_vg rwi-a-r--- 500.00m 100.00 idle 0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.22. RAID1 逻辑卷上的 I/O 操作
						您可以使用 lvchange 命令的 --writemostly 和 --writebehind 参数来控制对 RAID1 逻辑卷中设备的 I/O 操作。以下是使用这些参数的格式:
					
- --[raid]writemostly PhysicalVolume[:{t|y|n}]
- 将 RAID1 逻辑卷中的一个设备标记为 - write-mostly,并避免对这些驱动器的所有读操作(除非有必要)。设置此参数会使驱动器中的 I/O 操作数量保持最小。- 使用 - lvchange --writemostly /dev/sdb my_vg/my_lv命令设置此参数。- 您可以使用以下方法设置 - writemostly属性:- :y
- 
												默认情况下,对于逻辑卷中指定的物理卷,writemostly属性的值是 yes。
- :n
- 
												要删除 writemostly标志,请将:n附加到物理卷上。
- :t
- 要切换 - writemostly属性的值,请指定- --writemostly参数。- 您可以在单个命令中多次使用此参数,例如 - lvchange --writemostly /dev/sdd1:n --writemostly /dev/sdb1:t --writemostly /dev/sdc1:y my_vg/my_lv。通过这种方式,可以一次切换逻辑卷中所有物理卷的- writemostly属性。
 
- --[raid]writebehind IOCount
- 将待处理写的最大数量标记为 - writemostly。这些是适用于 RAID1 逻辑卷中设备的写操作的数量。超过这个参数值后,在 RAID 阵列通知所有写操作完成前,对组成设备的所有写操作都会同步完成。- 您可以使用 - lvchange --writebehind 100 my_vg/my_lv设置此参数。将- writemostly属性的值设置为零来清除首选项。使用这个设置,系统可以任意选择值。
67.7.23. 重塑 RAID 卷
RAID 重塑意味着在不更改 RAID 级别的情况下更改 RAID 逻辑卷的属性。您可以更改的一些属性包括 RAID 布局、条带大小和条带数目。
流程
- 创建 RAID 逻辑卷: - lvcreate --type raid5 -i 2 -L 500M -n my_lv my_vg - # lvcreate --type raid5 -i 2 -L 500M -n my_lv my_vg Using default stripesize 64.00 KiB. Rounding size 500.00 MiB (125 extents) up to stripe boundary size 504.00 MiB (126 extents). Logical volume "my_lv" created.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:查看 RAID 逻辑卷的 - stripes镜像和- stripesize:- lvs -o stripes my_vg/my_lv - # lvs -o stripes my_vg/my_lv #Str 3- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - lvs -o stripesize my_vg/my_lv - # lvs -o stripesize my_vg/my_lv Stripe 64.00k- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 根据您的要求,使用以下方法修改 RAID 逻辑卷的属性: - 修改 RAID 逻辑卷的 - stripes镜像:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 RAID 逻辑卷的 - stripesize:- lvconvert --stripesize 128k my_vg/my_lv - # lvconvert --stripesize 128k my_vg/my_lv Converting stripesize 64.00 KiB of raid5 LV my_vg/my_lv to 128.00 KiB. Are you sure you want to convert raid5 LV my_vg/my_lv? [y/n]: y Logical volume my_vg/my_lv successfully converted.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 - maxrecoveryrate和- minrecoveryrate属性:- lvchange --maxrecoveryrate 4M my_vg/my_lv - # lvchange --maxrecoveryrate 4M my_vg/my_lv Logical volume my_vg/my_lv changed.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - lvchange --minrecoveryrate 1M my_vg/my_lv - # lvchange --minrecoveryrate 1M my_vg/my_lv Logical volume my_vg/my_lv changed.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 - syncaction属性:- lvchange --syncaction check my_vg/my_lv - # lvchange --syncaction check my_vg/my_lv- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 - writemostly和- writebehind属性:- lvchange --writemostly /dev/sdb my_vg/my_lv - # lvchange --writemostly /dev/sdb my_vg/my_lv Logical volume my_vg/my_lv changed.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - lvchange --writebehind 100 my_vg/my_lv - # lvchange --writebehind 100 my_vg/my_lv Logical volume my_vg/my_lv changed.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
验证
- 查看 RAID 逻辑卷的 - stripes镜像和- stripesize:- lvs -o stripes my_vg/my_lv - # lvs -o stripes my_vg/my_lv #Str 4- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - lvs -o stripesize my_vg/my_lv - # lvs -o stripesize my_vg/my_lv Stripe 128.00k- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 - maxrecoveryrate属性后,查看 RAID 逻辑卷:- lvs -a -o +raid_max_recovery_rate - # lvs -a -o +raid_max_recovery_rate LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert MaxSync my_lv my_vg rwi-a-r--- 10.00g 100.00 4096 [my_lv_rimage_0] my_vg iwi-aor--- 10.00g [...]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 - minrecoveryrate属性后,查看 RAID 逻辑卷:- lvs -a -o +raid_min_recovery_rate - # lvs -a -o +raid_min_recovery_rate LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert MinSync my_lv my_vg rwi-a-r--- 10.00g 100.00 1024 [my_lv_rimage_0] my_vg iwi-aor--- 10.00g [...]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 修改 - syncaction属性后,查看 RAID 逻辑卷:- lvs -a - # lvs -a LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert my_lv my_vg rwi-a-r--- 10.00g 2.66 [my_lv_rimage_0] my_vg iwi-aor--- 10.00g [...]- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
67.7.24. 在 RAID 逻辑卷中更改区域大小
						当您创建 RAID 逻辑卷时,/etc/lvm/lvm.conf 文件中的 raid_region_size 参数代表 RAID 逻辑卷的区域大小。创建 RAID 逻辑卷后,您可以更改卷的区域大小。此参数定义跟踪脏或干净状态的粒度。位图中的脏位定义 RAID 卷脏关闭(例如系统故障)后要同步的工作集。
					
						如果将 raid_region_size 设置为更高的值,它会减小位图的大小以及拥塞。但它会影响重新同步区域期间的 write 操作,因为写入 RAID 会延迟,直到同步区域完成为止。
					
流程
- 创建 RAID 逻辑卷: - lvcreate --type raid1 -m 1 -L 10G test - # lvcreate --type raid1 -m 1 -L 10G test Logical volume "lvol0" created.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Region 列显示 raid_region_size 参数的值。 
- 可选:查看 - raid_region_size参数的值:- cat /etc/lvm/lvm.conf | grep raid_region_size # Configuration option activation/raid_region_size. # raid_region_size = 2048 - # cat /etc/lvm/lvm.conf | grep raid_region_size # Configuration option activation/raid_region_size. # raid_region_size = 2048- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 更改 RAID 逻辑卷的区域大小: - lvconvert -R 4096K my_vg/my_lv - # lvconvert -R 4096K my_vg/my_lv Do you really want to change the region_size 512.00 KiB of LV my_vg/my_lv to 4.00 MiB? [y/n]: y Changed region size on RAID LV my_vg/my_lv to 4.00 MiB.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 重新同步 RAID 逻辑卷: - lvchange --resync my_vg/my_lv - # lvchange --resync my_vg/my_lv Do you really want to deactivate logical volume my_vg/my_lv to resync it? [y/n]: y- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 查看 RAID 逻辑卷: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Region 列表示 - raid_region_size参数的更改值。
- 查看 - lvm.conf文件中- raid_region_size参数的值:- cat /etc/lvm/lvm.conf | grep raid_region_size # Configuration option activation/raid_region_size. # raid_region_size = 4096 - # cat /etc/lvm/lvm.conf | grep raid_region_size # Configuration option activation/raid_region_size. # raid_region_size = 4096- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow