2017年3月23日 星期四

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(十一)

學習目標:
  • 管理擁有多重路徑的儲存設備!
  • 重點提示:
    • 多重路徑套件:device-mapper-multipath
    • 設定檔:/etc/multipath.conf
    • 指令:mpathconf
    • Daemon:multipathd
操作流程:練習(一)
  1. 在 nodea、nodeb、nodec 上,安裝 device-mapper-multipath 工具套件:
    [root@nodea ~]# yum -y install device-mapper-multipath 
    
  2. 在 nodea 上,啟動 multipath 設定檔:
    [root@nodea ~]# mpathconf --enable 
    
  3. 在 nodea 上,修改 multipath 設定檔 /etc/multipath.conf:
    [root@nodea ~]# vim /etc/mutipath.conf
     blacklist {
            devnode "^vd[a-z]"  --> 啟免本地端設備被納入!
    }
    
  4. 在 nodea 上,把 iSCSI 加入 multipath 設定檔中:
    [root@nodea ~]# /usr/lib/udev/scsi_id -g -u /dev/sda
    36001405e92cadbc599440ef89643bc0b
    [root@nodea ~]# vim /etc/mutipath.conf
    (加入下列內容:)
    multipaths {
            multipath {
                    wwid 36001405e92cadbc599440ef89643bc0b
                    alias   ClusterStorage
                    path_grouping_policy    failover
            }
    }
    
    
  5. 在 nodea 上,複製 multipath 設定檔到 nodeb、nodec 節點上:
    [root@nodea ~]# rsync -avz -e ssh /etc/multipath.conf nodeb:/etc/mutlipath.conf
    [root@nodea ~]# rsync -avz -e ssh /etc/multipath.conf nodec:/etc/multipath.conf
    
  6. 在 nodea、nodeb、nodec 上,啟動 multipathd 服務:
    [root@nodea ~]# systemctl enable multipathd ; systemctl start multipathd
    [root@nodeb ~]# systemctl enable multipathd ; systemctl start multipathd
    [root@nodec ~]# systemctl enable multipathd ; systemctl start multipathd
    
  7. 在 nodea、nodeb、nodec 上,查看 multipathd 服務情況:
    [root@nodea ~]# multipath -ll
    [root@nodeb ~]# multipath -ll
    [root@nodec ~]# multipath -ll
    
  8. 在 nodea 上,切割分割區:
    [root@nodea ~]# fdisk /dev/mapper/ClusterStorage 
    
  9. 在 nodea、nodeb、nodec 上,更新 partition table 資訊:
    [root@nodea ~]# partprobe
    [root@nodeb ~]# partprobe
    [root@nodec ~]# partprobe
    
  10. 在 nodea、nodeb、nodec 上,查看分割區內容:
    [root@nodea ~]# ls -la /dev/mapper/
    [root@nodeb ~]# ls -la /dev/mapper/
    [root@nodec ~]# ls -la /dev/mapper/
    
  11. 在 nodea、nodeb、nodec 上,若沒發現分割區,可利用 kpartx 建立:
    [root@nodea ~]# kpartx -a -v /dev/mapper/ClusterStorage
    [root@nodeb ~]# kpartx -a -v /dev/mapper/ClusterStorage
    [root@nodec ~]#  kpartx -a -v /dev/mapper/ClusterStorage
    

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(十)

學習目標:
  • 將 iSCSI 分享的硬碟,掛載至 cluster 上!
  • 進一步設定掛載 iSCSI 硬碟的參數!
