Solaris Volume Manager 管理指南

第 10 章 RAID-1(镜像)卷(概述)

本章说明与镜像和子镜像相关的基本 Solaris Volume Manager 概念。有关执行相关任务的信息,请参见第 11 章,RAID-1(镜像)卷(任务)

本章包含以下信息:

RAID-1(镜像)卷概述

RAID-1 卷(或镜像)是用于维护 RAID-0(条带化或串联)卷中的相同数据副本的卷。各个镜像的 RAID-0 卷称为子镜像。镜像要求购买磁盘。所需的磁盘空间至少要为必须镜像的数据量的两倍。由于 Solaris Volume Manager 必须对所有子镜像写入数据,因此镜像还会增加将要写入的请求写入磁盘所需的时间量。

配置镜像后,就可以像使用物理片一样使用该镜像。

可以镜像任何文件系统,包括现有文件系统。这些文件系统包括根 (/)、swap/usr。也可以将镜像用于任何应用程序,如数据库。


提示 –

将 Solaris Volume Manager 的热备用功能与镜像结合使用,可以使数据始终安全且可用。有关热备件的信息,请参见第 16 章,热备用池(概述)第 17 章,热备用池(任务)


子镜像概述

镜像由一个或多个称为子镜像的 RAID-0(条带化或串联)卷组成。

镜像最多可以包含四个子镜像。但是,双向镜像通常会为大多数应用程序提供足够的数据冗余,且就磁盘驱动器成本而言比较廉价。第三个子镜像使您可以在其中一个子镜像处于脱机状态下进行联机备份,同时又能保持数据冗余。

如果在“脱机”状态下获取子镜像,则镜像将停止向子镜像读取和写入数据。此时,可以访问子镜像本身(例如,执行备份)。但是,子镜像处于只读状态。子镜像处于脱机状态时,Solaris Volume Manager 将跟踪向该镜像中写入的所有内容。当使子镜像恢复联机状态时,只有在子镜像处于脱机状态时写入的镜像部分(重新同步区域)会被重新同步。还可以在脱机状态下获取子镜像,以对出现错误的物理设备进行故障排除或修复。

可以随时附加子镜像或从镜像拆离子镜像,但至少必须有一个子镜像始终处于连接状态。

通常,创建的镜像只包含一个子镜像。创建镜像后,可以附加第二个子镜像。

方案-RAID-1(镜像)卷

图 10–1 说明了镜像 d20。该镜像由两个卷(子镜像)d21d22 组成。

Solaris Volume Manager 在多个物理磁盘上生成相同的数据副本,并向应用程序显示一个虚拟磁盘(本示例中为 d20)。所有磁盘上写入的内容都是相同的。磁盘读取内容来自其中某个基础子镜像。镜像 d20 的总容量为最小子镜像的大小(如果子镜像的大小不相等)。

图 10–1 RAID-1(镜像)示例

图中显示如何将两个 RAID-0 卷合起来用作 RAID-1(镜像)卷,从而提供冗余存储。

提供 RAID-1+0 和 RAID-0+1

Solaris Volume Manager 支持 RAID-1+0 和 RAID-0+1 冗余。RAID-1+0 冗余代表先建立一组镜像配置,然后再进行条带化。RAID-0+1 冗余代表先建立一组条带配置,然后再进行镜像。Solaris Volume Manager 界面显示所有的 RAID-1 设备在严格意义上讲都为 RAID-0+1。但是,Solaris Volume Manager 可以识别出基础组件并对每个组件分别进行镜像(如果可能)。


注 –

Solaris Volume Manager 无法始终提供 RAID-1+0 功能。但是,如果两个子镜像彼此相同且由磁盘片(而不是软分区)组成,则提供 RAID-1+0 功能是可能的。


请考虑使用由三个条带化片组成的双向镜像来实现 RAID-0+1。如果不使用 Solaris Volume Manager 产品,则一个片出现故障可能会导致镜像的一面失败。假设未使用任何热备件,则两个片出现故障将导致镜像失败。使用 Solaris Volume Manager 时,最多可有三个片出现故障,而不会导致镜像失败。由于这三个条带化片中的每个片均已单独镜像到另一半镜像的对应部分中,因此镜像不会失败。

图 10–2 说明了 RAID-1 卷遇到片丢失的危险但 RAID-1+0 功能阻止了数据丢失的这一过程。

图 10–2 RAID-1+0 示例

图中显示 RAID-1 卷中的三个片(总共六个片)如何出现故障,但因 RAID-1+0 实施而没有丢失数据。

RAID-1 卷包含两个子镜像。每个子镜像都包含三个相同的物理磁盘,且这些物理磁盘的交错值都相同。允许 A、B 和 F 三个磁盘出现故障。镜像的整个逻辑块范围仍然包含于至少一个良好的磁盘上。卷的所有数据都可用。

