KFOD (Kernel Files OS Dependent) 是 Oracle ASM 內建的底層磁碟掃描工具,繞過 ASM 實例直接讀取裝置標頭,用於安裝前驗證、故障排查、磁碟對應關係確認。雖為內部工具 (Undocumented),但長期被 DBA 社群廣泛使用。本文詳細解析參數、AIX/Linux 實際輸出解讀、常見場景與注意事項。
| 參數 (縮寫/全寫) | 功能 | 典型值/說明 |
|---|---|---|
-help | 顯示幫助 | — |
_asm_allow_only_raw_disks | 僅掃描原始裝置 | TRUE / FALSE (預設) |
_asm_libraries | 指定 ASM 函式庫 | 'lib1','lib2' (如 ASMLib) |
_asmsid | 目標 ASM 實例 SID | +ASM1 |
asm_diskstring / -a | 發現字串 (支援多路徑、通配符) | '/dev/raw/*', '/dev/oracleasm/disks/*' |
disks / -d | 掃描範圍 | RAW | ASM | ALL (預設 ALL) |
group / -g | 群組發現模式 | controlfile (讀取控制檔獲取磁碟組資訊) |
nohdr / -n | 隱藏標題列 | TRUE / FALSE |
op / -o | 輸出類型 | DISKS | GROUPS | ALL |
pfile / -p | 指定參數檔 | +ASM1.ora |
status / -s | 顯示磁碟標頭狀態 | TRUE / FALSE (含 MEMBER/CANDIDATE/PROVISIONED/FORMER) |
verbose / -v | 詳細錯誤輸出 | TRUE / FALSE |
$ kfod disks=all
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
1: 102795 Mb /dev/rhdisk10
2: 10240 Mb /dev/rhdisk3
3: 10240 Mb /dev/rhdisk4
4: 51200 Mb /dev/rhdisk5
5: 51200 Mb /dev/rhdisk6
6: 51200 Mb /dev/rhdisk7
7: 51200 Mb /dev/rhdisk8
8: 102400 Mb /dev/rhdisk9
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
+ASM2 /opt/oracle/product/10.2.0/db
+ASM1 /opt/oracle/product/10.2.0/db
解讀:
Disk:KFOD 分配的序號 (非 ASM 磁碟號)Size:磁碟容量 (MB)Path:OS 裝置路徑,AIX 慣用 /dev/rhdiskN (原始字元裝置)$ kfod disks=all
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
1: 97660 Mb ORCL:VOL1
2: 195321 Mb ORCL:VOL2
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
1: 250 Mb /dev/raw/raw1
2: 251 Mb /dev/raw/raw2
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
+ASM2 /opt/oracle/product/10.2.0/db
+ASM1 /opt/oracle/product/10.2.0/db
解讀:
ORCL:VOL* 為 ASMLib 標籤 (Oracle ASM Filter Driver / ASMLib 註冊名稱)/dev/raw/raw* 為 原始裝置綁定 (udev 規則或 raw 指令建立)# 掃描所有候選裝置,確認 Size/Path 符合規劃
kfod disks=all asm_diskstring='/dev/oracleasm/disks/*,/dev/raw/*' status=true
# 顯示 HEADER STATUS:MEMBER(已加入磁碟組) / CANDIDATE(可用) / FORMER(曾屬於) / PROVISIONED(已配置未用)
kfod disks=all status=true
kfod op=groups group=controlfile
# 讀取控制檔顯示磁碟組名、冗余度、磁碟成員對應
# 僅掃描 multipath 裝置,避免單路徑重複
kfod disks=all asm_diskstring='/dev/mapper/asm*'
chmod 660 /dev/rhdisk*、Linux 需 udev 規則)。$ORACLE_HOME/bin/kfod 執行),跨版本可能誤讀標頭格式。V$ASM_DISK、ASMCMD lsdsk、kfed (單磁碟詳細標頭) 為準。| 工具 | 層級 | 主要用途 | 需 ASM 實例 |
|---|---|---|---|
| KFOD | 裝置掃描/發現 | 安裝前清查、磁碟對應、標頭狀態 | 否 (建議關閉) |
| KFED | 單磁碟標頭解析 | 深度分析單一磁碟標頭結構、修復標頭 | 否 |
| ASMCMD lsdsk | ASM 實例視角 | 運行時磁碟狀態、路徑、磁碟組關係 | 是 |
KFOD 是 ASM 磁碟層面的「X 光機」,掌握其參數與輸出解讀,能在安裝、遷移、災難恢復關鍵時刻快速獲得真相。配合 KFED (微觀) 與 ASMCMD (宏觀),構建完整的 ASM 可視化工具鏈。