Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1299807
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-15 09:50:19

 
 
第11 章• RAID-1(镜像)卷(任务) 99
# metattach d50 d52
d50: Submirror d52 is attached
以下示例说明如何创建双向镜像d50。可以使用metainit 命令创建两个子镜像(d51 和
d52),即RAID-0 卷。可以使用metainit -m 命令从d51 RAID-0 卷创建单向镜像。可以使用
metattach 命令附加d52,从而创建一个双向镜像并导致重新同步。在重新同步的过程中,
所附加的子镜像中的任何数据都会被其他子镜像覆写。
创建无需重新同步的双向镜像
# metainit d51 1 1 c0t0d0s2
d51: Concat/Stripe is setup
# metainit d52 1 1 c1t0d0s2
d52: Concat/Stripe is setup
# metainit d50 -m d51 d52
metainit: d50: WARNING: This form of metainit is not recommended.
The submirrors may not have the same data.
Please see ERRORS in metainit(1M) for additional information.
d50: Mirror is setup
本示例说明如何创建双向镜像d50。可以使用metainit 命令创建两个子镜像(d51 和
d52),即RAID-0 卷。然后,针对这两个子镜像运行metainit -m 命令以创建镜像。如果使
用metainit 命令而非metattach 命令创建镜像,则不会执行重新同步操作。因此,当Solaris
Volume Manager 假定镜像的两面相同并且可以互换使用时,数据可能会损坏。
要为文件系统准备新创建的镜像,请参见《System Administration Guide: Devices and File
Systems》中的第18 章,“Creating UFS, TMPFS, and LOFS File Systems (Tasks)”。某些应用程序
(如数据库)不使用文件系统,而是使用原始设备。这些应用程序必须能够以自己的方式
来访问原始设备。
 如何从文件系统创建RAID-1 卷
使用本过程可以对现有文件系统进行镜像。如果该文件系统可以取消挂载,则无需重新引
导即可完成整个过程。对于无法取消挂载的文件系统(如/usr 和/swap),必须重新引导
系统才能完成该过程。
示例11–2
另请参见
创建RAID-1 卷
100 Solaris Volume Manager 管理指南• 2006 年10 月
如果从构建于磁盘片上的现有文件系统创建RAID-1 卷,则主RAID-0 卷(子镜像)中只能
包含这一个片。如果要镜像对系统非常关键的文件系统,则所有的子镜像都必须仅包含一
个片。
有关与对根(/) 文件系统进行镜像相关联的过程,请参见第105 页中的“SPARC: 如何从根
(/) 文件系统创建RAID-1 卷”和第114 页中的“x86: 如何使用DCA从根(/) 文件系统创建
RAID-1 卷”。
在本过程使用的示例中,现有的片是c1t0d0s0。第二个片c1t1d0s0 适用于镜像的另一半。
子镜像分别是d1 和d2,镜像是d0。
注意– 请确保使用metainit 命令创建单向镜像,然后使用metattach 命令附加其他子镜像。
如果不使用metattach 命令,则不会执行重新同步操作。因此,当Solaris Volume Manager
假定镜像的两面相同并且可以互换使用时,数据可能会损坏。
请查看第42 页中的“创建Solaris Volume Manager 组件的先决条件”和第90 页中的“创建
和维护RAID-1 卷”。
确定包含要进行镜像的现有文件系统的片,本示例使用片c1t0d0s0。
使用以下方法之一,在上一步中的片上创建一个新的RAID-0 卷:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit -f volume-name number-of-stripes components-per-stripe component-name
-f 强制继续执行该命令。如果片中包含已挂载的文件系统,则必
须使用此选项。
volume-name 指定要创建的卷的名称。有关对卷进行命名的信息,请参见第
39 页中的“卷名称”。
number-of-stripes 指定要创建的条带的数目。
components-per-stripe 指定每个条带应包含的组件的数目。
component-names 指定所使用的组件的名称。本示例使用根片c0t0d0s0。
在未使用的片(在本示例中为c1t1d0s0)上创建另一个RAID-0 卷(串联),将其用作第二
个子镜像。第二个子镜像不得小于原来的子镜像的大小。请使用以下方法之一:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”->“创建卷”并按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
开始之前
1
2
3
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 101
# metainit volume-name number-of-stripes components-per-stripe component-name
注– 有关这些选项的说明,请参见步骤2。
使用以下方法之一创建单向镜像:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit volume-name -m submirror-name
volume-name 指定要创建的卷的名称。
-m 指定要创建镜像。
submirror-name 指定将成为镜像中的第一个子镜像的组件的名称。在本示例中,这是
包含根片的RAID-0 卷。
有关更多信息,请参见metainit(1M) 手册页。
注意– 从现有文件系统创建镜像时,必须严格按照以下两个步骤操作以避免数据损坏。
编辑/etc/vfstab 文件,以便文件系统挂载指令引用镜像,而不引用块设备。有关
/etc/vfstab 文件的更多信息,请参见《SystemAdm inistration Guide: Devices and File
Systems》中的“Mounting File Systems”。
例如,如果/etc/vfstab 文件包含文件系统的以下项:
/dev/dsk/slice /dev/rdsk/slice /var ufs 2 yes -
请更改该项,使其显示为:
/dev/md/dsk/mirror-name /dev/md/rdsk/mirror-name /var ufs 2 yes -
按照以下过程之一重新挂载新镜像的文件系统:
 如果要对可以取消挂载的文件系统进行镜像,则取消挂载该文件系统并将其重新挂载。
# umount /filesystem
# mount /filesystem
 如果要对无法取消挂载的文件系统进行镜像,则重新引导系统。
# reboot
4
5
6
创建RAID-1 卷
102 Solaris Volume Manager 管理指南• 2006 年10 月
使用以下格式的metattach 命令附加第二个子镜像。
# metattach volume-name submirror-name
volume-name 指定要向其中添加子镜像的RAID-1 卷的名称
submirror-name 指定将成为附加到该镜像的第二个子镜像的组件的名称
有关更多信息,请参见metattach(1M) 手册页。
从可以取消挂载的文件系统创建双向镜像
# metainit -fd 1 1 1 c1t0d0s0
d1: Concat/Stripe is setup
# metainit d2 1 1 c1t1d0s0
d2: Concat/Stripe is setup
# metainit d0 -m d1
d0: Mirror is setup
# umount /master
(编辑/etc/vfstab 文件使该文件系统引用镜像)
# mount /master
# metattach d0 d2
d0: Submirror d2 is attached
在本示例中,-f 选项会强制创建第一个串联d1,其中包含已在/dev/dsk/c1t0d0s0 上挂载
的文件系统/master。第二个串联d2 是从/dev/dsk/c1t1d0s0 创建的。该片不得小于d1 的大
小。带有-m 选项的metainit 命令可用来从d1 创建单向镜像d0。
接下来,应当在/etc/vfstab 文件中更改与文件系统对应的项,使其引用该镜像。
/etc/vfstab 文件中以下行最初如下所示:
/dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 /var ufs 2 yes -
该项更改为如下所示:
/dev/md/dsk/d0 /dev/md/rdsk/d0 /var ufs 2 yes -
最后,重新挂载该文件系统,并将子镜像d2 附加到该镜像,这会导致重新同步镜像。系统
会确认是否已设置RAID-0 和RAID-1 卷并已附加子镜像d2。
7
示例11–3
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 103
从无法取消挂载的文件系统创建双向镜像
# metainit -fd1 2 1 1 c0t3d0s6
d12: Concat/Stripe is setup
# metainit d22 1 1 c1t0d0s6
d22: Concat/Stripe is setup
# metainit d2 -m d12
d2: Mirror is setup
(编辑/etc/vfstab 文件使/usr 引用该镜像)
# reboot
...
# metattach d2 d22
d2: Submirror d22 is attached
本示例使用包含/usr 文件系统的片创建双向镜像。-f 选项会强制创建第一个串联d12,其
中包含已在/dev/dsk/c0t3d0s6 上挂载的文件系统/usr。第二个串联d22 是从
/dev/dsk/c1t0d0s6 创建的。该片不得小于d12 的大小。带有-m 选项的metainit 命令使用包
含/usr 文件系统的串联创建单向镜像d2。接下来,必须编辑/etc/vfstab 文件以更改/usr
的项,使其引用该镜像。
/etc/vfstab file 包含/usr 文件系统的以下项:
/dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /usr ufs 1 yes -
将该项更改为如下所示:
/dev/md/dsk/d2 /dev/md/rdsk/d2 /usr ufs 1 yes -
重新引导之后,第二个子镜像d22 将附加到该镜像,这会导致对镜像重新同步。
从/swap 空间创建镜像
# metainit -fd1 1 1 1 c0t0d0s1
d11: Concat/Stripe is setup
# metainit d21 1 1 c1t0d0s1
示例11–4
示例11–5
创建RAID-1 卷
104 Solaris Volume Manager 管理指南• 2006 年10 月
d21: Concat/Stripe is setup
# metainit d1 -m d11
d1: Mirror is setup
(编辑/etc/vfstab 文件使swap 引用该镜像)
# reboot
...
# metattach d1 d21
d1: Submirror d21 is attached
在本示例中,-f 选项会强制创建第一个串联d11,其中包含已在/dev/dsk/c0t0d0s1 上挂载
的文件系统swap。第二个串联d21 是从/dev/dsk/c1t0d0s1 创建的。该片不得小于d11 的大
小。带有-m 选项的metainit 命令可使用包含swap 的串联创建单向镜像d1。接下来,如果
/etc/vfstab 文件中存在与swap 对应的项,则必须编辑该项,使其引用该镜像。
/etc/vfstab file 包含swap 空间的以下项:
/dev/dsk/c0t0d0s1 - - swap - no -
请更改该项,使其显示为:
/dev/md/dsk/d1 - - swap - no -
重新引导之后,第二个子镜像d21 将附加到该镜像,这会导致对镜像重新同步。
要在对swap 空间进行镜像之后保存崩溃转储,请使用dumpadm 命令将转储设备配置为卷。
例如,如果交换设备的名称为/dev/md/dsk/d2,请使用dumpadm 命令将该设备设置为转储设
备。
 SPARC: 如何从根(/) 文件系统创建RAID-1 卷
