じっぱひとからげ

十把一絡げになんでもかんでもつづる。

JP1/AJS3 V11.5評価版を動かしてみよう(4)〜クラスタ構成(Red Hat High Availability Add-Onの構築)

JP1/AJS3は高可用性が求められるシステムのために、クラスタ構成がとれるようになっている。といっても、JP1/AJS3自体がなにかしてくれるわけではなく、サードパーティのクラスタソフトにリソースとして登録して、フェイルオーバーさせるというもので、公式のドキュメントに記載があるクラスタ構成は以下のようなものだ。

JP1/AJS3におけるクラスタ構成

ManagerはManagerで、AgentはAgentでそれぞれ待機系を用意して、クラスタソフトを利用してフェイルオーバーするというもの。間にある共有ディスクにジョブやイベントの情報を保存しておくことで、フェイルオーバー後も正しく業務を継続できるという理屈である。

f:id:jippahitokarage:20180108175559p:plain
2.2.3 クラスタシステムでの構成例 : JP1/Automatic Job Management System 3 設計ガイド(システム構築編)

ただし、ここに書かれている「クラスタソフト」というのは、サードパーティのMWのことを指している。つまり、JP1/AJS3以外にクラスタソフトを買う必要があるということだ。

現在サポートされているクラスタソフトはこちらに記載がある。

クラスタソフト対応状況:統合システム運用管理 JP1:日立

例えばRHEL 7で言えば以下のような顔ぶれである。Excelファイルの列で言うと左から順に並べてみたが、特に辞書順というわけでもなさそうなので、HITACHIの意志入れがあるのかもしれない。

  • Lifekeeper
  • CLUSTERPRO
  • PRIMECLUSTER
  • VERITAS Cluster Server
  • Symantec Cluster Server
  • Red Hat High Availability Add-On
  • HAモニタ
  • DNCWARE
  • ClusterPerfect
  • ApplicationHA

こちらにもあるようにCLUSTERPROに限りJP1とCLUSTERPROのセットをAWSで評価するキット一式をさわらせてもらえるらしい。
CLUSTERPROとJP1の評価キット:統合システム運用管理 JP1:日立

ほとんどの製品については、評価版を利用するためには登録の上、数営業日後にライセンスキーが提供されるようになっているようなので、ここではすぐに利用できるRed Hat High Availability Add-Onを例にとって、JP1/AJS3のクラスタ構成を構築する

Red Hat High Availability Add-Onの構築

ホスト名jm01とjm02のクラスタ構成を考える。それぞれこちらの記事*1にしたがってRHEL 7を用意し、subscription登録を済ませておく。

jm02の構築

jm01はこちら*2で用意済みなので、jm02についても環境を揃える。

timezoneとlocaleの設定
[root@jm02 ~]# timedatectl set-timezone Asia/Tokyo
[root@jm02 ~]# localectl set-locale LANG=ja_JP.utf8
[root@jm02 ~]# source /etc/locale.conf 
サブスクリプション登録
[root@jm02 ~]# subscription-manager register --auto-attach
登録中: subscription.rhsm.redhat.com:443/subscription
ユーザー名: xxxxxxxxx
パスワード: 
このシステムは次の ID で登録されました: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 

インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux Server
状態:   サブスクライブ済み

[root@jm02 ~]# 

/etc/hostsの設定

jm01とjm02で互いに名前解決ができるように/etc/hostsに設定を入れておく。

jm01やjm02としてしまうと、ループバックアドレスが引かれてしまい、クラスタ構成が正しく構築できないので、それぞれ物理IPには末尾にあえてpを付けた。

  • jm01の物理IP 192.168.100.11(jm01p)
  • jm02の物理IP 192.168.100.12(jm02p)
  • クラスタのリソースとする仮想IP 192.168.100.10(jm00v)

jm01の/etc/hosts

[root@jm01 ~]# cat /etc/hosts
127.0.0.1	jm01	jm01
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.11	jm01p
192.168.100.12	jm02p
192.168.100.10  jm00v

