文章
服务器与存储管理
作者:Venkat Chennuru,2011 年 12 月
Oracle Solaris 区域技术使用灵活的、软件定义的边界隔离软件应用程序和服务,这就让您可以在 Oracle Solaris 的一个实例内创建许多私有的执行环境。在 Oracle Solaris 区域内部署应用程序有许多优点,如故障和安全隔离、硬件计算资源利用的优化和通过资源封顶减少软件许可。
|
部署任务关键型应用程序时,可以将 Oracle Solaris 区域的优点与集群技术相结合以获得适当的应用程序服务级别。Oracle Solaris 的高可用性 (HA) 解决方案 Oracle Solaris Cluster 提供了与 Oracle Solaris 区域的紧密集成,并扩展了 Oracle Solaris 11 以便为部署虚拟化负载提供高可用的基础架构。
Oracle Solaris Cluster 为 Oracle Solaris 上的 Oracle Solaris 区域提供了两种不同类型的配置。Oracle Solaris 区域集群 将多个集群节点上的 Oracle Solaris 区域模型扩展到虚拟集群。这个特性让您可以通过基于策略的监视和故障切换保护在区域内运行的应用程序。它还实现了对隔离“虚拟”区域集群中多层负载的可靠操作。(有关详细信息,请参见白皮书《区域集群 — 如何部署虚拟集群及其原因》。)
除了区域集群,Oracle Solaris Cluster 还提供了一种方式来保护区域本身:故障切换区域。此区域被视为一个黑匣子,由区域的 Oracle Solaris Cluster 高可用性代理监视和控制 — 启动、停止和探测该区域。在发生故障时或根据请求,该代理还可以在服务器之间移动该区域。
本文介绍如何在双节点集群上设置故障切换区域。有关详细信息,请查看 Oracle Solaris Cluster 软件安装指南。
本节讨论双节点集群的安装前检查和配置假设。
本文假设满足以下条件:
注:建议但不要求在管理期间通过控制台访问节点。