对SPARC 平台上的根(/) 文件系统进行镜像的过程与对无法取消挂载的其他任何文件系统
进行镜像的过程相似,区别在于前者运行metaroot 命令,而不是手动编辑/etc/vfstab 文
件。对根(/) 文件系统进行镜像还需要记录备用引导设备的路径。如果子镜像失败,此设备
会重新引导系统。
在本过程使用的示例中,现有的片是c1t0d0s0。第二个片c1t1d0s0 适用于镜像的另一半。
子镜像分别是d1 和d2,镜像是d0。
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 105
注意– 请确保使用metainit 命令创建单向镜像,然后使用metattach 命令附加其他子镜像。
如果不使用metattach 命令,则不会执行重新同步操作。因此,当Solaris Volume Manager
假定镜像的两面相同并且可以互换使用时,数据可能会损坏。
请查看第42 页中的“创建Solaris Volume Manager 组件的先决条件”和第90 页中的“创建
和维护RAID-1 卷”。
确定包含要进行镜像的现有根(/) 文件系统的片。本示例使用片c1t0d0s0。
使用以下方法之一,在上一步中的片上创建一个新的RAID-0 卷。RAID-0 卷中只能包含一个
片。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit -f volume-name number-of-stripes components-per-stripe component-name
-f 强制继续执行该命令。如果片中包含已挂载的文件系统,则必
须使用此选项。
volume-name 指定要创建的卷的名称。有关对卷进行命名的信息,请参见第
39 页中的“卷名称”。
number-of-stripes 指定要创建的条带的数目。
components-per-stripe 指定每个条带应包含的组件的数目。
component-names 指定所使用的组件的名称。本示例使用根片c0t0d0s0。
在未使用的片(在本示例中为c1t1d0s0)上创建另一个RAID-0 卷,将其用作第二个子镜
像。辅助子镜像不得小于原来的子镜像的大小。请使用以下方法之一:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”->“创建卷”并按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit volume-name number-of-stripes components-per-stripe component-name
注– 有关这些选项的说明,请参见步骤2。
使用以下方法之一创建单向镜像:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
开始之前
1
2
3
4
创建RAID-1 卷
106 Solaris Volume Manager 管理指南• 2006 年10 月
 使用以下格式的metainit 命令:
# metainit volume-name -m submirror-name
volume-name 指定要创建的卷的名称。
-m 指定要创建镜像。
submirror-name 指定将成为镜像中的第一个子镜像的组件的名称。在本示例中,这是
包含根片的RAID-0 卷。
重新挂载刚进行镜像的文件系统。运行metaroot volume-name 命令,将volume-name 替换为
已创建的镜像的名称。然后重新引导系统。
# metaroot volume-name
# reboot
有关更多信息,请参见metaroot(1M) 手册页。
使用以下格式的metattach 命令附加第二个子镜像。
# metattach volume-name submirror-name
volume-name 指定要向其中添加子镜像的RAID-1 卷的名称
submirror-name 指定将成为附加到该镜像的第二个子镜像的组件的名称
有关更多信息,请参见metattach(1M) 手册页。
记录替代引导路径。
a. 确定备用根设备的路径。针对附加作为根(/) 文件系统镜像的第二个子镜像的片,使用ls
- l 命令。
# ls -l /dev/dsk/c1t1d0s0
lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t1d0s0 -> \
../../devices/sbus@1,f8000000/esp@1,200000/sd@3,0:a
b. 记录/devices 目录后面的字符串:。
注– 由于系统可能不可用,因此还应当将这些信息记录在系统以外的某个位置。有关从备
用引导设备引导的详细信息,请参见第285 页中的“从引导问题中恢复”。
5
6
7
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 107
c. 编辑该字符串,将主名称(在本示例中为sd)更改为disk,产生的结果为
。如果系统使用IDE 总线,则最初的全路径
可能如下所示:
$ ls -l /dev/dsk/c1t1d0s0
lrwxrwxrwx 1 root root 38 Mar 13 15:03 /dev/dsk/c0t0d0s0 -> \
../../devices/pci@1f,0/ide@d/dad@0,0:a
将主名称dad 更改为disk 之后,结果将为
d. 使用OpenBootTM PROM nvalias 命令为辅助根(/) 文件系统镜像定义“备份根”设备别名。
例如:
ok nvalias backup_root
e. 重新定义boot-device 别名,使其按照主子镜像和辅助子镜像的使用顺序来进行引用,并
存储该配置。
ok printenv boot-device
boot-device = disk net
ok setenv boot-device disk backup_root net
boot-device = disk backup_root net
ok nvstore
注– 如果主子镜像失败,系统将自动引导到第二个子镜像。或者,如果手动引导而不是使用
自动引导,则可输入以下内容:
ok boot backup_root
SPARC: 从根(/) 文件系统创建镜像
# metainit -fd 1 1 1 c0t0d0s0
d1: Concat/Stripe is setup
# metainit d2 1 1 c0t1d0s0
d2: Concat/Stripe is setup
# metainit d0 -m d1
d0: Mirror is setup
示例11–6
创建RAID-1 卷
108 Solaris Volume Manager 管理指南• 2006 年10 月
# metaroot d0
# lockfs -fa
# reboot
...
# metattach d0 d2
d0: Submirror d2 is attached
# ls -l /dev/dsk/c0t1d0s0
lrwxrwxrwx 1 root root 88 Feb 8 15:51 /dev/rdsk/c1t3d0s0 ->
../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
# init 0
.
.
.
ok nvalias backup_root
ok setenv boot-device disk backup_root net
ok nvstore
在本示例中,-f 选项会强制创建第一个RAID-0 卷d1,其中包含已在/dev/dsk/c0t0d0s0 上
挂载的根(/) 文件系统。第二个串联d2 是从/dev/dsk/c0t1d0s0 创建的。该片不得小于d1 的
大小。带有-m 选项的metainit 命令可使用包含根(/) 的串联创建单向镜像d0。
接下来,使用metaroot 命令编辑/etc/vfstab 和/etc/system 文件,以便可以使用卷上的根
(/) 文件系统引导系统。重新引导之前最好先运行lockfs -fa 命令。有关更多信息,请参见
lockfs(1M) 手册页。
请勿在重新引导系统之前附加第二个子镜像。必须在运行metaroot 命令之后和附加第二个
子镜像之前重新引导系统。
重新引导之后,子镜像d2 将附加到该镜像,这会导致对镜像重新同步。系统会确认是否已
设置串联和镜像以及是否已附加子镜像d2。
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 109
可以针对根原始设备运行ls -l 命令,以确定备用根设备的路径,以备系统以后通过该路径
进行引导。
x86: 从根(/) 文件系统创建RAID-1 卷
从Solaris 10 1/06 发行版开始,GRand Unified Bootloader (GRUB) 已经取代了基于x86 的系统
中用于引导过程和配置的Device Configuration Assistant (DCA)。有关此功能及其引入的增强
功能的简要说明,请参阅《Solaris 10 What’s New》中的“GRUB Based Booting”。
本节中的过程介绍了从根(/) 文件系统创建RAID-1 卷的步骤。如果系统运行的是Solaris 10
1/06 OS 或后续发行版,请按照第一个过程(使用GRUB)中的步骤操作。否则,请执行第
二个过程(使用DCA)中的步骤。
在基于x86 的系统上对根(/) 文件系统进行镜像的过程与在SPARC 系统上对根文件系统进行
镜像的过程相似。但是,在基于x86 的系统上,BIOS 和fdisk 分区会使镜像过程更复杂。
在这些过程使用的示例中,现有的片是c1t0d0s0。第二个片c1t1d0s0 适用于镜像的另一
半。子镜像分别是d1 和d2,镜像是d0。
注– 在实现任何过程之前,请查看第42 页中的“创建SolarisVolume Manager 组件的先决条
件”和第90 页中的“创建和维护RAID-1 卷”。
 x86: 如何使用GRUB 从根(/) 文件系统创建RAID-1 卷
