目录

简介

先决条件

要求

使用的组件

备份过程

步骤1:  弹性服务控制器(ESC)

步骤2.思科策略套件备份

故障排除

简介

本文档介绍恢复在Ultra-M/OpenStack环境上部署的虚拟思科策略和计费规则功能(vPCRF)实例的过程。

先决条件

要求

Cisco 建议您了解以下主题：

- OpenStack

- 思科策略套件(CPS)

- 现在，可以使用已部署受影响实例的计算

- 计算资源在与受影响实例相同的可用区域中可用

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

备份过程

步骤1:  弹性服务控制器(ESC)

ESC-HA中的配置必须在ESC中进行任何上扩或下扩操作之前/之后以及配置更改之前/之后每月备份一次。必须备份它，才能有效执行ESC的灾难恢复。

ESC选项数据作为XML

请按以下步骤将ESC选项数据导出为XML:

1.使用管理员凭证登录ESC。

2.将操作数据导出到XML:

/opt/cisco/esc/confd/bin/netconf-console --host 127.0.0.1 --port 830 -u <admin-user> -p <admin-password> --get-config > /home/admin/ESC_config.xml

3.将此文件下载到您的本地计算机ftp/sftp，下载到云外的服务器。

4.部署XML中引用的所有脚本和用户数据文件。从上一步骤中导出的操作数据中查找所有VNF的部署XML中引用的所有用户数据文件。

grep "file://" /home/admin/ESC_config.xml | sort | uniq

示例输出：

<file>file://opt/cisco/esc/cisco-cps/config/gr/cfg/std/pcrf-cm_cloud.cfg</file>

<file>file://opt/cisco/esc/cisco-cps/config/gr/cfg/std/pcrf-oam_cloud.cfg</file>

<file>file://opt/cisco/esc/cisco-cps/config/gr/cfg/std/pcrf-pd_cloud.cfg</file>

<file>file://opt/cisco/esc/cisco-cps/config/gr/cfg/std/pcrf-qns_cloud.cfg</file>

<file>file://opt/cisco/esc/cisco-cps/config/gr/cfg/std/pcrf-sm_cloud.cfg</file>

5.查找用于发送CPS协调API的所有部署后脚本。

6. ESC操作数据中post_deploy脚本的示例片段

示例输出：

<policies>

<policy>

<name>PCRF_POST_DEPLOYMENT</name>

<conditions>

<condition>

<name>LCS::POST_DEPLOY_ALIVE</name>

</condition>

</conditions>

<actions>

<action>

<name>FINISH_PCRF_INSTALLATION</name>

<type>SCRIPT</type>

<properties>

----------

<property>

<name>script_filename</name>

<value>/opt/cisco/esc/cisco-cps/config/gr/tmo/cfg/../cps_init.py</value>

</property>

<property>

<name>script_timeout</name>

<value>3600</value>

</property>

</properties>

</action>

</actions>

</policy>

</policies>

示例 2：

<policy>

<name>PCRF_POST_DEPLOYMENT</name>

<conditions>

<condition>

<name>LCS::POST_DEPLOY_ALIVE</name>

</condition>

</conditions>

<actions>

<action>

<name>FINISH_PCRF_INSTALLATION</name>

<type>SCRIPT</type>

<properties>

<property>

<name>CLUMAN_MGMT_ADDRESS</name>

<value>10.174.132.46</value>

</property>

<property>

<name>CLUMAN_YAML_FILE</name>

<value>/opt/cisco/esc/cisco-cps/config/vpcrf01/ cluman_orch_config.yaml</value>

</property>

<property>

<name>script_filename</name>

<value>/opt/cisco/esc/cisco-cps/config/vpcrf01/vpcrf_cluman_post_deployment.py</value>

</property>

<property>

<name>wait_max_timeout</name>

<value>3600</value>

</property>

</properties>

</action>

</actions>

</policy>

如果部署ESC选项数据（在上一步中提取）包含任何突出显示的文件，请使用此命令将其备份。

tar –zcf esc_files_backup.tgz /opt/cisco/esc/cisco-cps/config/

将此文件下载到您的本地计算机ftp/sftp，下载到云外的服务器。

注意：虽然opdata在ESC主实例和备用实例之间同步，但包含用户数据、XML和部署后脚本的目录不会在两个实例之间同步。建议客户使用SCP或SFTP推送包含这些文件的目录的内容，这些文件应在ESC-Primary和ESC-Standby之间保持恒定，以便在部署时主要的ESC VM不可用时恢复部署。

