Exadata Flash Cache 簡介(二)

wl365365發表於2017-05-04
轉:https://blogs.oracle.com/ExadataCN/entry/exadata_flash_cache_%E7%AE%80%E4%BB%8B_%E4%BA%8C

在前一篇部落格裡,我們介紹了Exadata Flash Cache card(智慧快閃記憶體卡)的基本概念和工作方式,在這篇文章當中,我們會從介紹如何在Exadata上管理和維護智慧快閃記憶體卡。 由於智慧快閃記憶體卡在Exadata上可以作為 Flash Cache Flash log Flash grid disk使用本文也會對它們分別進行介紹。


首先,關於flash cache的基本管理命令:


1. 檢視當前的flash cache 配置


CellCLI> list flashcache detail;


2. 如何建立flash cache


CellCLI> create flashcache all size=2900.75G


這個命令會在當前cell 節點上的所有快閃記憶體卡上建立flash cache, 尺寸為2900.75G


3. 如何刪除flash cache 配置


CellCLI> drop flashcache all;


下來是關於flash log 的基本管理命令:


1. 檢視當前的flash log的配置


CellCLI> list flashlog detail


2. 建立flash log


CellCLI> create flashlog all size=1G


這個命令會在當前cell 節點上的所有快閃記憶體卡上建立flash log, 尺寸為1G


CellCLI> drop flashlog all;


接下來是管理 flash grid disk 的基本的命令。


1. 檢視當前的flash griddisk 的資訊


CellCLI> list griddisk detail


2. 建立flash griddisk


CellCLI>create griddisk all flashdisk prefix='FLASH' , size=1G;


這個命令會在當前cell 節點上的所有快閃記憶體卡上建立griddisk, 字首為FLASH,尺寸為1G


3. 刪除flash griddisk


CellCLI> drop griddisk all flashdisk prefix='FLASH';



對於更多的管理命令,請參考文件: Oracle? Exadata Storage Server Software User's Guide 12c Release 1 (12.1) ==> 8 Using the CellCLI Utility



由於智慧快閃記憶體卡在Exadata上最常用的用途是flash cache, 接下來介紹一下對flash cache的常見維護操作。


啟用write-back flash cache,可以使用rollingnon-rolling 方式完成。


Rolling 方式:


1. 使用root 使用者登入到對應的cell 節點上


2. 使用下面的命令檢視當前的flash cache 狀態


# cellcli -e LIST FLASHCACHE detail


3. 刪除當前的flash cache


# cellcli -e DROP FLASHCACHE


4. Inactivate cell 節點上所有的griddisk


# cellcli -e ALTER GRIDDISK ALL INACTIVE


5. 關閉 CELLSRV services


# cellcli -e ALTER CELL SHUTDOWN SERVICES CELLSRV


6. 啟動writeback flash cache


# cellcli -e "ALTER CELL FLASHCACHEMODE=writeback"


7. 重新啟動cellsrv 服務


# cellcli -e ALTER CELL STARTUP SERVICES CELLSRV


8. 啟用cell 節點上的grid disk


# cellcli -e ALTER GRIDDISK ALL ACTIVE


9. 重新建立flash cache


# cellcli -e CREATE FLASHCACHE ALL


10. 檢視flash cache 的模式


# cellcli -e LIST CELL DETAIL | grep flashCacheMode


11. 檢視griddisks asmDeactivationOutcome  asmModeStatus 屬性,它們的值應該顯示為yes  online


CellCLI> LIST GRIDDISK ATTRIBUTES name,asmdeactivationoutcome,asmmodestatus


12. 在其他cell 節點上重複上面的步驟。



Non-rolling 方式:


這種方法需要在任意的一個計算節點上執行就可以,並且需要建立一個檔案cell_group,其中列出了需要操作的cell 節點名稱列表。


例如: cat cell_group


dm01cel05


dm01cel06


dm01cel07



1. 在任意的計算節點,使用root使用者關閉GI