验证是否可将BIOS 引导设备的顺序配置为允许系统从镜像中的第二块磁盘引导。
启动内核之前,系统由只读存储器(read-only-memory, ROM) 基本输入/输出系统(Basic
Input/Output System, BIOS) 控制,该系统是基于x86 的系统上的固件接口。BIOS 与基于
SPARC 的系统上的引导PROM 类似。以下是一些BIOS 任务:
 执行启动功能。
 检测可从中引导系统的正确设备。
 从该设备装入主引导记录,以允许系统自行引导。
通常可以将BIOS 配置为选择要探测其引导记录的设备的顺序。此外,现在实现的大多数
BIOS 都允许将设备配置为自动向辅助子镜像进行故障转移。如果系统的BIOS 没有此功
能,则主子镜像失败时,需要在系统引导过程中访问BIOS,以便将系统重新配置为从辅助
根片引导。有关如何配置BIOS 中的设置的说明,请查阅BIOS 的用户指南。
设置根镜像之前,请检查系统上的BIOS,验证是否可以从多块磁盘引导。某些设备驱动程
序配置为只能看到系统上的一个磁盘。
1
创建RAID-1 卷
110 Solaris Volume Manager 管理指南• 2006 年10 月
验证fdisk 分区是否配置为支持根镜像。
如果对根(/) 文件系统进行镜像时存在单独的x86 引导分区,则会出现问题。因为x86 引导
分区位于Solaris fdisk 分区之外,所以不能通过Solaris Volume Manager 对x86 引导分区进行
镜像。此外,由于仅存在x86 引导分区的一个副本,因此它还表示一个单点故障。
Solaris 10 1/06 软件和后续发行版的基于GRUB 的安装程序不会再自动创建x86 引导分区。但
是,如果系统中已经存在x86 引导分区,则安装程序在缺省情况下会保留该分区。
要确定系统是否有单独的x86 引导分区,请检查/etc/vfstab 文件。如果该文件中包含类似
如下的项,则表明存在x86 引导分区:
/dev/dsk/c2t1d0p0:boot - /boot pcfs - no -
要使用Solaris Volume Manager 对根(/) 文件系统进行镜像,该文件系统必须占用整个Solaris
fdisk 分区。因此,如果系统中已经存在x86 引导分区,请使用fdisk 命令删除该分区,然
后重新安装Solaris 软件。重新安装时,将不再重新创建引导分区。
注– SolarisVolume Manager 只能对Solaris fdisk 分区中的片进行镜像。如果有多个fdisk 分
区,则需要使用其他方法来保护Solaris fdisk 分区以外的数据。
使辅助子镜像可以使用主引导程序引导。
a. 指定主引导程序。
# fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c1t1d0p0
此时屏幕将显示以下信息:
Total disk size is 31035 cylinders
Cylinder size is 1146 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Active Solaris 1 31034 31034 100
SELECT ONE OF THE FOLLOWING:
2
3
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 111
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection:
b. 从菜单中选择数字5,然后按回车键。
使辅助磁盘可引导。
# /sbin/installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
有关installgrub 的更多信息,请参阅installgrub(1M) 手册页。
确定包含要进行镜像的现有根(/) 文件系统的片。
本示例使用c1t0d0s0 片。
在上一步中的片上创建一个新的RAID-0 卷。
RAID-0 卷中只能包含一个片。请使用以下方法之一:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit -f volume-name number-of-stripes components-per-stripe component-name
-f 强制继续执行该命令。如果片中包含已挂载的文件系统,则必
须使用此选项。
volume-name 指定要创建的卷的名称。有关对卷进行命名的信息,请参见第
39 页中的“卷名称”。
number-of-stripes 指定要创建的条带的数目。
components-per-stripe 指定每个条带应包含的组件的数目。
component-names 指定所使用的组件的名称。本示例使用根片c0t0d0s0。
在未使用的片(在本示例中为c1t1d0s0)上创建另一个RAID-0 卷,将其用作第二个子镜
像。
4
5
6
7
创建RAID-1 卷
112 Solaris Volume Manager 管理指南• 2006 年10 月
注– 辅助子镜像不得小于原来的子镜像的大小。另外,用作第二个子镜像的片还必须带有片
标记"root",并且根片必须是片0。
有关配置片标记字段的信息,请参见format(1M) 手册页。
请使用以下任一方法:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”->“创建卷”并按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit volume-name number-of-stripes components-per-stripes component-names
注– 有关这些选项的说明,请参见步骤6。
使用以下方法之一创建单向镜像:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit volume-name -m submirror-name
volume-name 指定要创建的卷的名称。
-m 指定要创建镜像。
submirror-name 指定将成为镜像中的第一个子镜像的组件的名称。在本示例中,这是
包含根片的RAID-0 卷。
重新挂载刚进行镜像的文件系统,然后重新引导系统。
# metaroot volume-name
# reboot
有关更多信息,请参见metaroot(1M) 手册页。
附加第二个子镜像。
# metattach volume-name submirror-name
volume-name 指定要向其中添加子镜像的RAID-1 卷的名称。
submirror-name 指定将成为附加到该镜像的第二个子镜像的组件的名称。
有关更多信息,请参见metattach(1M) 手册页。
8
9
10
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 113
在menu.lst 文件中定义替代引导路径。
要使系统可从用来存放辅助子镜像的磁盘引导,请将系统配置为将该磁盘视为备用引导设
备。在当前示例中,替代路径c1t1d0s0 位于第二块磁盘上第一个fdisk 分区的第一片。因
此,可以编辑menu.lst 中的以下项:
title alternate boot
root (hd1,0,a)
kernel /boot/multiboot
module /boot/x86.miniroot-safe
注– 要正确编辑menu.lst 中的各项,必须熟悉GRUB 中的磁盘命名约定。有关详细信息,请
参见《System Administration Guide: Basic Administration》中的第11 章,“GRUB Based Booting
(Tasks)”。
完成编辑menu.lst 文件之后,系统会设置为向第二块磁盘进行故障转移。如果主磁盘出现
故障,则磁盘编号会更改,以便系统从辅助磁盘引导。
注意– 在某些情况下,BIOS 的自动磁盘重新编号功能可能会对从不可用的主磁盘进行恢复造
成影响。当磁盘重新编号功能强制系统从辅助磁盘引导时,主磁盘的引导归档会过时。如果
该主磁盘以后变为可用,则在引导系统时,磁盘重新编号功能会再次切换到从缺省的主磁盘
进行系统引导。但是,在这个阶段,主磁盘的引导归档仍然是过时的。因此,系统可能根本
无法引导。所以在这种情况下,请确保从GRUB 菜单中选择正确的项,以便从有效的根归档
中引导系统。系统完成引导过程之后,请执行常规的metadevice 维护,这会对主磁盘和辅
助磁盘均进行同步,并将有效的引导归档恢复到主磁盘。
 x86: 如何使用DCA从根(/) 文件系统创建RAID-1 卷
