目錄

簡介

背景資訊

縮寫

假設

還原過程

CPS恢復

在OpenStack中恢復群集管理器虛擬機器

恢復克隆作業

恢復群集中的單個虛擬機器

重新部署pcrfclient01 VM

重新部署pcrfclient02 VM

重新部署sessionmgr VM

重新部署策略導向器（負載平衡器）虛擬機器

重新部署策略伺服器(QNS)虛擬機器

資料庫還原的一般過程

Subversion儲存庫還原

還原Grafana儀表板

驗證還原

簡介

本文檔介紹在託管CPS虛擬網路功能(VNF)的Ultra-M設定中恢復整個CPS群集所需的步驟。

背景資訊

Ultra-M是經過預先打包和驗證的虛擬化移動資料包核心解決方案，旨在簡化VNF的部署。Ultra-M解決方案由以下虛擬機器(VM)型別組成：

- 彈性服務控制器(ESC)

- 思科原則套件(CPS)

Ultra-M的高級體系結構及涉及的元件如下圖所示：

本文檔適用於熟悉Cisco Ultra-M平台的思科人員。

附註：Ultra M 5.1.x版本用於定義本文檔中的過程。

縮寫

VNF

虛擬網路功能

ESC

彈性服務控制器

澳門幣

程式方法

OSD

對象儲存磁碟

硬碟

硬碟驅動器

固態硬碟

固態驅動器

VIM

虛擬基礎架構管理員

虛擬機器

虛擬機器

UUID

通用唯一識別符號

假設

對於此過程，假設只恢復CPS群集，並且在Openstack級別的所有元件（包括ESC）都正常運行

還原過程

當ESC無法啟動VM時：

- 在某些情況下，ESC由於意外狀態而無法啟動VM。解決方法是重新啟動主ESC來執行ESC切換。ESC切換大約需要一分鐘。在新的主ESC上運行health.sh以驗證它是否啟動。當ESC成為主時，ESC可能會修復VM狀態並啟動VM。由於此操作已計畫，您必須等待5-7分鐘才能完成。

- 您可以監控/var/log/esc/yangesc.log和/var/log/esc/escmanager.log。如果您在5-7分鐘之後沒有看到虛擬機器被恢復，則使用者將需要手動恢復受影響的虛擬機器。

- VM成功恢復並運行後；確保從以前成功的已知備份還原所有系統日誌特定配置。確保它在所有ESC虛擬機器中恢復

root@abautotestvnfm1em-0:/etc/rsyslog.d# pwd

/etc/rsyslog.d

root@abautotestvnfm1em-0:/etc/rsyslog.d# ll

total 28

drwxr-xr-x  2 root root 4096 Jun  7 18:38 ./

drwxr-xr-x 86 root root 4096 Jun  6 20:33 ../]

-rw-r--r--  1 root root  319 Jun  7 18:36 00-vnmf-proxy.conf

-rw-r--r--  1 root root  317 Jun  7 18:38 01-ncs-java.conf

-rw-r--r--  1 root root  311 Mar 17  2012 20-ufw.conf

-rw-r--r--  1 root root  252 Nov 23  2015 21-cloudinit.conf

-rw-r--r--  1 root root 1655 Apr 18  2013 50-default.conf

root@abautotestvnfm1em-0:/etc/rsyslog.d# ls /etc/rsyslog.conf

rsyslog.conf

CPS恢復

1.建立CPS Cluster-Manager的備份

步驟1.使用以下命令檢視新星例項並記下集群管理器VM例項的名稱：

nova list

從ESC中停止Cluman。

/opt/cisco/esc/esc-confd/esc-cli/esc_nc_cli vm-action STOP

步驟2.檢驗Cluster Manager是否處於SHUTOFF狀態。

admin@esc1 ~]$ /opt/cisco/esc/confd/bin/confd_cli

admin@esc1> show esc_datamodel opdata tenants tenant Core deployments * state_machine

步驟3.建立新星快照映像，如以下命令所示：

nova image-create --poll

注意：請確保有足夠的磁碟空間用於快照。

重要資訊 — 如果快照建立後無法訪問虛擬機器，請使用nova list命令檢查VM的狀態。如果處於「關閉」狀態，則需要手動啟動VM。

步驟4.使用以下命令檢視影象清單：nova image-list圖1:輸出範例

步驟5.建立快照時，快照映像儲存在OpenStack概覽中。要將快照儲存在遠端資料儲存中，請下載快照並將檔案以OSPD格式傳輸到(/home/stack/CPS_BACKUP)

若要下載映像，請在OpenStack中使用以下命令：

glance image-download –-file For example: glance image-download –-file snapshot.raw 2bbfb51c-cd05-4b7c-ad77-8362d76578db

