3.4.6.1 Disable Write-Back Flash Cache Along With Write-Back PMEM Cache

Before Oracle Exadata System Software release 23.1.0, write-back PMEM cache is only supported in conjunction with write-back flash cache. Consequently, if write-back PMEM Cache is enabled, you must also disable write-back PMEM Cache to disable write-back flash cache.

This requirement only applies prior to Oracle Exadata System Software release 23.1.0 because PMEM cache only operates in write-through mode starting with Oracle Exadata System Software release 23.1.0.

Note:

To reduce the performance impact on your applications, change the cache mode during a period of reduced workload.

The following command examples use a text file named cell_group that contains the host names of the storage servers that are the subject of the procedure.

  1. Check the current PMEM cache mode setting (pmemCacheMode):
    # dcli –l root –g cell_group cellcli -e "list cell detail" | grep pmemCacheMode
  2. If the PMEM cache is in write-back mode:
    1. Flush the PMEM cache.

      If the PMEM cache utilizes all available PMEM cell disks, you can use the ALL keyword as shown here.

      # dcli –l root –g cell_group cellcli ALTER PMEMCACHE ALL FLUSH

      Otherwise, list the specific disks using the CELLDISK="cdisk1 [,cdisk2] ..." clause.

    2. Drop the PMEM cache.
      # dcli –l root –g cell_group cellcli DROP PMEMCACHE
    3. Configure the cell to use PMEM cache in write-through mode.
      # dcli –l root –g cell_group cellcli ALTER CELL pmemCacheMode=writethrough
    4. Re-create the PMEM cache.

      If the PMEM cache utilizes all available PMEM cell disks, you can use the ALL keyword as shown here. Otherwise, list the specific disks using the CELLDISK="cdisk1 [,cdisk2] ..." clause. If the size attribute is not specified, then the PMEM cache consumes all available space on each cell disk.

      # dcli –l root –g cell_group cellcli -e CREATE PMEMCACHE ALL
    5. Verify that pmemCacheMode is set to writethrough.
      # dcli –l root –g cell_group cellcli -e "list cell detail" | grep pmemCacheMode
  3. Validate that all the physical disks are in NORMAL state before modifying the flash cache.
    # dcli –l root –g cell_group cellcli –e "LIST PHYSICALDISK ATTRIBUTES name,status" | grep –v NORMAL
    The command should return no rows.
  4. Determine amount of dirty data in the flash cache.
    # dcli –g cell_group –l root cellcli -e "LIST METRICCURRENT ATTRIBUTES name,metricvalue WHERE name LIKE \'FC_BY_DIRTY.*\' "
  5. Flush the flash cache.

    If the flash cache utilizes all available flash cell disks, you can use the ALL keyword instead of listing the flash disks.

    # dcli –g cell_group –l root cellcli -e "ALTER FLASHCACHE CELLDISK=\'FD_02_dm01celadm12,
    FD_03_dm01celadm12,FD_00_dm01celadm12,FD_01_dm01celadm12\' FLUSH"
  6. Check the progress of the flash cache flush operation.

    The flushing process is complete when the metric FC_BY_DIRTY is zero.

    # dcli -g cell_group -l root cellcli -e "LIST METRICCURRENT ATTRIBUTES name,metricvalue WHERE name LIKE \'FC_BY_DIRTY.*\' " 

    Or, you can check to see if the attribute flushstatus is set to Completed.

    # dcli -g cell_group -l root cellcli -e "LIST CELLDISK ATTRIBUTES name, flushstatus,flusherror" | grep FD 
  7. After the flash cache is flushed, drop the flash cache.
    # dcli -g cell_group -l root cellcli -e "drop flashcache" 
  8. Configure the cell to use flash cache in write-through mode.
    # dcli -g cell_group -l root cellcli -e "ALTER CELL flashCacheMode=writethrough"
  9. Re-create the flash cache.

    If the flash cache utilizes all available flash cell disks, you can use the ALL keyword instead of listing the cell disks.

    If the size attribute is not specified, the flash cache consumes all available space on each cell disk.

    # dcli –l root –g cell_group cellcli -e "create flashcache celldisk=\'FD_02_dm01celadm12,
    FD_03_dm01celadm12,FD_00_dm01celadm12,FD_01_dm01celadm12\'
  10. Verify that flashCacheMode is set to writethrough.
    # dcli –l root –g cell_group cellcli -e "list cell detail" | grep flashCacheMode