A.環境&問題
1.問題
筆者購入伺服器退役SAS硬碟後 發現在Truenas內無法建立ZFS Pool, 會報下列錯誤
Disk(s): sdx ... are formatted with Data Integrity Feature (DIF) which is unsupported.
查閱資料後發現 是企業硬碟被格式化成 DIF格式 所以512Byte的扇區變成520Byte 而Truenas(與Linux)並不支援520Byte格式的扇區 需要重新格式化成512n或4Kn才能使用
2.環境
Truenas版本:TrueNAS-SCALE-23.10-MASTER-20221205-015224
HBA卡/SAS controller型號: LSI 2308-8i
硬碟: ST6000NM0095
B.解決過程
1.確認硬碟代號
先進入Turenas網頁管理介面 切到storage分頁,右上角點選disks進入下面硬碟頁面
最好截圖記錄下來 因為Turenas 管理頁面過一段時間會session expire 導致要重新登入
2.開啟SSH
因為Truenas網頁consle可能因為瀏覽器節省記憶體等原因刷新 導致格式化失敗 所以建議用SSH
左下角System Settings > Services 把SSH啟用
基於安全性原因 不要開到右邊勾選的自動啟動 除非你非常確定自己在做甚麼
3.SSH登入Truenas
使用SSH工具登入Truenas 這邊使用Putty示範 也可使用remmina, MobaXterm等熟悉的工具
上方輸入Turenas的IP ,下方連線選擇SSH ,Port用預設(22)
第一次連線會確認金鑰 選Accept就好
用admin登入 下方輸入密碼後enter
4.低階格式化硬碟
通常低階格式化(Low-Level Format)HDD會消耗非常多時間 10TB以上的大容量硬碟可能要一天以上
由於Truenas上沒有screen或tmux等進程管理器 請保持SSH視窗及電腦開啟直到格式化完成
格式化指令:
sudo sg_format -F -s 512 /dev/sd_
將指令中的SD_ 換成"步驟1."中記錄下來的需格式化硬碟代號
指令解析:
sudo : 以最高權限運行 (admin權限無法對裝置執行格式化操作)
-F :Format 格式化
-s :sector 扇區大小 格式是byte 如果硬碟支援4Kn可以填入4096
註:sg_format可並行運作 若有多顆硬碟可開啟複數SSH視窗執行 以同時格式化不同硬碟
C.格式化中斷救援方式
1.格式化開始失敗
如果格式化過程中意外中斷 重新啟動後可能會報"device not ready"錯誤
這時候不要緊張 重新載入一下scsi就可以了
2.確認scsi位址
用下列指令列出SCSI裝置
sudo dmesg | grep -i scsi
以筆者環境舉例 輸出應該會類似這樣
此時看下面202開頭的訊息就可以看到 sdf對應0.0.4.0 也就是host4 以此類推
此區也記得截圖放旁邊備用
3.重新載入硬碟
開始本區前先執行下列指令進入root環境 (執行其他指令時請輸入exit退出)
sudo -i
以前面獲得的scsi host填入下列指令 以重新掃描硬碟
(host_需更改成上步驟獲得的代號 例如host4)
echo "- - -" > /sys/class/scsi_host/host_/scan
依次執行完每一個硬碟後 退出root模式
exit
4.重新格式化
重新掃描後即可回到"章節B步驟4.格式化硬碟"
若報同樣錯誤或是變成Hardware Error,請重啟Truenas系統
Leave a Reply