验证是否可将BIOS 引导设备的顺序配置为允许系统从镜像中的第二块磁盘引导。
启动内核之前,系统由只读存储器(read-only-memory, ROM) 基本输入/输出系统(Basic
Input/Output System, BIOS) 控制,该系统是基于x86 的系统上的固件接口。BIOS 与基于
SPARC 的系统上的引导PROM 类似。除了BIOS 的其他启动功能以外,它还负责查找要从
中引导系统的正确设备,以及从允许系统自行引导的设备中装入主引导记录。通常可以将
BIOS 配置为选择要探测其引导记录的设备的顺序。此外,现在实现的大多数BIOS 都允许
将设备配置为自动向辅助子镜像进行故障转移。如果系统没有此功能,则主子镜像失败
时,需要在系统引导过程中访问BIOS,以便将系统重新配置为从辅助根片引导。有关如何
配置BIOS 中的设置的说明,请查阅BIOS 的用户指南。
可以使用系统上的DCA来验证是否可以从多块磁盘引导。某些设备驱动程序配置为只能看
到系统上的一个磁盘。
11
1
创建RAID-1 卷
114 Solaris Volume Manager 管理指南• 2006 年10 月
验证fdisk 分区是否配置为支持根镜像。
基于x86 的系统的另一个功能是可使用fdisk 分区。使用Solaris OS 安装程序缺省的引导磁
盘分区布局可以创建两个分区,一个是Solaris fdisk 分区,另一个是名为x86 引导分区的
fdisk 分区,其大小大约为10MB。
对根(/) 文件系统进行镜像时,x86 引导分区会产生问题。x86 引导分区位于Solaris fdisk 分
区外部。因此,x86 引导分区不能由Solaris Volume Manager 进行镜像。此外,由于仅存在
x86 引导分区的一个副本,因此它还表示一个单点故障。
可以确定Solaris OS 是否有一个单独的x86 引导分区。x86 引导分区会挂载到/etc/vfstab 文
件中,其中包含类似如下的项:
/dev/dsk/c2t1d0p0:boot - /boot pcfs - no -
如果不存在单独的x86 引导分区,则该项不会出现在/etc/vfstab 文件中。
要对根(/) 文件系统进行镜像,需要自定义fdisk 分区,以便删除x86 引导分区并使用单个
Solaris fdisk 分区。如果要使用Solaris Volume Manager 根镜像,请不要在系统安装过程中创
建单独的x86 引导分区。如果系统已经安装并且创建了一个单独的x86 引导分区,请使用
fdisk 命令删除该fdisk 分区并重新安装系统。在安装过程中,请避免通过在安装过程中自
定义磁盘分区来创建单独的x86 引导分区。
注– SolarisVolume Manager 只能对Solaris fdisk 分区中的片进行镜像。如果有多个fdisk 分
区,则需要使用其他方法来保护Solaris fdisk 分区以外的数据。
使辅助子镜像可以使用主引导程序引导。
a. 使用fdisk 命令来指定主引导程序。
# fdisk -b /usr/lib/fs/ufs/mboot /dev/rdsk/c1t1d0p0
此时屏幕将显示以下信息:
Total disk size is 31035 cylinders
Cylinder size is 1146 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Active Solaris 1 31034 31034 100
2
3
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 115
SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection:
b. 从菜单中选择数字5,然后按回车键。
在辅助子镜像中安装引导块,以便可从该镜像引导系统。
辅助子镜像所在磁盘上的片8 是从该fdisk 分区引导Solaris OS 所必需的。该片用来存放分
区引导记录(pboot)、磁盘的Solaris VTOC 和引导块。由于这些信息特定于磁盘,因此不能
使用Solaris Volume Manager 进行镜像。但是,必须确保这两块磁盘都是可引导的,以便可
以在主磁盘出现故障时从辅助磁盘引导。使用installboot 命令可将第二块磁盘设置为
Solaris 可引导磁盘。有关更多信息,请参见installboot(1M) 手册页。
必须将磁盘的片2 指定为设备,并且片2 必须包含整块磁盘。
# installboot /usr/platform/i86pc/lib/fs/ufs/pboot \
/usr/platform/i86pc/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s2
确定包含要进行镜像的现有根(/) 文件系统的片。本示例使用片c1t0d0s0。
使用以下方法之一,在上一步中的片上创建一个新的RAID-0 卷。RAID-0 卷中只能包含一个
片。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit -f volume-name number-of-stripes components-per-stripe component-name
-f 强制继续执行该命令。如果片中包含已挂载的文件系统,则必
须使用此选项。
4
5
6
创建RAID-1 卷
116 Solaris Volume Manager 管理指南• 2006 年10 月
volume-name 指定要创建的卷的名称。有关对卷进行命名的信息,请参见第
39 页中的“卷名称”。
number-of-stripes 指定要创建的条带的数目。
components-per-stripe 指定每个条带应包含的组件的数目。
component-names 指定所使用的组件的名称。本示例使用根片c0t0d0s0。
在未使用的片(在本示例中为c1t1d0s0)上创建另一个RAID-0 卷,将其用作第二个子镜
像。辅助子镜像不得小于原来的子镜像的大小。请使用以下方法之一:
注– 用作第二个子镜像的片必须带有片标记"root",并且根片必须是片0。有关配置片标记字
段的信息,请参见format(1M) 手册页。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”->“创建卷”并按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit volume-name number-of-stripes components-per-stripes component-names
注– 有关这些选项的说明,请参见步骤6。
使用以下方法之一创建单向镜像:
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点,然后选择“操作
”⇒“创建卷”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮助。
 使用以下格式的metainit 命令:
