目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

還原Sessionmgr中的Mongod例項

簡介

本文描述如何解決由於DATA_PATH空間利用率提高而導致的Cisco Policy Suite(CPS)sessionmgr中的單例項故障。

必要條件

需求

思科建議您瞭解以下主題：

- Linux

- CPS

- MongoDB

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- CPS 20.2

- MongoDB v3.6.17

- UCS-B

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

CPS使用MongoDB，其中mongod進程在sessionmgr虛擬機器(VM)上運行，以便構建其基本資料庫結構。

在sessionmgr上運行多個mongod例項，並且每個例項都分配了不同的埠號。這些mongod例項參與各種副本集。

問題

每當任何特定單例項由於其關聯的DATA PATH的DATA_PATH空間消耗增加而停止時，您會在針對該sessionmgr的診斷中發現相同的內容。連線到特定埠失敗，並且/var/data/sessions.X分割槽的利用率達到100%。因此，mongod例項在各自副本集中進入OFF-LINE狀態。隨後，它在該副本集中參與狀態變為「未知」。

提供了診斷中的示例錯誤。輸入 diagnostics.sh 命令，以檢查單主機和副本集的當前狀態。

Could not connect to port 27718 on sessionmgr02 (set02)...[FAIL]

Disk usage on sessionmgr02...[FAIL]

Disk usage is above critical threshold (97%) on sessionmgr02.

Results of: ssh root@sessionmgr02 -x 'df -hP -x iso9660'

-----------------------------------

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 95G 28G 62G 32% /

tmpfs 48G 0 48G 0% /dev/shm

tmpfs 57G 0 57G 0% /var/data/sessions.1

tmpfs 12G 12G 0 100% /var/data/sessions.2

-----------------------------------

|---------------------------------------------------------------------------------------------|

| BALANCE:set02 |

| Status via arbitervip:27718 sessionmgr01:27718 |

| Member-1 - 27718 : - UNKNOWN - sessionmgr02 - OFF-LINE - 19003 days - 2 |

| Member-2 - 27718 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 3 |

| Member-3 - 27718 : 192.168.10.146 - ARBITER - arbitervip - ON-LINE - -------- - 0 |

|---------------------------------------------------------------------------------------------|

還原Sessionmgr中的Mongod例項

本節詳細說明了在sessionmgr中還原mongod例項（如果由於DATA_PATH空間消耗增加而關閉）的過程。

開始此過程之前，您必須擁有對下列內容的許可權訪問許可權：

- 對CPS CLI的Root訪問許可權

- 「qns-svn」使用者訪問CPS GUI — 策略生成器和CPS中心

此處提供了會話mg02和埠27718的過程，它是set02的一部分。

1. 登入到相應的會話管理器。

2. 輸入以下命令可標識儲存該特定set02資料的分割槽。

[root@dc1-sessionmgr02 ~]# cat /etc/broadhop/mongoConfig.cfg | grep -A6 set02 | grep "DATA_PATH"

ARBITER_DATA_PATH=/var/data/sessions.2

DATA_PATH=/var/data/sessions.2

3. 輸入以下命令可驗證是否 aido_client 進程存在與否。

[root@dc1-sessionmgr02 ~]# monsum

Monit 5.26.0 uptime: 11d 2h 9m

┌─────────────────────────────────┬────────────────────────────┬───────────────┐

│ Service Name │ Status │ Type │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ dc1-sessionmgr02 │ OK │ System │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ whisper │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ snmpd │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ memcached │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ collectd │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ auditrpms.sh │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ aido_client │ OK │ Process │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ primary_db_frag │ OK │ Program │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ cpu_load_monitor │ OK │ Program │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ cpu_load_trap │ OK │ Program │

├─────────────────────────────────┼────────────────────────────┼───────────────┤

│ gen_low_mem_trap │ OK │ Program │

└─────────────────────────────────┴────────────────────────────┴───────────────┘

4. 如果 aido_client 進程存在，請輸入 monit stop aido_client 命令停止它。

5. 輸入以下命令以驗證各個單例項進程是否仍處於活動狀態。

[root@dc1-sessionmgr02 ~]# ps -ef | grep 27718

root 12292 11114 0 02:05 pts/0 00:00:00 grep --color=auto 27718

root 19620 1 0 2021 ? 01:36:51 /usr/bin/mongod --ipv6 --syncdelay 1 --slowms 500 --storageEngine

mmapv1 --bind_ip_all --port 27718 --dbpath=/var/data/sessions.2 --replSet set02 --fork --pidfilepath

/var/run/sessionmgr-27718.pid --oplogSize 5120 --logpath /var/log/mongodb-27718.log --logappend --quiet

[root@dc1-sessionmgr02 ~]#

6. 如果mongod例項仍處於活動狀態，請輸入此命令將其停止。

[root@dc1-sessionmgr02 ~]# /etc/init.d/sessionmgr-27718 stop

Stopping sessionmgr-27718 (via systemctl): [ OK ]

[root@dc1-sessionmgr02 ~]#

7. 導航到步驟1中收到的DATA_PATH。

[root@dc1-sessionmgr02 ~]# cd /var/data/sessions.2

[root@dc1-sessionmgr02 sessions.2]# ls -lrt

total 6616100

-rw------- 1 root root 16777216 Jun 22 2018 admin.ns

-rw------- 1 root root 67108864 Jun 22 2018 admin.0

-rw------- 1 root root 69 Nov 10 07:27 storage.bson

-rw------- 1 root root 16777216 Nov 10 07:27 vouchers.ns

-rw------- 1 root root 67108864 Nov 10 07:27 vouchers.0

-rw------- 1 root root 2146435072 Nov 10 07:27 local.2

drwx------ 2 root root 4096 Nov 10 07:27 local

-rw------- 1 root root 67108864 Nov 10 07:27 local.0

-rw------- 1 root root 16777216 Jan 7 14:38 config.ns

-rw------- 1 root root 67108864 Jan 7 14:38 config.0

-rw------- 1 root root 16777216 Jan 11 02:06 local.ns

-rw------- 1 root root 2146435072 Jan 11 02:06 local.1

drwx------ 2 root root 4096 Jan 11 02:06 diagnostic.data

-rw------- 1 root root 2146435072 Jan 11 02:06 local.3

-rw------- 1 root root 0 Jan 11 02:07 mongod.lock

drwx------ 2 root root 4096 Jan 11 02:08 journal

[root@dc1-sessionmgr02 sessions.2]#

8. 輸入命令 rm -rf * 以便清除DATA_PATH。

9. 輸入以下命令以啟動mongod例項。此命令需要幾分鐘才能完成。

[root@dc1-sessionmgr02 ~]# /etc/init.d/sessionmgr-27718 start

Starting sessionmgr-27718 (via systemctl): [ OK ]

[root@dc1-sessionmgr02 ~]#

10. 如果您已停止 aido_client 流程在步驟3中，輸入 monit start adio_client 命令，以便再次啟動。

11. 輸入 diagnostics.sh 命令，以確認在副本集中各單例項已恢復並變為聯機。

|---------------------------------------------------------------------------------------------|

| BALANCE:set02 |

| Status via arbitervip:27718 sessionmgr01:27718 sessionmgr02:27718 |

| Member-1 - 27718 : - SECONDARY - sessionmgr02 - ON-LINE - 0 sec - 2 |

| Member-2 - 27718 : - PRIMARY - sessionmgr01 - ON-LINE - -------- - 3 |

| Member-3 - 27718 : XX.XX.XX.XX - ARBITER - arbitervip - ON-LINE - -------- - 0 |

|---------------------------------------------------------------------------------------------|