本文內容是關於 Oracle ASM 篩選驅動程式篩選,原先出現在 Ron Ekins 的部落格上。經作者的認可與同意,重新發表。
我是 Oracle ASM Filter Driver (AFD) 的長期粉絲。AFD 過濾是它的主要優勢之一。
AFD 可確保寫入作業僅由受信任和註冊的 Oracle 流程執行,從而阻止可能造成資料損毀的潛在損壞寫入作業。
遺憾的是,最近的 Linux 核心變更已經影響了 AFD,而 Oracle 的最新建議是停用 AFD 篩選,直到修復可用為止。
在 Oracle 資料庫 19.24 中,預設會停用篩選功能,但對於較早版本,Oracle 提供修補程式 35618858:預設停用 5.15 以上核心的篩選功能。
可用的 Oracle 版本更新 (RU) 修補程式
- Oracle Clusterware 19 版 (19.23.0.0.240416ACFSRU)
- Oracle Clusterware 19 版 (19.24.0.0.0ACFSRU)
- Oracle Clusterware 19 版 (19.25.0.0.0ACFSRU)
在這篇部落格文章中,我會探討停用 AFD 過濾功能對全快閃儲存陣列空間回收的影響。
核心版本
我最近使用 kernel 5.15 將 Oracle RAC 伺服器升級到 Oracle Linux 8.10。您可以使用 uname -r 來檢查核心版本:
[crayon-67f9fb5dda518864999506/]
[crayon-67f9fb5dda528056658025/]
[crayon-67f9fb5dda52d554901773/]
[crayon-67f9fb5dda531870835519/]
Oracle ASMFD 狀態
我們可以使用 asmcmd afd_state 命令取得 ASM 篩選驅動程式狀態,例如:
[crayon-67f9fb5dda534432602933/]
[crayon-67f9fb5dda538176511562/]
在 RAC 叢集中,使用 asmcmd afd_state – 所有選項來查看所有節點的狀態。所有節點應具有相同的篩選狀態。
[crayon-67f9fb5dda53b863223830/]
[crayon-67f9fb5dda53f716494247/]
[crayon-67f9fb5dda544684596863/]
停用 ASMFD 篩選
使用 asmcmd afd_filter -d 命令停用篩選:
[crayon-67f9fb5dda548880558915/]
[crayon-67f9fb5dda54d267833546/]
[crayon-67f9fb5dda551721728370/]
啟用 ASMFD 篩選
如果需要,您可以使用 asmcmd -e afd_filter 指令重新啟用篩選,例如:
[crayon-67f9fb5dda555474008722/]
[crayon-67f9fb5dda564571773778/]
[crayon-67f9fb5dda569060441243/]
存放空間回收
現在,這引發了一個大問題:如果我停用 ASM 過濾驅動程式,我是否無法將 SCSI UNMAP 指令發送回全快閃儲存陣列,以釋放未使用的空間?
好的,我有一個雙節點 RAC 叢集,並禁用 ASMFD 篩選功能。
[crayon-67f9fb5dda56e674224235/]
[crayon-67f9fb5dda572862442298/]
[crayon-67f9fb5dda575685170194/]
建立 Oracle 表格空間
為證明這一點,讓我們建立一個 4TB 的表格空間,並等待 Oracle 初始化資料檔案。
我們來確認一下,沒有空間使用我的v$asm_disk查詢:
[crayon-67f9fb5dda57d171628478/]
[crayon-67f9fb5dda581292172421/]
[crayon-67f9fb5dda584850737237/]
[crayon-67f9fb5dda588348760175/]
[crayon-67f9fb5dda58b508012236/]
[crayon-67f9fb5dda58f857133490/]
[crayon-67f9fb5dda592245673125/]
[crayon-67f9fb5dda59e129543788/]
並建立 4TB 大檔案的表格空間。
[crayon-67f9fb5dda5a2691179045/]
[crayon-67f9fb5dda5a6036970775/]
使用這個v$asm_disk查詢,我可以看到我的四個 ASMFD 磁碟區已如預期使用總計 4TB。
[crayon-67f9fb5dda5ab116552738/]
[crayon-67f9fb5dda5af090224447/]
[crayon-67f9fb5dda5b4814967221/]
[crayon-67f9fb5dda5b7533753683/]
[crayon-67f9fb5dda5ba786124594/]
[crayon-67f9fb5dda5be727890998/]
[crayon-67f9fb5dda5c5329166104/]
[crayon-67f9fb5dda5c9212228974/]
使用 asm 命令列公用程式 asmcmd 和清單屬性選項,我看到我的 AFDATA 磁碟群組上已啟用了儲存資源隨需配置:
[crayon-67f9fb5dda5cd796344003/]
[crayon-67f9fb5dda5d0826254256/]
使用 FlashArray CLI 並執行 purevol 清單
purevol 清單 z-racpod::afd_data* –空間 –總計
[crayon-67f9fb5dda5d4393699981/]
[crayon-67f9fb5dda5d8541945524/]
[crayon-67f9fb5dda5db530787494/]
[crayon-67f9fb5dda5df374351851/]
[crayon-67f9fb5dda5e2238683793/]
[crayon-67f9fb5dda5e7324020368/]
[crayon-67f9fb5dda5eb916787299/]
放置桌面空間
現在,讓我們使用 DROP TABLESPACE 來捨棄 Oracle 的表格空間,包括內容和資料檔案,並看看對儲存平台和 Oracle 資料庫的影響。 tablespace_name
[crayon-67f9fb5dda5ef554840694/]
[crayon-67f9fb5dda5f4347663271/]
如果我們重新執行v$asm_view查詢,Oracle 現在將報告 4TB 測試表格空間已發佈。
[crayon-67f9fb5dda5fd049102957/]
[crayon-67f9fb5dda601219397248/]
[crayon-67f9fb5dda605380484729/]
[crayon-67f9fb5dda608529495710/]
[crayon-67f9fb5dda60c569192110/]
[crayon-67f9fb5dda60f718889695/]
[crayon-67f9fb5dda613909321883/]
[crayon-67f9fb5dda616074163858/]
回到 Pure Storage® FlashArray 後,我們發現即使刪除 Oracle 的表格空間,我們仍然在消耗空間。
[crayon-67f9fb5dda61b640196500/]
[crayon-67f9fb5dda61e220713565/]
[crayon-67f9fb5dda622686415458/]
[crayon-67f9fb5dda627368093851/]
[crayon-67f9fb5dda62c932173352/]
[crayon-67f9fb5dda62f941803538/]
[crayon-67f9fb5dda633909672285/]
Oracle ASMFD 重新平衡精巧相位
使用 Oracle ASM 篩選驅動程式時,我們可以手動觸發 SCSI UNMAP 命令,使用 ALTER DISKGROUP
我包含了可選的等待選項,僅在完成後才返回。
[crayon-67f9fb5dda636129314992/]
[crayon-67f9fb5dda641299322280/]
如果現在我們回到 FlashArray CLI 並重複 purevol 清單
我們可以看到,即使 AFD 篩選已停用,ASMFD 仍然能夠將 SCSI UNMAP 請求發送到儲存陣列,以釋放空間。
[crayon-67f9fb5dda645595768965/]
[crayon-67f9fb5dda649653313524/]
[crayon-67f9fb5dda64d375859975/]
[crayon-67f9fb5dda650885155312/]
[crayon-67f9fb5dda654581602070/]
[crayon-67f9fb5dda658505969751/]
[crayon-67f9fb5dda65b987727175/]
[crayon-67f9fb5dda65f327903181/]
[crayon-67f9fb5dda662893971242/]
[crayon-67f9fb5dda665259467975/]
[crayon-67f9fb5dda669925237738/]
[crayon-67f9fb5dda671250984030/]
[crayon-67f9fb5dda675359406308/]
概要
在這篇部落格文章中,我確認停用 ASMFD 篩選功能不會影響空間回收。
Oracle AFD 開發團隊正積極為上述和更新的核心開發新的過濾和保護機制。當新的過濾解決方案推出時,我會試試看並分享我的發現。
如果您想深入了解如何使用 ASM 篩選驅動程式來回收儲存空間,請查看此部落格文章。