# metainit volume-name -m submirror-name
volume-name 指定要创建的卷的名称。
-m 指定要创建镜像。
submirror-name 指定将成为镜像中的第一个子镜像的组件的名称。在本示例中,这是
包含根片的RAID-0 卷。
重新挂载刚进行镜像的文件系统。运行metaroot volume-name 命令,将volume-name 替换为
已创建的镜像的名称。然后重新引导系统。
# metaroot volume-name
# reboot
有关更多信息,请参见metaroot(1M) 手册页。
7
8
9
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 117
使用以下格式的metattach 命令附加第二个子镜像。
# metattach volume-name submirror-name
volume-name 指定要向其中添加子镜像的RAID-1 卷的名称。
submirror-name 指定将成为附加到该镜像的第二个子镜像的组件的名称。
有关更多信息,请参见metattach(1M) 手册页。
记录替代引导路径。
需要对系统进行配置,以便在主子镜像失败时,系统从辅助子镜像引导。要使系统可从用来
存放辅助子镜像的磁盘引导,请将系统配置为将该磁盘视为备用引导设备。
a. 确定备用引导设备的路径。针对附加作为根(/) 文件系统镜像的第二个子镜像的片,使用
ls - l 命令。
# ls -l /dev/dsk/c1t1d0s0
lrwxrwxrwx 1 root root 55 Mar 5 12:54 /dev/rdsk/c1t1d0s0 -> ../.
./devices/eisa/eha@1000,0/cmdk@1,0:a
b. 记录/devices 目录后面的字符串:。这是设备树的路径。
注– 由于系统可能不可用,因此应当将这些信息记录在系统以外的某个位置。这样,必须
使用DCA引导系统时,可以更方便地输入设备树的路径信息。
c. 使用eeprom 命令定义替代引导路径。例如:
# eeprom
如果主子镜像失败,系统会尝试从辅助子镜像引导。如果可将BIOS 配置为自动故障转移
到第二块磁盘,则引导过程是自动的。否则,需要进入BIOS 并将其配置为从辅助磁盘引
导。系统开始引导之后,即会尝试从bootpath 设备引导。由于主引导磁盘是根镜像中的
停用磁盘,因此系统随后会尝试从altbootpath 设备引导。有关如何配置BIOS 中的设置
的说明,请查阅BIOS 的用户指南。
如果系统不会自动引导,则可以尝试使用DCA来选择辅助子镜像。在某些系统上,可以
选择在引导过程中进入DCA。如果不提供此选项,则需要从x86 引导软盘引导,并使用
DCA来选择辅助子镜像。操作系统引导之后,请使用设置为替代引导路径的值
(bootpath 值)来更新eeprom bootpath 值。然后,系统将自动引导。
有关使用eeprom 命令的更多信息,请参见eeprom(1M) 手册页。
x86: 使用DCA从根(/) 文件系统创建镜像
# metainit -fd 1 1 1 c0t0d0s0
d1: Concat/Stripe is setup
10
11
示例11–7
创建RAID-1 卷
118 Solaris Volume Manager 管理指南• 2006 年10 月
# metainit d2 1 1 c0t1d0s0
d2: Concat/Stripe is setup
# metainit d0 -m d1
d0: Mirror is setup
# metaroot d0
# lockfs -fa
# reboot
...
# metattach d0 d2
d0: Submirror d2 is attached
# ls -l /dev/dsk/c0t1d0s0
lrwxrwxrwx 1 root root 88 Feb 8 15:51 /dev/dsk/c1t3d0s0 ->
../../devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a,raw
# eeprom
# fdisk -b /usr/lib/fs/ufs/mboot /dev/dsk/c0t1d0p0
Total disk size is 31035 cylinders
Cylinder size is 1146 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Active Solaris 1 31034 31034 100
创建RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 119
SELECT ONE OF THE FOLLOWING:
1. Create a partition
2. Specify the active partition
3. Delete a partition
4. Change between Solaris and Solaris2 Partition IDs
5. Exit (update disk configuration and exit)
6. Cancel (exit without updating disk configuration)
Enter Selection: 5
# installboot /usr/platform/i86pc/lib/fs/ufs/pboot \
/usr/platform/i86pc/lib/fs/ufs/bootblk /dev/rdsk/c0t1d0s2
了解对根(/) 文件系统进行镜像时的引导时警告
对根(/) 文件系统进行镜像之后,控制台中将会显示错误消息,这些错误消息将记录在
/etc/syslog.conf 文件中定义的系统日志中。这些错误消息并不表明存在问题。这些消息
显示的是当前不能使用的每种设备类型,因为不能强制装入未使用的模块。错误消息如下
所示:
Jul 13 10:17:42 ifr genunix: [ID 370176 kern.warning] WARNING: forceload of
misc/md_trans failed
Jul 13 10:17:42 ifr genunix: [ID 370176 kern.warning] WARNING: forceload of
misc/md_raid failed
Jul 13 10:17:42 ifr genunix: [ID 370176 kern.warning] WARNING: forceload of
misc/md_hotspares failed
可以放心地忽略这些错误消息。
创建RAID-1 卷
120 Solaris Volume Manager 管理指南• 2006 年10 月
处理子镜像
 如何附加子镜像
注– 指示"can’t attach labeled submirror to an unlabeled mirror" 的错误消息表示您未能
成功尝试向镜像中附加RAID-0 卷。带标号的卷(子镜像)的第一个组件从柱面0 开始,而
不带标号的卷的第一个组件则从柱面1 开始。为了防止带标号的子镜像的标签损坏,Solaris
Volume Manager 不允许将带标号的子镜像附加到不带标号的镜像。
请阅读第90 页中的“创建和维护RAID-1 卷”。
确定要用作子镜像的组件(串联或条带)。
该组件不得小于镜像中现有子镜像的大小。如果尚未创建要成为子镜像的卷,请参见第
79 页中的“创建RAID-0(条带化)卷”或第81 页中的“创建RAID-0(串联)卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用metastat 命令验证要处理的镜像的状态是否为“Okay(正常)”。
# metastat mirror
使用以下方法之一来附加子镜像。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
 使用metattach mirror submirror 命令。
# metattach mirror submirror
有关更多信息,请参见metattach(1M) 手册页。
使用metastat 命令查看镜像的状态。
# metastat mirror
附加子镜像
# metastat d30
d30: mirror
Submirror 0: d60
开始之前
1
2
3
4
5
示例11–8
处理子镜像
第11 章• RAID-1(镜像)卷(任务) 121
State: Okay
...
# metattach d30 d70
d30: submirror d70 is attached
# metastat d30
d30: mirror
Submirror 0: d60
State: Okay
Submirror 1: d70
State: Resyncing
Resync in progress: 41 %done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 2006130 blocks
...
本示例说明如何将子镜像d70 附加到单向镜像d30。将子镜像附加到镜像时,即会创建一个
双向镜像。镜像d30 最初由子镜像d60 组成。子镜像d70 是RAID-0 卷。可以使用metastat
命令验证镜像的状态是否为“Okay(正常)”,然后再附加子镜像。运行metattach 命令时,
新的子镜像会与现有镜像重新同步。向镜像附加其他子镜像时,系统会显示一条消息。要
验证镜像是否正在重新同步,请使用metastat 命令。
 如何拆离子镜像
请阅读第90 页中的“创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用metastat 命令验证要处理的镜像的状态是否为“Okay(正常)”。
开始之前
1
2
处理子镜像
122 Solaris Volume Manager 管理指南• 2006 年10 月
使用以下方法之一来拆离子镜像。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
 使用metadetach 命令从镜像中拆离子镜像。
# metadetach mirror submirror
有关更多信息,请参见metadetach(1M) 手册页。
拆离子镜像
# metastat
d5: mirror
Submirror 0: d50
...
# metadetach d5 d50
d5: submirror d50 is detached
在本示例中,镜像d5 包含一个子镜像d50。可以使用metadetach 命令拆离子镜像。d50 中的
基础片可以在其他位置重用。从镜像中拆离子镜像之后,系统会显示一条确认消息。
 如何使子镜像脱机和联机
只有当已经使用metaoffline 命令使子镜像脱机时,才能使用metaonline 命令。运行
metaonline 命令之后,Solaris Volume Manager 会自动开始将子镜像与镜像重新同步。
注– metaoffline 命令的功能与metadetach 命令所提供的功能相似。但是,metaoffline 命令
不会切断子镜像和镜像之间的逻辑关联。
请阅读第90 页中的“创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用以下方法之一使子镜像联机或脱机。
3
示例11–9
开始之前
1
2
处理子镜像
第11 章• RAID-1(镜像)卷(任务) 123
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
 使用metaoffline 命令使子镜像脱机。
# metaoffline mirror submirror
有关更多信息,请参见metaoffline(1M) 手册页。
 使用metaonline 命令使子镜像联机。
# metaonline mirror submirror
有关更多信息,请参见metaonline(1M) 手册页。
使子镜像脱机
# metaoffline d10 d11
d10: submirror d11 is offlined
在本示例中,子镜像d11 将从镜像d10 中脱机。系统将继续从其他子镜像中进行读取。首次
进行写入之后,镜像将不再同步。使脱机子镜像恢复联机后,即可更正这种不一致性。
使子镜像联机
# metaonline d10 d11d10: submirror d11 is onlined
在本示例中,使镜像d10 中的子镜像d11 恢复联机。
 如何启用子镜像中的片
请阅读第230 页中的“在RAID-1 和RAID-5 卷中替换和启用组件的概述”和第90 页中的“
创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用以下方法之一来启用子镜像中的片。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
 使用metareplace 命令启用子镜像中出现故障的片。
# metareplace -e mirror failed-slice
示例11–10
示例11–11
开始之前
1
2
处理子镜像
124 Solaris Volume Manager 管理指南• 2006 年10 月
metareplace 命令会自动开始重新同步,以便将已修复或替换的片与镜像的其余部分同
步。
有关更多信息,请参见metareplace(1M) 手册页。
启用子镜像中的片
# metareplace -e d11 c1t4d0s7
d11: device c1t4d0s7 is enabled
在本示例中,镜像d11 有一个包含片c1t4d0s7 的子镜像,该片中有一个软错误。使用带有
-e 选项的metareplace 命令可启用出现故障的片。
如果物理磁盘有缺陷,则可以使用系统中的另一块可用磁盘(及其片)来替换有缺陷的磁
盘,如第131 页中的“如何替换子镜像中的片”中所述。或者,也可以修理或替换磁盘,
将其格式化,然后运行带有-e 选项的metareplace 命令,如本示例中所示。
维护RAID-1 卷
 如何查看镜像和子镜像的状态
