ITPub博客

首页 > 数据库 > Oracle > Exadata Flash Cache 简介(二)

Exadata Flash Cache 简介(二)

Oracle 作者:wl365365 时间:2017-05-04 17:40:52 0 删除 编辑
转: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,可以使用rolling和non-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博客 ” ,链接:https://blog.itpub.net/22039464/viewspace-2138499/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-07-04

  • 博文量
    29
  • 访问量
    74066