但是,如果磁盘 A 和 D 出现故障,则部分镜像数据在任何磁盘上都不再可用。对这些逻辑块的访问将失败。但是,对数据可用的镜像部分的访问仍将成功。在这种情况下,该镜像和出现了坏块的单个磁盘一样,损坏的部分不可用,但其余部分是可用的。

RAID-1 卷(镜像)重新同步

RAID-1 卷(镜像)重新同步是指在出现以下情况之一时将数据从一个子镜像复制到另一个子镜像的过程:

执行重新同步时,用户始终可以读取和写入镜像。

镜像重新同步通过维护具有相同数据的所有子镜像(正在写入的镜像除外),确保了正确的镜像操作。


注 –

不应忽略镜像重新同步。不需要以手动方式启动镜像重新同步。此过程将自动执行。


完整重新同步

将新的子镜像附加(添加)到镜像时,该镜像中另一子镜像中的所有数据都将自动写入新附加的子镜像。完成镜像重新同步后,新的子镜像即可读取。拆离子镜像之前,该子镜像始终附加到镜像。

如果系统在重新同步期间崩溃了,则系统完成重新引导后就会重新启动重新同步。

优化的重新同步

出现系统故障后重新引导系统期间,或在子镜像脱机之后又重新联机时,Solaris Volume Manager 将执行优化的镜像重新同步。元盘驱动程序将跟踪子镜像区域。元盘驱动程序借助此功能来了解,哪些子镜像区域在出现故障后可能不同步。优化的镜像重新同步仅在不同步区域中执行。可以指定在重新引导期间重新同步镜像的顺序。通过将子镜像传送号设置为 0,可以省略镜像重新同步。有关与更改传送号关联的任务,请参见示例 11–16


注意 – 注意 –

应仅对以只读方式挂载的镜像使用传送号 0。


部分重新同步

替换子镜像内的片后,Solaris Volume Manager 将执行数据的部分镜像重新同步。Solaris Volume Manager 会将数据从另一子镜像的仍然完好的片复制到替换后的片中。

创建和维护 RAID-1 卷

本节提供可帮助您创建镜像的指南,此外,还提供所创建镜像的性能指南。

RAID-1 卷的配置指南

RAID-1 卷的性能指南

关于 RAID-1 卷选项

以下选项可用于优化镜像性能:

最初创建镜像时,可以定义镜像选项。设置镜像且镜像处于运行状态后,还可以更改镜像选项。有关与更改这些选项相关的任务,请参见如何更改 RAID-1 卷选项

RAID-1 卷读取和写入策略

Solaris Volume Manager 可以为 RAID-1 卷配置不同的读取和写入策略。正确设置读取和写入策略可以提高给定配置的性能。

表 10–1 RAID-1 卷读取策略

读取策略 

说明 

循环(缺省) 

尝试平衡子镜像中的负载。从镜像的所有子镜像中依照循环顺序(一个接着一个)执行所有读取操作。 

几何 

可以基于逻辑磁盘块地址划分不同子镜像的读取操作。例如,使用双向子镜像时,可以将镜像上的磁盘空间划分为两个大小相等的逻辑地址范围。从某个子镜像的读取操作被限制到逻辑范围的一半。从其他子镜像的读取操作被限制到另一半。几何读取策略可以有效减少读取所需的查找时间。性能提高的程度(通过使用此读取策略)取决于系统 I/O 负载以及应用程序的访问模式。 

第一 

将所有读取操作导向第一个子镜像。只有在组成第一个子镜像的设备比第二个子镜像的设备速度明显更快时,才应使用此策略。 

表 10–2 RAID-1 卷写入策略

写入策略 

说明 

并行(缺省) 

对镜像执行同时复制并分发到所有子镜像的写入操作。 

串行 

对子镜像连续执行写入操作(也就是说,第一个子镜像写入操作完成后,才能启动第二个子镜像写入操作)。此策略指定必须完成向一个子镜像的写入操作,才能启动下一个子镜像写入操作。如果因电源故障等无法访问子镜像,则系统会提供此策略。 

传送号

传送号(范围为 0–9 的编号)可以确定在系统重新引导期间重新同步特定镜像的顺序。缺省传送号为 1。首先重新同步较低的传送号。如果使用 0,则将跳过镜像重新同步。应仅对以只读方式挂载的镜像使用传送号 0。具有相同传送号的镜像同时重新同步。

了解子镜像状态以确定维护操作

