Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Dell Unity: How to Properly Manage Write Cache During SP Maintenance Activities (User Correctable)

Summary: This instruction provides best practices for Unity SP maintenance activities surrounding the management of write cache (disabling, enabling, checking, flushing).

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Instructions

It is a recommended best practice to disable write cache before performing any scheduled SP hardware maintenance activity. This is to avoid any potential impact in the unlikely event of a secondary issue occurring on the peer SP while performing the maintenance activity.

An SP hardware maintenance activity is defined as any replacement of any of the following list of parts:
 
Part
DIMM
SFP
SP
BBU
I/O Module
M.2 SATA
DPE Chassis
Fan
Mezzanine
DPE PSU - Power Supply Unit

Additionally, the following activities are also considered to be affected hardware maintenance activities for which disabling write cache is recommended:
 
Activity
Data-In Place (DIP) Upgrades

TSEs should review and follow the work order creation instructions in the Internal Notes of this Dell Knowledge Base article.

The svc_cache command has been updated to include three new switches: --get, --disable, and --enable. This update must be loaded on to your Unity system by Dell Technical Support or your Authorized Service Provider. This is a benefit to allow the cache updates to be done without the need for root shell, and engaging a higher level of support.
Update:  The svc_cache command update is now bundled in Unity OE release 5.2 and above. This eliminates the need for the manual installation, once the Unity array is upgraded to an updated OE code.

NOTE: Depending on the browser used, the font may distort the -- (double hyphen) in the commands, especially the bolded lines.
After the svc_cache command, the parameter is preceded by a -- (double hyphen) not a single - .
If the bolded commands are copied to a notepad from this KB, the double hyphen is more defined.

The new commands are listed here and explained in more detail below:
svc_cache --force-enableCacheOperations
svc_cache --get
svc_cache --disable
svc_cache --enable
svc_cache --disableCacheOperations

DETERMINING IF THE UPDATED svc_cache COMMAND IS ALREADY INSTALLED
If you run one of the new commands, you can determine whether the package is installed. It responds differently depending on whether the svc_cache command has already been extended with the new commands. To test this, we use the svc_cache --get command.

If the package is not yet installed:
   Running the svc_cache --get command returns the usage of the command:
 
19:44:58 service@APM00123456789 spa:~/user# svc_cache --get
This script displays and clears the Cache Dirty or Cache Lost LUNs(CDCA) on this system.
Usage: svc_cache [<qualifiers>]
  If this occurs, contact Dell Technical Support or your Authorized Service Provider, and quote this Dell Knowledge Base article ID.
 
If the package is installed:
  Running the svc_cache --get command will either show an error, or will display cache status, depending on whether the commands have been unlocked.
  1. If the package is installed but the commands have not been enabled, the system returns an error:
19:44:58 service@APM00123456789 spa:~/user# svc_cache --get

 --- ERROR: This option can only be used after enabling cache operations.
If this occurs, you must activate the commands using the following command:
 svc_cache --force-enableCacheOperations 
  1. If the package is installed and the command set has been enabled, the svc_cache --get command returns cache status as expected. Continue on to Disable Write Cache in the next step.
 
DISABLE WRITE CACHE:
  1. Get the state of write cache: svc_cache --get (State 3 is enabled, state 7 is disabling or unknown, state 8 is disabled).
  2. Disable write cache: svc_cache --disable (The command only needs to run on one SP to disable cache on both SPs).
  3. Confirm write cache is disabled:  svc_cache --get
Write Cache State:             3       (enabled)
Write Cache State:             7       (unknown)
Write Cache State:             8       (disabled)
See more detailed example outputs in the Additional Notes section.

The goal is to get to a state of 8 (disabled). If the output of svc_cache --get is a state of 7, this means that the dirty pages are still flushing. Rerun the svc_cache --get cmd again until the state is 8 (disabled).
If the disabling is taking some time, you can also use metrics to watch and ensure that all dirty cache pages are flushing or flushed:
  • uemcli /metrics/value/rt -path sp.*.blockCache.global.summary.dirtyBytes show -interval 5 -count 5
Once the svc_cache --get shows state 8, or dirty pages show 0, you may proceed with your activity.


When both SPs are back online:
ENABLE WRITE CACHE:
  1. Get the status of write cache: svc_cache --get (State 3 is enabled, state 7 is disabling or unknown, status 8 is disabled).
  2. Enable write cache:  svc_cache --enable (The command only needs to be run on one SP to enable cache on both SPs)
  3. Confirm write cache is enabled: svc_cache --get (Status 3 is enabled).  

Finally, when you are concluded with your activity, you should disable the write cache commands:
svc_cache --disableCacheOperations

Additional Information


Example Outputs:

svc_cache --get showing that the command set has not been installed:
 
19:44:58 service@APM00123456789 spa:~/user# svc_cache --get
This script displays and clears the Cache Dirty or Cache Lost LUNs(CDCA) on this system.
Usage: svc_cache [<qualifiers>]


svc_cache --get showing that the command set has not been enabled:
 