有关与RAID-1 卷和子镜像相关联的状态信息的概述,请参见第93 页中的“了解子镜像状
态以确定维护操作”。
使用以下方法之一来检查镜像或子镜像的状态。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮
助。
 针对镜像运行metastat 命令以查看每个子镜像的状态。
# metastat mirror
要更改镜像的传送号、读取选项或写入选项,请参见第128 页中的“如何更改RAID-1
卷选项”。
有关检查设备状态的更多信息,请参见metastat(1M)。
检查RAID-1 卷的状态
以下是metastat 命令的样例输出。使用不带镜像名称的metastat 命令可以显示所有镜像的
全部状态。
示例11–12
开始之前

示例11–13
维护RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 125
# metastatd70: Mirror
Submirror 0: d71
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 12593637 blocks
d71: Submirror of d70
State: Okay
Size: 12593637 blocks
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s3 0 No Okay Yes
Stripe 1:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s4 0 No Okay Yes
Stripe 2:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s5 0 No Okay Yes
d0: Mirror
Submirror 0: d1
State: Okay
Submirror 1: d2
维护RAID-1 卷
126 Solaris Volume Manager 管理指南• 2006 年10 月
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 5600 blocks
d1: Submirror of d0
State: Okay
Size: 5600 blocks
Stripe 0:
Device Start Block Dbase State Hot Spare
c0t2d0s7 0 No Okay
...
使用带有镜像名称参数的metastat 命令可以显示特定镜像的输出。
metastat d70
d70: Mirror
Submirror 0: d71
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 12593637 blocks
维护RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 127
d71: Submirror of d70
State: Okay
Size: 12593637 blocks
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s3 0 No Okay Yes
Stripe 1:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s4 0 No Okay Yes
Stripe 2:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s5 0 No Okay Yes
对于镜像中的每个子镜像,metastat 命令会显示其状态、"invoke" 行(如果有错误)、所指
定的热备用池(如果有)、大小(以块为单位)以及有关子镜像中每个片的信息。
 如何更改RAID-1 卷选项
请查看第92 页中的“关于RAID-1 卷选项”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用以下方法之一来更改RAID-1 选项。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”。请按照屏幕上的说明操作。有关更多信息,请参见联机帮
助。
 使用metaparam 命令显示和更改镜像的选项。
# metaparam [mirror options] mirror
有关镜像选项的说明,请参见第92 页中的“关于RAID-1 卷选项”。另请参见
metaparam(1M) 手册页。
开始之前
1
2
维护RAID-1 卷
128 Solaris Volume Manager 管理指南• 2006 年10 月
更改RAID-1 卷的读取策略
# metaparam -r geometric d30
# metaparam d30
d30: mirror current parameters are:
Pass: 1
Read option: geometric (-g)
Write option: parallel (default)
在本示例中,-r 选项用于将镜像的读取策略更改为geometric。
更改RAID-1 卷的写入策略
# metaparam -w serial d40
# metaparam d40
d40: mirror current parameters are:
Pass: 1
Read option: roundrobin (default)
Write option: serial (-S)
在本示例中,-w 选项用于将镜像的写入策略更改为serial。
更改RAID-1 卷的传送号
# metaparam -p 5 d50
# metaparam d50
d50: mirror current parameters are:
Pass: 5
Read option: roundrobin (default)
Write option: parallel (default)
在本示例中,-p 选项用于将镜像的传送号更改为5。
示例11–14
示例11–15
示例11–16
维护RAID-1 卷
第11 章• RAID-1(镜像)卷(任务) 129
 如何扩展RAID-1 卷
请阅读第90 页中的“创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用以下方法之一来扩展镜像。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”->“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
 使用metattach 命令向每个子镜像附加其他片。
# metattach submirror slice
必须对镜像中的每个子镜像都进行扩展。有关更多信息,请参见metattach (1M) 手册
页。
使用metattach 命令可以基于子镜像的大小重新计算镜像的大小。
# metattach mirror
扩展包含已挂载文件系统的双向镜像
# metastat
d8: Mirror
Submirror 0: d9
State: Okay
Submirror 1: d10
State: Okay
...
# metattach d9 c0t2d0s5
d9: component is attached
# metattach d10 c0t3d0s5
d10: component is attached
# metattach d8
开始之前
1
2
3
示例11–17
维护RAID-1 卷
130 Solaris Volume Manager 管理指南• 2006 年10 月
本示例说明如何通过将两个磁盘驱动器串联到镜像的两个子镜像来扩展已挂载的镜像文件
系统。该镜像的名称为d8,其中包含两个名为d9 和d10 的子镜像。
对于UFS,请针对镜像卷运行growfs(1M) 命令。请参见第229 页中的“如何扩展文件系统
”。
使用原始卷的应用程序(如数据库)必须通过各自的方法来扩展已添加的存储器。
响应RAID-1 卷组件的故障
 如何替换子镜像中的片
请阅读第230 页中的“在RAID-1 和RAID-5 卷中替换和启用组件的概述”和第90 页中的“
创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用metastat 命令查看RAID-1 卷和关联子镜像的状态。
# metastat mirror-name
使用以下方法之一来替换子镜像中的片。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
 使用以下格式的metareplace 命令替换子镜像中的片:
# metareplace mirror-name component-name
 mirror-name 是要创建的卷的名称。
 component-name 指定要替换的组件的名称。
mirror-name 指定要创建的卷的名称
component-name 指定要替换的组件的名称
有关更多信息,请参见以下示例和metainit(1M) 手册页。
替换镜像中出现故障的片
以下示例说明在未将系统配置为使用热备用池来自动替换出现故障的磁盘时,如何替换出
现故障的片。有关使用热备用池的更多信息,请参见第16 章。
另请参见
开始之前
1
2
3
示例11–18
响应RAID-1 卷组件的故障
第11 章• RAID-1(镜像)卷(任务) 131
# metastat d6
d6: Mirror
Submirror 0: d16
State: Okay
Submirror 1: d26
State: Needs maintenance
...
d26: Submirror of d6
State: Needs maintenance
Invoke: metareplace d6 c0t2d0s2
...
# metareplace d6 c0t2d0s2 c0t2d2s2
d6: device c0t2d0s2 is replaced with c0t2d2s2
metastat 命令用于确认镜像d6 是否包含一个子镜像d26,并且该镜像中的一个片处于
“Needs maintenance(需要维护)” 状态。metareplace 命令会将在metastat 输出的"Invoke"
行中指定的片替换为系统中另一个可用的片。系统会确认该片是否已替换,并开始重新同
步子镜像。
 如何替换子镜像
请阅读第230 页中的“在RAID-1 和RAID-5 卷中替换和启用组件的概述”和第90 页中的“
创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
使用metastat 命令查看RAID-1 卷和关联子镜像的状态。
# metastat mirror-name
使用以下方法之一来替换子镜像。
 从Solaris Management Console 中增强的存储工具中,打开“卷”节点。选择镜像。然后
选择“操作”⇒“属性”并单击“子镜像”选项卡。请按照屏幕上的说明操作。有关更
多信息,请参见联机帮助。
开始之前
1
2
3
响应RAID-1 卷组件的故障
132 Solaris Volume Manager 管理指南• 2006 年10 月
 使用metadetach、metaclear、metatinit 和metattach 命令替换整个子镜像。