步驟6.列出下載的映像，如以下命令所示：

ls —ltr *snapshot*

Example output: -rw-r--r--. 1 root root 10429595648 Aug 16 02:39 snapshot.raw

步驟7.儲存要在將來還原的Cluster Manager VM的快照。

2.備份配置和資料庫。

1. config_br.py -a export --all /var/tmp/backup/ATP1_backup_all_$(date +\%Y-\%m-\%d).tar.gz OR

2. config_br.py -a export --mongo-all /var/tmp/backup/ATP1_backup_mongoall$(date +\%Y-\%m-\%d).tar.gz

3. config_br.py -a export --svn --etc --grafanadb --auth-htpasswd --haproxy /var/tmp/backup/ATP1_backup_svn_etc_grafanadb_haproxy_$(date +\%Y-\%m-\%d).tar.gz

4. mongodump - /var/qps/bin/support/env/env_export.sh --mongo /var/tmp/env_export_$date.tgz

5. patches - cat /etc/broadhop/repositories, check which patches are installed and copy those patches to the backup directory /home/stack/CPS_BACKUP on OSPD

6. backup the cronjobs by taking backup of the cron directory: /var/spool/cron/ from the Pcrfclient01/Cluman. Then move the file to CPS_BACKUP on the OSPD.

從crontab -l中驗證是否需要任何其他備份

將所有備份傳輸到OSPD /home/stack/CPS_BACKUP

3.從ESC主伺服器備份yaml檔案。

/opt/cisco/esc/confd/bin/netconf-console --host 127.0.0.1 --port 830 -u

-p

--get-config > /home/admin/ESC_config.xml

在OSPD /home/stack/CPS_BACKUP中傳輸檔案

4.備份crontab -l條目

使用crontab -l建立一個txt檔案，然後將其ftp到遠端位置（在OSPD /home/stack/CPS_BACKUP中）

5.從LB和PCRF客戶端備份路由檔案。

Collect and scp the below conifgurations from both LBs and Pcrfclients

route -n /etc/sysconfig/network-script/route-*

在OpenStack中恢復群集管理器虛擬機器

步驟1.將群集管理器VM快照複製到控制器刀片，如下命令所示：

ls —ltr *snapshot*

輸出示例：-rw-r—r— 1 root root使用者81042959564816日02:39 snapshot.raw

步驟2.將快照映像從資料儲存上傳到OpenStack:

glance image-create --name --file --disk-format qcow2 --container-format bare

步驟3.驗證是否已使用Nova命令上傳快照，如下例所示：

nova image-list

圖2:輸出範例

步驟4.根據群集管理器虛擬機器是否存在，您可以選擇建立群集或重建群集：

如果Cluster Manager VM例項不存在，請使用Heat或Nova命令建立Cluman VM，如下例所示：

使用ESC建立Cluman VM

/opt/cisco/esc/esc-confd/esc-cli/esc_nc_cli edit-config /opt/cisco/esc/cisco-cps/config/gr/tmo/gen/

PCRF群集將在上述命令的幫助下生成，然後從使用config_br.py restore進行的備份中恢復群集管理器配置，從備份中進行的轉儲中恢復mongorestore

delete - nova boot --config-drive true --image "" --flavor "" --nic net-id=",v4-fixed-ip=" --nic net-id="network_id,v4-fixed-ip=ip_address" --block-device-mapping "/dev/vdb=2edbac5e-55de-4d4c-a427-ab24ebe66181:::0" --availability-zone "az-2:megh-os2-compute2.cisco.com" --security-groups cps_secgrp "cluman"

如果Cluster Manager VM例項存在，請使用nova rebuild命令重建帶有上載快照的Cluster VM例項，如下所示：

nova rebuild

例如：nova rebuild cps-cluman-5f3tujqvbi67 cluman_snapshot

第5步列出所有例項，如圖所示，並驗證新的集群管理器例項已建立且正在運行：

新星清單

圖3:輸出範例

還原系統上的最新修補程式

1.       Copy the patch files to cluster manager which were backed up in OSPD /home/stack/CPS_BACKUP

2.       Login to the Cluster Manager as a root user.

3.       Untar the patch by executing the following command:  tar -xvzf [patch name].tar.gz

4.       Edit /etc/broadhop/repositories and add the following entry:  file:///$path_to_the plugin/[component name]

5.       Run build_all.sh script to create updated QPS packages:  /var/qps/install/current/scripts/build_all.sh

6.       Shutdown all software components on the target VMs:  runonall.sh sudo monit stop all

7.       Make sure all software components are shutdown on target VMs:  statusall.sh

