概要
このドキュメントでは、Cisco Policy Suite(CPS)仮想ネットワーク機能(VNF)をホストするUltra-Mセットアップで障害のあるコンピューティングサーバを停止して起動するために必要な手順について説明します。
注:このドキュメントの手順を定義するために、Ultra M 5.1.xリリースが検討されています。このドキュメントは、Cisco Ultra-Mプラットフォームに精通しているシスコ担当者を対象としており、Compute Serverの停止開始時にOpenStackおよびCPS VNFレベルで実行する必要がある手順の詳細を説明しています。
前提条件
バックアップ
コンピューティングノードを停止して起動する前に、Red Hat OpenStack Platform環境の現在の状態を確認することが重要です。複雑さを避けるために、現在の状態を確認することをお勧めします。
リカバリの場合は、次の手順を使用してOSPDデータベースのバックアップを取ることを推奨します。
<[root@director ~]# mysqldump --opt --all-databases > /root/undercloud-all-databases.sql
[root@director ~]# tar --xattrs -czf undercloud-backup-`date +%F`.tar.gz /root/undercloud-all-databases.sql
/etc/my.cnf.d/server.cnf /var/lib/glance/images /srv/node /home/stack
tar: Removing leading `/' from member names
このプロセスにより、インスタンスの可用性に影響を与えることなく、ノードを確実に交換できます。また、CPS構成のバックアップも推奨されます。
Cluster Manager Virtual Machine(VM)からCPS VMをバックアップするには、この設定を使用します。
[root@CM ~]# config_br.py -a export --all /mnt/backup/CPS_backup_28092016.tar.gz
コンピューティングノードでホストされるVMの特定
コンピューティングサーバでホストされているVMを特定します。
[stack@director ~]$ nova list --field name,host,networks | grep compute-10
| 49ac5f22-469e-4b84-badc-031083db0533 | VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d | pod1-compute-10.localdomain | Replication=10.160.137.161; Internal=192.168.1.131; Management=10.225.247.229; tb1-orch=172.16.180.129
注:ここに示す出力では、最初の列が汎用一意識別子(UUID)に対応し、2番目の列がVM名、3番目の列がVMが存在するホスト名です。この出力のパラメータは、以降のセクションで使用します。
シャットダウンするVM上のPCRFサービスを無効にする
1. VMの管理IPにログインします。
[stack@XX-ospd ~]$ ssh root@<Management IP>
[root@XXXSM03 ~]# monit stop all
2. VMがSM、OAMorArbiterの場合は、sessionmgrサービスを停止します。
[root@XXXSM03 ~]# cd /etc/init.d
[root@XXXSM03 init.d]# ls -l sessionmgr*
-rwxr-xr-x 1 root root 4544 Nov 29 23:47 sessionmgr-27717
-rwxr-xr-x 1 root root 4399 Nov 28 22:45 sessionmgr-27721
-rwxr-xr-x 1 root root 4544 Nov 29 23:47 sessionmgr-27727
3. sessionmgr-xxxxxという名前のForestyファイルで、サービスsessionmgr-xxxxxの停止を実行します。
[root@XXXSM03 init.d]# service sessionmgr-27717 stop
グレースフルパワーオフ
ESCからのVMのシャットダウン
1. VNFに対応するESCノードにログインし、VMのステータスを確認します。
[admin@VNF2-esc-esc-0 ~]$ cd /opt/cisco/esc/esc-confd/esc-cli
[admin@VNF2-esc-esc-0 esc-cli]$ ./esc_nc_cli get esc_datamodel | egrep --color "<state>|<vm_name>|<vm_id>|<deployment_name>"
<snip>
<state>SERVICE_ACTIVE_STATE</state>
<vm_name>VNF2-DEPLOYM_c1_0_df4be88d-b4bf-4456-945a-3812653ee229</vm_name>
<state>VM_ALIVE_STATE</state>
<vm_name> VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d</vm_name>
<state>VM_ALIVE_STATE</state>
<snip>
2. VM名を使用してVMを停止します。(「コンピューティングノードでホストされているVMを特定する」セクションに記載されているVM名)。
[admin@VNF2-esc-esc-0 esc-cli]$ ./esc_nc_cli vm-action STOP VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d
3.いったん停止すると、VMはシャットオフ状態に入る必要があります。
[admin@VNF2-esc-esc-0 ~]$ cd /opt/cisco/esc/esc-confd/esc-cli
[admin@VNF2-esc-esc-0 esc-cli]$ ./esc_nc_cli get esc_datamodel | egrep --color "<state>|<vm_name>|<vm_id>|<deployment_name>"
<snip>
<state>SERVICE_ACTIVE_STATE</state>
<vm_name>VNF2-DEPLOYM_c1_0_df4be88d-b4bf-4456-945a-3812653ee229</vm_name>
<state>VM_ALIVE_STATE</state>
<vm_name>VNF2-DEPLOYM_c3_0_3e0db133-c13b-4e3d-ac14-
<state>VM_ALIVE_STATE</state>
<vm_name>VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d</vm_name>
<state>VM_SHUTOFF_STATE</state>
<snip>
コンピュートノードの停止 – 開始
このセクションで説明する手順は、コンピューティングノードでホストされるVMに関係なく共通です。
OSPDからコンピューティングノードの停止 – 開始
1.ステータスを確認し、ノードを停止して起動します。
[stack@director ~]$ nova list | grep compute-10
| 03f15071-21aa-4bcf-8fdd-acdbde305168 | pod1-stack-compute-10 | ACTIVE | - | Running | ctlplane=192.200.0.106 |
[stack@director ~]$ nova stop pod1-stack-compute-10
2.コンピュートがシャットオフ状態になるまで待ってから、もう一度開始します。
[stack@director ~]$ nova start pod1-stack-compute-10
3.新しいコンピューティングノードがアクティブ状態であることを確認します。
[stack@director ~]$ source stackrc
[stack@director ~]$ nova list |grep compute-10
| 03f15071-21aa-4bcf-8fdd-acdbde305168 | pod1-stack-compute-10 | ACTIVE | - | Running | ctlplane=192.200.0.106 |
[stack@director ~]$ source pod1-stackrc-Core
[stack@director ~]$ openstack hypervisor list |grep compute-10
| 6 | pod1-compute-10.localdomain |
VMのリストア
ESCからのVMリカバリ
1.理想的には、OSPDからnovaリストをチェックすると、VMはShut状態になります。この場合、ESCからVMを起動する必要があります。
[admin@VNF2-esc-esc-0 ~]$ sudo /opt/cisco/esc/esc-confd/esc-cli/esc_nc_cli vm-action START VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d
[sudo] password for admin:
2.または、VMがnovaリストでエラー状態になっている場合は、この設定を実行します。
[stack@director ~]$ nova list |grep VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d
| 49ac5f22-469e-4b84-badc-031083db0533 | VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d | ERROR | - | NOSTATE |
3.ここで、ESCからVMをリカバリします。
[admin@VNF2-esc-esc-0 ~]$ sudo /opt/cisco/esc/esc-confd/esc-cli/esc_nc_cli recovery-vm-action DO VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d
[sudo] password for admin:
Recovery VM Action
/opt/cisco/esc/confd/bin/netconf-console --port=830 --host=127.0.0.1 --user=admin --privKeyFile=/root/.ssh/confd_id_dsa --privKeyType=dsa --rpc=/tmp/esc_nc_cli.ZpRCGiieuW
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<ok/>
</rpc-reply>
4. yanesc.logを監視します。
admin@VNF2-esc-esc-0 ~]$ tail -f /var/log/esc/yangesc.log
…
14:59:50,112 07-Nov-2017 WARN Type: VM_RECOVERY_COMPLETE
14:59:50,112 07-Nov-2017 WARN Status: SUCCESS
14:59:50,112 07-Nov-2017 WARN Status Code: 200
14:59:50,112 07-Nov-2017 WARN Status Msg: Recovery: Successfully recovered VM [VNF2-DEPLOYM_s9_0_8bc6cc60-15d6-4ead-8b6a-10e75d0e134d].
VMに存在するPCRFサービスの確認
注:VMがシャットオフ状態の場合は、ESCからesc_nc_cliを使用して電源をオンにします。クラスタマネージャVMからdiagnostics.shを確認し、回復されたVMに関するエラーが見つかった場合は、その時点で確認します。
1.各VMにログインします。
[stack@XX-ospd ~]$ ssh root@<Management IP>
[root@XXXSM03 ~]# monit start all
2. VMがSM、OAMorArbiterの場合は、以前に停止したsessionmgrサービスを開始します。sessionmgr-xxxxxという名前のForreveryファイルで、サービスsessionmgr-xxxxx startを実行します。
[root@XXXSM03 init.d]# service sessionmgr-27717 start
3.まだ診断がクリアされていない場合は、Cluster Manager VMからbuild_all.shを実行し、それぞれのVMでVM-initを実行します。
/var/qps/install/current/scripts/build_all.sh
ssh VM e.g. ssh pcrfclient01
/etc/init.d/vm-init