图 1. Oracle Solaris Cluster 硬件配置
高可用性区域配置中 Oracle Solaris 区域的 zonepath 必须驻留在高可用的本地文件系统上。必须在区域可驻留的每个集群节点上配置该区域。该区域每次仅在一个节点上处于活动状态,且每次只在一个节点上探测该区域的地址。
确保有一个共享磁盘可用于托管故障切换区域的 zonepath(参见清单 1)。可以使用 /usr/cluster/bin/scdidadm -L 或 /usr/cluster/bin/cldevice 列表来查看共享磁盘。每个集群节点有一个指向共享磁盘的路径。
root@phys-schost-1:~# /usr/cluster/bin/cldevice show d3 === DID Device Instances === DID Device Name: /dev/did/rdsk/d3 Full Device Path: phys-schost-2:/dev/rdsk/c0t60080E5000 17B52C00002B9D4EB40DB5d0 Full Device Path: phys-schost-1:/dev/rdsk/c0t60080E5000 17B52C00002B9D4EB40DB5d0 Replication: none default_fencing: global root@phys-schost-1:~#
在故障切换配置中,区域的 zonepath 必须位于高用性文件系统上。Oracle Solaris Cluster 提供了管理故障切换系统的特定服务:SUNW.HAStoragePlus 资源类型。
SUNW.HAStoragePlus (HASP) 资源类型:phys-schost-1# /usr/cluster/bin/clrt register SUNW.HAStoragePlus
phys-schost-1# /usr/cluster/bin/clrg create zone-rg
phys-schost-1# zpool create -m /ha-zones ha-zones \ /dev/rdsk/c0t60080E500017B52C00002B9D4EB40DB5d0 phys-schost-1# zpool export ha-zones
phys-schost-1# /usr/cluster/bin/clrs create -t SUNW.HAStoragePlus -g zone-rg \ -p zpools=ha-zones ha-zones-hasp-rs phys-schost-1# /usr/cluster/bin/clrg online -emM -n phys-schost-1 zone-rg phys-schost-1# zfs create ha-zones/solaris
除了托管 zonepath 的 zpool 必须在共享磁盘上之外,对区域配置没有限制。
对于我们的双节点集群,必须同时在两个节点(phys-schost-1 和 phys-schost-2)上执行区域配置(使用 zonecfg 完成)。以下是使用 phys-schost-1 的示例。在 phys-schost-2 上执行相同的操作。
phys-schost-1# zonecfg -z solarisfz1 \ 'create -b; set zonepath=/ha-zones/solaris/solarisfz1; set autoboot=false; set ip-type=shared; add attr; set name=osc-ha-zone; set type=boolean; set value=true; end; add net; set address=zone-hostname ; set physical=sc_ipmp0; end;'
phys-schost-1# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - solarisfz1 configured /ha-zones/solaris/solarisfz1 solaris shared phys-schost-2# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - solarisfz1 configured /ha-zones/solaris/solarisfz1 solaris shared
zoneadm on phys-schost-1 安装该区域,这是 ha-zones zpool 在线的位置。清单 2 显示了安装的输出。
phys-schost-1:~# zoneadm -z solarisfz1 install
Progress being logged to /var/log/zones/zoneadm.20030401T184050Z.solarisfz1.inst
all
Image: Preparing at /ha-zones/solaris/solarisfz1/root.
Install Log: /system/volatile/install.3349/install_log
AI Manifest: /tmp/manifest.xml.QGa4Gg
SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
Zonename: solarisfz1
Installation: Starting ...
Creating IPS image
Installing packages from:
solaris
origin: http://pkg.oracle.com/solaris/release/
ha-cluster
origin: http://localhost:1008/ha-cluster/2c76b8fe7512dde3
9c04c11f28f6be4603f39c66/
DOWNLOAD PKGS FILES XFER (MB)
Completed 167/167 32062/32062 175.8/175.8$<3>
PHASE ACTIONS
Install Phase 44313/44313
PHASE ITEMS
Package State Update Phase 167/167
Image State Update Phase 2/2
Installation: Succeeded
Note: Man pages can be obtained by installing pkg:/system/manual
done.
Done: Installation completed in 550.217 seconds.
Next Steps: Boot the zone, then log into the zone console (zlogin -C)
to complete the configuration process.
Log saved in non-global zone as /ha-zones/solaris/solarisfz1/root/var/log/zones/
zoneadm.20030401T184050Z.solarisfz1.install
phys-schost-1 上成功启动。 phys-schost-1# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - solarisfz1 installed /ha-zones/solaris/solarisfz1 solaris shared
ssh、rlogin 或 telnet 窗口)登录区域的控制台,然后引导区域:phys-schost-1# zlogin -C solarisfz1 phys-schost-1# zoneadm -z solarisfz1 boot
nodelist 中的另一个节点。phys-schost-1# zoneadm -z solarisfz1 shutdown phys-schost-1# /usr/cluster/bin/clrg switch -n phys-schost-2 zone-rg phys-schost-1# zoneadm -z solarisfz1 detach -F phys-schost-1# zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / solaris shared - solarisfz1 configured /ha-zones/solaris/solarisfz1 solaris shared
phys-schost-1 的活动引导环境 (BE) 的 UUID 分配给第二个节点 phys-schost-2 上的活动 BE。 phys-schost-1 上活动 BE 的全局唯一标识符 (UUID)。phys-schost-1:~# beadm list -H b175b-fresh;70db96a2-5006-c84e-da77-f8bd430ba914;;;64512;static;1319658138 s11_175b;b5d7b547-180d-467e-b2c4-87499cfc1e9d;NR;/;8000659456;static;1319650094 s11_175b-backup-1;aba7a813-feb9-e880-8d7b-9d0e5bcd09af;;;166912;static;1319658479 phys-schost-2:~# beadm list -H b175b-fresh;c37d524b-734a-c1e2-91d9-cf460c94110e;;;65536;static;1319471410 s11_175b;1d0cca6d-8599-e54a-8afa-beb518b1d87a;NR;/;8096948224;static;1319293680 s11_175b-backup-1;db2b581a-ea82-6e8c-9a3d-c1b385388fb7;;;167936;static;1319472971
phys-schost-2 上的全局区域的活动 BE 的 UUID 设置成与 phys-schost-1 的相同。活动 BE 在第三个字段上有标志 N(由分号分隔)。UUID 设置在 BE 的数据集上。可以通过运行 df -b / 获取 UUID。phys-schost-2:~# df -b / Filesystem avail rpool/ROOT/s11_175b 131328596 root@vzoolah3a:/# phys-schost-2:~# zfs set org.opensolaris.libbe:uuid=b5d7b547-180d-467e-b2c4-87499cfc1e9d \ rpool/ROOT/s11_175b
phys-schost-2# zoneadm -z solarisfz1 attach -F
phys-schost-2# zlogin -C solarisfz1
phys-schost-2# zoneadm -z solarisfz1 boot
phys-schost-2# zoneadm -z solarisfz1 shutdown phys-schost-2# zoneadm -z solarisfz1 detach -F
phys-schost-1 上执行此操作:phys-schost-1# pkg install ha-cluster/data-service/ha-zones
phys-schost-1)创建资源。然后在两个节点上编辑 sczbt_config 文件并设置参数。 phys-schost-1# clrt register SUNW.gds
sczbt_config 文件并设置参数。(在清单 3 中的示例中,显示 phys-schost-1。)phys-schost-1# cd /opt/SUNWsczone/sczbt/util phys-schost-1# cp -p sczbt_config sczbt_config.solarisfz1-rs phys-schost-1# vi sczbt_config.solarisfz1-rs RS=solarisfz1-rs RG=zone-rg PARAMETERDIR=/ha-zones/solaris/solarisfz1/params SC_NETWORK=false SC_LH= FAILOVER=true HAS_RS=ha-zones-hasp-rs Zonename="solarisfz1" Zonebrand="solaris" Zonebootopt="" Milestone="svc:/milestone/multi-user-server" LXrunlevel="3" SLrunlevel="3" Mounts=""
phys-schost-2 上,创建 params 目录,如 sczbt_config 文件中所示。phys-schost-2# mkdir /ha-zones/solaris/solarisfz1/params
sczbt_config 文件中设置的参数对该资源进行配置。phys-schost-2# ./sczbt_register -f ./sczbt_config.solarisfz1-rs
phys-schost-2# /usr/cluster/bin/clrs enable solarisfz1-rs
phys-schost-2# /usr/cluster/bin/clrs status -g zone-rg
=== Cluster Resources ===
Resource Name Node Name State Status Message
------------------- ------------- ----- -------------------
solarisfz1-rs phys-schost-1 Offline Offline
phys-schost-2 Online Online
ha-zones-hasp-rs phys-schost-1 Offline Offline
phys-schost-2 Online Online
phys-schost-2#
zlogin -C solarisfz1 验证区域是否已成功引导,然后切换到另一个节点测试故障切换功能,如清单 5 所示。
phys-schost-2# /usr/cluster/bin/clrg switch -n phys-schost-1 zone-rg
phys-schost-2# /usr/cluster/bin/clrs status -g zone-rg
=== Cluster Resources ===
Resource Name Node Name State Status Message
------------------- ------------- ----- -------------------
solarisfz1-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
phys-schost-2#
zlogin -C solarisfz1 验证区域是否已成功切换到另一节点。本文介绍如何使用 Oracle Solaris 11 上的 Oracle Solaris Cluster 4.0 在双节点集群上设置故障切换区域。还介绍了如何通过从一个节点到另一个节点进行区域切换来验证集群行为是否正常。
有关如何配置 Oracle Solaris Cluster 组件的更多信息,请参见表 2 列出的资源。
表 2. 资源| 资源 | URL |
|---|---|
| Oracle Solaris Cluster 4.0 文档库 | http://www.oracle.com/pls/topic/lookup?ctx=E23623 |
| Oracle Solaris Cluster 软件安装指南 | http://www.oracle.com/pls/topic/lookup?ctx=E23623&id=CLIST |
| Oracle Solaris Cluster 数据服务规划和管理指南 | http://www.oracle.com/pls/topic/lookup?ctx=E23623&id=CLDAG |
| Oracle Solaris Cluster 4.0 版本说明 | http://www.oracle.com/pls/topic/lookup?ctx=E23623&id=CLREL |
| Oracle Solaris Cluster 培训 | http://www.oracle.com/technetwork/cn/server-storage/solaris-cluster/training/index.html |
| Oracle Solaris Cluster 下载 | http://www.oracle.com/technetwork/cn/server-storage/solaris-cluster/downloads/index.html |
| 修订版 1.0,2011 年 12 月 2 日 |