ESC中的建议备份计划

这些是建议在ESC主和ESC备用中添加的根用户的crontab条目。但是，您可以根据网络中的要求和更改频率修改小时/天/月。

30 01 * * * tar –zcf /home/admin/esc_files_backup_$(date +"\%Y-\%m-\%d").tgz /opt/cisco/esc/cisco-cps/config/

00 02 * * * /opt/cisco/esc/confd/bin/netconf-console --host 127.0.0.1 --port 830 -u <admin-user> -p <admin-password> --get-config > /home/admin/ESC_config_$(date +"\%Y-\%m-\%d").xml

步骤2.思科策略套件备份

集群管理器充当一个CPS集群的伪主。因此，有必要拍摄此实例的快照。此外，思科提供的备份和恢复实用程序可用于收集mongoDB、策略配置、grafana DB、用户、网络和其他pcrf配置文件的备份。这些文件应经常使用CPS备份实用程序进行备份，并存储在Ultra-M云外的位置。

群集管理器VM快照

必须每月备份Cluster Manager实例快照，而且必须在任何配置更改、补丁更新和升级之前和之后进行备份。成功执行活动后，可以删除旧快照以节省磁盘空间。此过程介绍将群集管理器实例备份为快照的步骤：

1.此命令用于查看nova实例并注意群集管理器VM实例的名称：

nova list

2.创建新星快照映像，如下所示：

nova image-create --poll <cluman_instance_name> <cluman_snapshot_name>

示例输出：

Server snapshotting... 100% complete

Finished

注意：确保有足够的磁盘空间用于快照。群集管理器有时在创建快照时变得无法访问，并在创建快照后恢复自身。如果实例即使在快照过程完成后仍无法访问，请使用nova list命令检查VM的状态。如果它处于SHUTOFF状态，则需要使用nova start命令手动启动VM。

3.确保使用此命令创建快照映像。

glance image-list

示例输出：

+--------------------------------------+-------------------------------------+

| ID                                   | Name                                |

+--------------------------------------+-------------------------------------+

| 1683d05f-2a9f-46d8-877d-10982ee819e1 | cluman_backup_image                 |

| 30f2ece1-6438-4ef7-b4cf-44a0e7de183e | CPS_13.1.1.release.iso              |

| d38321a1-27c1-4c47-bc0f-24aedab5867a | CPS_13.1.1_Base                     |

+--------------------------------------+-------------------------------------+

4.执行任何可能影响Ceph的平台更改时，始终建议将群集管理器的快照转换为QCOW文件并将其保存到某个远程位置。

glance image-download --file /var/Pcrf/cluman_snapshot.raw <image-id of the snapshot>

5.将此文件下载到您的本地计算机ftp/sftp，下载到云外的服务器。

CPS配置和数据库的备份

1.为了备份CPS配置和数据库内容，config_br.py实用程序内置在CPS平台中。《CPS备份和还原指南》中提供了有关使用config_br.py实用程序的详细信息。这是群集管理器中的crontab示例，用于在每天01时备份所有配置和数据库。

00 01 * * * /var/platform/modules/config_br.py -a export -–all /mnt/backup/backup_$(date +\%Y-\%m-\%d).tar

2. MongoDB也可以使用mongodump进行备份。

30 01 * * * mongodump --host sessionmgr01 –port 27721 --out /mnt/backup/mongo_admin_27721_$(date +\%Y-\%m-\%d)/

30 01 * * * mongodump --host sessionmgr01 –port 27720 --out /mnt/backup/mongo_spr_27720_$(date +\%Y-\%m-\%d)/

30 01 * * * mongodump --host sessionmgr01 –port 27718 --out /mnt/backup/mongo_bal_27718_$(date +\%Y-\%m-\%d)/

30 01 * * * mongodump --host sessionmgr01 –port 27719 --out /mnt/backup/mongo_report_27721_$(date +\%Y-\%m-\%d)/

3.备份协调YAML。

curl -i -X GET http://<Cluster Manager IP>:8458/api/system/config -H "Content-Type: application/yaml" > /mnt/backup/CPS_orc_$(date +\%Y-\%m-\%d).yaml

如果CPS协调API用于配置系统，建议也备份此配置。

