对于WBFC,它是智能闪存最常见的使用方式。默认情况下,每一个flash cache card 会选择存储节点中的3块物理磁盘(每个存储节点包含4块闪存卡,12块磁盘)做为自己的partner,之后将对应磁盘中经常被访问的数据缓存到flash cache 中。而这部分被称为WBFC 的主要原因是,当有写操作要在对应的磁盘上执行时,这个操作只需要在flash cache上完成之后就会直接被返回给上层的数据库,而不需要在物理磁盘上也完成。Exadata 存储节点上的管理软件(cellsrv)会异步的将这些I/O同步到对应的磁盘上。下面的这些图形说明了WBFC 处理I/O的过程。
读操作,数据未缓存。
步骤1:数据库发出了读请求。
步骤2:存储节点上的cellsrv 软件从磁盘中找到相应的数据。
步骤3:cellsrv将数据返回给上层的数据库。
步骤4:cellsrv将同样的数据复制到WBFC当中。确保下一次读取操作可以直接从闪存中完成。
读操作,数据已缓存。
步骤1:数据库发出了读请求。
步骤2:存储节点上的cellsrv 软件从闪存中找到相应的数据。
步骤3:cellsrv将数据返回给上层的数据库。
写操作,数据未缓存。
步骤1:数据库发出了写请求。
步骤2:存储节点上的cellsrv 软件从闪存中没有找到需要的数据,之后在磁盘中找到了对应的数据。
步骤3:cellsrv通知上层的数据库写操作完成。
步骤4:cellsrv将同样的数据复制到WBFC当中。确保下一次写操作可以直接从闪存中完成。
写操作,数据已缓存。
步骤1:数据库发出了写请求。
步骤2:存储节点上的cellsrv 软件从闪存中找到相应的数据。
步骤3:cellsrv在闪存上修改数据。
步骤4:cellsrv通知上层的数据库写操作完成。
通过上面的说明可以看到,在数据被缓存到WBFC之后,读写操作对物理磁盘的访问都可以避免,从而提高了数据库的I/O性能。
对于运行OLTP类型应用的数据库,通常会产生大量的数据改变,也就是意味着会有大量的重做日志文件记录产生,对于重做日志所在的存储就有着很高的性能要求,很多时候对于重要的OLTP系统,哪怕是重做日志文件所在磁盘的短暂的性能问题都可能会对数据库性能造成很大的伤害。Flash Logging的功能可以很好地改善重做日志文件的I/O性能问题,它会在闪存卡中分配512M空间(默认配置)保存重做日志信息。当数据库产生一个重做日志记录时,它会同时被写入到磁盘上的重做日志文件和Flash Logging中,而最先返回的写入操作会直接通知数据库写入操作执行完成,而不需要等待两个介质都被写入完成才返回,从而提高了重做日志文件写操作的性能,而且能够避免任何一种介质出现短暂性能问题可能带来的性能下降问题。
智能闪存的最后一种使用方式就是在flash cache上直接创建grid disk,并将它们创建成磁盘组,之后用于保存数据库或者其他文件。这种配置并不是默认情况下就存在的,而且也不是推荐的用法,如果用户需要的话可以手动进行创建。
最后,介绍一些简单的命令来查看智能闪存的信息。
命令1:查看flash cache的详细信息。
CellCLI> list flashcache detail;
name: dmorlcel05_FLASHCACHE
cellDisk: FD_01_dmorlcel05,FD_07_dmorlcel05,FD_15_dmorlcel05,FD_00_dmorlcel05,FD_11_dmorlcel05,FD_14_dmorlcel05,FD_02_dmorlcel05,FD_04_dmorlcel05,FD_12_dmorlcel05,FD_03_dmorlcel05,FD_09_dmorlcel05,FD_13_dmorlcel05,FD_08_dmorlcel05,FD_06_dmorlcel05,FD_05_dmorlcel05,FD_10_dmorlcel05
creationTime: 2016-04-14T16:57:09-04:00
degradedCelldisks:
effectiveCacheSize: 2978.75G
id: 11a7984b-dc9f-4d8c-9cde-ca07d59b61cd
size: 2978.75G
status: normal
命令2:查看flash logging的详细信息。
CellCLI> list flashlog detail;
name: dmorlcel07_FLASHLOG
cellDisk: FD_11_dmorlcel07,FD_08_dmorlcel07,FD_12_dmorlcel07,FD_04_dmorlcel07,FD_07_dmorlcel07,FD_10_dmorlcel07,FD_06_dmorlcel07,FD_15_dmorlcel07,FD_02_dmorlcel07,FD_00_dmorlcel07,FD_09_dmorlcel07,FD_03_dmorlcel07,FD_01_dmorlcel07,FD_05_dmorlcel07,FD_13_dmorlcel07,FD_14_dmorlcel07
creationTime: 2013-07-14T03:19:10-04:00
degradedCelldisks:
effectiveSize: 512M
efficiency: 100.0
id: 607633ac-3ce0-4d5c-9501-6382f611028f
size: 512M
status: normal
命令3:查看磁盘和智能闪存的对应关系。
CellCLI> list griddisk attributes name, cachedby
DATA_DMORL_CD_00_dmorlcel07 "FD_02_dmorlcel07, FD_03_dmorlcel07, FD_01_dmorlcel07, FD_00_dmorlcel07"
DATA_DMORL_CD_01_dmorlcel07 "FD_11_dmorlcel07, FD_09_dmorlcel07, FD_10_dmorlcel07, FD_08_dmorlcel07"
DATA_DMORL_CD_02_dmorlcel07 "FD_11_dmorlcel07, FD_09_dmorlcel07, FD_10_dmorlcel07, FD_08_dmorlcel07"
DATA_DMORL_CD_03_dmorlcel07 "FD_11_dmorlcel07, FD_09_dmorlcel07, FD_10_dmorlcel07, FD_08_dmorlcel07"
DATA_DMORL_CD_04_dmorlcel07 "FD_14_dmorlcel07, FD_12_dmorlcel07, FD_15_dmorlcel07, FD_13_dmorlcel07"
DATA_DMORL_CD_05_dmorlcel07 "FD_14_dmorlcel07, FD_12_dmorlcel07, FD_15_dmorlcel07, FD_13_dmorlcel07"
DATA_DMORL_CD_06_dmorlcel07 "FD_02_dmorlcel07, FD_03_dmorlcel07, FD_01_dmorlcel07, FD_00_dmorlcel07"
DATA_DMORL_CD_07_dmorlcel07 "FD_02_dmorlcel07, FD_03_dmorlcel07, FD_01_dmorlcel07, FD_00_dmorlcel07"
DATA_DMORL_CD_08_dmorlcel07 "FD_05_dmorlcel07, FD_06_dmorlcel07, FD_07_dmorlcel07, FD_04_dmorlcel07"
DATA_DMORL_CD_09_dmorlcel07 "FD_05_dmorlcel07, FD_06_dmorlcel07, FD_07_dmorlcel07, FD_04_dmorlcel07"
DATA_DMORL_CD_10_dmorlcel07 "FD_05_dmorlcel07, FD_06_dmorlcel07, FD_07_dmorlcel07, FD_04_dmorlcel07"
DATA_DMORL_CD_11_dmorlcel07 "FD_14_dmorlcel07, FD_12_dmorlcel07, FD_15_dmorlcel07, FD_13_dmorlcel07"
可以看到每块闪存卡对应三块物理硬盘。
命令4:查看闪存卡的模式
CellCLI> list cell attributes flashcachemode
WriteBack
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22039464/viewspace-2138498/ ,如需转载,请注明出处,否则将追究法律责任。