a. 使用metadetach 命令从镜像中拆离出故障的子镜像。
# metadetach -f mirror-name submirror
-f 强制进行拆离
mirror-name 指定镜像的名称
submirror 指定要拆离的子镜像
b. 使用metaclear 命令删除子镜像。
# metaclear -f submirror
-f 强制删除子镜像
submirror 指定要删除的子镜像
c. 使用metainit 命令创建新的子镜像。
# metainit volume-name number-of-stripes components-per-stripe component-name
volume-name 指定要创建的卷的名称。有关对卷进行命名的信息,请参见
第39 页中的“卷名称”。
number-of-stripes 指定要创建的条带的数目。
components-per-stripe 指定每个条带应包含的组件的数目。
component-names 指定所使用的组件的名称。本示例使用根片c0t0d0s0。
d. 使用metattach 命令附加新的子镜像。
# metattach mirror submirror
替换镜像中的子镜像
以下示例说明如何替换活动镜像中的子镜像。
# metastat d20
d20: Mirror
Submirror 0: d21
State: Okay
Submirror 1: d22
State: Needs maintenance
示例11–19
响应RAID-1 卷组件的故障
第11 章• RAID-1(镜像)卷(任务) 133
...
# metadetach -fd20 d22
d20: submirror d22 is detached
# metaclear -fd22
d22: Concat/Stripe is cleared
# metainit d22 2 1 c1t0d0s2 1 c1t0d1s2
d22: Concat/Stripe is setup
# metattach d20 d22
d20: components are attached
在本示例中,metastat 命令用于确认双向镜像d20 是否包含处于“Needs maintenance(需要
维护)” 状态的子镜像d22。在这种情况下,需要清除整个子镜像并重新创建。metadetach
命令通过使用-f 选项来从镜像中拆离出故障的子镜像,该选项可强制进行拆离。metaclear
命令会清除子镜像。metainit 命令会使用新片重新创建d22 子镜像。最后,metattach 命令
会附加重新生成的子镜像。系统将开始自动重新同步镜像。
新卷d22 的具体配置取决于要替换的组件。此处所示的串联足以替换条带。但是,使用串
联来替换条带并不理想,因为它会影响性能。
如果是单向镜像,则会暂时失去数据冗余功能。
删除RAID-1 卷(取消镜像)
 如何取消镜像文件系统