注意：所有备份都必须存储/传输到CPS VNF外，最好是部署CPS的云外。

故障排除

CPS VNF实例恢复过程

从关闭状态打开任何实例。

如果任何实例由于计划的关闭或其他原因处于关闭状态，请使用此过程启动实例并在ESC中启用其监控。

1.通过OpenStack检查实例的状态。

source /home/stack/destackovsrc-Pcrf

nova list --fields name,host,status | grep cm

| c5e4ebd4-803d-45c1-bd96-fd6e459b7ed6 | cm_0_170d9c14-0221-4609-87e3-d752e636f57f| destackovs-compute-2  | SHUTOFF|

2.检查计算是否可用，并确保状态为up。

source /home/stack/destackovsrc-Pcrf

nova list --fields name,host,status | grep cm

| c5e4ebd4-803d-45c1-bd96-fd6e459b7ed6 | cm_0_170d9c14-0221-4609-87e3-d752e636f57f| destackovs-compute-2  | SHUTOFF|

3.以管理员用户身份登录ESC Primary，并检查opdata中实例的状态。

echo "show esc_datamodel opdata tenants tenant Pcrf deployments * state_machine | tab" | /opt/cisco/esc/confd/bin/confd_cli -u admin –C | grep cm

cm_0_170d9c14-0221-4609-87e3-d752e636f57f VM_ERROR_STATE

4.从OpenStack打开实例电源。

source /home/stack/destackovsrc-Pcrf

nova start cm_0_170d9c14-0221-4609-87e3-d752e636f57f

5.等待5分钟，使实例启动并进入活动状态。

source /home/stack/destackovsrc-Pcrf

nova list --fields name,status | grep cm

| c5e4ebd4-803d-45c1-bd96-fd6e459b7ed6 |cm_0_170d9c14-0221-4609-87e3-d752e636f57f| ACTIVE |

6.在实例处于“活动”状态后，在ESC中启用VM监控。

/opt/cisco/esc/esc-confd/esc-cli/esc_nc_cli vm-action ENABLE_MONITOR cm_0_170d9c14-0221-4609-87e3-d752e636f57f

有关实例配置的进一步恢复，请参阅此处提供的实例类型特定过程。

从错误状态恢复任何实例

如果OpenStack中CPS实例的状态为ERROR，可以使用以下过程：

1.检查OpenStack中实例的状态。

source /home/stack/destackovsrc-Pcrf

nova list --fields name,host,status | grep cm

| c5e4ebd4-803d-45c1-bd96-fd6e459b7ed6 | cm_0_170d9c14-0221-4609-87e3-d752e636f57f| destackovs-compute-2Â  | ERROR|

2.检查计算是否可用且运行正常。

source /home/stack/destackovsrc-Pcrf

nova list --fields name,host,status | grep cm

| c5e4ebd4-803d-45c1-bd96-fd6e459b7ed6 | cm_0_170d9c14-0221-4609-87e3-d752e636f57f| destackovs-compute-2  | ERROR|

3.以管理员用户身份登录ESC Primary，并检查opdata中实例的状态。

echo "show esc_datamodel opdata tenants tenant Pcrf deployments * state_machine | tab" | /opt/cisco/esc/confd/bin/confd_cli -u admin –C | grep cm

cm_0_170d9c14-0221-4609-87e3-d752e636f57f VM_ERROR_STATE

4.重置实例的状态，以强制实例返回“活动”状态，而不是错误状态。完成后，重新启动实例。

source /home/stack/destackovsrc-Pcrf

nova reset-state –active cm_0_170d9c14-0221-4609-87e3-d752e636f57f

nova reboot –-hard  cm_0_170d9c14-0221-4609-87e3-d752e636f57f

5.等待5分钟，使实例启动并进入“活动”状态。

source /home/stack/destackovsrc-Pcrf

nova list â€“fields name,status | grep cm

| c5e4ebd4-803d-45c1-bd96-fd6e459b7ed6 |cm_0_170d9c14-0221-4609-87e3-d752e636f57f| ACTIVE |

6.如果Cluster Manager在重新启动后将状态更改为ACTIVE，请在ESC中启用VM Monitor。

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

cm_0_170d9c14-0221-4609-87e3-d752e636f57f

7.恢复到RUNNING/ACTIVE状态后，请参阅实例类型特定过程以从备份中恢复配置/数据。