操作流程:練習(一)
  1. 在 nodea 上,安裝 iscsi-initiator 工具套件,並且設定啟動:
    [root@nodea ~]# yum -y install iscsi-initiator-utils 
    [root@nodea ~]# vim /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2017-04.com.example:node
    [root@nodee ~]# systemctl enable iscsi; systemctl start iscsi
    
  2. 在 nodea 上,查詢 fence 主機所提供的 iscsi 裝置:
    [root@nodea ~]# iscsiadm -m discovery -t st -p 172.24.0.20
    [root@nodea ~]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -l
    [root@nodea ~]# lsblk
    [root@nodea ~]# tail /var/log/messages
    
  3. 在 nodea 上,瀏覽相關連結資訊:
    [root@nodea ~]# iscsiadm -m session -P 3
    [root@nodea ~]# cd /var/lib/iscsi/nodes
    [root@nodea nodes]# ls -lR
    [root@nodea nodes]# less iqn.2017-04.com.example\:fence.disk01/172.24.0.20\,3260\,1/default
    
  4. 在 nodea 上,使用指令查看相關訊息:
    [root@nodea /]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -u
    [root@nodea /]# lsblk
    [root@nodea /]# ls -Rl /var/lib/iscsi/nodes/  --> 資料仍存在
    [root@nodea /]# systemctl restart iscsi
    [root@nodea /]# lsblk
    [root@nodea /]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -u
    [root@nodea /]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -o delete
    [root@nodea /]# lsblk
    [root@nodea /]# systemctl restart iscsi
    [root@nodea /]# lsblk   --> 應該是不會自動掛載上來了
    [root@nodea /]# iscsiadm -m discovery -t st -p 172.24.0.20
    [root@nodea /]# ls -Rl /var/lib/iscsi/nodes/
    [root@nodea /]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -o delete
    [root@nodea /]# ls -Rl /var/lib/iscsi/nodes/
    
操作流程:練習(二)
  1. 在 nodea 上,掛載 iSCSI 硬碟,並且切割好硬碟、建立 xfs 檔案系統:
    [root@nodea ~]#  iscsiadm -m discovery -t st -p 172.24.0.20
    [root@nodea ~]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -l
    [root@nodee ~]# lsblk
    [root@nodea ~]# fdisk /dev/sda
    (切割出一個硬碟)
    [root@nodea ~]# partprobe
    [root@nodea ~]# mkfs.xfs /dev/sda1
    [root@nodea ~]# mkdir /mnt/iscsi ; mount -t xfs -o rw,_netdev /dev/sda1 /mnt/iscsi
    
  2. 在 nodea 上,先關閉網路連線:
    [root@nodea ~]# nmcli device disconnect eth0
    
  3. 在 nodea 上,進行時間測試:
    [root@nodea ~]# time touch /mnt/iscsi/test1
    (出現下列結果:)
    touch: cannot touch ‘/mnt/iscsi/test1’: No space left on device
    
    real 0m47.201s
    user 0m0.002s
    sys 0m0.001s
    
    
  4. 在 nodea 上,開啟網路連線:
    [root@nodea ~]# nmcli device connect eth0
    
  5. 在 nodea 上,調整 iscsi 連線的 replacement_timeout 時間值到 5 秒:
    [root@nodea ~]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 \
    > -p 172.24.0.20 -o update -n node.session.timeo.replacement_timeout -v 5
    [root@nodea ~]# umount /mnt/iscsi
    [root@nodea ~]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -u
    [root@nodea ~]# iscsiadm -m node -T iqn.2017-04.com.example:fence.disk01 -p 172.24.0.20 -l
    [root@nodea ~]# mount -t xfs -o rw,_netdev /dev/sda1 /mnt/iscsi
    
  6. 在 nodea 上,再次關閉網路連線,並進行時間測試:
    [root@nodea ~]# nmcli device disconnect eth0
    time touch /mnt/iscsi/test2
    
    touch: cannot touch ‘/mnt/iscsi/test2’: No space left on device
    (出現下列結果,時間明顯缩短:)
    real 0m0.002s
    user 0m0.000s
    sys 0m0.002s
    
    
  7. 在 nodea 上,開啟網路連線:
    [root@nodea ~]# nmcli device connect eth0
    

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(九)

學習目標:
  • 管理兩節點的 Cluster 架構!