附註：軟體元件必須全部顯示「未監視」為當前狀態)8.使用reinit.sh指令碼使用新軟體更新qns VM:/var/qps/install/current/scripts/upgrade/reinit.sh 9.重新啟動目標VM上的所有軟體元件：runonall.sh sudo monit start all 10.驗證元件是否已更新，運行：關於.sh

恢復克隆作業

1. 將備份檔案從OSPD移動到Cluman/Pcrfclient01

2. 運行命令以從備份中啟用cronjob

#crontab Cron-backup

3. 檢查以下命令是否已啟用cronjobs

#crontab -l

恢復群集中的單個虛擬機器

重新部署pcrfclient01 VM

步驟1.以根使用者身份登入到Cluster Manager VM。

步驟2.使用以下命令注意SVN儲存庫的UUID:

svn info http://pcrfclient02/repos | grep UUID

該命令將輸出儲存庫的UUID。

例如：儲存庫UUID:ea50bbd2-5726-46b8-b807-10f4a7424f0e

步驟3.在群集管理器上匯入備份策略生成器配置資料，如下例所示：

config_br.py -a import --etc-oam --svn --stats --grafanadb --auth-htpasswd --users /mnt/backup/oam_backup_27102016.tar.gz

附註：許多部署運行定期備份配置資料的cron作業。有關詳細資訊，請參閱Subversion儲存庫備份。

步驟4.要使用最新配置在群集管理器上生成VM歸檔檔案，請執行以下命令：

/var/qps/install/current/scripts/build/build_svn.sh

步驟5.要部署pcrfclient01 VM，請執行以下操作之一：

在OpenStack中，使用HEAT模板或Nova命令重新建立VM。有關詳細資訊，請參閱《CPS Installation Guide for OpenStack》。

步驟6.在運行pcrfclient01和pcrfclient02命令時，以pcrfclient01為主節點重新建立SVN主/從同步。

如果SVN已同步，請不要發出這些命令。

要檢查SVN是否同步，請從pcrfclient02運行此命令。

如果返回值，則SVN已同步：

/usr/bin/svn propget svn:sync-from-url --revprop -r0 http://pcrfclient01/repos

從pcrfclient01運行以下命令：

/bin/rm -fr /var/www/svn/repos

/usr/bin/svnadmin create /var/www/svn/repos

/usr/bin/svn propset --revprop -r0 svn:sync-last-merged-rev 0 http://pcrfclient02/repos-proxy-sync

/usr/bin/svnadmin setuuid /var/www/svn/repos/ "Enter the UUID captured in step 2"

/etc/init.d/vm-init-client /var/qps/bin/support/recover_svn_sync.sh

步驟7.如果pcrfclient01也是仲裁器VM，則運行以下步驟：

1.根據系統配置建立mongodb啟動/停止指令碼。並非所有部署都配置了所有這些資料庫。

注意：請參閱/etc/broadhop/mongoConfig.cfg以確定需要設定哪些資料庫。

cd /var/qps/bin/support/mongo

build_set.sh --session --create-scripts

build_set.sh --admin --create-scripts

build_set.sh --spr --create-scripts

build_set.sh --balance --create-scripts

build_set.sh --audit --create-scripts

build_set.sh --report --create-scripts

2.啟動蒙哥進程：

/usr/bin/systemctl start sessionmgr-XXXXX

3.等待仲裁程式啟動，然後運行diagnostics.sh —get_replica_status檢查副本集的運行狀況。

重新部署pcrfclient02 VM

步驟1.以根使用者身份登入到Cluster Manager VM。

步驟2.要使用最新配置在群集管理器上生成VM歸檔檔案，請運行以下命令：

/var/qps/install/current/scripts/build/build_svn.sh

第3步要部署pcrfclient02 VM，請執行以下操作之一：

在OpenStack中，使用HEAT模板或Nova命令重新建立VM。有關詳細資訊，請參閱《CPS Installation Guide for OpenStack》。

第4步將shell保護到pcrfclient01:

ssh pcrfclient01

第5步運行此指令碼以從pcrfclient01恢復SVN重寫：

/var/qps/bin/support/recover_svn_sync.sh

重新部署sessionmgr VM

步驟1.以根使用者身份登入到Cluster Manager VM

步驟2.要部署sessionmgr虛擬機器並替換故障或損壞的虛擬機器，請執行以下操作之一：

在OpenStack中，使用HEAT模板或Nova命令重新建立VM。有關詳細資訊，請參閱《OpenStack CPS安裝指南》

步驟3.根據系統配置建立mongodb啟動/停止指令碼。

並非所有部署都配置了所有這些資料庫。請參閱/etc/broadhop/mongoConfig.cfg以確定需要設定哪些資料庫

