Solaris 11.2 基于 ZFS 文件系统。磁盘 I/O、磁盘分区和磁盘镜像(或 RAID)完全是由 ZFS 处理的。因此,应当不需要对磁盘进行分区(使用 UFS 文件系统时通常要这样做)。整个系统磁盘应当显示为单个分区。
您的存储阵列已配置了 RAID,因此,没有必要使用 ZFS 为您的 ACSLS 文件系统配置额外的 RAID 级别。如果使用的是简单的 JBOD 磁盘,则 ZFS RAID 是必需的,但是如果采用了合格的磁盘阵列,则该额外的 RAID 是可选的。下面的示例将对这两种方式对进行说明。
您的 Solaris 平台应配置有两个物理磁盘驱动器。对系统磁盘及其镜像驱动器进行分区以实现最佳的 ZFS 性能。
在新系统上,安装操作系统之前,可以对每个系统磁盘驱动器进行分区,使分区 0 包含整个磁盘空间的大部分(如果不包含全部)。如果 ZFS 能够访问整个磁盘,则其可以更快更可靠地运行。确保在第二个磁盘上为 ZFS 定义的分区与在主磁盘上定义的分区大小相同。
在已安装了 Solaris 11.2 的系统上,对主系统磁盘使用 format
或 fdisk
查看 root
分区的大小。对第二个系统磁盘进行格式化,使其具有一个相同大小的分区。当格式化完成后,为磁盘添加标签。
当系统正常运行时,使用命令 zpool
status
检验 rpool
。
# zpool status pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c0t5000C5000EA48903d0s0 ONLINE 0 0 0
查明第二个系统磁盘并确定其设备 id。
# echo | format AVAILABLE DISK SELECTIONS: 0. c0t5000C5000EA48893d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848> /scsi_vhci/disk@g5000c5000ea48893 1. c0t5000C5000EA48903d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848> /scsi_vhci/disk@g5000c5000ea48903
选择其大小接近步骤 2 中相关设备的大小的备选设备。在本示例中,第二个磁盘 ID 是 c0t5000C5000EA48893d0s
将第二个磁盘添加到 rpool
。
# zpool attach -f rpool \ c0t5000C5000EA48903d0 \ c0t5000C5000EA48893d0
系统将开始重新同步镜像驱动器,将引导驱动器的内容复制到第二个驱动器。此操作需要花费几分钟时间并且不应通过重新引导将其中断。
可以使用以下命令监视进度:
zpool status -v
备注 1:除非重新同步已完成,否则,任何状态显示都表明磁盘将处于降级模式。在从主磁盘向镜像复制信息期间,磁盘会保持降级状态
备注 2:如果 zpool
attach
因为磁盘被标记为 EFI 磁盘而失败,请执行《Oracle Solaris 管理:设备和文件系统》文档中介绍的过程,本文档的网址为:http://docs.oracle.com/cd/E23824_01/pdf/821-1459.pdf
。此过程将 EFI 磁盘转换为 SMI,如下所示:
# format -e (select the drive to serve as the rpool mirror). format> partition partition> print partition> label (specify label type "0") Ready to label? y partition> modify (select "1" All free Hog) Do you wish to continue ... yes Free Hog Partition[6]? (specify partition "0") (Specify a size of "0" to the remaining partitions) Okay to make this current partition table? yes Enter table name: "c1t1d0" Ready to label disk? y partition> quit format> quit
确认镜像 rpool
配置。
# zpool status pool: rpool state: ONLINE scan: resilvered 6.89G in 0h3m with 0 errors config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C5000EA48903d0 ONLINE 0 0 0 c0t5000C5000EA48893d0 ONLINE 0 0 0
在相邻节点上重复此操作。
ACSLS 文件系统位于外部的共享存储阵列上的 zpool
中。下面的示例采用了一个仅使用两个磁盘的简单镜像阵列 (RAID 1)。这些可能是真实的驱动器,但最可能是虚拟设备,这些虚拟设备呈现为来自所连接的存储阵列的离散驱动器。
存储阵列已配置了 RAID,因此,没有必要使用 ZFS 为您的 ACSLS 文件系统配置额外的 RAID 级别。如果使用的是简单的 JBOD 磁盘,则 ZFS RAID 是必需的,但是如果采用了合格的磁盘阵列,则该额外的 RAID 是可选的。下面的示例将对这两种方式对进行说明。
准备共享存储阵列。
在标准配置中,使用来自磁盘阵列的单个虚拟驱动器。否则,ZFS RAID 镜像配置会使用大小相等的两个虚拟驱动器。管理工具可以与磁盘阵列或 Solaris format 实用程序一起使用对两个虚拟驱动器进行分区,以使其大小相等。
确定 ACSLS 安装的目标基目录。
ACSLS 8.4 可安装在任何文件系统中。所选基文件系统不应已存在于系统 rpool
中。如果已存在,则在新的 zpool
下创建现有文件系统时,应先销毁该文件系统。
如果对 ACSLS 使用默认的 /export/home
基目录,则需要从 Solaris 11.2 的默认 root
池销毁 /export
文件系统。
要确认 /export/home
是否已附加到 rpool
,请运行以下命令:
# zfs list
要将 /export/home
从 rpool
分离,请首先保存您要保留的所有文件或目录。确保所有用户的起始目录当前在 /export/home
中均未处于活动状态。然后,使用 zfs
destroy
删除 /export
下的所有内容:
# zfs destroy -r rpool/export
在相邻节点上重复此步骤来分离 rpool/export
。
使用 format
标识所连接的磁盘阵列上的驱动器的设备名称:
# echo | format AVAILABLE DISK SELECTIONS: 0. c0t5000C5000EA48893d0 <FUJITSU-MAY2073RCSUN72G-0501-68.37GB> /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@0,0 /dev/chassis/SYS/HD0/disk 1. c0t5000C5000EA48893d0 <FUJITSU-MAY2073RCSUN72G-0501-68.37GB> /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@1,0 /dev/chassis/SYS/HD1/disk 3. c0t600A0B800049EDD600000C9952CAA03Ed0 <SUN-LCSM100_F-50.00GB> /scsi_vhci/disk@g600a0b800049edd600000c9952caa03e 4. c0t600A0B800049EE1A0000832652CAA899d0 <SUN-LCSM100_F-50.00GB> /scsi_vhci/disk@g600a0b800049ee1a0000832652caa899
在此示例中,有两个系统磁盘和两个来自磁盘阵列且设备名称以 c0t600A... 开头的虚拟磁盘。
创建 acslspool
。
如果要使用合格的磁盘阵列进行标准配置,请按如下所述创建 acslspool
:
# zpool create -m /export/home acslspool\ /dev/dsk/c0t600A0B800049EDD600000C9952CAA03Ed0
如果根据步骤 1 中的建议添加了 ZFS RAID,请按如下所述创建一个镜像配置:
# zpool create -m /export/home acslspool mirror \ /dev/dsk/c0t600A0B800049EDD600000C9952CAA03Ed0 \ /dev/dsk/c0t600A0B800049EE1A0000832652CAA899d0
检验新的 acslspool
。
# zpool status acslspool pool: acslspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM acslspool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t600A0B800049EDD600000C9952CAA03Ed0 ONLINE 0 0 0 c0t600A0B800049EE1A0000832652CAA899d0 ONLINE 0 0 0
注意:
当使用 RAID 磁盘阵列时,镜像 ZFS 配置是可选的。在新池中创建一个测试文件并进行检验。
# cd /export/home # date > test # ls test # cat test Tue Jan 7 11:48:05 MST 2015
导出池。
# cd / # zpool export acslspool
登录到相邻节点(该节点被称为新的当前节点)。
在新的当前节点上,确认 /export/home
(或 ACSLS 的目标文件系统)未挂载在 root
池中的任何位置。
# zfs list
如果该文件系统已存在于 rpool
中,则在此当前节点上重复上面的步骤 2。
在新的当前节点上,导入 acslspool
并检验 acslspool
是否已存在于此节点上。
# zpool import acslspool # zpool status pool: acslspool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM acslspool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t600A0B800049EDD600000C9952CAA03Ed0 ONLINE 0 0 0 c0t600A0B800049EE1A0000832652CAA899d0 ONLINE 0 0 0
如果 zpool import
失败,则可以通过 zpool import -f
尝试此操作。
注意:
当使用 RAID 磁盘阵列时,镜像 ZFS 配置是可选的。检验测试文件是否已存在于新的当前节点上。
# cd /export/home # ls test # cat test Tue Jan 7 11:48:05 MST 2015