操作流程:練習(一)
  1. 在 nodee,nodef 上,安裝 pcs 與 fence-agents 套件:
    [root@nodee ~]# yum -y install pcs fence-agents-all 
    [root@nodee ~]# firewall-cmd --permanent --add-service=high-availability
    [root@nodee ~]# firewall-cmd --permanent --add-port=1229/tcp
    [root@nodee ~]# firewall-cmd --reload
    
  2. 在 nodee,nodef 上,啟動 pcsd 服務:
    [root@nodee ~]# systemctl enable pcsd ; systemctl start pcsd 
    [root@nodee ~]# echo centos7 | passwd --stdin hacluster
    [root@nodee ~]# pcs cluster auth -u hacluster -p centos7 \
    > nodee.example.com nodef.example.com
    
  3. 將 nodee,nodef 組成一個兩節點 cluster ,名為 R2 :
    [root@nodee ~]# pcs cluster setup --start --enable \
    > --name R2 \
    > --wait_for_all=0 \
    > nodee.example.com \
    > nodef.example.com
    
    [root@nodee ~]# pcs status
    
  4. 建立一個 fence 機制,代理 fence 使用 fence_xvm ,延遅時間設至五秒 :
    [root@nodee ~]# pcs stonith create fence_nodee fence_xvm \
    > port="guest5" \
    > pcmk_host_list="nodee.example.com" \
    > delay=5
    
    [root@nodee ~]# pcs stonith create fence_nodef fence_xvm \
    > port="guest6" \
    > pcmk_host_list="nodef.example.com" \
    > delay=5
    

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(八)

學習目標:
  • 設定群組資源開啟使用的順序規則
  • 限制三設定值:order location colocation
操作流程:練習(一)
  1. 在 nodea 上,切割分割區約 256 MB(需要掛載iSCSI服務):
    [root@nodea ~]# fdisk /dev/vdb
    (過程簡略...)
    
    [root@nodea ~]# partprobe   --> 必須在所有節點上做
    [root@nodea ~]# mkfs -t xfs /dev/vdb1
    
  2. 在各節點上,取消被 pacemaker 控制的 NFS 服務:
    [root@nodea ~]# systemctl stop nfs-lock ; systemctl disable nfs-lock
    
  3. 在 nodea 節點上,建立一個 nfs 的檔案資源群組:
    [root@nodea ~]# pcs resource create nfsshare Filesystem \
    > device=/dev/vdb1 \
    > directory=/nfsshare \
    > fstype=xfs --group nfs
    
  4. 在 nodea 節點上,建立一個分享服務,置於 nfs 資源群組內:
    [root@nodea ~]# pcs resource create nfsd nfsserver \
    > nfs_shared_infodir=/nfsshare/nfsinfo \
    > --group nfs
    
  5. 在 nodea 節點上,建立一個分享資源目錄,置於 nfs 資源群組內:
    [root@nodea ~]# pcs resource create nfsroot exportfs \
    > clientspec="*" \
    > options=rw,sync,no_root_squash \
    > directory=/nfsshare fsid=0 \
    > --group nfs
    
  6. 在 nodea 節點上,配置一個 IP 位置,置於 nfs 資源群組內:
    [root@nodea ~]# pcs resource create nfsip IPaddr2 \
    > ip=172.24.0.82 \
    > cidr_netmask=24 \
    > --group nfs
    
  7. 在各節點上,啟動防火牆設定:
    [root@nodea ~]# firewall-cmd --permanent --add-service=nfs ; firewall-cmd --reload
    
  8. 在 workstation 主機上,掛載分享出來的目錄:
    [root@fence ~]# mkdir /mnt/nfsv4share 
    [root@fence ~]# mount 172.24.0.82:/ /mnt/nfsv4share
    [root@fence ~]# touch /mnt/nfsv4share/test.txt 
    
  9. 驗證 NFS 分享工作,在 nodea 失效時,仍可以提供服務:
    [root@nodea ~]# pcs cluster standby nodea.example.com
    [root@nodea ~]# pcs status
    [root@fence ~]# ls /mnt/nfsv4share/ 
    
  10. 回復原設定:
    [root@nodea ~]# pcs cluster unstandby nodea.example.com
    [root@nodea ~]# pcs status
    [root@fence ~]# umount /mnt/nfsv4share/ 
    
