リソース・グループの構成

Linux on Power Systems
Tivoli System Automation for Multiplatforms 4.1
構築ガイド
for RHEL 7.1
日本アイ・ビー・エム株式会社
Power Systems テクニカルセールス
日本アイ・ビー・エム システムズ・
エンジニアリング株式会社
Server Technology & Mainframe Server
2016年 1月15日
rev 1.2
更新履歴
2

2015年12月27日
rev. 1.0
初版発行

2016年1月5日
rev. 1.1
誤字などを修正

2016年1月15日
rev. 1.2
クラスターの操作(6)を追加
© 2015 IBM Corporation
はじめに
■ このドキュメントでは、Red Hat Enterprise Linux 7.1 に Tivoli System
Automation (TSA) for Multiplatforms 4.1 をインストールし、HA クラスター
環境を構成する手順を紹介します。
•
•
•
RHEL 7.1 は Little Endian (LE) 版を使用しますが、手順は Big Endian (BE) 版でも違いはありま
せん。
このドキュメントでは 2 ノード構成で、HTTP デーモンをアプリケーションリソースとする HA 構
成の Web サーバーを構成します。
VIOS の使用を想定して記載していますが、non-VIOS でも構築手順に違いはありません。
■ このドキュメントの内容に関して正式な IBM のテストを受けていません。
こちらの情報を参考とした作業の実施に関しては、使用者の責任において行われ
るべきものであり、それらの評価に関しては使用者の判断に依存しています。
■ このドキュメントを参考資料として利用し、運用を計画、実施される場合には
必ず製品のマニュアルにて最新の情報をご参照ください。また、本番使用に際し
ましては充分な動作テストを行っていただくようお願いいたします。
■ このドキュメントの記述内容は次ページの環境にて検証していますが、全ての
環境で同一の結果を保証するものではありません。
3
© 2015 IBM Corporation
目次
■ TSA クラスターの基本概念
■ 検証環境
■ TSA のインストールとクラスターの作成
■ リソース・グループの構成
■ クラスターの操作
■ TSA の動作確認確認
■ スプリットブレインについて
■ Linux on Power でのタイブレーカー
■ 参考情報
4
© 2015 IBM Corporation
TSA クラスターの基本概念
5
© 2015 IBM Corporation
TSA クラスターの基本概念(1)
■ TSA クラスターを構成する際は、次のような情報を定義します。
1. クラスター全体を定義するための情報(クラスター情報)
▶ ドメイン
– クラスターを構成する全てのノードを含むドメインを
作成します。
▶ コミュニケーショングループ
– ドメインに属するノード間のハートビート経路を
指定します。(TSA では IP 経由のハートビート
経路は自動的に検出、設定されます。)
▶ タイブレーカー (IBM.TieBreaker) ※
– スプリットブレインが発生した際にアクセスする
ことでサービスを継続するノードを決定します。
▶ インターフェース監視用 IP アドレス (netmon.cf)
– ping が到達するかによってネットワーク・アダプター
の障害を検知するための IP アドレスを指定します。
アダプター監視 IP
コミュニケーション
グループ
ノード1
ノード2
タイブレーカー
ドメイン
※ TieBreaker はディスク・タイブレーカー、ネットワーク・タイブレーカーなどから選択できます。
6
© 2015 IBM Corporation
TSA クラスターの基本概念(2)
2. 引き継ぎ対象とするリソースを定義するための情報(引き継ぎリソース情報)
▶ リソース・グループ (IBM.ResourceGroup)
– ノード間で引継ぎ対象とするリソースをまとめたリソース・グループを構成します。
– リソース・グループに含まれる一連のリソースをまとめて起動、停止することが可能です。
▶ IP リソース (IBM.ServiceIP)
– IP リソースでサービス IP アドレスを指定します。
▶ ファイルシステムリソース (IBM.AgFileSystem)
– 共有ディスクのファイルシステムを指定します。
– StorageRM (Storage Resource Manager) によって管理されます。(※)
▶ アプリケーションリソース (IBM.Application)
– アプリケーションを起動/停止/監視するコマンド/スクリプトを指定します。
▶ 依存関係
– リソースの起動順序を制御するためにリソース間の依存関係を指定します。
▶ 同値 (IBM.Equivalency)
− 各ノードに存在するリソースをグループ化します。
− サービス IP アドレスをアサインするインターフェースを指定するために使用します。
※ StorageRM は自動的にファイルシステムの情報を取得します。
7
© 2015 IBM Corporation
TSA クラスターの基本概念(3)
ターゲット
依存関係
■ リソースの依存関係と同値
•
サービス IP アドレス、共有ディスク、HTTP デーモンの依存関係
−
ソース
次章からの手順では以下の DependsOn の依存関係を構成します。
– ソースリソースの起動には同一ノードでのターゲットリソースの起動が必要となります。
– ターゲットリソースの障害時にはソースリソースも停止します。
ノード2
ノード1
eth0
コミュニケーショングループ
eth0
IBM.Equivalency:InternalNW_IF
コミュニケーショングループ1 の
インターフェースにサービス IP を構成
IBM.ServiceIP:service_ip1
リソース・グループ
8
IBM.AgFileSystem:fs_share
IBM.Application:httpd
サービス IP、共有ディスクが
オンライン後に
httpd デーモンを起動
© 2015 IBM Corporation
検証環境
9
© 2015 IBM Corporation
検証環境 クラスター構成
■ TSA の検証環境
•
•
•
•
•
•
•
2 ノードクラスター ( ドメイン名:sa_domain) を構成
IP 経由のハートビート経路は 192.168.1/24 と 172.16.0/24 の 2経路
ディスク・ハートビートを構成
ネットワーク・タイブレーカーを構成
サービス IP アドレスは 192.168.1/24 にのみ構成
共有ディスク上にファイルシステム /share を構成
アプリケーションは http サーバーを構成
172.16.0.1
192.168.1.1
eth0
サービス IP アドレス
192.168.1.101
ネットワークタイブレーカー
172.16.0.2
192.168.1.2
eth1
eth0
ノード1
eth1
ノード2
http サーバー
共有ファイルシステム
/share
共有データ領域
mpatha
ハートビート領域
mpathc
10
© 2015 IBM Corporation
検証環境 ハードウェア/ソフトウェア構成
■ サーバー
•
IBM Power S824
−
−
−
•
NIC
FC
内蔵ディスク
:4-port 1Gb Ethernet Adapter, 4-port 10Gb SR-IOV Ethernet Adapter
:4-port 8Gb FC Adapter
:VIOS の rootvg に使用
IBM Power S814
−
−
−
NIC
FC
内蔵ディスク
:4-port 1Gb Ethernet Adapter, 4-port 10Gb SR-IOV Ethernet Adapter
:4-port 8Gb FC Adapter
:VIOS の rootvg に使用
■ ストレージ
−
IBM Storwise V7000
■ ソフトウェア
•
•
•
11
OS
Cluster
VIOS
:Redhat Enterprise Linux 7.1 Little Endian (ppc64-le)
:Tivoli System Automation for Multiplatforms v4.1.0.2
:Virtual I/O Server v2.2.4.0
© 2015 IBM Corporation
検証環境 ストレージ構成
■ RHEL 7.1 のシステム領域は V7000 上に構成します
■ RHEL 7.1 のマルチパスドライバは Device Mapper Multipath を使用します
■ VIOS のマルチパスドライバは SDDPCM を使用します
Power System サーバー
VIOS1-1
RHEL 7.1 LE
node1
内蔵ディスク
(vios rootvg)
vSCSI
Power System サーバー
システム領域
mpatha
共有データ領域
mpathb (/share)
VIOS1-2
VIOS2-1
内蔵ディスク
(vios rootvg)
内蔵ディスク
(vios rootvg)
vSCSI
vSCSI
ハートビート領域
mpathc
FC
FC
FC
12
node2
システム領域
システム領域
mpatha
共有データ領域
mpathb (/share)
VIOS2-2
内蔵ディスク
(vios rootvg)
vSCSI
ハートビート領域
mpathc
FC
ノード・キャニスターA
node1
システム領域
RHEL 7.1 LE
node2
FC
FC
FC
FC
ノード・キャニスターB
共有データ領域
ハートビート領域
IBM Storwise ©V7000
2015 IBM Corporation
検証環境 ネットワーク構成
■ ネットワーク冗長化は VIOS で SEA Failover 構成とします
■ RHEL 7.1 はネットワーク・インターフェースとして仮想イーサネット (VE) を使用します
■ 仮想イーサネットのネットワーク検知用に外部に障害検知用のアドレスを持つサーバーを用意します
Power System サーバー
VIOS1-1
RHEL 7.1 LE
node1
Power System サーバー
VIOS1-2
VIOS2-1
サービス用LAN
VIOS2-2
サービス用LAN
SEA
VE
SEA
SEA
VE
SEA
SEA
VE
SEA
SEA
VE
SEA
管理用LAN
NIC
RHEL 7.1 LE
node2
NIC
管理用LAN
NIC
NIC
NIC
NIC
NIC
NIC
管理用LAN – 172.16.0.0
サービス用LAN – 192.168.1.0
13
ネットワーク障害検知用アドレス
© 2015 IBM Corporation
TSA のインストールとクラスターの構成
14
© 2015 IBM Corporation
TSA のインストール
■ TSA のインストール手順
各ノードで実施
▶ /root/.bashrc に環境変数を定義
–
–
# echo "export CT_MANAGEMENT_SCOPE=2" >> /root/.bashrc
# . /root/.bashrc
▶ 導入メディアに含まれる前提条件確認コマンドを実行
–
–
–
※1
# tar –xvf 4.1.0-TIV-SAMP-Linux64-FP0002.tar.gz
# cd SAM4102MPLinux64
# ./prereqSAM
▶ 導入メディアに含まれるインストールコマンドを実行
–
–
# cd SAM4102MPLinux64
# ./installSAM --noliccheck
▶ FixPack を入手してインストールコマンドを実行
▶ ライセンスをインストール ※3
–
–
–
15
※2
# tar –xvf SA_MP_v4.1_Lnx.tar
# cd SAM4100MPLinux/license
# samlicm –i sam41.lic
※1 今回使用する RHEL 7.1 LE は TSA 4.1.0.2 からサポートされるため、FP2 のメディアを使用
※2 今回は最新の FixPack がインストールで使用した FP2 のため省略
※3 ライセンスファイルはベースメディアに存在するためベースメディアも必要となる
© 2015 IBM Corporation
クラスターの作成
■ TSA クラスターの作成手順
▶ クラスターへの参加準備
各ノードで実施
# preprpnode node1 node2
▶ クラスター(ドメイン)を作成
以後 1ノードで実施
# mkrpdomain sa_domain node1 node2
# lsrpdomain
Name
OpState RSCTActiveVersion MixedVersions TSPort GSPort
sa_domain Offline 3.2.0.9
No
12347 12348
▶ クラスターの起動
# startrpdomain sa_domain
# lsrpdomain
Name
OpState RSCTActiveVersion MixedVersions TSPort GSPort
sa_domain Online 3.2.0.9
No
12347 12348
16
© 2015 IBM Corporation
クラスターの設定(1)
■ TSA クラスター全体の設定手順
▶ インターフェース監視用 IP アドレスを設定
各ノードで実施
# vi /var/ct/cfg/netmon.cf
!REQD eth0 192.168.1.254
▶ デッドマン・スイッチの構成※
# chrsrc
# lsrsrc
Resource
resource
以後 1ノードで実施
-c IBM.PeerNode CritRsrcProtMethod=3
-c IBM.PeerNode CritRsrcProtMethod
Class Persistent Attributes for IBM.PeerNode
1:
CritRsrcProtMethod = 3
▶ タイブレーカーの設定
# mkrsrc IBM.TieBreaker Type="EXEC" Name="mynetworktb" \
DeviceInfo='PATHNAME=/usr/sbin/rsct/bin/samtb_net Address=192.168.1.254 Log=1' \
PostReserveWaitTime=30
# chrsrc -c IBM.PeerNode OpQuorumTieBreaker="mynetworktb"
※ CritRsrcProtMethod の詳細については「スプリットブレインについて」の章を参照してください
17
© 2015 IBM Corporation
クラスターの設定(2)
▶ ディスク・ハートビートの構成
1ノードで実施
※
# mkrsrc IBM.HeartbeatInterface Name=mydiskhb DeviceInfo="/dev/dm-0" CommGroup=DHB1 \
NodeNameList={'node1','node2'} MediaType=2 Force=1
▶ ディスク・ハートビートの稼働検証
node1
18
node2
# /usr/sbin/rsct/bin/dhb_read -p /dev/dm-0 -r
DHB CLASSIC MODE
First node byte offset: 61440
Second node byte offset: 62976
Handshaking byte offset: 65024
Test byte offset: 64512
# /usr/sbin/rsct/bin/dhb_read -p /dev/dm-0 -t
DHB CLASSIC MODE
First node byte offset: 61440
Second node byte offset: 62976
Handshaking byte offset: 65024
Test byte offset: 64512
Receive Mode:
Waiting for response . . .
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Magic number = 0x87654321
Link operating normally
Transmit Mode:
Magic number = 0x87654321
Detected remote utility in receive mode.
Waiting for response . . .
Magic number = 0x87654321
Link operating normally
※ ディスク・ハートビートで使用するデバイスは環境によって異なるため、各ノードでデバイス名を必ず確認してください
ノードによってデバイス名が異なる場合は NodeNameList にて個々のノードを指定してリソースを構成してください
© 2015 IBM Corporation
クラスター構成
■ ここまでで下図の構成が完了しました
•
コミュニケーショングループは自動的に構成されています
ネットワークタイブレーカー
/ ネットワーク障害検知用 IP
192.168.1.254
コミュニケーショングループ2
コミュニケーショングループ1
172.16.0.1
192.168.1.1
eth0
eth1
node1
ハートビート・
インターフェース
/dev/dm-0
19
172.16.0.2
192.168.1.2
eth0
ドメイン:sa_domain
共有データ領域
mpatha
ハートビート領域
mpathc
eth1
node2
ハートビート・
インターフェース
/dev/dm-0
© 2015 IBM Corporation
リソース・グループの構成
20
© 2015 IBM Corporation
リソース・グループの構成(1)
■ 共有リソースの作成手順
1ノードで実施
▶ サービス IP リソースの作成
# mkrsrc IBM.ServiceIP Name="service_ip1" NodeNameList="{'node1','node2'}" \
IPAddress=192.168.1.101 NetMask=255.255.255.0
▶ ファイルシステムリソースの設定
#
#
#
#
#
※
mkfs.xfs -f /dev/mappar/mpathb -L share_fs
mkdir -p /share
mount /share
mkdir -p /share/www/html
umount /share
各ノードで実施
▶ マウントポイントの設定
# vi /etc/fstab
…中略…
LABEL=share_fs
21
/share
xfs
noauto
0 0
※ 共有ディスク・リソースは ファイルシステム作成後にStorageRM により自動的に作成され、明示的にリソースを
作成する必要はありませんが、即剤に反映させる場合は refrsrc IBM.Disk を実行してください
© 2015 IBM Corporation
リソース名を指定するために mkfs 実行時に –L にてラベルを指定してください
リソース・グループの構成(2)
▶ ファイルシステムリソースの確認
1ノードで実施
# lsrsrc -s "Name=='share_fs'" IBM.AgFileSystem Name DeviceName NodeNameList \
SysMountPoint Label
Resource Persistent Attributes for IBM.AgFileSystem
resource 1:
Name
= "share_fs"
DeviceName
= ""
NodeNameList = {"node1", "node2"}
SysMountPoint = "/share"
Label
= "share_fs"
resource 2:
Name
= "share_fs"
DeviceName
= "/dev/mapper/mpathb"
NodeNameList = {"node1"}
SysMountPoint = "/share"
Label
= "share_fs"
resource 3:
Name
= "share_fs"
DeviceName
= "/dev/mapper/mapthb"
NodeNameList = {"node2"}
SysMountPoint = "/share"
Label
= "share_fs"
22
© 2015 IBM Corporation
リソース・グループの構成(3)
▶ アプリケーションリソースの作成
※
1ノードで実施
# mkrsrc IBM.Application \
Name=httpd \
StartCommand="/usr/bin/systemctl start httpd" \
StopCommand="/usr/bin/systemctl stop httpd" \
MonitorCommand="/usr/sbin/rsct/bin/pidmon '/usr/sbin/httpd'" \
UserName=root \
NodeNameList="{'node1','node2'}" \
MonitorCommandPeriod=10 \
MonitorCommandTimeout=6 \
StartCommandTimeout=10 \
StopCommandTimeout=10
※1 httpd (Apache) は事前に構成済みの想定です
ここでは /share/www/html をドキュメント・ルートとして Apache を構成しています
23
© 2015 IBM Corporation
リソース・グループの構成(4)
–
アプリケーションリソースの設定項目
※
属性
説明
Name
任意のリソース名
StartCommand
アプリケーションを起動するコマンドのフルパス
StopCommand
アプリケーションを停止するコマンドのフルパス
MonitorCommand
アプリケーションを監視するコマンドのフルパス
コマンドの返り値によりリソースの状態が判定されます
UserName
コマンドを実行するユーザー
MonitorCommandPeriod,
MonitorCommandTimeout
監視の間隔とタイムアウト時間
StartCommandTimeout,
StopCommandTimeout
アプリケーションの起動 / 停止のタイムアウト
※ アプリケーションリソースの属性値の詳細についてはマニュアルをご確認ください
ここに記載した設定項目は lsrsrcdev –i IBM.Application により表示される値のサブセットになります
24
© 2015 IBM Corporation
リソース・グループの構成(5)
■ リソース・グループの作成/設定手順
▶ リソース・グループの作成
1ノードで実施
# mkrg rg1
▶ リソース・グループのロック※
# rgreq –o lock rg1
▶ リソース・グループにリソースを追加
# addrgmbr -g rg1 IBM.ServiceIP:service_ip1 IBM.Application:httpd \
IBM.AgFileSystem:share_fs
▶ アプリケーションなどが正しくオフラインと認識されていることを確認
# lssam
▶ リソース・グループのアンロック
# rgreq –o unlock rg1
※ リソース・グループにリソースを追加しても、この時点で TSA がアプリケーションの起動、停止、引継ぎなどの制御を開始しないように
一旦リソース・グループをロックしてからリソースを追加を行うことをお勧めします
25
© 2015 IBM Corporation
リソース・グループがロックされている場合、TSA はモニターは行いますが制御は行いません
リソース・グループの構成(6)
■ リソースの依存関係の作成
▶ コミュニケーショングループの同値を作成
1ノードで実施
# lscomg -x
CG1 4
1
1
Yes
Yes
-1 (Default) 1 (IP)
CG2 4
1
1
Yes
Yes
-1 (Default) 1 (IP)
DHB1 4
2
1
Yes
Yes
-1 (Default) 2 (Disk)
# lscomg -i CG1
Name NodeName IPAddress
Subnet
SubnetMask
eth1 node1
172.16.0.1
172.16.0.0 255.255.255.0
eth1 node2
172.16.0.2
172.16.0.0 255.255.255.0
# lscomg -i CG2
Name NodeName IPAddress
Subnet
SubnetMask
eth0 node1
192.168.1.1
192.168.1.0 255.255.255.0
eth0 node2
192.168.1.2
192.168.1.0 255.255.255.0
#
# mkequ -S 'CommGroup="CG2"' InternalNW_IF IBM.NetworkInterface
1
1
1
▶ リソース間の依存関係を作成
# mkrel -p DependsOn -S IBM.Application:httpd -G IBM.ServiceIP:service_ip1
# mkrel -p DependsOn -S IBM.Application:httpd -G IBM.AgFileSystem:share_fs
# mkrel –p DependsOn –S IBM.ServiceIP:service_ip1 –G IBM.Equivalency:InternalNW_IF
26
© 2015 IBM Corporation
リソース・グループ構成
■ ここまでで下図の構成が完了しました
•
•
httpd が起動する前にサービス IP アドレスと共有ファイルシステムが構成されます
サービス IP アドレスはコミュニケーショングループ2 のインターフェース上に構成されます
ノード2
ノード1
eth0
コミュニケーショングループ2
eth0
IBM.Equivalency:InternalNW_IF
IBM.ServiceIP:service_ip1
192.168.1.101
IBM.AgFileSystem:fs_share
/share
IBM.Application:httpd
リソース・グループ:rg1
27
© 2015 IBM Corporation
クラスターの操作
28
© 2015 IBM Corporation
クラスターの操作(1)
■ クラスターの操作コマンド
▶ クラスターの状態確認
–
lsrpdomain
: クラスター全体(ドメイン)の状態を表示します
クラスター起動時
# lsrpdomain
Name
OpState RSCTActiveVersion MixedVersions TSPort GSPort
sa_domain Online 3.2.0.9
No
12347 12348
クラスター停止時
# lsrpdomain
Name
OpState RSCTActiveVersion MixedVersions TSPort GSPort
sa_domain Offline 3.2.0.9
No
12347 12348
–
lsrpnode
: クラスター内のノードの状態を表示します
# lsrpnode
Name
OpState RSCTVersion
node1
Online 3.2.0.9
node2
Offline 3.2.0.9
29
node1 が起動
node2 が停止
© 2015 IBM Corporation
クラスターの操作(2)
▶ リソース・グループの状態確認
–
lssam
: リソース・グループ / リソースと各ノードの状態を表示します※
リソース・グループ・オフライン時
# lssam
Offline IBM.ResourceGroup:rg1 Nominal=Offline
|- Offline IBM.AgFileSystem:share_fs
|- Offline IBM.AgFileSystem:share_fs:node1
'- Offline IBM.AgFileSystem:share_fs:node2
|- Offline IBM.Application:httpd
|- Offline IBM.Application:httpd:node1
'- Offline IBM.Application:httpd:node2
'- Offline IBM.ServiceIP:service_ip1
|- Offline IBM.ServiceIP:service_ip1:node1
'- Offline IBM.ServiceIP:service_ip1:node2
Online IBM.Equivalency:InternalNW_IF
|- Online IBM.NetworkInterface:eth0:node1
'- Online IBM.NetworkInterface:eth0:node2
30
※ lssam は以下のプションも指定できます
-top
:リアルタイムに表示
-V
:依存関係を表示
-nocolor
:色の制御コード無し
© 2015 IBM Corporation
クラスターの操作(3)
–
lssam
: リソース・グループ / リソースと各ノードの状態を表示します
リソース・グループ・オフライン&ロック時
# rgreq -o lock rg1
# lssam -nocolor
Offline IBM.ResourceGroup:rg1 Request=Lock Nominal=Offline
|- Offline IBM.AgFileSystem:share_fs Control=SuspendedPropageted
|- Offline IBM.AgFileSystem:share_fs:node1
'- Offline IBM.AgFileSystem:share_fs:node2
|- Offline IBM.Application:httpd Control=SuspendedPropageted
|- Offline IBM.Application:httpd:node1
'- Offline IBM.Application:httpd:node2
'- Offline IBM.ServiceIP:service_ip1 Control=SuspendedPropageted
|- Offline IBM.ServiceIP:service_ip1:node1
'- Offline IBM.ServiceIP:service_ip1:node2
Online IBM.Equivalency:InternalNW_IF
|- Online IBM.NetworkInterface:eth0:node1
'- Online IBM.NetworkInterface:eth0:node2
31
© 2015 IBM Corporation
クラスターの操作(4)
–
lssam
: リソース・グループ / リソースと各ノードの状態を表示します
リソース・グループ・オンライン時
# rgreq -o unlock rg1
# chrg -o online rg1
# lssam
Online IBM.ResourceGroup:rg1 Nominal=Online
|- Online IBM.AgFileSystem:share_fs
|- Online IBM.AgFileSystem:share_fs:node1
'- Offline IBM.AgFileSystem:share_fs:node2
|- Online IBM.Application:httpd
|- Online IBM.Application:httpd:node1
'- Offline IBM.Application:httpd:node2
'- Online IBM.ServiceIP:service_ip1
|- Online IBM.ServiceIP:service_ip1:node1
'- Offline IBM.ServiceIP:service_ip1:node2
Online IBM.Equivalency:InternalNW_IF
|- Online IBM.NetworkInterface:eth0:node1
'- Online IBM.NetworkInterface:eth0:node2
32
© 2015 IBM Corporation
クラスターの操作(5)
▶ クラスターの起動、停止
–
–
startrpdomain <ドメイン名> : クラスターを起動します
stoprpdomain <ドメイン名> : クラスターを停止します
▶ ノードの起動、停止
–
–
–
–
startrpnode <ノード名>
stoprpnode <ノード名>
samctlr –u a <ノード名>
samctrl –u d <ノード名>
:
:
:
:
ノードを起動します
ノードを停止します
ノードをリソース引継ぎ対象から除外します
ノードをリソース引継ぎ対象に戻します
▶ リソース・グループの起動、停止、引継ぎ
–
–
–
–
–
33
chrg –o online <リソース・グループ名>
chrg –o offline <リソース・グループ名>
rgreq –o move <リソース・グループ名>
rgreq –o lock <リソース・グループ名>
rgreq –o unlock <リソース・グループ名>
:
:
:
:
:
リソース・グループを起動します
リソース・グループを停止します
リソース・グループを他ノードに引継ぎます
リソース・グループをロックします
リソース・グループをアンロックします
© 2015 IBM Corporation
クラスターの操作(6)
▶ リソースのリセット
–
resetrsrc –s “selection_string” resource_class
: リソースをリセットします
httpd を node1 において手動で障害状態回復させたが
TSA 上では FailedOffline 状態と認識されたままの場合にリセットが可能
# resetrsrc -s 'Name="httpd" and NodeNameList={"node1"}' IBM.Application
▶ TSA 関連ログの出力
–
samlog
: 稼働中のドメインの TSA 関連ログを収集、フォーマット設定、
マージ、および表示します
▶ 情報収集
–
34
getsadata -all
: 関連するすべてのトレース・データおよびデバッグ・データを
収集します
© 2015 IBM Corporation
クラスターの設定確認(1)
■ クラスターの設定確認コマンド
▶ クラスター全体の設定確認
–
lsrcrc –c IBM.PeerNode
▶ リソースの設定確認
–
35
lsrsrc <リソースクラス>
# lsrsrc -c IBM.PeerNode
Resource Class Persistent Attributes
resource 1:
CommittedRSCTVersion
=
ActiveVersionChanging
=
OpQuorumOverride
=
CritRsrcProtMethod
=
OpQuorumTieBreaker
=
QuorumType
=
QuorumGroupName
=
Fanout
=
OpFenceGroup
=
NodeCleanupCommand
=
NodeCleanupCriteria
=
QuorumLessStartupTimeout
=
CriticalMode
=
NotifyQuorumChangedCommand =
NamePolicy
=
for IBM.PeerNode
""
0
0
3
"mynetworktb"
0
""
32
""
""
""
120
1
""
0
: リソースの設定を表示します
リソースクラス
説明
IBM.ServiceIP
サービス IP アドレスの定義
IBM.AgFileSystem
ファイルシステムの定義
IBM.Application
アプリケーションの定義
IBM.TieBreaker
タイブレーカーの定義
IBM.HeartbeatInterface
ディスク・ハートビートの定義
© 2015 IBM Corporation
クラスターの設定確認(2)
▶ リソース・グループ (RG) の設定確認
–
–
lsrg -Ab
lsrg –mg <RG名>
: リソース・グループの設定を表示します
: リソース・グループのリソース設定を表示します
▶ 依存関係の設定確認
–
lsrel –Ab
: 依存関係の設定を表示します
▶ 同値の設定確認
–
lsequ–Ab
: 同値の設定を表示します
▶ コミュニケーショングループ (CG) の設定確認
–
–
–
36
lscomg
lscomg –i <CG名>
lscomg –l
: CG をリスト表示します
: CG のネットワーク情報を表示します
: CG の設定を表示します
© 2015 IBM Corporation
TSA の動作確認テスト
37
© 2015 IBM Corporation
テスト項目(1)
■ 正常操作確認テスト
38
項番
テストケース
操作
補足
1-1
クラスターの起動 / 停止
sartrpdomain sa_domain
stoprpdomain sa_domain
クラスターが Online /
Offline になる
1-2
リソース・グループの起動 / 停止
chrg –o online rg1
chrg –o offline rg1
リソース・グループの起
動 / 停止時にリソースが
獲得 / 開放される
1-3
手動でのテークオーバー
rgreq –o move rg1
移動先ノードでリソース
が獲得される
© 2015 IBM Corporation
テスト項目(2)
■ 障害時の挙動確認テスト(1/2)
39
項番
テストケース
操作
補足
2-1
VIOS1-1 FC片パス障害
FCケーブル 1本抜線
VIOS 上でマルチパスデ
バイスドライバがパスを
切り替える
2-2
VIOS1-1 FC全パス障害
FCケーブル 2本抜線
ノード上でマルチパスデ
バイスドライバがパスを
切り替える
2-3
VIOS1-1, 1-2 FC全パス障害
FCケーブル 4本抜線
障害 VIOS 上のノードが
停止してリソース・グ
ループがテークオーバー
する
2-4
VIOS1-1 NWポート障害
Ethernetケーブル 1本抜線
SEA Failover により
VIOS1-2 に経路が切り替
わる
2-5
VIOS1-1, 1-2 NWポート障害
Ethernetケーブル 2本抜線
障害 VIOS 上のノードが
NW 障害を検知してリ
ソース・グループがテー
クオーバーする
© 2015 IBM Corporation
テスト項目(3)
■ 障害時の挙動確認テスト(2/2)
40
項番
テストケース
操作
補足
2-6
アプリケーション・プロセス障害
httpd プロセス Kill
自ノード上でプロセスが
再起動される
2-7
ノード障害
HMC からノード強制停止
スタンバイノードが障害
を検知してリソース・グ
ループがテークオーバー
する
2-8
VIOS1-1 障害
HMC から VIOS 強制停止
ノード上でマルチパスデ
バイスドライバがパスを
切り替える
SEA Failover により
VIOS1-2 に経路が切り替
わる
2-9
VIOS1-1, 1-2 両系障害
HMC から VIOS 強制停止
スタンバイノードが障害
を検知してリソース・グ
ループがテークオーバー
する
© 2015 IBM Corporation
テスト結果 1-1 - クラスターの起動/停止
■ テストケース:
▶ ノード1 からクラスターを起動
– # startrpdomain sa_domain を実行
▶ ノード1 からクラスターを停止
– # stoprpdomain sa_domain を実行
■ 初期状態
▶ ドメインが停止された状態
■ 期待される結果:
▶ 起動後に lsrpdomain の出力の OpState が Online になること
▶ 停止後に lsrpdomain の出力の OpState が Offline になること
■ テスト後のステータス:
▶ 起動後に OpState が Online になることを確認
▶ 停止後に OpState が Offline になることを確認
41
© 2015 IBM Corporation
テスト結果 1-2 – リソース・グループの起動/停止
■ テストケース:
▶ ノード1 からリソース・グループを起動
– # chrg –o online rg1 を実行
▶ ノード1 からリソース・グループを停止
– # chrg –o offline rg1 を実行
■ 初期状態
▶ ドメインが起動されたがリソース・グループへの要求(Nominal State)は Offline の状態
■ 期待される結果:
▶ 起動後に lssam の出力で全てのリソースが1つのノードで Online になること
▶ 停止後に lssam の出力で全てのリソースが Offline になること
■ テスト後のステータス:
▶ 起動後に全てのリソースが Online になることを確認
▶ 停止後に全てのリソースが Offline になることを確認
42
© 2015 IBM Corporation
テスト結果 1-3 – 手動でのテークオーバー
■ テストケース:
▶ ノード1 からリソース・グループの移動を実行
– # rgreq –o move rg1 を実行
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 期待される結果:
▶ 移動後に lssam の出力で全てのリソースがもう一方のノードで Online になること
■ テスト後のステータス:
▶ 移動前に node1 で Online だったリソースがコマンド実行後に node 2 で Online になるこ
とを確認
43
© 2015 IBM Corporation
テスト結果 2-1 – VIOS1-1 FC 片パス障害
■ テストケース:
▶ VIOS1-1 にて FCケーブルを 1本抜線
▶ 期待される結果:VIOS 上でパスフェールオーバーが発生し、TSA クラスターではエラーは検知さ
れない
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、VIOS の SDDPCM にて片バスへの切り替わりが発生し、TSA クラスター
上ではエラーは検知されないことを確認
$ lspath -dev hdisk21
status name
parent connection
Failed
Failed
Enabled
Enabled
hdisk21
hdisk21
hdisk21
hdisk21
fscsi0
fscsi0
fscsi1
fscsi1
該当ディスクのパスが
Failed になる
5005076802105424,f000000000000
5005076802105425,f000000000000
5005076802205424,f000000000000
5005076802205425,f000000000000
■ 障害復旧手順:
▶ VIOS1-1 の FC ケーブルを復旧することで VIOS の SDDPCM がパス復旧を検知して障害から回復
することを確認
44
© 2015 IBM Corporation
テスト結果 2-2 – VIOS1-1 FC 全パス障害
■ テストケース:
▶ VIOS1-1 にて FCケーブルを 2本抜線
▶ 期待される結果:RHEL 上でパスフェールオーバーが発生し、TSA クラスターではエラーは検知されない
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、RHEL 上の Device Mapper Multipath にて片バスへの切り替わりが発生し、TSA
クラスター上ではエラーは検知されないことを確認
# multipath -ll
…中略…
mpatha (36005076802808189b4000000000001ec) dm-1 AIX
,VDASD
size=50G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
|- 0:0:2:0 sdb 8:16 failed faulty running
`- 1:0:2:0 sde 8:64 active ready running
該当ディスクのパスが
Failed になる
■ 障害復旧手順:
▶ VIOS1-1 の FC ケーブルを復旧することで RHEL がパス復旧を検知して障害から回復することを確認
45
© 2015 IBM Corporation
テスト結果 2-3 – VIOS1-1,1-2 FC 全パス障害
■ テストケース:
▶ VIOS1-1, 1-2 にて FCケーブルを 2本抜線
▶ 期待される結果:TSA クラスターが share_fs リソースの障害を検知し、node1 から node2 にテークオー
バーが発生
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、TSA が障害を検知し、node2 へのテークオーバーが発生したことを lssam コマン
ドにて確認
# lssam
Online IBM.ResourceGroup:rg1 Control=MemberInProblemState Nominal=Online
|- Online IBM.AgFileSystem:share_fs Control=MemberInProblemState
|- Online IBM.AgFileSystem:share_fs:node2
'- Failed offline IBM.AgFileSystem:share_fs:node1 Node=Offline
…以下略…
MemberInProblemStateになり
リソースが node1 で Offline なる
■ 障害復旧手順:
▶ VIOS1-1, 1-2 の FC ケーブルを復旧し、node1 を再起動することで node1 が Online になることを確認
▶ リソース・グループの手動でのテークオーバーにより node1 でリソース・グループが Online になること
を確認
46
© 2015 IBM Corporation
テスト結果 2-4 – VIOS1-1 NW ポート障害
■ テストケース:
▶ VIOS1-1 にて 192.168.1/24 の NW ケーブルを抜線
▶ 期待される結果:VIOS にて SEA の Failover が発生し、VIOS1-2 経由の通信となり、TSA
クラスターではエラーは検知されない
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、 SEA Failover により VIOS1-2 へのテークオーバーが発生したこ
とを確認
VIOS1-2 $ errlog
…中略…
E48A73A4
1216162215 I H ent5
SEA の切り替わりが
発生
BECOME PRIMARY
■ 障害復旧手順:
▶ VIOS1-1 の NW ケーブルを復旧することで VIOS1-1 へ Failback が発生し、障害から回復
することを確認
47
© 2015 IBM Corporation
テスト結果 2-5 – VIOS1-1,1-2 NW ポート障害
■ テストケース:
▶ VIOS1-1, 1-2 にて 192.168.1/24 の NW ケーブルを抜線
▶ 期待される結果: TSA クラスターが node1 で 192.168.1/24 の障害を検知し、サービス
IP 引継ぎのために node1 から node2 に全リソースのテークオーバーが発生
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、 TSA が障害を検知し、node2 へのテークオーバーが発生したこと
を lssam コマンドにて確認
■ 障害復旧手順:
▶ VIOS1-1, 1-2 の NW ケーブルを復旧し、node1 を再起動することで node1 が Online に
なることを確認
▶ リソース・グループの手動でのテークオーバーにより node1 でリソース・グループが
Online になることを確認
48
© 2015 IBM Corporation
テスト結果 2-6 – アプリケーション・プロセス障害
■ テストケース:
▶ node1 にて httpd プロセスを全て Kill
▶ 期待される結果: TSA クラスターが httpd リソースの障害を検知し、node1 上でプロセスの再起
動が発生
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、 TSA が障害を検知し、node1 上でプロセスの再起動が発生したことを ps
コマンドにて確認
# tail -f /var/log/messages
Dec
Dec
Dec
Dec
Dec
Dec
16
16
16
16
16
16
17:48:11
17:48:11
17:48:11
17:48:11
17:48:27
17:48:27
node1
node1
node1
node1
node1
node1
httpd の障害を
検知し再起動
systemd: httpd.service: main process exited, code=killed, status=9/KILL
kill: kill: cannot find process ""
systemd: httpd.service: control process exited, code=exited status=1
systemd: Unit httpd.service entered failed state.
systemd: Starting The Apache HTTP Server...
systemd: Started The Apache HTTP Server.
■ 障害復旧手順:
▶ 復旧手順は不要
49
© 2015 IBM Corporation
テスト結果 2-7 – ノード障害
■ テストケース:
▶ HMC から node1 を強制停止
▶ 期待される結果:TSA クラスターが node1 の障害を検知し、node1 から node2 にテークオーバーが発生
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、TSA が障害を検知し、node2 へのテークオーバーが発生したことを lssam コマン
ドにて確認
# lssam
Online IBM.ResourceGroup:rg1 Control=MemberInProblemState Nominal=Online
|- Online IBM.AgFileSystem:share_fs Control=MemberInProblemState
|- Online IBM.AgFileSystem:share_fs:node2
'- Failed offline IBM.AgFileSystem:share_fs:node1 Node=Offline
…以下略…
MemberInProblemStateになり
リソースが node1 で Offline なる
■ 障害復旧手順:
▶ node1 を再起動することで node1 が Online になることを確認
▶ リソース・グループの手動でのテークオーバーにより node1 でリソース・グループが Online になること
を確認
50
© 2015 IBM Corporation
テスト結果 2-8 – VIOS1-1 障害
■ テストケース:
▶ HMC から VIOS1-1 を強制停止
▶ 期待される結果:ネットワークは SEA Failover により VIOS1-2 へ切り替わり、ストレー
ジは RHEL 上でパス障害を検知し、TSA クラスターではエラーは検知されない
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、SEA Failover によりネットワークは VIOS1-2 へ切り替わり、スト
レージは RHEL 上でパスの切り替わりが発生し、TSA クラスター上ではエラーは検知され
ないことを確認
■ 障害復旧手順:
▶ VIOS1-1 の NW ケーブルを復旧することで VIOS1-1 へ Failback が発生し、障害から回復
することを確認
▶ VIOS1-1 の FC ケーブルを復旧することで RHEL がパス復旧を検知して障害から回復する
ことを確認
51
© 2015 IBM Corporation
テスト結果 2-9 – VIOS1-1, 1-2 障害
■ テストケース:
▶ HMC から VIOS1-1, 1-2 を強制停止
▶ 期待される結果:TSA クラスターが node1 の障害を検知し、 node1 から node2 にテー
クオーバーが発生
■ 初期状態
▶ 正常稼働状態(ドメインは起動、リソース・グループは node1 にて Online)
■ 障害発生後のステータス:
▶ 期待される結果どおり、TSA が障害を検知し、node2 へのテークオーバーが発生したこと
を lssam コマンドにて確認
■ 障害復旧手順:
▶ VIOS1-1, 1-2 を再起動し、その後 node1 を再起動することで node1 が Online になるこ
とを確認
▶ リソース・グループの手動でのテークオーバーにより node1 でリソース・グループが
Online になることを確認
52
© 2015 IBM Corporation
スプリットブレインについて
53
© 2015 IBM Corporation
スプリットブレインと Quorum について
■ スプリットブレインとは、ネットワーク障害などにより、クラスターを構成する
ノードが複数の孤立した島に分かれる状況のことを言います。
▶ この状態で、異なる島のノードがそれぞれにサービスを起動しようとすると、共有リソース
が破壊される恐れが生じます。
■ Quorum (ノード定足数)とは、スプリットブレインが発生した際に、特定の島だけ
がサービスを継続する仕組みです。
▶ TSA の場合は、原則的には、ノード数が全体の過半数を超える島がサービスを継続します。
▶ ただし、2 ノード構成で 1 対 1 に分かれた場合や、偶数ノード構成でちょうど半分に
分かれた場合は、タイブレーカーを利用して、サービスを継続するノードを決定します。
Ethernet
node01
ノード数 2
node02
共有ディスク
node03
ノード数 1
ノード数が過半数を超える左の島
がサービスを継続する。
54
© 2015 IBM Corporation
2ノード構成の場合の動作
■ 2ノード構成の場合はタイブレーカーが必須となります
■ 2ノード構成でスプリットブレインが発生した場合、各ノードは図の動作を行います
▶ 一方のノードのみがタイブレーカーへのアクセスに成功するため、どちらかのノードでサー
ビスが継続されます
▶ タイブレーカーへのアクセスの成功/失敗はタイブレーカーの種類により判定基準が異なり
ます
▶ (*) Online のノードがタイブレーカーへのアクセスに失敗した際の動作は、
CritRsrcProtMethod パラメーターで変更可能です。
–
–
# lsrsrc -c IBM.PeerNode CritRsrcProtMethod
# chrsrc -c IBM.PeerNode CritRsrcProtMethod=3
: 設定値の確認
: 設定値の変更
CirtRsrcProtMethod の設定値
Hard reset and reboot operating system (default)
1
Halt operating system
2
Hard reset and reboot operating system with Sync
3
Halt with Sync
4
No protection. System continues operating
5
Exit and restart RSCT subsystems
6
リソースが Online のノード
一定間隔で繰り返し
No
ノードを強制再起動して(*)
リソースを Offline に変更
55
リソースが Offline のノード
タイブレーカーへアクセスに
成功したか?
Yes
リソースは Online のままで
サービスを継続
タイブレーカーへのアクセスに
成功したか?
Yes
リソースを Online に変更して
サービスを提供開始
© 2015 IBM Corporation
No
Linux on Power でのタイブレーカー
56
© 2015 IBM Corporation
Linux on Power上でのタイブレーカー
■ TSA でのディスク・タイブレーカー
▶ TSA でのディスク・タイブレーカーのデバイスとしては ECKD, SCSI, AIX hdisk,
SCSI 永続予約を使用できます
▶ Linux 上でマルチパスデバイスをディスク・タイブレーカーとするためには SCSI 永続予約
を使用する必要があります
▶ しかしながら、Linux on Power では SCSI 永続予約の使用がサポートされません
Linux on Power ではマルチパスデバイスをタイブレーカーに指定できないため
ネットワーク・タイブレーカーを使用することをお勧めします
57
© 2015 IBM Corporation
参考情報
58
© 2015 IBM Corporation
参考文献
■ Tivoli System Automation for Multiplatoforms 4.1 製品マニュアル
•
http://www.ibm.com/support/knowledgecenter/SSRM2X_4.1.0.2/com.ibm.samp.doc_4.1.0.2/welcome_samp.html
■ FixPack ダウンロード・リンク
•
https://www.ibm.com/support/entry/portal/all_download_links/tivoli/tivoli_system_automation_for_multiplatforms
■ Tivoli System Automation for Multiplatoforms 4.1 前提 OS レベル
•
59
http://www.ibm.com/software/reports/compatibility/clarity-reports/report/html/osForProduct?deliverableId=1334234372419
© 2015 IBM Corporation
Open innovation to put data to work
60
© 2014 International Business Machines Corporation
© 2015 IBM Corporation