对于可以在系统运行时取消挂载的文件系统,可以使用此过程对其取消镜像。要取消镜像
根(/) 文件系统、/var 文件系统、/usr 文件系统、swap 文件系统或者在系统运行时无法取
消挂载的其他任何文件系统,请参见第137 页中的“如何取消镜像无法挂载的文件系统
”。
请阅读第90 页中的“创建和维护RAID-1 卷”。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
开始之前
1
删除RAID-1 卷(取消镜像)
134 Solaris Volume Manager 管理指南• 2006 年10 月
验证是否至少有一个子镜像处于Okay(正常)状态。
# metastat mirror
取消挂载文件系统。
# umount /file-system
拆离将继续用于文件系统的子镜像。
# metadetach mirror submirror
有关更多信息,请参见metadetach(1M) 手册页。
清除镜像和剩余的子组件。
# metaclear -r mirror
有关更多信息,请参见metaclear(1M) 手册页。
如有必要,请编辑/etc/vfstab 文件,使其使用在步骤4 中拆离的组件。
重新挂载文件系统。
# mount /file-system
取消镜像/opt 文件系统
# metastat d4
d4: Mirror
Submirror 0: d2
State: Okay
Submirror 1: d3
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 2100735 blocks (1.0 GB)
d2: Submirror of d4
2
3
4
5
6
7
示例11–20
删除RAID-1 卷(取消镜像)
第11 章• RAID-1(镜像)卷(任务) 135
State: Okay
Size: 2100735 blocks (1.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s0 0 No Okay Yes
d3: Submirror of d4
State: Okay
Size: 2100735 blocks (1.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s0 0 No Okay Yes
...
# umount /opt
# metadetach d4 d2
d4: submirror d2 is detached
# metaclear -r d4
d4: Mirror is cleared
d3: Concat/Stripe is cleared
(编辑/etc/vfstab 文件使与/opt 对应的项从d4 更改为该基础片或卷)
# mount /opt
删除RAID-1 卷(取消镜像)
136 Solaris Volume Manager 管理指南• 2006 年10 月
在本示例中,/opt 文件系统由双向镜像d4 组成。该镜像的子镜像为d2 和d3。子镜像由片
/dev/dsk/c0t0d0s0 和/dev/dsk/c1t0d0s0 组成。metastat 命令会确认是否至少有一个子镜
像处于“Okay(正常)”状态。(必须首先修复其子镜像都不处于“Okay(正常)”状态的镜
像。)文件系统将会取消挂载。然后,将拆离子镜像d2。metaclear- r 命令会删除该镜像
和另一个子镜像d3。
接下来,会更改/etc/vfstab 文件中与/opt 相对应的项,使其引用基础片。
在本示例中,/etc/vfstab file 包含/opt 文件系统的以下项:
/dev/md/dsk/d4 /dev/md/rdsk/d4 /opt ufs 2 yes -
请更改该项,使其显示为:
/dev/md/dsk/d2 /dev/md/rdsk/d2 /opt ufs 2 yes -
使用子镜像名称,可以使文件系统继续挂载在卷上。最后,将重新挂载/opt 文件系统。
在/etc/vfstab 文件中使用d2 而不是d4,可以取消镜像。由于d2 由一个片组成,因此,如
果不希望设备支持卷,则可以在该片(其名称为/dev/dsk/c0t0d0s0)上挂载文件系统。
 如何取消镜像无法挂载的文件系统
使用此任务,可以取消镜像在正常系统运行过程中无法取消挂载的文件系统,包括根(/) 文
件系统、/usr 文件系统、/opt 文件系统和swap 文件系统。
确保您具有超级用户权限,并且拥有所有数据的最新备份。
验证是否至少有一个子镜像处于Okay(正常)状态。
# metastat mirror
拆离将继续用于文件系统的子镜像。
# metadetach mirror submirror
有关更多信息,请参见metadetach(1M) 手册页。
根据要取消镜像的文件系统,使用以下命令之一:
 对于/usr、/opt 或swap 文件系统,更改/etc/vfstab 文件中与各文件系统相对应的项,
使其使用非Solaris Volume Manager 设备(片)。
 仅限根(/) 文件系统:运行metaroot 命令。
# metaroot rootslice
有关更多信息,请参见metaroot(1M) 手册页。
1
2
3
4
删除RAID-1 卷(取消镜像)
第11 章• RAID-1(镜像)卷(任务) 137
重新引导系统。
# reboot
清除剩余的镜像和子镜像。
# metaclear -r mirror
有关更多信息,请参见metaclear(1M) 手册页。
取消镜像根(/) 文件系统
# metastat d0
d0: Mirror
Submirror 0: d10
State: Okay
Submirror 1: d20
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 2100735 blocks (1.0 GB)
d10: Submirror of d0
State: Okay
Size: 2100735 blocks (1.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t3d0s0 0 No Okay Yes
5
6
示例11–21
删除RAID-1 卷(取消镜像)
138 Solaris Volume Manager 管理指南• 2006 年10 月
d20: Submirror of d0
State: Okay
Size: 2100735 blocks (1.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t3d0s0 0 No Okay Yes
# metadetach d0 d20
d0: submirror d20 is detached
# metaroot /dev/dsk/c0t3d0s0
# reboot
...
# metaclear -r d0
d0: Mirror is cleared
d10: Concat/Stripe is cleared
# metaclear d20
d20: Concat/Stripe is cleared
在本示例中,根(/) 文件系统是双向镜像d0。该镜像的子镜像为d10 和d20。子镜像由片
/dev/dsk/c0t3d0s0 和/dev/dsk/c1t3d0s0 组成。metastat 命令会确认是否至少有一个子镜
像处于“Okay(正常)”状态。(必须首先修复其子镜像都不处于“Okay(正常)”状态的镜
像。)将拆离子镜像d20,使d0 成为单向镜像。
rootslice 是包含根(/) 文件系统的片。metaroot 命令会使用要从中引导系统的rootslice 来运
行。此命令会编辑/etc/system 和/etc/vfstab 文件。此命令会删除用来指定对根(/) 文件
系统进行镜像的信息。
系统重新引导之后,metaclear -r 命令会删除该镜像和另一个子镜像d10。最后一个
metaclear 命令会清除子镜像d20。
删除RAID-1 卷(取消镜像)
第11 章• RAID-1(镜像)卷(任务) 139
取消镜像swap 文件系统
# metastat d1
d1: Mirror
Submirror 0: d11
State: Okay
Submirror 1: d21
State: Okay
...
# metadetach d1 d21
d1: submirror d21 is detached
(编辑/etc/vfstab 文件以将与swap 对应的项从metadevice 更改为片名称)
# reboot
...
# metaclear -r d1
d1: Mirror is cleared
d11: Concat/Stripe is cleared
# metaclear d21
d21: Concat/stripe is cleared
在本示例中,swap 文件系统由双向镜像d1 组成。该镜像的子镜像为d11 和d21。子镜像由
片/dev/dsk/c0t3d0s1 和/dev/dsk/c1t3d0s1 组成。metastat 命令会确认是否至少有一个子
镜像处于“Okay(正常)”状态。(必须首先修复其子镜像都不处于“Okay(正常)”状态的
镜像。)将拆离子镜像d21,使d1 成为单向镜像。接下来,会编辑/etc/vfstab 文件,以更
改与swap 相对应的项,使其引用子镜像d21 中的片。
在本示例中,/etc/vfstab file 包含swap 文件系统的以下项:
/dev/md/dsk/d4 /dev/md/rdsk/d4 /opt ufs 2 yes -
/dev/md/dsk/d1 - - swap - no -
示例11–22
删除RAID-1 卷(取消镜像)
140 Solaris Volume Manager 管理指南• 2006 年10 月
请更改该项,使其显示为:
/dev/dsk/c0t3d0s1 - - swap - no -
系统重新引导之后,metaclear -r 命令会删除该镜像和另一个子镜像d11。最后一个
metaclear 命令会清除子镜像d21。
在RAID-1 卷上备份数据
Solaris Volume Manager 并不是“备份产品”。Solaris Volume Manager 确实提供了一种备份镜像
数据的方法,而不会导致出现以下任一情况:
 取消挂载镜像
 使整个镜像脱机
 停止系统
 拒绝用户访问数据
Solaris Volume Manager 通过首先使其中一个子镜像脱机来备份镜像数据。在备份过程中,
镜像将暂时不可用。一旦备份完成,子镜像将立即恢复联机和重新同步。
注– UFS 快照功能提供了一种不使文件系统脱机即可备份系统的备选方法。可以在不拆离子
镜像的情况下执行备份,这样也避免了以后由于重新同步镜像而导致性能损失。使用UFS
快照功能执行备份之前,请确保UFS 文件系统中有足够的可用空间。有关更多信息,请参
见《System Administration Guide: Devices and File Systems》中的第26 章,“Using UFS
Snapshots (Tasks)”。
 如何对RAID-1 卷执行联机备份
可以针对除根(/) 文件系统以外的任何文件系统使用此过程。请注意,这种类型的备份会创
建活动文件系统的“快照”。根据文件系统处于写入锁定状态时的使用方式,所备份的某些
文件可能与磁盘上的实际文件不对应。
以下限制适用于此过程:
 如果针对双向镜像使用此过程,请注意,在使一个子镜像脱机以进行备份时,会失去数
据冗余功能。多向镜像则不存在此问题。
 备份完成之后,对重新附加的子镜像重新同步时,会产生一些系统开销。
此过程中的概括性步骤如下所示:
 对文件系统进行写入锁定(仅限UFS)。请勿锁定根(/) 文件系统
 将高速缓存中的所有数据刷新到磁盘。
 使用metadetach 命令从镜像中拆离某个子镜像
 解除锁定文件系统
在RAID-1 卷上备份数据
第11 章• RAID-1(镜像)卷(任务) 141
 使用fsck 命令检查已拆离子镜像中的文件系统
 将数据备份到已拆离子镜像中
 使用metattach 命令将已拆离子镜像重新放回镜像中
注– 如果要定期使用上述过程,请将其置入脚本中以方便使用。
提示– 对于此过程,比较安全的做法是向镜像中附加第三个或第四个子镜像,允许该子镜像
重新同步,然后使用该子镜像进行备份。此方法可确保一直保持数据冗余功能。
验证镜像是否处于“Okay(正常)”状态。
应当首先修复处于“Maintenance(维护)”状态的镜像。
# metastat mirror
将高速缓存中的数据和UFS 日志记录数据刷新到磁盘上,并对文件系统进行写入锁定。
# /usr/sbin/lockfs -w mount-point
仅有UFS 卷才需要进行写入锁定。如果将该卷设置为数据库管理软件或其他某个应用程序
的原始设备,则不必运行lockfs 命令。但是,您可能希望运行由供应商提供的适当实用程
序来刷新所有缓冲区并锁定访问。
注意– 请勿对根(/) 文件系统进行写入锁定。对根(/) 文件系统进行写入锁定会导致系统挂
起。如果要备份根(/) 文件系统,请跳过此步骤。
从镜像中拆离某个子镜像。
# metadetach mirror submirror
mirror 镜像的卷名。
submirror 拆离的子镜像(卷)的卷名。
系统将继续从其他子镜像中进行读取。首次进行写入之后,镜像将不再同步。按照步骤7
中的说明重新附加已拆离子镜像后,即可更正这种不一致性。
解除锁定文件系统,从而允许继续进行写入。
# /usr/sbin/lockfs -u mount-point
您可能需要基于在步骤2 中使用的与供应商有关的实用程序来执行必要的解除锁定过程。
使用fsck 命令检查已拆离子镜像中的文件系统。此步骤可确保进行完全备份。
# fsck /dev/md/rdsk/name
1
2
3
4
5
在RAID-1 卷上备份数据
142 Solaris Volume Manager 管理指南• 2006 年10 月
对脱机的子镜像执行备份。
使用ufsdump 命令或常用的备份实用程序。有关使用ufsdump 命令执行备份的信息,请参见
第316 页中的“使用ufsdump 命令对已挂载的文件系统执行备份”。
注– 要确保备份正确,请使用原始卷名,如/dev/md/rdsk/d4。使用原始卷名可以访问大于2
GB 的存储器。
附加该子镜像。
# metattach mirror submirror
Solaris Volume Manager 会自动开始将该子镜像与相应的镜像重新同步。
对RAID-1 卷执行联机备份
本示例使用镜像d1。该镜像由子镜像d2、d3 和d4 组成。子镜像d3 将在d2 和d4 子镜像保持
联机时进行拆离和备份。该镜像中的文件系统是/home1。
# metastat d1
d1: Mirror
Submirror 0: d2
State: Okay
Submirror 1: d3
State: Okay
Submirror 1: d4
State: Okay
...
# /usr/sbin/lockfs -w /home1
# metadetach d1 d3
# /usr/sbin/lockfs -u /home1
# /usr/sbin/fsck /dev/md/rdsk/d3
(Perform backup using /dev/md/rdsk/d3)
6
7
示例11–23
在RAID-1 卷上备份数据
第11 章• RAID-1(镜像)卷(任务) 143
# metattach d1 d3
在RAID-1 卷上备份数据
144 Solaris Volume Manager 管理指南• 2006 年10 月
软分区(概述)
本章提供有关Solaris Volume Manager 软分区的信息。有关相关任务的信息,请参见
第13 章。
本章包含以下信息:
 第145 页中的“软分区概述”
 第146 页中的“软分区的配置指南”
软分区概述
随着磁盘存储容量的增加,磁盘阵列为Solaris 系统提供了更大的逻辑设备。为了创建更多
便于管理的文件系统或分区大小,用户可能需要将磁盘或逻辑卷划分为八个以上的分区。
Solaris Volume Manager 的软分区功能可以满足此需要。
Solaris Volume Manager 最多可支持每个磁盘集8192 个逻辑卷。此数字包括本地(即未指定
的)磁盘集。Solaris Volume Manager 可以在需要卷时动态配置卷。
可以使用软分区根据需要将磁盘片或逻辑卷分成许多分区。必须为每个分区(即软分区)
提供名称,就像为其他存储卷(如条带或镜像)提供名称一样。软分区命名后,只要它不
包括在其他卷中,则应用程序(包括文件系统)便可对其进行访问。软分区包括在卷中
后,就不应对其直接访问。
可以将软分区直接置于磁盘片上方,或置于镜像卷、条带化卷或RAID-5 卷的顶部。软分区
不能位于其他卷的上方和下方。例如,如果在一个软分区上生成了镜像,则不允许在条带
上生成该软分区。
对于文件系统和其他应用程序,软分区看上去是单个连续逻辑卷。但是,软分区实际上是
由一系列可能位于基础介质上的任意位置的扩展组成。除了软分区以外,磁盘上的分区扩
展表头(也称为系统恢复数据区域)还记录有关软分区的信息,从而便于在出现灾难性系
统故障时进行恢复。
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~