# cd $GI_HOME/bin


# ./crsctl stop cluster -all


2. 使用下面的命令刪除在所有的cell節點上的flash cache


# dcli -g cell_group -l root cellcli -e DROP FLASHCACHE


3. 使用下面的命令停止cell 節點上的cellsrv 服務


# dcli -g cell_group -l root cellcli -e ALTER CELL SHUTDOWN SERVICES CELLSRV


4. 檢視cell 節點上的flash cache 的模式


# dcli -g cell_group -l root "cellcli -e list cell detail | grep -i flashcachemode"


5. 設定 flash cache 的模式為writeback


# dcli -g cell_group -l root cellcli -e "ALTER CELL FLASHCACHEMODE=writeback"


6. 重啟cell 節點的cellsrv 服務


# dcli -g cell_group -l root cellcli -e ALTER CELL STARTUP SERVICES CELLSRV


7. 重新建立cell 節點上的flash cache


# dcli -g cell_group -l root cellcli -e CREATE FLASHCACHE ALL


8. 啟動叢集


# cd $GI_HOME/bin


# ./crsctl start cluster -all



禁用writeback falsh cache的方式同樣也分為rolling non-rolling兩種方式。


Rolling方式


1. 使用root使用者登入到需要操作的cell節點。


2. 確認以下命令返回的asmDeactivationOutcome 值為yes


# dcli -g cell_group -l root cellcli -e "LIST GRIDDISK WHERE


asmdeactivationoutcome != 'Yes' attributes name, asmdeactivationoutcome,


asmmodestatus"



如果上面的命令返回了一些griddiks,說明有些dirty資料仍然被cache 在了flash cache 中,需要使用下面的方式來flush 掉。


檢視被cache dirty 資料的數量:


# dcli -g cell_group -l root cellcli -e "LIST METRICCURRENT ATTRIBUTES  \


name,metricvalue WHERE name LIKE \'FC_BY_DIRTY.*\'"


使用下面的命令flush flash cache 中的dirty 資料。


# dcli -g cell_group -l root cellcli -e ALTER FLASHCACHE ALL FLUSH



flush結束之後,以下命令的flushstatus 列會顯示為completed


# dcli -g cell_group -l root cellcli -e LIST CELLDISK ATTRIBUTES name, flushstatus, flusherror | grep FD



3. 接下來就可以使用本文之前的“使用rolling 方式啟用flash cache 部分中的步驟來禁用flash cache 了。唯一的區別就在於第六步需要執行的是以下的禁用write back flash cache 命令。


# cellcli -e "ALTER CELL FLASHCACHEMODE=writethrough"



         non-rolling 方式:這種方式的過程實際上和rolling 的方式是很類似的。


1. 使用root使用者登入到需要操作的cell節點。


2. 檢視被cache dirty 資料的數量:


# dcli -g cell_group -l root cellcli -e "LIST METRICCURRENT ATTRIBUTES  \


name,metricvalue WHERE name LIKE \'FC_BY_DIRTY.*\'"


3. 使用下面的命令flush flash cache 中的dirty 資料。


# dcli -g cell_group -l root cellcli -e ALTER FLASHCACHE ALL FLUSH



flush結束之後,以下命令的flushstatus 列會顯示為completed


# dcli -g cell_group -l root cellcli -e LIST CELLDISK ATTRIBUTES name, flushstatus, flusherror | grep FD


4. 參照本文之前的“使用non-rolling 方式啟用flash cache 部分中的步驟來禁用flash cache 了。唯一的區別就在於第五步需要執行的是以下的禁用write back flash cache 命令。


# dcli -g cell_group -l root cellcli -e "ALTER CELL FLASHCACHEMODE=writethrough"


透過以上的介紹,希望大家能夠對日常的flash cache的維護有一些基本的瞭解,並有所幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22039464/viewspace-2138499/,如需轉載,請註明出處,否則將追究法律責任。

相關文章