Solaris Volume Manager 的 metastat 命令可用于报告有关 RAID 1 卷和子镜像的状态信息。状态信息可帮助您确定是否需要对 RAID-1 卷执行维护操作。下表说明了对 RAID-1 卷运行 metastat 命令时显示的子镜像状态。

表 10–3 子镜像状态

状态 

含义 

正常 

子镜像没有错误且正常发挥作用。 

正在重新同步 

正在以活动方式重新同步子镜像。出现错误且已更正错误,子镜像刚刚恢复联机状态,或者添加了新的子镜像。 

需要维护 

子镜像中的片遇到 I/O 错误或打开错误。子镜像中的此片的所有读取和写入操作都已停止。 

此外,对于子镜像中的每一片,metastat 命令都会显示以下信息:

设备

指示条带中的片的设备名称

起始块

指示片开始的块

Dbase

指示片中是否包含状态数据库副本

状态

指示片的状态

热备件

指示正在将片用作出现故障片的热备件

子镜像状态仅提供有关子镜像状态的常规信息。排除镜像错误时,片状态可能是要查阅的最重要的信息。如果子镜像报告“需要维护”状态,则必须参阅片状态来了解更多信息。

根据片处于“维护”状态还是处于“最近出错”状态,可以执行不同的恢复操作。如果只有处于“维护”状态的片,则可以按任意顺序修复这些片。如果同时具有处于“维护”状态和处于“最近出错”状态的片,则必须首先修复处于“维护”状态的片。修复处于“维护”状态的片后,请接着修复处于“最近出错”状态的片。有关更多信息,请参见在 RAID-1 和 RAID-5 卷中替换和启用组件的概述

下表说明了子镜像的片状态以及可能执行的操作。

表 10–4 子镜像片状态

状态 

含义 

操作 

正常 

片没有错误且正常发挥作用。 

无。 

正在重新同步 

正在以活动方式重新同步片。出现错误且已更正错误,子镜像刚刚恢复联机状态,或者添加了新的子镜像。 

如果需要,请监视子镜像状态,直到重新同步完成为止。 

维护 

片遇到 I/O 错误或打开错误。此组件的所有读取和写入操作都已停止。 

启用或替换出现故障的片。请参见如何启用子镜像中的片如何替换子镜像中的片metastat 命令将显示 invoke 恢复消息,其中包含要使用 metareplace 命令执行的相应操作。也可以使用 metareplace -e 命令。

最近出错 

片遇到 I/O 错误或打开错误。但是,由于其他片出现了故障,因此不会在其他位置复制数据。仍然对片执行 I/O 操作。如果产生了 I/O 错误,则镜像 I/O 将失败。 

首先,启用或更改处于“维护”状态的片。请参见如何启用子镜像中的片如何替换子镜像中的片。通常,此错误会导致某些数据丢失,因此修复镜像之后,应验证该镜像。对于文件系统,请使用 fsck 命令,然后检查数据。应用程序或数据库必须具有各自的设备验证方法。

引导到单用户模式对 RAID-1 卷的影响

有时,您可能需要将包含根 (/)、/usrswap(即所谓的“引导”文件系统)镜像的系统引导到单用户模式(通过使用 boot -s 命令)。在这种情况下,这些镜像(可能还有系统上的所有镜像)都会以“需要维护”状态出现(如果使用 metastat 命令进行查看)。此外,如果对这些片执行写入操作,则 metastat 命令将显示镜像中的脏区数目不断增加。

这种情况看起来存在潜在危险。但是,当将系统引导到单用户模式时,metasync - r 命令(通常在引导系统以重新同步镜像时运行)将被中止。重新引导系统后,metasync -r 命令将运行并重新同步所有镜像。

如果您担心此情况,则可以手动运行 metasync -r 命令。

方案-RAID-1 卷(镜像)

RAID-1 卷提供了一种构造冗余卷的方式。因此,当某个基础 RAID-0 卷部分或完全出现故障时,不会丢失数据或中断对文件系统的访问。以下示例(利用在第 5 章,配置和使用 Solaris Volume Manager(方案)中说明且在方案-RAID-0 卷中继续使用的方案)介绍了 RAID-1 卷如何提供冗余存储。

正如方案-RAID-0 卷中所述,样例系统具有两个 RAID-0 卷。每个卷的大小大约为 27 GB,且跨越三个磁盘。通过创建 RAID-1 卷来镜像这两个 RAID-0 卷,完全冗余存储空间可以提供有弹性的数据存储。

在该 RAID-1 卷中,磁盘控制器的故障不会中断对卷的访问。同样,在不中断访问的情况下,最多可能允许三个单独的磁盘出现故障。

要针对可能中断访问的问题提供进一步的保护,请使用热备件,如第 16 章,热备用池(概述)中所述。有关具体情况,请参见热备件的工作原理