KVM 主機上部署的 NSX Manager 在執行 get serviceget interface 等 CLI 命令時傳回錯誤。

問題

CLI 命令 get service 傳回錯誤。例如,

nsx-manager-1> get service
% An error occurred while processing the service command

其他 CLI 命令也可能會傳回錯誤。get support-bundle 命令表示 /tmp 目錄已變成唯讀狀態。例如,

nsx-manager-1> get support-bundle file failed-to-get-service.tgz
% An error occurred while retrieving the support bundle: [Errno 30] Read-only file system: '/tmp/tmpHzXF1u'

/var/log/messages-<timestamp> 記錄包含如下的訊息:

Nov 17 07:26:48 no kernel: NMI watchdog: BUG: soft lockup - CPU#5 stuck for 23s! [qemu-kvm:4386]

原因

NSX Manager 應用裝置上的一或多個檔案系統已損毀。一些可能的原因已記錄在 https://access.redhat.com/solutions/22621

若要解決此問題,您可以修復損毀的檔案系統或從備份執行還原。

解決方案

  1. 選項 1:修復損毀的檔案系統。以下步驟專門針對 KVM 主機上執行的 NSX Manager
    1. 執行 virsh destroy 命令以停止 NSX Manager 虛擬機器。
    2. 針對 qcow2 映像,以寫入模式執行 virt-rescue 命令。例如,
      virt-rescue --rw -a nsx-unified-appliance-2.0.0.0.0.6522097.phadniss-p0-DK-to-DGo-on-rhel-prod_nsx_manager_1.qcow2
    3. virt-rescue 命令提示字元中,執行 e2fsck 命令以修正 tmp 檔案系統。例如,
      <rescue> e2fsck /dev/nsx/tmp
    4. 如有必要,請再次執行 e2fsck /dev/nsx/tmp 直到沒有更多錯誤。
    5. 使用 virsh start 重新啟動 NSX Manager
  2. 選項 2:從備份執行還原。

    如需指示,請參閱《NSX-T 管理指南》