cd /var/qps/bin/support/mongo

build_set.sh --session --create-scripts

build_set.sh --admin --create-scripts

build_set.sh --spr --create-scripts

build_set.sh --balance --create-scripts

build_set.sh --audit --create-scripts

build_set.sh --report --create-scripts

步驟4.將shell保護到sessionmgr VM並啟動mongo進程：

ssh sessionmgrXX

/usr/bin/systemctl start sessionmgr-XXXXX

步驟5.等待成員啟動且輔助成員同步，然後運行diagnostics.sh —get_replica_status檢查資料庫的運行狀況。

步驟6.要恢復Session Manager資料庫，請使用以下示例命令之一，具體取決於是使用 — mongo-all還是 — mongo選項執行備份：

• config_br.py -a import --mongo-all --users /mnt/backup/Name of backup

or

• config_br.py -a import --mongo --users /mnt/backup/Name of backup

重新部署策略導向器（負載平衡器）虛擬機器

步驟1.以根使用者身份登入到Cluster Manager VM。

步驟2.要在群集管理器上匯入備份策略生成器配置資料，請運行以下命令：

config_br.py -a import --network --haproxy --users /mnt/backup/lb_backup_27102016.tar.gz

步驟3要使用最新配置在群集管理器上生成VM歸檔檔案，請運行以下命令：

/var/qps/install/current/scripts/build/build_svn.sh

步驟4.要部署lb01 VM，請執行以下操作之一：

在OpenStack中，使用HEAT模板或Nova命令重新建立VM。有關詳細資訊，請參閱《CPS Installation Guide for OpenStack》。

重新部署策略伺服器(QNS)虛擬機器

步驟1.以根使用者身份登入到Cluster Manager VM。

步驟2.在群集管理器上匯入備份策略生成器配置資料，如下例所示：

config_br.py -a import --users /mnt/backup/qns_backup_27102016.tar.gz

步驟3.要使用最新配置在群集管理器上生成VM歸檔檔案，請運行以下命令：

/var/qps/install/current/scripts/build/build_svn.sh

第4步要部署qns VM，請執行以下操作之一：

在OpenStack中，使用HEAT模板或Nova命令重新建立VM。有關詳細資訊，請參閱《OpenStack CPS安裝指南》

資料庫還原的一般過程

步驟1.運行此命令以還原資料庫：

config_br.py –a import --mongo-all /mnt/backup/backup_$date.tar.gz where $date is the timestamp when the export was made.

例如，

config_br.py –a import --mongo-all /mnt/backup/backup_27092016.tgz

步驟2.登入資料庫，並驗證其是否正在運行且可訪問：

1.登入會話管理器：

mongo --host sessionmgr01 --port $port

其中$port是要檢查的資料庫的埠號。例如，27718是預設餘額埠。

2.通過執行以下命令顯示資料庫：

show dbs

3.通過執行以下命令將mongo shell切換到資料庫：

use $db

其中$db是在上一個命令中顯示的資料庫名稱。

use命令將mongo shell切換到該資料庫。

例如，

use balance_mgmt

4.為了顯示集合，請運行以下命令：

show collections

5.要顯示集合中的記錄數，請運行以下命令：

db.$collection.count()

For example, db.account.count()

上例將顯示餘額資料庫(balance_mgmt)中集合「帳戶」中的記錄數。

Subversion儲存庫還原

要從備份中還原策略生成器配置資料，請執行以下命令：

config_br.py –a import --svn /mnt/backup/backup_$date.tgz where, $date is the date when the cron created the backup file.

還原Grafana儀表板

您可以使用以下命令恢復Grafana儀表板：

config_br.py -a import --grafanadb /mnt/backup/

驗證還原

還原資料後，使用以下命令驗證工作系統：

/var/qps/bin/diag/diagnostics.sh

當ESC無法啟動VM時

- 在某些情況下，ESC由於意外狀態而無法啟動VM。解決方法是重新啟動主ESC來執行ESC切換。ESC切換大約需要一分鐘。在新的主ESC上運行health.sh以驗證它是否啟動。當ESC成為主時，ESC可能會修復VM狀態並啟動VM。由於此操作已計畫，您必須等待5-7分鐘才能完成。

- 您可以監控/var/log/esc/yangesc.log和/var/log/esc/escmanager.log。如果您在5-7分鐘之後沒有看到虛擬機器被恢復，則使用者將需要手動恢復受影響的虛擬機器。

- 如果群集完全不可用且只能訪問ESC，則必須從通過Cronjobs完成的定時備份中執行最新備份。追回程式與《澳門公約》所述程式相同。