jm02の/etc/hosts

[root@jm02 ~]# cat /etc/hosts
127.0.0.1	jm02	jm02
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.11	jm01p
192.168.100.12	jm02p
192.168.100.10	jm00v
[root@jm02 ~]# 

クラスタ関連のパッケージインストール

クラスタ関連のパッケージは、DVDに含まれているのでyumのリポジトリに追加するところから始める。

DVDをyumのリポジトリに追加(jm01, jm02)

例えば、rhel-server-7.4-x86_64-dvd.isoを/mediaにマウントしたとすると、/media/addons/HighAvailability以下にクラスタ関連のパッケージが含まれているので、以下のようにリポジトリに追加する。

[root@jm01 ~]# cat /etc/yum.repos.d/dvd.repo 
[rhel-dvd]
name=RHEL7.4 DVD
baseurl=file:///media/addons/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///media/RPM-GPG-KEY-redhat-release
[root@jm01 ~]# 

リポジトリに追加できたら、必要なパッケージをインストールする。

[root@jm01 ~]# yum install pcs fence-agents-all
読み込んだプラグイン:product-id, search-disabled-repos, subscription-manager

(中略)

インストール:
  fence-agents-all.x86_64 0:4.0.11-66.el7_4.3                 pcs.x86_64 0:0.9.158-6.el7                