操作流程:練習(二)
  1. 移動部份資源到其它節點:
    [root@nodea ~]# pcs resource move firstweb nodeb.example.com
    [root@nodea ~]# pcs resource clear firstweb
    [root@nodea ~]# pcs resource move nfs nodec.example.com
    [root@nodea ~]# pcs resource clear nfs
    
  2. 在 nodea 節點上,設定一個 location ,限定 firstweb 分數200:
    [root@nodea ~]# pcs constraint location firstweb prefers \
    > nodea.example.com=200
    
    [root@nodea ~]# pcs status
    
  3. 在 nodea 節點上,設定 firstweb 的資源分數預設值改成 500,nodeb改成499:
    [root@nodea ~]# pcs resource defaults resource-stickiness=500
    [root@nodea ~]# pcs constraint location firstweb prefers \
    > nodeb.example.com=499
    
    [root@nodea ~]# pcs status
    
  4. 在 nodea 節點上,設定 nfs 的資源,避免在 nodec 上執行:
    [root@nodea ~]# pcs constraint location nfs avoids nodec.example.com
    
    [root@nodea ~]# pcs status
    

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(七)

學習目標:
  • 如何對 Cluster 中的資源除錯!
  • 如何檢查 Cluster 中的網路錯誤
操作流程:練習(一)
  1. 在 nodea 上,編修 httpd.conf 檔案,修改 Listen 參數:
    [root@nodea ~]# vim /etc/httpd/conf/httpd.conf
    :
     Listen 29
    :
    
  2. 在 nodea 上,同歩 Cluster 設定,並重新啟動 Cluster:
    [root@nodea ~]# pcs cluster sync 
    [root@nodea ~]# pcs cluster stop --all
    [root@nodea ~]# pcs cluster start --all
    [root@nodea ~]# pcs status resources
    
  3. 在 nodea 上,同歩 Cluster 設定,並重新啟動 Cluster:
    [root@nodea ~]# pcs cluster sync 
    [root@nodea ~]# pcs cluster stop --all
    [root@nodea ~]# pcs cluster start --all
    [root@nodea ~]# pcs status resources 
    
  4. 在 nodea 上,查詢有故障發生的群組資源:
    [root@nodea ~]#  pcs resource failcount show firstwebserver
    
  5. 在 nodea 上,啟動除錯功能:
    [root@nodea ~]# pcs resource debug-start firstwebserver --full
    
  6. 在 nodea 上,顯示資源內容與設定檔:
    [root@nodea ~]# pcs resource show firstwebserver
    
  7. 在 nodea 上,移除在 Cluster 設定上不正確的設定檔參數:
    [root@nodea ~]# pcs resource update firstwebserver configfile=
    
  8. 在 nodea 上,再次查詢有故障發生的群組資源:
    [root@nodea ~]#  pcs resource failcount show firstwebserver
    [root@nodea ~]# pcs status
    
操作流程:練習(二)
  1. 在 nodea 上,查詢 Cluster 網路狀態:
    [root@nodea ~]# pcs status
    [root@nodea ~]# corosync-quorumtool
    [root@nodea ~]# ping -i 4 nodec
    
  2. 在 nodec 上,查詢防火牆的問題:
    [root@nodec~]# firewall-cmd --list-all
    
  3. 在 nodec 上,重新設定防火牆:
    [root@nodec~]# firewall-cmd --permanent --add-service=high-availability
    [root@nodec~]# firewall-cmd --reload
    
  4. 在 nodea 上,查詢 Cluster 狀態:
    [root@nodea ~]# pcs status
    

2017年3月22日 星期三

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(四)

學習目標:
  • 在 clusterX 上,管理 fence 平台與控制節點運作!
  • 實作上,以 fence-virtd 為練習方式,控制 hypervior 上的VM!
