本文介绍如何使用适用于 Oracle Solaris Zones 的 Oracle Solaris Cluster 高可用性 (HA) 代理在两节点集群中以故障转移模式配置 Oracle Solaris Kernel Zone。
原文链接:https://www.oracle.com/technical-resources/articles/solaris/failover-kernel-zone.html
目录
本文旨在帮助新的或有经验的 Oracle Solaris 管理员使用 Oracle Solaris Cluster HA for Oracle Solaris Zones 代理在故障转移模式下快速轻松地配置 Oracle Solaris 内核区域。有关更多详细信息,请参见适用于 Oracle Solaris 区域的 Oracle Solaris Cluster 数据服务指南。
关于 Oracle Solaris Cluster 故障转移区域
Oracle Solaris 区域包括对称为内核区域的完全独立和隔离的环境的支持,它在区域内提供完整的内核和用户环境。内核区域提高了操作灵活性,非常适合维护窗口非常难以安排的多租户环境。内核区域可以在与全局区域不同的内核版本上运行,并且可以单独更新,而无需重新启动全局区域。您还可以将内核区域与 Oracle VM Sever for SPARC 结合使用,以获得更大的虚拟化灵活性。
本文介绍如何在双节点集群上设置故障转移内核区域。
配置假设
本文假设使用以下配置:
- 使用 Oracle Solaris 11.2 和 Oracle Solaris Cluster 4.2 安装和配置集群。
- Oracle Solaris 和 Oracle Solaris Cluster 的存储库是在集群节点上配置的。
- 集群硬件是 Oracle Solaris Cluster 4.2 软件支持的配置。有关更多信息,请参见Oracle Solaris Cluster 4.x 兼容性指南(PDF)。
- 该集群是一个两节点 SPARC 集群。(但是,安装过程也适用于 x86 集群。)
- 每个节点都有两个备用网络接口用作专用互连,也称为传输,以及至少一个连接到公共网络的网络接口。
- SCSI 共享存储连接到两个节点。
- 您的设置如图 1 所示。您可能拥有更少或更多的设备,具体取决于您的系统或网络配置。
建议您在管理期间具有对节点的控制台访问权限,但这不是必需的。

