Comment on page
21.5.软件 RAID 设备
一些主板和扩展卡增加了一些简单的硬件,通常只是一个 ROM,允许计算机从 RAID 阵列中启动。启动后,对 RAID 阵列的访问由运行在计算机主处理器上的软件处理。这种“硬件辅助的软件 RAID”使 RAID 阵列不依赖于任何特定的操作系统,甚至在操作系统被加载之前就能发挥作用。
graid label
标签用于创建新的阵列。本例中使用的主板有一个 Intel 软件 RAID 芯片组,所以指定了 Intel 元数据格式。新的阵列被赋予 gm0 的标签,它是一个镜像(RAID1),并且使用 ada0 和 ada1 硬盘。当心当硬盘被做成一个新的阵列时,硬盘上的一些空间将被覆盖。请先备份现有的数据!
# graid label Intel gm0 RAID1 ada0 ada1
GEOM_RAID: Intel-a29ea104: Array Intel-a29ea104 created.
GEOM_RAID: Intel-a29ea104: Disk ada0 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:0-ada0 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Array started.
GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from STARTING to OPTIMAL.
Intel-a29ea104 created
GEOM_RAID: Intel-a29ea104: Provider raid/r0 for volume gm0 created.
状态检查显示新的镜像已经可以使用了:
# graid status
Name Status Components
raid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE))
ada1 (ACTIVE (ACTIVE))
阵列设备出现在 /dev/raid/。第一个阵列被称为 r0。其他 的阵列,如果存在的话,将是 r1 、 r2,以此类推。
# sysctl kern.geom.raid.name_format=1
一些软件 RAID 设备支持在一个阵列上有一个以上的卷。卷的工作方式类似于分区,允许物理磁盘上的空间被分割并以不同方式使用。例如,英特尔软件 RAID 设备支持两个卷。这个例子创建了一个 40G 的镜像,用于安全存储操作系统,然后是一个 20G 的 RAID0(条带)卷,用于快速临时存储:
# graid label -S 40G Intel gm0 RAID1 ada0 ada1
# graid add -S 20G gm0 RAID0
卷在 /dev/raid/ 中显示为额外的 rX 条目。一个有两个卷的阵列将显示为 r0 和 r1。
# graid label Intel gm0 RAID1 ada0 NONE
# graid insert raid/r0 ada1
原始硬盘的数据将立即开始复制到第二个硬盘。镜像将以降级状态运行,直到复制完成。
作为故障或丢失的磁盘的替代,可以插入磁盘到阵列中。如果没有故障或丢失的磁盘,新的磁盘就成为备用磁盘。例如,将一块新的磁盘插入到一个工作的双磁盘镜像中,将成为有一个备用磁盘的双磁盘镜像,而不是三磁盘的镜像。
在这个例子的镜像阵列中,数据立即开始被复制到新插入的硬盘。新磁盘上的任何现有信息将被覆盖:
# graid insert raid/r0 ada1
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NONE to NEW.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 state changed from NEW to REBUILD.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-ada1 rebuild start at 0.
可以从一个阵列中永久移除单个磁盘,其元数据也被删除:
# graid remove raid/r0 ada1
GEOM_RAID: Intel-a29ea104: Disk ada1 state changed from ACTIVE to OFFLINE.
GEOM_RAID: Intel-a29ea104: Subdisk gm0:1-[unknown] state changed from ACTIVE to NONE.
GEOM_RAID: Intel-a29ea104: Volume gm0 state changed from OPTIMAL to DEGRADED.
阵列可以被停止,而不需要从磁盘上删除元数据。当系统被启动时,该阵列将被重新启动:
# graid stop raid/r0
阵列状态可以在任何时候检查。在上面的例子中,一个磁盘被添加到镜像中后,数据正从原来的磁盘复制到新的磁盘上:
# graid status
Name Status Components
raid/r0 DEGRADED ada0 (ACTIVE (ACTIVE))
ada1 (ACTIVE (REBUILD 28%))
某些类型的阵列,比如
RAID0
或 CONCAT
,如果磁盘发生故障,可能不会显示在状态报告中。要看到这些部分失败的阵列,请添加 -ga
:# graid status -ga
Name Status Components
Intel-e2d07d9a BROKEN ada6 (ACTIVE (ACTIVE))
阵列是通过删除其中所有的卷来销毁的。当最后一个卷被删除时,阵列被停止,元数据从磁盘上被删除:
# graid delete raid/r0
1.启动系统。在启动菜单上,选择2
为加载器提示。输入:OK set kern.geom.raid.enable=0OK boot
1.备份受影响磁盘上的所有数据。 2.kern.geom.raid.enable=0到 /boot/loader.conf。# graid statusName Status Componentsraid/r0 OPTIMAL ada0 (ACTIVE (ACTIVE))ada1 (ACTIVE (ACTIVE))按名称删除卷:# graid delete raid/r0如果显示有多个卷,对每个卷重复该过程。在最后一个阵列被删除后,卷将被销毁。重新启动并验证数据,必要时从备份中恢复。在删除元数据后,也可以删除 /boot/loader.conf 中的kern.geom.raid.enable=0
条目。