依存性関連をインストールしました:
  OpenIPMI-modalias.x86_64 0:2.0.19-15.el7                                                              
  audit-libs-python.x86_64 0:2.7.6-3.el7                                                                
  autogen-libopts.x86_64 0:5.18-5.el7                                                                   
  avahi-libs.x86_64 0:0.6.31-17.el7                                                                     
  bc.x86_64 0:1.06.95-13.el7                                                                            
  boost-system.x86_64 0:1.53.0-27.el7                                                                   
  boost-thread.x86_64 0:1.53.0-27.el7                                                                   
  checkpolicy.x86_64 0:2.5-4.el7                                                                        
  cifs-utils.x86_64 0:6.2-10.el7                                                                        
  clufter-bin.x86_64 0:0.76.0-1.el7                                                                     
  clufter-common.noarch 0:0.76.0-1.el7                                                                  
  corosync.x86_64 0:2.4.0-9.el7                                                                         
  corosynclib.x86_64 0:2.4.0-9.el7                                                                      
  cups-libs.x86_64 1:1.6.3-29.el7                                                                       
  device-mapper-event.x86_64 7:1.02.140-8.el7                                                           
  device-mapper-event-libs.x86_64 7:1.02.140-8.el7                                                      
  device-mapper-multipath.x86_64 0:0.4.9-111.el7                                                        
  device-mapper-multipath-libs.x86_64 0:0.4.9-111.el7                                                   
  device-mapper-persistent-data.x86_64 0:0.7.0-0.1.rc6.el7                                              
  fence-agents-apc.x86_64 0:4.0.11-66.el7_4.3                                                           
  fence-agents-apc-snmp.x86_64 0:4.0.11-66.el7_4.3                                                      
  fence-agents-bladecenter.x86_64 0:4.0.11-66.el7_4.3                                                   
  fence-agents-brocade.x86_64 0:4.0.11-66.el7_4.3                                                       
  fence-agents-cisco-mds.x86_64 0:4.0.11-66.el7_4.3                                                     
  fence-agents-cisco-ucs.x86_64 0:4.0.11-66.el7_4.3                                                     
  fence-agents-common.x86_64 0:4.0.11-66.el7_4.3                                                        
  fence-agents-compute.x86_64 0:4.0.11-66.el7_4.3                                                       
  fence-agents-drac5.x86_64 0:4.0.11-66.el7_4.3                                                         
  fence-agents-eaton-snmp.x86_64 0:4.0.11-66.el7_4.3                                                    
  fence-agents-emerson.x86_64 0:4.0.11-66.el7_4.3                                                       
  fence-agents-eps.x86_64 0:4.0.11-66.el7_4.3                                                           
  fence-agents-hpblade.x86_64 0:4.0.11-66.el7_4.3                                                       
  fence-agents-ibmblade.x86_64 0:4.0.11-66.el7_4.3                                                      
  fence-agents-ifmib.x86_64 0:4.0.11-66.el7_4.3                                                         
  fence-agents-ilo-moonshot.x86_64 0:4.0.11-66.el7_4.3                                                  
  fence-agents-ilo-mp.x86_64 0:4.0.11-66.el7_4.3                                                        
  fence-agents-ilo-ssh.x86_64 0:4.0.11-66.el7_4.3                                                       
  fence-agents-ilo2.x86_64 0:4.0.11-66.el7_4.3                                                          
  fence-agents-intelmodular.x86_64 0:4.0.11-66.el7_4.3                                                  
  fence-agents-ipdu.x86_64 0:4.0.11-66.el7_4.3                                                          
  fence-agents-ipmilan.x86_64 0:4.0.11-66.el7_4.3                                                       
  fence-agents-kdump.x86_64 0:4.0.11-66.el7_4.3                                                         
  fence-agents-mpath.x86_64 0:4.0.11-66.el7_4.3                                                         
  fence-agents-rhevm.x86_64 0:4.0.11-66.el7_4.3                                                         
  fence-agents-rsa.x86_64 0:4.0.11-66.el7_4.3                                                           
  fence-agents-rsb.x86_64 0:4.0.11-66.el7_4.3                                                           
  fence-agents-sbd.x86_64 0:4.0.11-66.el7_4.3                                                           
  fence-agents-scsi.x86_64 0:4.0.11-66.el7_4.3                                                          
  fence-agents-vmware-soap.x86_64 0:4.0.11-66.el7_4.3                                                   
  fence-agents-wti.x86_64 0:4.0.11-66.el7_4.3                                                           
  fence-virt.x86_64 0:0.3.2-12.el7                                                                      
  fontpackages-filesystem.noarch 0:1.44-8.el7                                                           
  gnutls.x86_64 0:3.3.26-9.el7                                                                          
  gnutls-dane.x86_64 0:3.3.26-9.el7                                                                     
  gnutls-utils.x86_64 0:3.3.26-9.el7                                                                    
  gssproxy.x86_64 0:0.7.0-4.el7                                                                         
  ipmitool.x86_64 0:1.8.18-5.el7                                                                        
  keyutils.x86_64 0:1.5.8-3.el7                                                                         
  ldns.x86_64 0:1.6.16-10.el7                                                                           
  libaio.x86_64 0:0.3.109-13.el7                                                                        
  libbasicobjects.x86_64 0:0.1.1-27.el7                                                                 
  libcgroup.x86_64 0:0.41-13.el7                                                                        
  libcollection.x86_64 0:0.6.2-27.el7                                                                   
  liberation-fonts-common.noarch 1:1.07.2-15.el7                                                        
  liberation-sans-fonts.noarch 1:1.07.2-15.el7                                                          
  libevent.x86_64 0:2.0.21-4.el7                                                                        
  libini_config.x86_64 0:1.3.0-27.el7                                                                   
  libldb.x86_64 0:1.1.29-1.el7                                                                          
  libnfsidmap.x86_64 0:0.25-17.el7                                                                      
  libpath_utils.x86_64 0:0.2.1-27.el7                                                                   
  libpcap.x86_64 14:1.5.3-9.el7                                                                         
  libqb.x86_64 0:1.0.1-5.el7                                                                            
  librados2.x86_64 1:0.94.5-2.el7                                                                       
  libref_array.x86_64 0:0.1.5-27.el7                                                                    
  libsemanage-python.x86_64 0:2.5-8.el7                                                                 
  libtalloc.x86_64 0:2.1.9-1.el7                                                                        
  libtdb.x86_64 0:1.3.12-2.el7                                                                          
  libtevent.x86_64 0:0.9.31-1.el7                                                                       
  libtirpc.x86_64 0:0.2.4-0.10.el7                                                                      
  libtool-ltdl.x86_64 0:2.4.2-22.el7_3                                                                  
  libverto-libevent.x86_64 0:0.2.5-4.el7                                                                
  libwbclient.x86_64 0:4.6.2-12.el7_4                                                                   
  libyaml.x86_64 0:0.1.4-11.el7_0                                                                       
  lvm2.x86_64 7:2.02.171-8.el7                                                                          
  lvm2-libs.x86_64 7:2.02.171-8.el7                                                                     
  net-snmp-libs.x86_64 1:5.7.2-28.el7                                                                   
  net-snmp-utils.x86_64 1:5.7.2-28.el7                                                                  
  net-tools.x86_64 0:2.0-0.22.20131004git.el7                                                           
  nettle.x86_64 0:2.7.1-8.el7                                                                           
  nfs-utils.x86_64 1:1.3.0-0.48.el7_4                                                                   
  overpass-fonts.noarch 0:2.1-1.el7                                                                     
  pacemaker.x86_64 0:1.1.16-12.el7                                                                      
  pacemaker-cli.x86_64 0:1.1.16-12.el7                                                                  
  pacemaker-cluster-libs.x86_64 0:1.1.16-12.el7                                                         
  pacemaker-libs.x86_64 0:1.1.16-12.el7                                                                 
  perl.x86_64 4:5.16.3-292.el7                                                                          
  perl-Carp.noarch 0:1.26-244.el7                                                                       
  perl-Encode.x86_64 0:2.51-7.el7                                                                       
  perl-Exporter.noarch 0:5.68-3.el7                                                                     
  perl-File-Path.noarch 0:2.09-2.el7                                                                    
  perl-File-Temp.noarch 0:0.23.01-3.el7                                                                 
  perl-Filter.x86_64 0:1.49-3.el7                                                                       
  perl-Getopt-Long.noarch 0:2.40-2.el7                                                                  
  perl-HTTP-Tiny.noarch 0:0.033-3.el7                                                                   
  perl-PathTools.x86_64 0:3.40-5.el7                                                                    
  perl-Pod-Escapes.noarch 1:1.04-292.el7                                                                
  perl-Pod-Perldoc.noarch 0:3.20-4.el7                                                                  
  perl-Pod-Simple.noarch 1:3.28-4.el7                                                                   
  perl-Pod-Usage.noarch 0:1.63-3.el7                                                                    
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7                                                          
  perl-Socket.x86_64 0:2.010-4.el7                                                                      
  perl-Storable.x86_64 0:2.45-3.el7                                                                     
  perl-Text-ParseWords.noarch 0:3.29-4.el7                                                              
  perl-Time-HiRes.x86_64 4:1.9725-3.el7                                                                 
  perl-Time-Local.noarch 0:1.2300-2.el7                                                                 
  perl-TimeDate.noarch 1:2.30-2.el7                                                                     
  perl-constant.noarch 0:1.27-2.el7                                                                     
  perl-libs.x86_64 4:5.16.3-292.el7                                                                     
  perl-macros.x86_64 4:5.16.3-292.el7                                                                   
  perl-parent.noarch 1:0.225-244.el7                                                                    
  perl-podlators.noarch 0:2.5.1-3.el7                                                                   
  perl-threads.x86_64 0:1.87-4.el7                                                                      
  perl-threads-shared.x86_64 0:1.43-6.el7                                                               
  pexpect.noarch 0:2.3-11.el7                                                                           
  policycoreutils-python.x86_64 0:2.5-17.1.el7                                                          
  psmisc.x86_64 0:22.20-15.el7                                                                          
  python-IPy.noarch 0:0.75-6.el7                                                                        
  python-backports.x86_64 0:1.0-8.el7                                                                   
  python-backports-ssl_match_hostname.noarch 0:3.4.0.2-4.el7                                            
  python-chardet.noarch 0:2.2.1-1.el7_1                                                                 
  python-clufter.noarch 0:0.76.0-1.el7                                                                  
  python-requests.noarch 0:2.6.0-1.el7_1                                                                
  python-setuptools.noarch 0:0.9.8-7.el7                                                                
  python-six.noarch 0:1.9.0-2.el7                                                                       
  python-suds.noarch 0:0.4.1-5.el7                                                                      
  python-urllib3.noarch 0:1.10.2-3.el7                                                                  
  quota.x86_64 1:4.01-14.el7                                                                            
  quota-nls.noarch 1:4.01-14.el7                                                                        
  resource-agents.x86_64 0:3.9.5-105.el7                                                                
  rpcbind.x86_64 0:0.2.0-42.el7                                                                         
  ruby.x86_64 0:2.0.0.648-30.el7                                                                        
  ruby-irb.noarch 0:2.0.0.648-30.el7                                                                    
  ruby-libs.x86_64 0:2.0.0.648-30.el7                                                                   
  rubygem-bigdecimal.x86_64 0:1.2.0-30.el7                                                              
  rubygem-io-console.x86_64 0:0.4.2-30.el7                                                              
  rubygem-json.x86_64 0:1.7.7-30.el7                                                                    
  rubygem-psych.x86_64 0:2.0.0-30.el7                                                                   
  rubygem-rdoc.noarch 0:4.0.0-30.el7                                                                    
  rubygems.noarch 0:2.0.14.1-30.el7                                                                     
  samba-client-libs.x86_64 0:4.6.2-12.el7_4                                                             
  samba-common.noarch 0:4.6.2-12.el7_4                                                                  
  setools-libs.x86_64 0:3.3.8-1.1.el7                                                                   
  sg3_utils.x86_64 0:1.37-12.el7                                                                        
  sg3_utils-libs.x86_64 0:1.37-12.el7                                                                   
  tcp_wrappers.x86_64 0:7.6-77.el7                                                                      
  telnet.x86_64 1:0.17-64.el7                                                                           
  trousers.x86_64 0:0.3.14-2.el7                                                                        
  unbound-libs.x86_64 0:1.4.20-34.el7                                                                   

