Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
oracle_exadata_storage_config [2020/12/02 17:23] – andonovj | oracle_exadata_storage_config [2020/12/04 13:02] (current) – andonovj | ||
---|---|---|---|
Line 82: | Line 82: | ||
</ | </ | ||
- | =====Management===== | + | =====Storage Cell===== |
====List Cell Processes==== | ====List Cell Processes==== | ||
Line 346: | Line 346: | ||
CellCLI> | CellCLI> | ||
</ | </ | ||
- | |||
- | |||
- | ===Flash Based=== | ||
- | The flash based modules, can be examined as the hard disk based ones: | ||
- | |||
- | ==List the cell disks== | ||
- | < | ||
- | --Basic | ||
- | CellCLI> list celldisk where disktype=flashdisk | ||
- | FD_00_qr01celadm01 normal | ||
- | FD_01_qr01celadm01 normal | ||
- | FD_02_qr01celadm01 normal | ||
- | FD_03_qr01celadm01 normal | ||
- | |||
- | --Detail | ||
- | CellCLI> list flashcache detail | ||
- | name: qr01celadm01_FLASHCACHE | ||
- | cellDisk: | ||
- | creationTime: | ||
- | degradedCelldisks: | ||
- | effectiveCacheSize: | ||
- | id: 7fcc1eac-2214-40a1-9f27-eb988ec75340 | ||
- | size: 1.0625G | ||
- | status: | ||
- | |||
- | CellCLI> | ||
- | </ | ||
- | |||
- | Apart from the flashdisk, the exadata has also flashlog, to improve the redo log latency. | ||
- | |||
- | ==Flash log== | ||
- | < | ||
- | --Detail | ||
- | CellCLI> list flashlog detail | ||
- | name: qr01celadm01_FLASHLOG | ||
- | cellDisk: | ||
- | creationTime: | ||
- | degradedCelldisks: | ||
- | effectiveSize: | ||
- | efficiency: | ||
- | id: 1bb5db75-8136-4952-9d20-bec44a303a17 | ||
- | size: 256M | ||
- | status: | ||
- | |||
- | CellCLI> | ||
- | |||
- | --Content | ||
- | CellCLI> list flashcachecontent detail | ||
- | ... | ||
- | cachedKeepSize: | ||
- | cachedSize: 262144 | ||
- | cachedWriteSize: | ||
- | columnarCacheSize: | ||
- | columnarKeepSize: | ||
- | dbID: 2080757153 | ||
- | dbUniqueName: | ||
- | hitCount: 11345 | ||
- | missCount: 9 | ||
- | objectNumber: | ||
- | tableSpaceNumber: | ||
- | |||
- | </ | ||
- | |||
- | |||
- | ==Drop/ | ||
- | We can use the distributed CLI interface, provided with the exadata: " | ||
- | |||
- | < | ||
- | --Drop Flash Cache: | ||
- | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
- | qr01celadm01: | ||
- | qr01celadm02: | ||
- | qr01celadm03: | ||
- | [celladmin@qr01celadm01 ~]$ | ||
- | |||
- | --Create Flash Cache | ||
- | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
- | qr01celadm01: | ||
- | qr01celadm02: | ||
- | qr01celadm03: | ||
- | [celladmin@qr01celadm01 ~]$ | ||
- | </ | ||
- | |||
====Stop / Start Cell Services==== | ====Stop / Start Cell Services==== | ||
Line 508: | Line 425: | ||
< | < | ||
- | --Verify there isn' | + | --Verify there is not rebalancing |
SQL> select * from gv$asm_operation; | SQL> select * from gv$asm_operation; | ||
no rows selected | no rows selected | ||
Line 868: | Line 785: | ||
RECO_QR01 36 | RECO_QR01 36 | ||
</ | </ | ||
+ | |||
+ | =====Flash Cache===== | ||
+ | Flash cache in Exadata is a memory which stores often accessed data on storage level. With Flash cache you can achieve very good perfmance for reading. | ||
+ | There are 3 types of a caches: | ||
+ | |||
+ | ===Write through=== | ||
+ | Using the write-through policy, data is written to the cache and the backing store location at the same time. The significance here is not the order in which it happens or whether it happens in parallel. The significance is that I/O completion is only confirmed once the data has been written to both places. | ||
+ | |||
+ | ==Advantage== | ||
+ | Ensures fast retrieval while making sure the data is in the backing store and is not lost in case the cache is disrupted. | ||
+ | |||
+ | ==Disadvantage== | ||
+ | Writing data will experience latency as you have to write to two places every time. | ||
+ | |||
+ | ==What is it good for?== | ||
+ | The write-through policy is good for applications that write and then re-read data frequently. This will result in slightly higher write latency but low read latency. So, it’s ok to spend a bit longer writing once, but then benefit from reading frequently with low latency. | ||
+ | |||
+ | ===Write-around=== | ||
+ | Using the write-around policy, data is written only to the backing store without writing to the cache. So, I/O completion is confirmed as soon as the data is written to the backing store. | ||
+ | |||
+ | ==Advantage== | ||
+ | Good for not flooding the cache with data that may not subsequently be re-read. | ||
+ | |||
+ | ==Disadvsntage== | ||
+ | Reading recently written data will result in a cache miss (and so a higher latency) because the data can only be read from the slower backing store. | ||
+ | |||
+ | ==What is it good for?== | ||
+ | The write-around policy is good for applications that don’t frequently re-read recently written data. This will result in lower write latency but higher read latency which is a acceptable trade-off for these scenarios. | ||
+ | |||
+ | |||
+ | ===Write-back=== | ||
+ | Using the write-back policy, data is written to the cache and Then I/O completion is confirmed. The data is then typically also written to the backing store in the background but the completion confirmation is not blocked on that. | ||
+ | |||
+ | ==Advantage== | ||
+ | Low latency and high throughput for write-intensive applications. | ||
+ | |||
+ | ==Disadvantage== | ||
+ | There is data availability risk because the cache could fail (and so suffer from data loss) before the data is persisted to the backing store. This result in the data being lost. | ||
+ | |||
+ | ==What is it good for?== | ||
+ | The write-back policy is the best performer for mixed workloads as both read and write I/O have similar response time levels. In reality, you can add resiliency (e.g. by duplicating writes) to reduce the likelihood of data loss. | ||
+ | |||
+ | |||
+ | ====Management==== | ||
+ | The flash based modules, can be examined as the hard disk based ones: | ||
+ | |||
+ | ==List the cell disks== | ||
+ | < | ||
+ | --Basic | ||
+ | CellCLI> list celldisk where disktype=flashdisk | ||
+ | FD_00_qr01celadm01 normal | ||
+ | FD_01_qr01celadm01 normal | ||
+ | FD_02_qr01celadm01 normal | ||
+ | FD_03_qr01celadm01 normal | ||
+ | |||
+ | --Detail | ||
+ | CellCLI> list flashcache detail | ||
+ | name: qr01celadm01_FLASHCACHE | ||
+ | cellDisk: | ||
+ | creationTime: | ||
+ | degradedCelldisks: | ||
+ | effectiveCacheSize: | ||
+ | id: 7fcc1eac-2214-40a1-9f27-eb988ec75340 | ||
+ | size: 1.0625G | ||
+ | status: | ||
+ | |||
+ | CellCLI> | ||
+ | </ | ||
+ | |||
+ | Apart from the flashdisk, the exadata has also flashlog, to improve the redo log latency. | ||
+ | |||
+ | ==Flash log== | ||
+ | < | ||
+ | --Detail | ||
+ | CellCLI> list flashlog detail | ||
+ | name: qr01celadm01_FLASHLOG | ||
+ | cellDisk: | ||
+ | creationTime: | ||
+ | degradedCelldisks: | ||
+ | effectiveSize: | ||
+ | efficiency: | ||
+ | id: 1bb5db75-8136-4952-9d20-bec44a303a17 | ||
+ | size: 256M | ||
+ | status: | ||
+ | |||
+ | CellCLI> | ||
+ | |||
+ | --Content | ||
+ | CellCLI> list flashcachecontent detail | ||
+ | ... | ||
+ | cachedKeepSize: | ||
+ | cachedSize: 262144 | ||
+ | cachedWriteSize: | ||
+ | columnarCacheSize: | ||
+ | columnarKeepSize: | ||
+ | dbID: 2080757153 | ||
+ | dbUniqueName: | ||
+ | hitCount: 11345 | ||
+ | missCount: 9 | ||
+ | objectNumber: | ||
+ | tableSpaceNumber: | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ==Drop/ | ||
+ | We can use the distributed CLI interface, provided with the exadata: " | ||
+ | |||
+ | < | ||
+ | --Drop Flash Cache: | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | |||
+ | --Create Flash Cache | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | ===Drop Flash Cache=== | ||
+ | We can drop the flash cache only after, we have to stop the cluster. | ||
+ | < | ||
+ | --Stop the cluster: | ||
+ | [root@qr01dbadm01 ~]# / | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on ' | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on ' | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | CRS-2673: Attempting to stop ' | ||
+ | |||
+ | --Drop Flash cache | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | ===Shutdown Services=== | ||
+ | < | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm01: | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm02: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | qr01celadm03: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | ===Enable Flash Through Cache=== | ||
+ | < | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===Restart Flash Cache Services=== | ||
+ | < | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm01: | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm02: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | qr01celadm03: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | ===Flush Caches=== | ||
+ | < | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | ====Monitoring==== | ||
+ | We can monitor the flash cache, using several commands | ||
+ | |||
+ | ===Determine the Flash Cache Type=== | ||
+ | < | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ | |||
+ | ===Determine the amount of Dirty Data=== | ||
+ | < | ||
+ | [celladmin@qr01celadm01 ~]$ dcli -c qr01celadm01, | ||
+ | qr01celadm01: | ||
+ | qr01celadm02: | ||
+ | qr01celadm03: | ||
+ | [celladmin@qr01celadm01 ~]$ | ||
+ | </ | ||
+ |