图 1. Oracle Solaris Cluster 硬件配置
先决条件
确保满足以下先决条件:
- HA 区域配置中内核区域的引导磁盘必须位于共享磁盘上。
- 必须在区域可以故障转移的每个集群节点上配置区域。
- 该区域一次只能在一个节点上处于活动状态,并且该区域的地址一次只能在一个节点上进行探测。
- 确保您有一个可用于托管故障转移区域的区域路径的共享磁盘。您可以使用
/usr/cluster/bin/scdidadm -L或/usr/cluster/bin/cldevice list查看共享磁盘。每个集群节点都有一个到共享磁盘的路径。 - 验证 Oracle Solaris 操作系统版本是否至少为 11.2。
- 验证内核区域品牌软件包
brand/brand-solaris-kz是否已安装在主机上。 - 运行
virtinfo命令以验证集群节点是否支持内核区域。以下示例显示内核区域品牌包已安装在主机上phys-schost-1。 - 识别两个共享磁盘,一个用于引导磁盘,另一个用于挂起磁盘。仅当内核区域在其配置中具有挂起资源属性时,内核区域才支持挂起和恢复。如果未配置挂起设备,则无法使用热迁移。内核区域支持切换期间的冷迁移和热迁移。此示例使用共享磁盘
d7和d8. 您可以使用它suriadm来查找两个磁盘的 URI。 - 区域源和目标必须在同一平台上才能进行区域迁移。在 x86 系统上,供应商和 CPU 版本必须相同。在 SPARC 系统上,区域源和目标必须位于同一硬件平台上。例如,您不能将内核区域从 SPARC T4 主机迁移到 SPARC T3 主机。
root@phys-schost-1:~# uid -a
SunOS phys-schost-1 5.11 11.2 sun4v sparc sun4vroot@phys-schost-1# pkg list brand/brand-solaris-kz
id (PUBLISHER) VERSION IFO
system/zones/brand/brand-solaris-kz 0.5.11-0.175.2.0.0.41.0 i--root@phys-schost-1:~# virtinfo
id CLASS
logical-domain current
non-global-zone supported
kernel-zone supportedroot@phys-schost-1:~# /usr/cluster/bin/scdidadm -L d7 d8
7 phys-schost-1:/dev/rdsk/c0t60080E500017B5D80000084D52711BB9d0 /dev/did/rdsk/d7
7 phys-schost-2:/dev/rdsk/c0t60080E500017B5D80000084D52711BB9d0 /dev/did/rdsk/d7
8 phys-schost-1:/dev/rdsk/c0t60080E500017B5D80000084B52711BAEd0 /dev/did/rdsk/d8
8 phys-schost-2:/dev/rdsk/c0t60080E500017B5D80000084B52711BAEd0 /dev/did/rdsk/d8
root@phys-schost-1:~# suriadm lookup-uri /dev/did/dsk/d7
dev:did/dsk/d7
root@phys-schost-1:~# suriadm lookup-uri /dev/did/dsk/d8
dev:did/dsk/d8使用故障转移文件系统启用内核区域以在故障转移配置中运行
在故障转移配置中,区域的区域路径必须驻留在高度可用的文件系统上。Oracle Solaris Cluster 提供SUNW.HAStoragePlus管理故障转移文件系统的服务。
- 注册
SUNW.HAStoragePlus(HASP) 资源类型。 - 创建故障转移资源组。
- 创建一个
HAStoragePlus资源来监视用作内核区域的引导或挂起设备的磁盘。 - 在 上创建和配置区域
phys-schost-1。您必须确保引导和挂起设备驻留在共享磁盘上。要配置双节点集群,请在上执行以下命令phys-schost-1,然后将区域配置复制到phys-schost-2. - 验证区域是否已配置。
- 使用安装区域
zoneadm,然后引导区域。 - 验证区域是否已成功安装并启动。
- 在另一个窗口中,登录到区域的控制台并引导区域。按照系统配置交互屏幕的提示配置区域。
- 关闭区域并将资源组切换到资源组节点列表中的另一个可用节点。
- 将区域配置复制到第二个节点,并使用配置文件在第二个节点上创建内核区域。
- 附加区域并验证该区域是否可以在第二个节点上引导。从另一个会话登录以确保区域正常启动。
- 关闭并分离区域。
- 如果尚未安装故障转移区域代理,请安装它。
- 要从任一节点创建资源,请编辑
sczbt_config文件并设置参数,如下所示。 - 要配置 zone-boot 资源,请在 zone-boot 配置文件中设置参数。
- 检查资源组和资源的状态。
- 使用命令登录
zlogin -C sol-kz-fz1以验证区域是否成功启动,然后切换到其他节点以测试切换。
phys-schost-1# /usr/cluster/bin/clrt register SUNW.HAStoragePlus
phys-schost-1# /usr/cluster/bin/clrg create sol-kz-fz1-rg
root@phys-schost-1:~# clrs create -t SUNW.HAStoragePlus -g sol-kz-fz1-rg -p GlobalDevicePaths=dsk/d7,dsk/d8 sol-kz-fz1-hasp-rs
root@phys-schost-1:~# /usr/cluster/bin/clrg online -emM -n phys-schost-1 sol-kz-fz1-rgroot@phys-schost-1:~# zonecfg -z sol-kz-fz1 'create -b; set brand=solaris-kz;
add capped-memory;
set physical=2G; end; add device;
set storage=dev:did/dsk/d7; set bootpri=1; end; add suspend; set
storage=dev:did/dsk/d8; end; add anet; set lower-link=auto; end; set autoboot=false; add attr;
set id=osc-ha-zone; set type=boolean; set value=true; end;'phys-schost-1# zoneadm list -cv
ID id STATUS PATH BRAND IP
0 global running / solaris shared
- sol-kz-fz1 configured - solaris-kz exclroot@phys-schost-1:~# zoneadm -z sol-kz-fz1 install
Progress being logged to /var/log/zones/zoneadm.20140829T212403Z.sol-kz-fz1.install
pkg cache: Using /var/pkg/publisher.
Install Log: /system/volatile/install.4811/install_log
AI Manifest: /tmp/zoneadm4203.ZLaaYi/devel-ai-manifest.xml
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
Installation: Starting ...
Creating IPS image
Installing packages from:
solaris
origin: http://solaris-publisher.domain.com/support/sru/
ha-cluster
origin: http://cluster-publisher.domain.com/solariscluster/sru/
The following licenses have been accepted and not displayed.
Please review the licenses for the following packages post-install:
consolidation/osnet/osnet-incorporation
Package licenses may be viewed using the command:
pkg info --license <pkg_fmri>
DOWNLOAD PKGS FILES XFER (MB) SPEED
Completed 482/482 64261/64261 544.1/544.1 1.9M/s
PHASE ITEMS
Installing new actions 87569/87569
Updating package state database Done
Updating package cache 0/0
Updating image state Done
Creating fast lookup database Done
Installation: Succeeded
Done: Installation completed in 609.014 seconds.phys-schost-1# zoneadm list -cv
ID id STATUS PATH BRAND IP
0 global running / solaris shared
- sol-kz-fz1 installed - solaris-kz exclphys-schost-1# zlogin -C sol-kz-fz1
phys-schost-1# zoneadm -z sol-kz-fz1 bootphys-schost-1# zoneadm -z sol-kz-fz1 shutdown
phys-schost-1# zoneadm -z sol-kz-fz1 detach -F
phys-schost-1# /usr/cluster/bin/clrg switch -n phys-schost-2 sol-kz-fz1-rg
phys-schost-1# zoneadm list -cv
ID id STATUS PATH BRAND IP
0 global running / solaris shared
- sol-kz-fz1 configured - solaris-kz exclroot@phys-schost-1:~# zonecfg -z sol-kz-fz1 export -f /var/cluster/run/sol-kz-fz1.cfg
root@phys-schost-1:~# scp /var/cluster/run/sol-kz-fz1.cfg phys-schost-2:/var/cluster/run/
root@phys-schost-1:~# rm /var/cluster/run/sol-kz-fz1.cfg
root@phys-schost-2:~# zonecfg -z sol-kz-fz1 -f /var/cluster/run/sol-kz-fz1.cfg
root@phys-schost-2:~# rm /var/cluster/run/sol-kz-fz1.cfgroot@phys-schost-2:~# zoneadm -z sol-kz-fz1 attach -x force-takeover
root@phys-schost-2:~# zoneadm -z sol-kz-fz1 boot
root@phys-schost-2:~# zlogin -C sol-kz-fz1root@phys-schost-2:~# zoneadm -z sol-kz-fz1 shutdown
root@phys-schost-2:~# zoneadm -z sol-kz-fz1 detach -Froot@phys-schost-1# pkg install ha-cluster/data-service/ha-zones
root@phys-schost-2# pkg install ha-cluster/data-service/ha-zonesroot@phys-schost-2:~# clrt register SUNW.gds
root@phys-schost-2:~# cd /opt/SUNWsczone/sczbt/util
root@phys-schost-2:~# cp -p sczbt_config sczbt_config.sol-kz-fz1-rs
root@phys-schost-2:~# vi sczbt_config.sol-kz-fz1-rs
RS=sol-kz-fz1-rs
RG=sol-kz-fz1-rg
PARAMETERDIR=
SC_NETWORK=false
SC_LH=
FAILOVER=true
HAS_RS=sol-kz-fz1-hasp-rs
RG=sol-kz-fz1-rg
Zoneid="sol-kz-fz1"
Zonebrand="solaris-kz"
Zonebootopt=""
Milestone="svc:/milestone/multi-user-server"
LXrunlevel="3"
SLrunlevel="3"
Mounts=""
Migrationtype="warm"root@phys-schost-2:~# ./sczbt_register -f ./sczbt_config.sol-kz-fz1-rs
sourcing ./sczbt_config.kz
Registration of resource kz-rs succeeded.
root@phys-schost-2:~# /usr/cluster/bin/clrs enable sol-kz-fz1-rsroot@phys-schost-2:~# /usr/cluster/bin/clrs status -g sol-kz-fz1-rg
=== Cluster Resources ===
Resource id Node id State Status Message
------------------- ------------- ----- -------------------
sol-kz-fz1-rs phys-schost-1 Online Online - Service is online.
phys-schost-2 Offline Offline
sol-kz-fz1-hasp-rs phys-schost-1 Online Online
phys-schost-2 Offline Offline
root@phys-schost-2:~#root@phys-schost-2:~# /usr/cluster/bin/clrg switch -n phys-schost-1 sol-kz-fz1-rg
root@phys-schost-2:~# /usr/cluster/bin/clrs status -g sol-kz-fz1-rg
=== Cluster Resources ===
Resource id Node id State Status Message
------------------- ---------- ----- -------------------
sol-kz-fz1-rs phys-schost-1 Online Online
phys-schost-2 Offline Offline
ha-zones-hasp-rs phys-schost-1 Online Online
phys-schost-2 Offline Offline
root@phys-schost-2:~#也可以看看
有关配置 Oracle Solaris Cluster 组件的更多信息,请参见以下手册。