完了しました!
[root@jm01 ~]# 

インストールすると、haclusterというユーザが生成されている。

[root@jm01 ~]# cat /etc/passwd | grep hacluster
hacluster:x:189:189:cluster user:/home/hacluster:/sbin/nologin
[root@jm01 ~]# 

このhaclusterユーザのパスワードを設定する。

[root@jm01 ~]# passwd hacluster
ユーザー hacluster のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

Pacemakerのサービスを起動する。

[root@jm01 ~]# systemctl start pcsd.service
[root@jm01 ~]# systemctl enable pcsd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/pcsd.service to /usr/lib/systemd/system/pcsd.service.
[root@jm01 ~]# 

heartbeatの疎通をするのでファイアウォールを停止しておく。

[root@jm01 ~]# systemctl stop firewalld
[root@jm01 ~]# 

ついでに、firewalldを次回から起動しないようにしておく。

[root@jm01 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

ここまでの作業を同様に、jm02でもパッケージインストール、パスワード変更、サービス起動、firewalldの停止を行う。

どちらか一方のノード(例:jm01)でクラスタの認証を行う
[root@jm01 ~]# pcs cluster auth jm01p jm02p -u hacluster -p XXXXXXX
jm01p: Authorized
jm02p: Authorized
どちらか一方のノード(例:jm01)でクラスタを作成する
[root@jm01 ~]# pcs cluster setup --start --name my_cluster jm01p jm02p
Destroying cluster on nodes: jm01p, jm02p...
jm01p: Stopping Cluster (pacemaker)...
jm02p: Stopping Cluster (pacemaker)...
jm02p: Successfully destroyed cluster
jm01p: Successfully destroyed cluster

Sending 'pacemaker_remote authkey' to 'jm01p', 'jm02p'
jm02p: successful distribution of the file 'pacemaker_remote authkey'
jm01p: successful distribution of the file 'pacemaker_remote authkey'
Sending cluster config files to the nodes...
jm01p: Succeeded
jm02p: Succeeded

Starting cluster on nodes: jm01p, jm02p...
jm02p: Starting Cluster...
jm01p: Starting Cluster...

Synchronizing pcsd certificates on nodes jm01p, jm02p...
jm01p: Success
jm02p: Success
Restarting pcsd on the nodes in order to reload the certificates...
jm01p: Success
jm02p: Success
[root@jm01 ~]# 

この時点での設定を確認するとSTONITH(ノード異常を検知したときに強制的に停止や再起動する)のエラーが出ている事がわかる。

[root@jm01 ~]# crm_verify -L -V
   error: unpack_resources:	Resource start-up disabled since no STONITH resources have been defined
   error: unpack_resources:	Either configure some or disable STONITH with the stonith-enabled option
   error: unpack_resources:	NOTE: Clusters with shared data need STONITH to ensure data integrity
Errors found during check: config not valid
[root@jm01 ~]# 

STONITHを無効化して、もう一度バリデーションチェックをすると、エラーが消えているのが確認できる。

[root@jm01 ~]# pcs property set stonith-enabled=false
[root@jm01 ~]# crm_verify -L -V
[root@jm01 ~]# 

ここまででクラスタの構築は終わり。クラスタの動作確認のため、次はリソースを追加する。

どちらか一方のノード(例:jm01)でステータスを確認する

どちらかのノード(ここではjm01)で、ステータスを確認する。jm01pとjm02pの2ノードがOnlineであることが確認できる。現時点ではリソースは存在しないので No resourcesと表示されている。

[root@jm01 ~]# pcs status
Cluster name: my_cluster
Stack: corosync
Current DC: jm01p (version 1.1.16-12.el7-94ff4df) - partition with quorum
Last updated: Mon Jan  8 16:34:18 2018
Last change: Mon Jan  8 16:24:10 2018 by root via cibadmin on jm01p

2 nodes configured
0 resources configured

Online: [ jm01p jm02p ]

No resources


Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled
[root@jm01 ~]# 

どちらか一方のノード(例:jm01)で仮想IPをリソースに追加してみる

以下コマンドで、仮想IPのresourceをcreateする。ここではvipという名前のリソースでIPアドレスは192.168.100.10、ネットマスクは/24、ネットワークデバイス名はeth1で、監視の間隔は30秒としている。"IPaddr2"は仮想IPをリソースとして設定するためのモジュール名だと考えて良い。フルパスはocf:heartbeat:IPaddr2だが、省略しても補完される。

[root@jm01 ~]# pcs resource create vip IPaddr2 ip=192.168.100.10 cidr_netmask=24 nic=eth1 op monitor interval=30s
Assumed agent name 'ocf:heartbeat:IPaddr2' (deduced from 'IPaddr2')

ステータスを確認すると、resourceに追加されている。

[root@jm01 ~]# pcs status
Cluster name: my_cluster
Stack: corosync
Current DC: jm01p (version 1.1.16-12.el7-94ff4df) - partition with quorum
Last updated: Mon Jan  8 16:38:51 2018
Last change: Mon Jan  8 16:38:47 2018 by root via cibadmin on jm01p

2 nodes configured
1 resource configured

Online: [ jm01p jm02p ]

Full list of resources:

 vip	(ocf::heartbeat:IPaddr2):	Started jm01p

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled
[root@jm01 ~]# 

pingしてみると確かに仮想IPが生きていることがわかる。

[root@jm01 ~]# ping jm00v
PING jm00v (192.168.100.10) 56(84) bytes of data.
64 bytes from jm00v (192.168.100.10): icmp_seq=1 ttl=64 time=0.019 ms
64 bytes from jm00v (192.168.100.10): icmp_seq=2 ttl=64 time=0.039 ms
64 bytes from jm00v (192.168.100.10): icmp_seq=3 ttl=64 time=0.025 ms
64 bytes from jm00v (192.168.100.10): icmp_seq=4 ttl=64 time=0.036 ms
64 bytes from jm00v (192.168.100.10): icmp_seq=5 ttl=64 time=0.138 ms
^C
--- jm00v ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4015ms
rtt min/avg/max/mdev = 0.019/0.051/0.138/0.044 ms
[root@jm01 ~]# 

外部からもpingしてみる。

macbook:~ user$ ping 192.168.100.10
PING 192.168.100.10 (192.168.100.10): 56 data bytes
64 bytes from 192.168.100.10: icmp_seq=0 ttl=64 time=0.406 ms
64 bytes from 192.168.100.10: icmp_seq=1 ttl=64 time=0.337 ms
64 bytes from 192.168.100.10: icmp_seq=2 ttl=64 time=0.415 ms
64 bytes from 192.168.100.10: icmp_seq=3 ttl=64 time=0.308 ms
--- 192.168.100.10 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.308/0.367/0.415/0.045 ms
macbook:~ user $ 

外部からpingしている間に仮想IPを持つjm01のnetworkを殺してみる。networkが死ぬとsshも死ぬので、コンソールからnetworkを止める。

f:id:jippahitokarage:20180108182134p:plain

切断された瞬間、2回ほどpingに失敗するが、すぐに仮想IPがフェイルオーバーしてpingの応答が再開した。

macbook:~ user$ ping 192.168.100.10
PING 192.168.100.10 (192.168.100.10): 56 data bytes
64 bytes from 192.168.100.10: icmp_seq=0 ttl=64 time=0.457 ms
64 bytes from 192.168.100.10: icmp_seq=1 ttl=64 time=0.347 ms
64 bytes from 192.168.100.10: icmp_seq=2 ttl=64 time=0.394 ms
64 bytes from 192.168.100.10: icmp_seq=3 ttl=64 time=0.332 ms
64 bytes from 192.168.100.10: icmp_seq=4 ttl=64 time=2.463 ms
64 bytes from 192.168.100.10: icmp_seq=5 ttl=64 time=14.943 ms
64 bytes from 192.168.100.10: icmp_seq=6 ttl=64 time=0.251 ms
64 bytes from 192.168.100.10: icmp_seq=7 ttl=64 time=0.577 ms
64 bytes from 192.168.100.10: icmp_seq=8 ttl=64 time=0.301 ms
64 bytes from 192.168.100.10: icmp_seq=9 ttl=64 time=0.254 ms
64 bytes from 192.168.100.10: icmp_seq=10 ttl=64 time=0.603 ms
64 bytes from 192.168.100.10: icmp_seq=11 ttl=64 time=0.277 ms
Request timeout for icmp_seq 12
Request timeout for icmp_seq 13
64 bytes from 192.168.100.10: icmp_seq=14 ttl=64 time=0.501 ms
64 bytes from 192.168.100.10: icmp_seq=15 ttl=64 time=0.294 ms
64 bytes from 192.168.100.10: icmp_seq=16 ttl=64 time=0.485 ms
64 bytes from 192.168.100.10: icmp_seq=17 ttl=64 time=0.319 ms

jm02でステータスを確認すると、確かにjm01pはオフラインになり、仮想IPリソースであるvipがjm02pでStartedになっていることがわかる。

[root@jm02 ~]# pcs status
Cluster name: my_cluster
Stack: corosync
Current DC: jm02p (version 1.1.16-12.el7-94ff4df) - partition with quorum
Last updated: Mon Jan  8 18:09:35 2018
Last change: Mon Jan  8 16:38:47 2018 by root via cibadmin on jm01p

2 nodes configured
1 resource configured

Online: [ jm02p ]
OFFLINE: [ jm01p ]

Full list of resources:

 vip	(ocf::heartbeat:IPaddr2):	Started jm02p

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled
[root@jm02 ~]# 

これで、Red Hat High Availability Add-Onが使えるようになった。次回は、Red Hat High Availability Add-OnのリソースにJP1/AJS3のサービスを登録して、JP1/AJS3上で実行中のジョブがフェイルオーバー後も継続できるかどうか検証する。

JP1/AJS3 V11.5評価版を動かしてみよう シリーズ

blog.jippahitokarage.com

Hinemosに関する記事はこちら

blog.jippahitokarage.com