VPLEX:由於儲存陣列的 SCSI 檢查條件 3/11/0,磁碟被標記為硬體故障
Summary: 由於來自底層儲存陣列的 SCSI 偵測代碼 3/11/0,VPLEX 會將磁碟標記為失效。
Symptoms
當 VPLEX 對基礎儲存陣列 LUN 執行讀取要求時,會觸發此事件,而陣列無法為 LUN 的該區塊提供 I/O 服務,這會觸發 3/11/0 檢查狀況 (陣列上的損毀磁區)
這通常會出現在大量讀取 I/O 的情況中,例如:
- VPLEX 範圍/裝置遷移
- 備份作業
- 資料庫完整性檢查
VPLEX 儲存磁碟區標示為「硬體失效」,但在儲存陣列介面上顯示狀況良好。
CLI 命令的範例輸出 ll /clusters/cluster-2/storage-elements/storage-volumes/storage-volume name>
VPlexcli:/> ll /clusters/cluster-2/storage-elements/storage-volumes/VNX_LUN_25
/clusters/cluster-2/storage-elements/storage-volumes/VNX_LUN_25:
Name Value
----------------------------- ------------------------------------------------
application-consistent false
block-count 1073741824
block-size 4K
capacity 4T
description -
free-chunks []
health-indications [hardware dead] <<
health-state critical-failure <<
io-status dead <<
itls 0x50001442a03c0810/0x5006016b08603879/9,
0x50001442a03c0811/0x5006016308603879/9,
largest-free-chunk 0B
locality -
operational-status error <<
provision-type legacy
storage-array-name EMC-CLARiiON-123456789
storage-volumetype normal
system-id VPD83T3:xxxxxxxxxxxxxxxxxxxxx
thin-capable false
thin-rebuild true
total-free-space 0B
underlying-storage-block-size 512
use unusable <<
used-by [extent_VNX_LUN_25]
vendor-specific-name DGC
VPLEX 裝置/範圍遷移 (行動工作) 會卡在特定百分比。
CLI 命令的範例輸出 ll data-migrations/device-migrations/<device_migration_name>
VPlexcli:/> ll data-migrations/device-migrations/D__Migrate_LUN_1
/data-migrations/device-migrations/D__Migrate_LUN_1:
Name Value
--------------- ----------------------------
from-cluster cluster-1
percentage-done 7
source device_VNX_LUN25_1
source-exported -
start-time -
status error <<
target device_SYMM_DEV1234_1
target-exported -
to-cluster cluster-2
transfer-size 2M
type full
主機會看到 VPLEX 儲存裝置離線或標記為失效,而 VPLEX 儲存磁碟區也標示為嚴重故障或硬體失效。
固件日誌中記錄的示例數據,amf/45 disk VPD83T3:xxxxxxxxxxxxxxx: read failure: marking this in-use disk dead
VPLEX 韌體記錄顯示串流或間歇性 SCSI/27 (檢查狀況) 與 3/11/0 的 SCSI 感應代碼項目,翻譯為「Medium Error - unrecovered read error“
事件期間固件日誌中記錄的示例輸出,2016/06/09 02:46:23.67: scsi/27 tgt VPD83T3:6006016011663200b058c25a984de511 cmd 0x28 status 0x2 valid 0 resp 0x70 seg 0x0 bits 0x0 key 0x3 info 0x0 alen 10 csi 0x0 asc 0x11 ascq 0x0 fru 0x0 sks 0x0
2016/06/09 02:46:23.68: scsi/27 tgt VPD83T3:6006016011663200b058c25a984de511 cmd 0x28 status 0x2 valid 0 resp 0x70 seg 0x0 bits 0x0 key 0x3 info 0x0 alen 10 csi 0x0 asc 0x11 ascq 0x0 fru 0x0 sks 0x0
2016/06/09 02:46:23.69: scsi/27 tgt VPD83T3:6006016011663200b058c25a984de511 cmd 0x28 status 0x2 valid 0 resp 0x70 seg 0x0 bits 0x0 key 0x3 info 0x0 alen 10 csi 0x0 asc 0x11 ascq 0x0 fru 0x0 sks 0x0
若要確認此問題,將始終執行以下操作:key = 0x3asc = 0x11ascq = 0x0
Cause
當 VPLEX 將 I/O 讀取要求 (0x28) 傳送至儲存陣列時,陣列無法成功服務於 I/O 要求,並以檢查條件 3/11/0 回應「未復原的讀取錯誤」。
VPLEX 會嘗試從儲存陣列上的損毀磁區讀取,由於儲存陣列無法為此 I/O VPLEX 提供服務,因此將儲存裝置標記為失效。
這不是特定於陣列或陣列代碼的。
此原因是 VPLEX 外部,並且是有 LUN 的儲存陣列發生問題。
Resolution
將 scsi 檢查條件 3/11/0 傳送至 VPLEX 的儲存陣列必須由個別陣列廠商進行調查。此問題是由於儲存陣列上的「讀取未復原」問題,導致陣列無法處理讀取 I/O 要求所觸發。
必須使用 VNX 支援。
可在 VPLEX 管理伺服器上執行下列 cli 命令,以取得受 3/11/0 檢查條件影響的前 50 個邏輯單元的清單:grep "key 0x3 " /var/log/VPlex/cli/firmware.log_* | awk '{print $3,$5,$18,$19,$26,$27,$28,$29}' | sort | uniq -c | sort -nr | head -50
範例:
service@ManagementServer:~> grep "key 0x3 " /var/log/VPlex/cli/firmware.log_* | awk '{print $3,$5,$18,$19,$26,$27,$28,$29}' | sort | uniq -c | sort -nr | head -50
388408 scsi/27 VPD83T3:60060160116632000000000000000001 key 0x3 asc 0x11 ascq 0x0
45135 scsi/27 VPD83T3:60060160116632000000000000000002 key 0x3 asc 0x11 ascq 0x0
44451 scsi/27 VPD83T3:60060160116632000000000000000003 key 0x3 asc 0x11 ascq 0x0
35412 scsi/27 VPD83T3:60060160116632000000000000000004 key 0x3 asc 0x11 ascq 0x0
30158 scsi/27 VPD83T3:60060160116632000000000000000005 key 0x3 asc 0x11 ascq 0x0
24589 scsi/27 VPD83T3:60060160116632000000000000000006 key 0x3 asc 0x11 ascq 0x0
21579 scsi/27 VPD83T3:60060160116632000000000000000007 key 0x3 asc 0x11 ascq 0x0
如果這是非 EMC 陣列,請與個別陣列廠商聯絡,以解決儲存陣列上存在的問題。
Additional Information
這是儲存陣列上的區塊層問題,只有對儲存陣列本身採取行動才能解決。
這不是 VPLEX 問題,而是 VPLEX 報告後端陣列出現症狀。
此處使用「storage-volume resurrect --force」無效。
此命令會強制失效的儲存磁碟區在 VPLEX 中顯示為「活動」,無論其目前的 I/O 狀態或基礎儲存陣列上的問題為何。
這個命令強制儲存磁碟區重新連線,直到下一個 IO 無法連接至底層儲存陣列。
當主機要求的基礎儲存陣列上存在 3/11/0 問題的相同資料區塊時,儲存磁碟區將再次標記為失效。
這是預期中的行為,不代表 VPLEX 問題。
將有問題的儲存磁碟區直接從儲存陣列提供給主機 (略過 VPLEX),可能會讓主機使用部分資料。但是,此動作會直接向主機呈現可能的資料損毀情形。主機繼續發生從特定區塊讀取的問題,並出現 3/11/0 檢查狀況問題。