目标:独立磁盘的冗余阵列配置可以让你扩充存储卷的性能,超过一个磁盘的物理限制。你可以通过配置 RAID 来增加磁盘存储空间,也可以提高磁盘的性能和容错性。 Solaris Volume Manager 软件可以在命令格式和视窗格式下运行,从而简化了对存储设备的管理。
1. 描述 RAID
2. 描述 Solaris Volume Manager 软件思想。
RAID 介绍: RAID 是一个基于多个磁盘的备份和存储数据的分级方法。它有 6 个级别( 0-5 ),又包含了一个不提供磁盘冗余的阵列( RAID 0 )。 Solaris Volume Manager 软件使用 metadevices ,他们是逻辑存储卷的产品细节的定义,实现了 RAID 0,RAID 1,RAID 1+0,RAID 5:
1. RAID 0: 非冗余磁盘阵列(串联的和条带的)。
2. RAID 1: 镜像磁盘阵列
3. RAID 5: 分块交织的条带状存储,并包含分布式的奇偶验证。
RAID 0: RAID-0 卷,包含条带和串联,它由若干个 slice 组成,使你可以扩充磁盘的存储空间。你可以直接选择 RAID-0 卷,也可以选择基于块的 RAID-1 卷(镜像)。 RAID-0 有两种类型:
1. 串联卷。
一个串联的卷会先在第一个可用的 slice 上写数据,当第一个 slice 满了,继续在第二个可用的 slice 上写数据。
2. 条带卷
一个条带状分布的数据类似于用长条穿过所有的 slice.
RAID-0 卷允许你有效的扩充磁盘的存储空间。这些卷不提供数据冗余,如果 RAID-0 种的一个的 slice 失败了,那么整个卷是不可访问的。
RAID0–0 (串联)卷中,数据在各组件上连续无间隔地进行存储,形成一个逻辑存储单元。使用串联卷,通过将多个组件的容量组合在一起,可以获得更多存储容量。随着存储需求的不断增加,可以向串联卷中添加更多组件。使用串联卷,可以在联机情况下动态扩展存储容量和文件系统大小。此外,使用串联卷也可以在其他组件当前处于活动状态时添加组件。
串联的 RAID-0 的默认行为是在开始向一个由连续的组件构成的串联卷中存储数据之前,填充一个物理的组件。然而,在 solaris 操作系统中, UFS 文件系统的默认行为是分散对存有文件系统的磁盘访问负荷。这个行为看上去像是串联的 RAID-0 卷用循环的交错的方式分散对卷中组件数据访问。数据的交错访问是挂接在串联卷上的 UFS 文件系统的功能,而不是串联卷自己的功能。串联卷还可以在无需关闭系统的情况下,扩展任何活动的、已挂载的 UFS 文件系统。一般情况下,串联卷的总容量等于卷中所有组件的容量总和。
条带卷:
RAID-0 (条带化)卷是跨一个或多个组件安排数据存储的卷。条带化时会跨越两个或更多组件交替存储大小相等的数据区段,形成一个逻辑存储单元。这些区段循环交插,使得组合的空间由各组件交替组成,效果上就像洗牌一样。条带化后,多个控制器可以从多个磁盘上同时访问数据,这也称为并行访问。并行访问可以增大 I/O 吞吐量,因为卷中的所有磁盘在大多数时间里都在忙于为 I/O 请求提供服务。不能将现有文件系统直接转换为条带化系统。要将现有文件系统置于条带化卷上,必须备份文件系统、创建卷,然后将文件系统恢复为条带化卷。
在一个条带上的序列化的操作, Solaris Volume Manager 软件会读取一个交错区上的所有的块。一个交错区是一个特定的 slice 上由某些数据块组成的段。之后, Solaris Volume Manager 软件再读取第二个 slice 上的一个交错区上的所有的数据块,以此类推 .
交错值是指条带化卷上的逻辑数据区段的大小(以 KB 、 MB 为单位)或块数。可以根据应用程序使用不同的交错值提高配置的性能。性能的提高是通过让多个磁盘装备管理 I/O 请求来实现。当 I/O 请求的大小大于交错大小时,可能会获得更好的性能。
创建条带化卷时,可以设置交错值,也可以使用 Solaris VolumeManager 缺省交错值 16KB 。创建条带化卷后,不能更改交错值。但是,可以备份条带化卷上的数据、删除该卷、使用新的交错值创建新的条带化卷,然后恢复数据。
RAID 1:
RAID-1 卷,在 solaris volume manager 软件中也被称作镜像,是一个典型的由 RAID-0 组成的构件,它的优点是可以提供数据冗余。它的缺点是会增加资金开销,因为它需要两个 RAID-1 的磁盘,每个磁盘上都有一个 RAID-1 磁盘的镜像。当需要配置镜像的时候需要考虑的主题包含:
1. 镜像使用时的交互使用。
2. 多个子镜像的使用
3. RAID 0+1
4. RAID 1+0
5. 镜像的读,写,以及同步选项。
6. 镜像的配置指导方针
镜像使用时的交互使用 :
RAID-1 卷(或镜像)是用于维护 RAID-0 (条带化或串联)卷中的相同数据副本的卷。各个镜像的 RAID-0 卷称为子镜像。镜像要求购买磁盘。所需的磁盘空间至少要为必须镜像的数据量的两倍。由于 Solaris Volume Manager 必须对所有子镜像写入数据,因此镜像还会增加将要写入的请求写入磁盘所需的时间量。
配置镜像后,就可以像使用物理片一样使用该镜像。有了多个可用的数据副本,如果正确的配置了镜像的读写方式,会减少数据访问时间。你可以用读写的方式来分散对子镜像的平坦地访问。
可以镜像任何文件系统,包括现有文件系统。这些文件系统包括根 (/) 、 swap 和 /usr 。也可以将镜像用于任何应用程序,如数据库。
多个子镜像的使用:
镜像由一个或多个称为子镜像的 RAID-0 (条带化或串联)卷组成。镜像地 RAID-0 卷称为子镜像。有两个子镜像组成地镜像称为双镜像,有三个子镜像组成的镜像称为三向镜像。
镜像最多可以包含四个子镜像。但是,双向镜像通常会为大多数应用程序提供足够的数据冗余,且就磁盘驱动器成本而言比较廉价。第三个子镜像使您可以在其中一个子镜像处于脱机状态下进行联机备份,同时又能保持数据冗余。
如果在 “ 脱机 ” 状态下获取子镜像,则镜像将停止向子镜像读取和写入数据。此时,可以访问子镜像本身(例如,执行备份)。但是,子镜像处于只读状态。子镜像处于脱机状态时, Solaris VolumeManager 将跟踪向该镜像中写入的所有内容。当使子镜像恢复联机状态时,只有在子镜像处于脱机状态时写入的镜像部分(重新同步区域)会被重新同步。还可以在脱机状态下获取子镜像,以对出现错误的物理设备进行故障排除或修复。
可以随时附加子镜像或从镜像拆离子镜像,但至少必须有一个子镜像始终处于连接状态。
通常,创建的镜像只包含一个子镜像。创建镜像后,可以附加第二个子镜像。
Solaris Volume Manager 软件在多个物理磁盘上创建了成倍的数据副本。 Solaris Volume Manager 软件向应用软件呈现的是一个虚拟磁盘。磁盘上所有的写操作都是成倍的,而读的操作却是针对一个基础的子镜像。如果有大小不同的子镜像,那么整个镜像的总容量受到最小的子镜像的限制。
RAID 0+1:
在 RAID-0+1 卷上,条带间镜像,先建立一组条带配置,然后再进行镜像。在一个纯粹的 RAID-0+1 配置上,一个 slice 的失败可以导致整个子镜像不可用。
像图中描述的, A,B,C 中任何一个都可以导致整个子镜像 1 的失败。 D,E,F 中的任何一个都可以导致子镜像 2 的失败,两个子镜像中的任何一个失败,可以导致整个镜像失败。
RAID 1+0:
RAID-1+0 卷由多个镜像以条带状组织在一起。 RAID-1+0 卷提供比较高的数据安全,因为一个物理磁盘上的 slice 的失败只会导致一个子镜像的一半不可用。剩余配置的大多数冗余信息保持不变。
图中的例子由三个 slice 组成,每个 slice 都有自己的镜像。 RAID 0 可以允许三个物理 slice 同时失败。 RAID-1 中的一个。和 RAID-0+1 相比,这是一个容错比较高的配置。如果镜像中有两个失败了,第三个数据丢失了,那么 RAID-1+0 卷被认为是失败了。
镜像选项:
镜像的性能可以通过调整下面的选项来优化。
1. 读策略
2. 写策略
Solaris Volume Manager 可以为 RAID-1 卷配置不同的读取和写入策略。正确设置读取和写入策略可以提高给定配置的性能。
读取策略说明:
读取策略 |
说明 |
循环(缺省) Round Robin (default) |
尝试平衡子镜像中的负载。从镜像的所有子镜像中依照循环顺序(一个接着一个)执行所有读取操作。 |
几何 Geometric |
可以基于逻辑磁盘块地址划分不同子镜像的读取操作。例如,使用双向子镜像时,可以将镜像上的磁盘空间划分为两个大小相等的逻辑地址范围。从某个子镜像的读取操作被限制到逻辑范围的一半。从其他子镜像的读取操作被限制到另一半。几何读取策略可以有效减少读取所需的查找时间。性能提高的程度(通过使用此读取策略)取决于系统 I/O 负载以及应用程序的访问模式。 |
第一 First |
将所有读取操作导向第一个子镜像。只有在组成第一个子镜像的设备比第二 个子镜像的设备速度明显更快时,才应使用此策略。 |
你可以同时复制所有镜像来提高写的性能,如果在写的过程中一个失败了发生了,所有的子镜像会处在一个未知的状态。
写入策略说明:
写入策略 |
说明 |
并行 ( 缺省 ) Parallel (Default) |
对镜像执行同时复制并分发到所有子镜像的写入操作。
|
串行 |
对子镜像连续执行写入操作(也就是说,第一个子镜像写入操作完成后,才能启动第二个子镜像写入操作)。此策略指定必须完成向一个子镜像的写入操作,才能启动下一个子镜像写入操作。如果因电源故障等无法访问子镜像,则系统会提供此策略。 |
在一个子镜像脱机的状态下,对镜像的任何写操作都会有一个脏数据 log 。当这个脱机的子镜像上线之后,那些脏数据会被重新同步和修改。
镜像配置指导:
1. 使不同子镜像的片位于不同的磁盘和控制器中。如果同一镜像的两个和多个子镜像的片位于同一个磁盘上,则对数据的保护作用将大大降低。同样,应将子镜像分布在不同的控制器中,因为控制器及关联电缆比磁盘更容易发生故障。此做法还可以提高镜像性能。
2. 对一个镜像使用同一类型的磁盘和控制器。特别是对于旧的 SCSI 存储设备,不同型号或不同品牌的磁盘或控制器的性能差别很大。如果在单个镜像中使用具有不同性能级别的磁盘和控制器,则性能可能会明显降低
3. 使用大小相同的子镜像。不同大小的子镜像会导致部分磁盘空间不能使用。
4. 可以直接挂接设备的镜像。不要试图直接挂接一个子镜像,除非这个子镜像处在脱机状态,可以以只读的方式挂接。不要挂接一个属于一个子镜像的 slice ,否则你会损坏数据导致系统崩溃。
5. 镜像可能会提高读取性能,但写入性能始终会降低。仅在线程或异步 I/O 情况下,镜像才会提高读取性能。从卷单线程读取不会提高性能。
6. 可以体验到使用镜像读取策略可提高性能。例如,缺省读取模式为以循环方式交替读取磁盘中的数据。此策略是缺省设置,因为循环往往最适合于 UFS 多用户、多处理器活动。
7. 在某些情况下, geometric 读取选项通过使磁头移动和访问时间降至最低程度,可以提高性能。此选项在以下情况下最有效:
■ 每个磁盘上只有一个片
■ 一次只有一个进程使用片或文件系统
■ I/O 模式高度连续或所有的访问权限都为读取权限
8. 使用 swap -l 命令可以检查所有的 swap 设备。指定为 swap 的每个片必须独立于其余交换片进行镜像。
9. 仅使用镜像内以类似方式配置的子镜像。需要特别指出的是,如果创建的镜像包含未加标记的子镜像,则不能附加包含磁盘标号的任何子镜像。
RAID 5:
RAID-5 卷条带状的,使用分布奇偶检验格式来保护数据。
1. 标准 RAID-5 卷
2. RAID-5 卷的需求
3. RAID-5 卷的建议
标准 RAID-5 卷:
RAID 级别 5 类似于条带化,但其奇偶校验数据分布于所有组件(磁盘或逻辑卷)中。 RAID 级别 5 和条带的不同在于 RAID 级别 5 的奇偶数据在磁盘的相同的组件中也是分散的。如果某个组件出现故障,则可以根据其他组件上分布的数据和奇偶校验信息来重新生成该组件上的数据。在 Solaris Volume Manager 中, RAID-5 卷是支持 RAID 级别 5 的卷。
RAID-5 卷使用相当于卷中的一个 slice 的存储容量来存储冗余信息(奇偶校验)。此奇偶信息分布在卷中的所有的 slice 上。此奇偶校验信息包含有关在 RAID-5 卷的其余组件上所存储用户数据的信息。也就是说,如果您有三个组件,则相当于有一个组件的存储容量将用于存储奇偶校验信息。如果您有五个组件,则其中仍有相当于一个组件的存储容量将用于存储奇偶校验信息。奇偶校验信息分布于卷的所有组件中。与镜像类似, RAID-5 卷也可以增强数据可用性,而且所需的硬件成本最低,对写操作性能的影响也是可接受的。但是,您不能对根 (/) 、 /usr 和 swap 文件系统使用 RAID-5 卷,也不能对其他现有文件系统使用 RAID-5 卷。应为 metadevice 软件在 solaris 操作系统启动的时候不能很早的被装载。
图中说明了,前三个数据交错区被写入 slice A,B,C. 下一个数据交错区被写入 slice D. 数据段和奇偶校验段的这种写入模式将使数据和奇偶校验分布在 RAID-5 卷的所有磁盘中。可以分别读取每个磁盘。奇偶校验可以防止出现单个磁盘故障。如果本示例中的每一张磁盘容量都为 2GB ,则 RAID-5 卷的总容量将为 6GB 。相当于一个磁盘的空间将被分配给奇偶校验。
RAID-5 卷的要求:
1. RAID-5 卷必须至少包含三个组件。不过, RAID-5 卷包含的组件越多,组件出现故障时读写操作所用的时间就越长。
2. 不能对 RAID-5 卷执行条带化、串联或镜像操作。
3. 请勿使用包含现有文件系统的组件来创建 RAID-5 卷。这样做将使数据在 RAID-5 初始化过程被清除。
4. 创建 RAID-5 卷时,可以定义交错值。如果未指定交错值,则该值缺省为 16 KB 。该值对于大多数应用程序都是合理的。
5. RAID-5 卷(不含热备件)只能处理单个组件故障。
6. 创建 RAID-5 卷时,请使用分布于不同控制器的组件。与磁盘相比,控制器及其关联电缆出现故障的频率往往会更频繁。
7. 请使用大小相同的组件。使用大小不同的组件创建 RAID-5 卷会导致一些磁盘空间无法使用。
RAID-5 的建议:
下面这些大概的建议可以帮助你在使用 RAID-5 的时候避免一些一般的性能问题:
1. 由于奇偶校验计算的复杂性,写入容量超过 20% 的卷可能不应作为 RAID-5 卷。如果需要在包含大量写入内容的卷上具备数据冗余,可考虑镜像。
2. 如果 RAID-5 卷中的不同组件驻留在不同的控制器上,而且对该卷的访问主要是大型连续访问,则将交错值设置为 32 KB 可能会提高性能。
硬件的考量:
规划存储管理配置时,请牢记,对于任何给定配置,都需要在性能、可用性和硬件成本之间进行权衡。可能需要试用不同类型的存储器,以便确定最适合您的配置的存储设备。必须计划的阶段包括:
1. 综合的存储指导。
2. 确定存储特性
3. 存储性能指导。
存储特性:
实现存储管理方法之前,需要确定要使用的存储设备类型。这组指南对各种类型的存储设备进行了比较,可帮助您做出选择。
存储类型的比较:
要求 |
RAID-0 (串联) |
RAID-0 (条带) |
RAID-1 (镜像) |
RAID-5 条带和奇偶检验 |
软分区 |
是否提供冗余数据 |
否
|
否 |
是 |
是 |
否 |
是否增强了读取性能 |
否 |
是 |
取决于基础设备
|
是
|
否 |
是否增强了写 入性能 |
否
|
是 |
否 |
否 |
否 |
下表概括了 RAID-1 和 RAID–5 卷在写入操作、随机读取和硬件成本三者之间的权衡。
优化冗余存储:
|
RAID-1 (镜像) |
RAID-5 |
写入操作 |
速度较快 |
速度较慢 |
随机读取 |
速度较快 |
速度较慢 |
硬件成本 |
较高 |
较低 |
以下对表中的信息进行了概括:
■ RAID-0 卷(条带化和串联)和软分区不提供任何数据冗余性。
■ 串联非常适用于小型随机 I/O 操作。
■ 条带化非常适合于大型顺序 I/O 操作和随机 I/O 操作。
■ 镜像可能会提高读取性能,但在镜像中写入性能始终会降低。
■ 由于 RAID-5 卷具有读取 - 修改 - 写入特性,因此写入量超过 20% 的卷不应该为
RAID-5 。如果需要冗余性,请考虑使用镜像。
■ RAID-5 写入不如镜像写入的速度快,而镜像写入不如未保护写入的速度快。
■ 软分区对于管理非常大的存储设备非常有用。
常规性能指南:
1. 在任何可能的情况下,把存储设备分布在多个 I/0 的控制器,线路和设备上。
2. 一般情况下,条带化的性能最佳,但条带化不提供数据冗余性。对于进行大量写入操作的应用程序,一般情况下, RAID-1 卷比 RAID-5 卷的性能更好。
3. RAID-1 和 RAID-5 卷都可以增加数据可用性,但一般情况下,这两种卷的写入操作性能都比较低。镜像可以提高随机读取性能。
4. RAID-5 卷比 RAID-1 卷的硬件成本更低,而 RAID-0 卷没有其他硬件成本。
5. 确定最常访问的数据,并使用镜像或条带化来增加数据的访问带宽。
6. 条带和 RAID-5 卷都将数据分布于多个磁盘驱动器中并且有助于平衡 I/O 负载。也可以使用 RAID-1 卷平衡 I/0 负载。
7. 使用可用的性能监视功能和通用工具(如 iostat 命令)以确定最常访问的数据。确定最常访问的数据之后,可以使用条带化、 RAID-1 卷或 RAID-5 卷来增加此数据的访问带宽。
8. 条带化的性能会好于 RAID-5 卷,但是条带化不提供数据冗余。
9. 在写操作方面, RAID-5 卷比条带的性能更低。此性能降低是由于计算和存储 RAID-5 卷奇偶校验所需的多项 I/O 操作导致的。
对于原始随机 I/O 读取,条带和 RAID-5 卷相当。条带和 RAID-5 卷都将数据分布在多个磁盘中。对于 RAID-5 卷,读取过程中并不进行奇偶校验计算(出现片故障后除外)。