19:44:58 service@APM00123456789 spa:~/user# svc_cache --get


 --- ERROR: This option can only be used after enabling cache operations.

If this occurs, you must activate the commands using the following command:
svc_cache --force-enableCacheOperations 

svc_cache --get showing write cache enabled:
16:28:43 service@APM00123456789 spa:~/user# svc_cache --get
execute sptool -i
sptool -i output: SPA
current SP-A, other SP-B

execute: c4admintool -c get_cache
Get Cache Info.

         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02
                  System Cache Information

         Write Cache State:             3       (enabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
                  System Cache Information

         Write Cache State:             3       (enabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02

 ** c4admintool_main: exit CSX_STATUS_SUCCESS

16:28:48 service@APM00123456789 spa:~/user#


svc_cache --get showing write cache is disabled:
16:29:00 service@APM00123456789 spa:~/user# svc_cache --get
execute sptool -i
sptool -i output: SPA
current SP-A, other SP-B

execute: c4admintool -c get_cache
Get Cache Info.

         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02
                  System Cache Information

         Write Cache State:             8       (disabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
                  System Cache Information

         Write Cache State:             8       (disabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02

 ** c4admintool_main: exit CSX_STATUS_SUCCESS

16:31:30 service@APM00123456789 spa:~/user#



svc_cache --disable:
16:28:48 service@APM00123456789 spa:~/user# svc_cache --disable
execute sptool -i
sptool -i output: SPA
current SP-A, other SP-B

execute: c4admintool -c set_cache -o disable -t write
currentArg 3 argc 7
currentArg 3 argc 7
Set Write Cache Disabled SP A(0).
#:2022-03-04 16:29:00.035 GMT :U:( 1:1):00007f7168fd0280:25459:Unknown:: TLDflarecons:TLDconfig.cpp   :09584=>TLDconfig_SetCacheBuildTree Enable 0, Type 2, SP = 0
#:2022-03-04 16:29:00.035 GMT :U:( 1:1):00007f7168fd0280:25459:Unknown:: TLDconfig:  :TLDconfig.cpp   :09592=>Set cache state to disabled - 8

         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02
c4admintool: -TAG_REQUEST(0x10016)
c4admintool: --TAG_OPERATION(0x10017)
<snip>
c4admintool: -------TAG_WRITE_CACHE(0x102ca)
c4admintool: --------TAG_STATE(0x10079) - 8

 ** c4admintool_main: exit CSX_STATUS_SUCCESS

16:29:00 service@APM00123456789 spa:~/user#



svc_cache --enable:
16:32:43 service@APM00123456789 spa:~/user# svc_cache --enable
execute sptool -i
sptool -i output: SPA
current SP-A, other SP-B

execute: c4admintool -c set_cache -o enable -t write
currentArg 3 argc 7
currentArg 3 argc 7
Set Write Cache Enabled SP A(0).
#:2022-03-04 16:32:47.905 GMT :U:( 0:1):00007f8011b49280:09830:Unknown:: TLDflarecons:TLDconfig.cpp   :09584=>TLDconfig_SetCacheBuildTree Enable 1, Type 2, SP = 0
#:2022-03-04 16:32:47.905 GMT :U:( 0:1):00007f8011b49280:09830:Unknown:: TLDconfig:  :TLDconfig.cpp   :09589=>Set cache state to enabled - 3

         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02
c4admintool: -TAG_REQUEST(0x10016)
c4admintool: --TAG_OPERATION(0x10017)
<snip>
c4admintool: -------TAG_WRITE_CACHE(0x102ca)
c4admintool: --------TAG_STATE(0x10079) - 3

 ** c4admintool_main: exit CSX_STATUS_SUCCESS

16:32:48 service@APM00123456789 spa:~/user#



svc_cache --get showing write cache enabled:
16:33:43 service@APM00123456789 spa:~/user# svc_cache --get
execute sptool -i
sptool -i output: SPA
current SP-A, other SP-B

execute: c4admintool -c get_cache
Get Cache Info.

         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02
                  System Cache Information

         Write Cache State:             3       (enabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
                  System Cache Information

         Write Cache State:             3       (enabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02

 ** c4admintool_main: exit CSX_STATUS_SUCCESS

16:33:48 service@APM00123456789 spa:~/user#

Videos

16:33:43 service@APM00123456789 spa:~/user# svc_cache --get
execute sptool -i
sptool -i output: SPA
current SP-A, other SP-B

execute: c4admintool -c get_cache
Get Cache Info.

         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02
                  System Cache Information

         Write Cache State:             3       (enabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:00:00:00:00:00:00:00:02
                  System Cache Information

         Write Cache State:             3       (enabled)
         SP WWID:       wwn = 06:00:00:00:05:00:00:00:01:00:00:01:01:00:00:02

 ** c4admintool_main: exit CSX_STATUS_SUCCESS

16:33:48 service@APM00123456789 spa:~/user#

Article Properties


Affected Product

Dell EMC Unity

Last Published Date

10 Mar 2023

Version

23

Article Type

How To