由於 SDS 服務在 CloudLink 代理程式解除鎖定磁碟機前啟動,導致 CloudLink 加密的 PowerFlex SDS 裝置在重新開機後發生錯誤
Summary: 當 PowerFlex SDS 裝置透過 CloudLink 加密時,映射器名稱可能會在重新開機後變更。這會導致 SDS 裝置重新排序,且在 PowerFlex UI 中顯示為故障。
Symptoms
受影響的產品:具體組合包括:
- PowerFlex 3.6
- 雲端連結 7.1
- RHEL 8.x
- 由 CloudLink 加密的 SDS 裝置
重新開機後,由於裝置對應器重新排序,CloudLink 加密的 SDS 裝置可能會在 PowerFlex UI 中顯示為故障。
引導設備邏輯映射可以在第一個和最後一個設備盤符之間交換。
如果在 CloudLink 解除鎖定磁碟機之前啟動 SDS 服務,則重新開機後也可能發生 SDS 錯誤。此問題將在 CloudLink 7.0.2 版本中修正。
Cause
- 加密的 CloudLink 映射器會使用磁碟機代號作為識別碼。(例如, /dev/mapper/svm_sdb)
- 當驅動器號更改時,映射器名稱會更改
- 在重新開機期間,磁碟機代號可能會根據是先偵測到開機磁碟機還是 SDS 磁碟機而變更。
- 如果在 CloudLink 代理程式解除鎖定磁碟機之前,SDS 服務便會啟動,也可能發生這種情況。
Resolution
磁碟機代號變更的因應措施:
-
選項 1:
- 停止 PowerFlex 節點上的 SDS 服務 (/opt/emc/scaleio/sds/bin/delete_service.sh)。
- 清除所有 SDS 警示。這應該會觸發 PowerFlex,以重新掃描系統的新裝置名稱,並開始使用它們。(可在 簡報伺服器 > 裝置中找到)。
- 在 (/opt/emc/scaleio/sds/bin/create_service.sh) 之後重新啟動 SDS 服務。
-
選項 2:從 PowerFlex 移除 SDS 磁碟機,然後重新加入。(位於 簡報伺服器 > 裝置中)
-
選項 3:重新啟動 PowerFlex 節點,磁碟順序可能會變更回原始對應。
如果後續的重新開機使用新的磁碟機代號格式,則重新開機時會繼續發生 SDS 錯誤。若要變更 PowerFlex 磁碟機代號,以免發生 SDS 錯誤,請執行下列 scli 命令:
尋找發生錯誤的 SDS 節點sds_id:
Scli --query_all_sds
使用新的磁碟機代號更新:
Scli --update_sds_original_paths -sds_id <id>
延遲 PowerFlex 啟動,直到 CloudLink 解除鎖定磁碟機:
CloudLink 升級至 7.0x、7.1、7.1.1 和 7.1.2 時,將在 SDS 節點上的 /opt/emc/extra/pre_run.sh 中移除 60 秒的睡眠計時器。這將在重新開機後導致 SDS 錯誤,因為 PowerFlex 在 CloudLink 解除鎖定磁碟機之前就已開始使用磁碟機。為避免在重新開機時發生 SDS 錯誤,請在 CloudLink 代理程式升級後,在 SDS 節點上的 /opt/emc/extra/pre_run.sh 中重新加入 60 秒的延遲。這會導致 SDS 服務延遲啟動,直到 CloudLink 解鎖加密磁碟機為止。
範例顯示新增至 pre_run.sh 的 60 秒延遲:
#!/bin/bash -f if [ -f /sbin/svm ]; then echo svm is installed $(date) >> /var/log/svm-sds /sbin/svmd -l /var/log/svmd.log -p /var/run/svmd.pid & end=$((SECONDS+300)) while [ $SECONDS -lt $end ]; do /sbin/svm unlocked > /dev/null && break sleep 5 done fi sleep 60 echo pre_run returned...$(date) >> /var/log/svm-sds
永久修正:
- 新部署 - 安裝 CloudLink 7.1.2 和 PowerFlex 3.6.0.2
- 現有系統:升級至 CloudLink 7.1.2 和 PowerFlex 3.6.0.2
CloudLink 7.1.2 和 PowerFlex 3.6.0.2 將使用 /dev/disk/by-id/....因此請使用 /dev/mapper/svm_wwn-XXXX 名稱,而不是邏輯 /dev/svm_sdXXX。