在Sun Fire V440 服务器上,可以使用板载Ultra-4 SCSI 控制器来配置硬件磁盘镜像。它的性能比使用卷管理软件的常规软件镜像的性能更高。RAID 1 提供了最高级别的数据保护,但是,由于所有的数据都要存储两遍,因此增加了存储成本,而且,它与RAID 0 或RAID 5 相比,写操作性能有所降低。
在Sun Fire V440 服务器上, Ultra-4 SCSI 控制器支持使用Solaris 操作环境raidctl实用程序来进行内部硬件磁盘镜像。使用raidctl 实用程序创建的硬件磁盘镜像,与使用卷管理软件创建的硬件磁盘镜像稍有不同。使用软件的镜像中,每个驱动器在虚拟设备树中都有其自己的条目,并且对两个虚拟设备都可以执行读 / 写操作。在硬件磁盘镜像中,设备树中只出现一个设备(主设备)。镜像的设备(从设备)对操作系统是不可见的,只能通过Ultra-4 SCSI 控制器进行访问。
一.如何创建硬件磁盘镜像
执行此过程可以在系统上创建内部硬件磁盘镜像配置。
1.开始之前,验证磁盘驱动器与逻辑设备名称及物理设备名称之间的对应关系。
代码:
磁盘插槽号
逻辑设备名称*
物理设备名称
0号插槽
c1t0d0
/devices/pci@1f,700000/scsi@2/sd@0,0
3号插槽
c1t1d0
/devices/pci@1f,700000/scsi@2/sd@1,0
2号插槽
c1t2d0
/devices/pci@1f,700000/scsi@2/sd@2,0
3号插槽
c1t3d0
/devices/pci@1f,700000/scsi@2/sd@3,0
注:逻辑设备名称在您的系统上的显示方式可能有所不同,这取决于所安装的附加磁盘控制器的数量和类型。
2.要验证硬件磁盘镜像尚未存在,请键入:
代码:
# raidctl
No RAID volumes found.
3.创建内部硬件磁盘镜像:
代码:
# raidctl -c c1t0d0 c1t1d0
创建RAID 镜像之后,从属驱动器(在本例中为c1t1d0)将从Solaris 设备树中消失。
4.检查RAID 镜像的状态:
代码:
# raidctl
RAID
RAID
RAID
Disk
Volume
Status
Disk
Status
--------------------------------------------------------
c1t0d0
RESYNCING
c1t0d0
OK
c1t1d0
OK
上面的示例表示RAID 镜像仍然正在与备份驱动器重新同步。
下面的示例表示RAID 镜像已完全恢复并且联机。
代码:
# raidctl
RAID
RAID
RAID
Disk
Volume
Status
Disk
Status
--------------------------------------------------------
c1t0d0
OK
c1t0d0
OK
c1t1d0
OK
二.如何删除硬件磁盘镜像
执行此过程可从系统中删除硬件磁盘镜像配置。
1. 确定镜像卷的名称:
代码:
# raidctl
RAID
RAID
RAID
Disk
Volume
Status
Disk
Status
--------------------------------------------------------
c1t0d0
OK
c1t0d0
OK
c1t1d0
OK
在本例中,镜像卷为c1t0d0。
2. 删除卷:
代码:
# raidctl -d c1t0d0
RAID Volume ’c0t0d0’ deleted
3. 确认已经删除了RAID 阵列:
代码:
# raidctl
No RAID volumes found.
三.如何恢复硬件磁盘镜像
执行此过程可从系统中恢复硬件磁盘镜像配置。
1.确认发生故障的磁盘:
代码:
# raidctl
RAID
RAID
RAID
Disk
Volume
Status
Disk
Status
----------------------------------------------------------
c1t1d0
DEGRADED
c1t0d0
OK
c1t1d0
DEGRADED
表示由于磁盘c1t1d0 上出现故障而导致磁盘镜像失效。
2.执行镜像磁盘热插拔操作:
代码:
# cfgadm -x unconfigure /dev/rdsk/c0t0d0
注意 ? 确保磁盘驱动器“可以拆卸” LED 已亮,表示该磁盘驱动器处于脱机状态。如果磁盘驱动器仍处于联机状态,在读 / 写操作时拆卸磁盘就存在着丢失数据的危险。
3.更换新硬盘后执行:
代码:
# cfgadm -x configure /dev/rdsk/c0t0d0
4.检查RAID镜像的状态:
代码:
# raidctl
RAID
RAID
RAID
Disk
Volume
Status
Disk
Status
--------------------------------------------------------
c1t0d0
RESYNCING
c1t0d0
OK
c1t1d0
OK
上面的示例表示RAID 镜像仍然正在与备份驱动器重新同步。
下面的示例表示RAID 镜像已完全恢复并且联机。
代码:
# raidctl
RAID
RAID
RAID
Disk
Volume
Status
Disk
Status
--------------------------------------------------------
c1t0d0
OK
c1t0d0
OK
c1t1d0
OK
四.如何执行非镜像磁盘热插拔操作-------附加
1.查看SCSI 设备的状态:
代码:
# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
c0 scsi-bus connected configured unknown
c0::dsk/c0t0d0 CD-ROM connected configured unknown
c1 scsi-bus connected configured unknown
c1::dsk/c1t0d0 disk connected configured unknown
c1::dsk/c1t1d0 disk connected configured unknown
c1::dsk/c1t2d0 disk connected configured unknown
c1::dsk/c1t3d0 disk connected configured unknown
c2 scsi-bus connected configured unknown
c2::dsk/c2t2d0 disk connected configured unknown
usb0/1 unknown empty unconfigured ok
usb0/2 unknown empty unconfigured ok
usb1/1 unknown empty unconfigured ok
usb1/2 unknown empty unconfigured ok
#
注 ? 逻辑设备名称在您的系统上的显示方式可能有所不同,这取决于所安装的附加磁盘控制器的数量和类型。
-al 选项返回所有SCSI 设备(包括总线和USB 设备)的状态。(在此示例中,系统没有连接USB 设备。)
注意:虽然您可以使用Solaris 操作环境cfgadm install_device 和cfgadm
remove_device 命令来执行磁盘驱动器的热插拔过程,但是,如果您在包含系统磁盘的总线上调用这些命令,那么,这些命令会发出如下的警告消息:
代码:
# cfgadm -x remove_device c1::dsk/c1t1d0
Removing SCSI device: /devices/pci@1f,4000/scsi@3/sd@1,0
This operation will suspend activity on SCSI bus: c1
Continue (yes/no)? y
dev = /devices/pci@1f,4000/scsi@3/sd@1,0
cfgadm: Hardware specific failure: failed to suspend:
Resource Information
------------------ -------------------------
/dev/dsk/c1t0d0s0 mounted filesystem "/"
/dev/dsk/c1t0d0s6 mounted filesystem "/usr"
发布此警告是因为这些命令试图使Ultra-4 SCSI 总线停止活动,但是Sun Fire V440 服务器固件不让它停止活动。在Sun Fire V440 服务器上,可以安全地忽略此警告消息,而下面的过程可以避免出现这一警告消息。
2.从设备树中删除该磁盘驱动器:
代码:
# cfgadm -c unconfigure c1::dsk/c1t3d0
此示例从设备树中删除c1t3d0。蓝色“可以拆卸” LED 发光。
3.验证已从设备树中删除该设备:
代码:
# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
c0 scsi-bus connected configured unknown
c0::dsk/c0t0d0 CD-ROM connected configured unknown
c1 scsi-bus connected configured unknown
c1::dsk/c1t0d0 disk connected configured unknown
c1::dsk/c1t1d0 disk connected configured unknown
c1::dsk/c1t2d0 disk connected configured unknown
c1::dsk/c1t3d0 unavailable connected unconfigured unknown
c2 scsi-bus connected configured unknown
c2::dsk/c2t2d0 disk connected configured unknown
usb0/1 unknown empty unconfigured ok