Fence Device Server 安裝流程:
  1. 在實體主機上,安裝 fence device server 套件:
    [root@fence ~]# yum -y install fence-virtd fence-virtd-libvirt fence-virtd-multicast
    
  2. 在實體主機上,產生 fence_xvm.key:
    [root@fence ~]# mkdir /etc/cluster
    [root@fence ~]# cd /etc/cluster
    [root@fence ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4k count=1
    
  3. 將 fence_xvm.key 複製到各VM上:
    [root@fence ~]# ssh nodea
    [root@nodea ~]# mkdir /etc/cluster ; exit
    [root@fence ~]# scp /etc/cluster/fence_xvm.key nodea:/etc/cluster
    
  4. 利用指令設定 fence_virtd 設定檔 /etc/fence_virt.conf:
    [root@fence ~]# fence_virtd -c
    (注意下列設定,其餘保持預設值:)
    interface: [br0] (與虚擬機通訊的網路卡介面)
    key path: [/etc/cluster/fence_xvm.key]
    
  5. 檢查檔案 /etc/fence_virt.conf 內容:
    [root@fence ~]# vim /etc/fence_virt.conf
    backends {
            libvirt {
                    uri = "qemu:///system";
            }
    
    }
    
    listeners {
            multicast {
                    port = "1229";
                    family = "ipv4";
                    interface = "br0";
                    address = "225.0.0.12";
                    key_file = "/etc/cluster/fence_xvm.key";
            }
    
    }
    
    fence_virtd {
            module_path = "/usr/lib64/fence-virt";
            backend = "libvirt";
            listener = "multicast";
    }
    
    
  6. 啟動 fence-virtd 服務:
    [root@fence ~]# systemctl enable fence_virtd
    [root@fence ~]# systemctl start fence_virtd
    
  7. 開啟防火牆與SELinux設定:
    [root@fence ~]# firewall-cmd --permanent --add-port=1229/tcp
    [root@fence ~]#firewall-cmd --permanent --add-port=1229/udp
    [root@fence ~]#firewall-cmd --reload
    [root@fence ~]#setsebool -P fenced_can_network_connect on
    [root@fence ~]#setsebool -P fenced_can_ssh on
    
每個節點(VM node)安裝流程:
  1. 安裝 fence-virt 套件:
    [root@nodea ~]# yum -y install fence-virt fence-agents-all
    
  2. 開啟防火牆與SELinux設定:
    [root@nodea ~]# firewall-cmd --permanent --add-port=1229/tcp
    [root@nodea ~]# firewall-cmd --permanent --add-port=1229/tcp
    [root@nodea ~]# firewall-cmd --reload
    [root@nodea ~]# setsebool -P fenced_can_network_connect on
    [root@nodea ~]# setsebool -P fenced_can_ssh on
    
  3. 測試是否可以查看其它節點運作情況:(其它節點也需做完相同步驟):
    [root@nodea ~]# fence_xvm -o list
    [root@nodea ~]# fence_xvm -a 225.0.0.12 -k /etc/cluster/fence_xvm.key -H guest2 -o status
    
  4. 測試是否可以控制其它節點運作:
    [root@nodea ~]# fence_xvm -a 225.0.0.12 -k /etc/cluster/fence_xvm.key -H guest2 -o reboot
    
練習節點(VM node)的 fence device 資源管理:
  1. 建立可管理節點的 fence 資源:
    [root@nodea ~]# pcs stonith create fence_nodea fence_xvm \
    > port="guest1" \
    > pcmk_host_check="static-list" \
    > pcmk_host_list="nodea.example.com nodeb.example.com nodec.example.com noded.example.com"
    
  2. 測試運作情形:
    [root@nodea ~]# pcs stonith fence noded.example.com
    
  3. 更新設定內容:
    [root@nodea ~]# pcs stonith update fence_nodes \
    > pcmk_host_check="none" \
    > pcmk_host_list=""
    
  4. 測試運作情形:
    [root@nodea ~]# pcs stonith fence noded.example.com
    [root@nodea ~]# corosync-quorumtool -m
    

2017年3月4日 星期六

在 CentOS7/RHEL7 上,學習架設 High-Availability 服務(六)

學習目標:
  • Corosync 的記錄設定檔:/etc/corosync/corosync.conf
  • Pacemaker 的記錄設定檔:/etc/sysconfig/pacemaker
  • Cluster 不喜歡星期一,因為要用 Email 通知不用上班的節點!
  • 練習:
    • 查看記錄檔內容
    • 更改設定後,如何同歩與重新啟動!
    • 設定系統通知與報告!
操作流程:練習(一)
  1. 在 nodea 上,查看記錄檔內容:
    [root@nodea cluster]# less /var/log/pacemaker.log
    [root@nodea cluster]# less /var/log/messages
    [root@nodea ~]# journalctl -u pacemaker.service -u corosync.service
    
  2. 在 nodea 上,修改記錄檔內容:
    [root@nodea ~]# vim /etc/corosync/corosync.conf
    logging {
        to_syslog: yes
        to_logfile: yes
        logfile: /var/log/cluster.log
        debug: on
    }
    
  3. 在 nodea 上,同歩 cluster 內的所有節點:
    [root@nodea ~]# pcs cluster sync
    
  4. 在 nodea 上,更新 pacemaker 設定檔內容,並同歩 cluster 內的所有節點:
    [root@nodea ~]# vim /etc/sysconfig/pacemaker
    PCMK_debug=yes
    :
    :
    (存檔後,複製設定檔到其它節點上!)
    [root@nodea ~]# scp /etc/sysconfig/pacemaker nodeb:/etc/sysconfig
    [root@nodea ~]# scp /etc/sysconfig/pacemaker nodec:/etc/sysconfig
    [root@nodea ~]# scp /etc/sysconfig/pacemaker noded:/etc/sysconfig
    
  5. 在 nodea 上,更新 logrotate 設定檔,並且同歩 cluster 內的所有節點:
    [root@nodea ~]# cp /etc/logrotate.d/pacemaker /etc/logrotate.d/cluster
    [root@nodea ~]# sed -i 's/pacemaker/cluster/' /etc/logrotate.d/cluster 
    [root@nodea ~]# scp /etc/logrotate.d/cluster nodeb:/etc/logrotate.d/
    [root@nodea ~]# scp /etc/logrotate.d/cluster nodec:/etc/logrotate.d/
    [root@nodea ~]# scp /etc/logrotate.d/cluster noded:/etc/logrotate.d/
    
  6. 在 nodea 上,動新啟動 cluster 的運作:
    [root@nodea ~]# pcs cluster stop --all
    [root@nodea ~]# pcs cluster start --all
    
  7. 在 nodea 上,觀察所有活動記錄:
    [root@nodea ~]# tail -f /var/log/cluster.log
    
  8. 在 nodeb 上,移動資源測試所觀察到的活動記錄:
    [root@nodeb ~]# pcs resource move firsrweb
    
  9. 按照上述流程,回復原設定值!
操作流程:練習(二)
  1. 在 nodea 上,增加 Email 資源至 firstweb 群組:
    [root@nodea ~]# pcs resource create webmail MailTo \
    > email=test@example.com \
    > subject="Cluster Notification" \
    > --group firstweb
    
  2. 觀察所收下來的信件內容:
    [root@nodea ~]# mutt
    
  3. 寫一個小型的 scripts:
    [root@nodea ~]# vim /usr/local/bin/myagent.sh
    #!/bin/bash
    MAILTO=${CRM_notify_recipient:-root@localhost}
    mutt -s "Cluster event from node ${CRM_notify_node}" ${MAILTO} << EOF
    
    A cluster event was triggered by ${CRM_notify_rsc}
    on ${CRM_notify_node}. This event was triggered
    by a ${CRM_notify_task} event.
    
    --
    This mail has been generated automatically
    EOF
    
  4. 新增 ClusterMon 資源,並可带入上述部驟的 scripts 檔案:
    [root@nodea ~]# pcs resource create mailme ClusterMon \
    > extra_options="-e test@example.com \
    > -E /usr/local/bin/myagent.sh" \
    > --clone
    
  5. 觀察所收下來的信件內容:
    [root@nodea ~]# mutt
    
  6. 進行 Cluster 異動,並觀察所收下來的信件內容:
    [root@nodea ~]# pcs resource move firstweb
    [root@nodea ~]# firewall-cmd --remove-service=high-availability