Sizing for VMware View Storage Accelerator (CBRC)

As VMware View 5.1 launches administrators will start to trial the new View release, and in special they will test the benefits of View Storage Accelerator. This article is focused in helping administrators to properly size hosts and storage for use with CBRC.

Before reading this article I recommend the read of couple of my previous posts Understanding CBRC (Content Based Read Cache) and Understanding CBRC – RecomputeDigest Method.

View Storage Accelerator uses a vSphere platform feature called CBRC (Content Based Read Cache). CBRC is an in-host RAM cache for VMDK blocks commonly accessed by virtual desktops. Narasimha explain in his article how to configure and enable View Storage Accelerator.


CBRC Storage Sizing

When View Storage Accelerator is enabled (OS disk, or OS and Persistent Disk), a per-VMDK digest file is created to stores hash information about the VMDK blocks.

The estimated size of each digest file is roughly:

–    5 MB per GB of the VMDK size [hash-collision detection turned-off (Default)]
–    12 MB per GB of the VMDK size [hash-collision detection turned-on]


Screen Shot 2012-04-29 at 7.22.37 PM


vCenter Tasks will show the digest creation status:


Note that the digest file creation for a large replica disk can take a reasonable amount of time and IOPS, the fore it’s is recommendable not to run the operation, create new desktop pools, or recompose existing pools during production hours.


As an example, a 25GB Windows VM Replica will consume about 125MB of storage space for the digest file. For snapshots (deltas) or persistent disks, a snapshots is created for the digest file also. If a VMDK is cloned, the digest file is copied.

Does that mean that CBRC also supports Full Clones? – Yes, but VMware is not supporting View Storage Accelerator with Full Clones at this point in time.. [Update] Thanks to Matt Eccleston for pointing out that administrators can enable host caching on pools that contain linked clones and pools that contain full virtual machines – and they are both supported by VMware. Windows full clones that have fairly common blocks will see performance improvements.

For Persistent disks that have 5GB capacity the digest file will be approximately 24MB.


Host Memory Sizing

CBRC uses a RAM cache to manage the cached disk blocks. The per-VMDK digest file is also loaded into memory.

CBRC should not be enabled under memory-overcommit environments. If a host is memory over-committed and CBRC is enabled – the memory pressure is increased as CBRC also uses memory for the cache. In such cases, the host could experience increased swapping and the overall host performance could be impacted.

The graph below demonstrate the moment CBRC with 512MB cache is enabled on the host:



Host swap and performance degradation can be mitigated by reducing VM density according to CBRC memory consumption; or sizing the hosts appropriately to include extra RAM for CBRC on top of post-TPS (Transparent Page Sharing) RAM requirements.

For each VMDK digest created aproximately 24MB of RAM will be consumed, in addition to the defined CBRC cache. As an example, if only one system disk is being hashed and the host cache is 50MB, than: 500MB + 24MB = Total of 524MB memory used.

Remember that it is possible to create digests for System and Persistent disks. In another example, if 64 VMs are in use there would be 64 Persistent Disks, plus 1 replica disk. In this case we would have 65 VMDK to be hashed. Assuming that host cache is using 2GB RAM (maximum size), than: 2048GB + (65 * 24MB) = Total of 3.5GB memory used.


Managing CBRC

The following options are exposed through /config/CBRCFilter/intOpts and visible through the VMware vSphere Client Advanced Configuration. VMware View has built-in the capabilities to manage the options below and it’s not recommended to manually modify any of the items below.


/config/CBRC/intOpts/DCacheMemReserved – Memory consumed by CBRC Data Cache (in MB)

/config/CBRC/intOpts/DCacheSize – Size of CBRC Data Cache in MB. This cannot be changed if CBRC.Enable is set to 1.

/config/CBRC/intOpts/DigestJournalBootInterval – Interval (in minutes) for which Digest Journal is temporarily disabled to avoid interfering with the boot process

/config/CBRC/intOpts/Enable – Enable Content Based Read Cache


For the entire vSphere ESXi 5.0.0 GA VSISH Configurations refer to William Lam’s post.


CBRC has also been exposed via VIM API and is available via the vim-cmd CLI. It is possible to enable, disable and regenerate the digest per VMDK, but remember that VMware View is dynamically managing this for you.

The following commands will be used to enable/disable CBRC for a specific VMDK.

–    vim-cmd vmsvc/digest.enable <vmid> <disk>
–    vim-cmd vmsvc/digest.disable <vmid> <disk>
–    vim-cmd vmsvc/digest.regenerate <vmid> <disk>


Lastly, I would like to mention that you don’t have to run all the calculations yourself. I am integrating CBRC calculations into my View Online Calculator.


This article was first published by Andre Leibovici (@andreleibovici)



9 pings

Skip to comment form

    • Gerard on 09/20/2012 at 12:12 pm

    Is it necessary to rebuild the cache on floating desktops that are set to refresh on log off?

  1. @Gerard
    Digest files created for the replica disk don’t have to be re-hashed. However, CBRC will automatically re-hash the temporal part of the desktop that seats in the linked clone. You are able to specify the maintenance and blackout schedules to avoid having such tasks running during production time.


    • What’s New in VMware View 5.1 (Beyond Marketing) « on 05/02/2012 at 12:03 pm

    […] Sizing for VMware View Storage Accelerator (CBRC) […]

  1. […] Leibovici of VMware has had a series of blog posts all about CBRC. Rather than plagiarize all his hard work, I’m going to recommend you […]

  2. […] Another big limitation is that View storage accelerator does not support full clones. The hash mechanism also has some limitations which can be found here […]

  3. […] fjs.parentNode.insertBefore(js, fjs); }(document, "script", "facebook-jssdk")); Andre Leibovici wrote another good post about Content Based Read Cache next to two other […]

  4. […] Storage Accelerator Performance Benchmark Sizing for VMware View Storage Accelerator (CBRC) Understanding CBRC (Content Based Read Cache) Understanding CBRC – RecomputeDigest […]

  5. […] know what CBRC (View Storage Accelerator) is: View Storage Accelerator Performance Benchmark Sizing for VMware View Storage Accelerator (CBRC) Understanding CBRC (Content Based Read Cache) Understanding CBRC – RecomputeDigest […]

  6. […] the Host Caching tab and put a check next to Enable Host Caching for View (Figure A). (Read this post by Andre Leibovici to learn more about sizing your host cache.) You can change the host cache for each individual host under this tab as well, if you […]

  7. […] Storage Accelerator Performance Benchmark Sizing for VMware View Storage Accelerator (CBRC) Understanding CBRC (Content Based Read Cache) Understanding CBRC – RecomputeDigest […]

  8. […] CBRC (Content Based Read Cache), Understanding CBRC – RecomputeDigest Method, Sizing for VMware View Storage Accelerator (CBRC), View Storage Accelerator Performance Benchmark, CBRC and Local Mode in VMware View 5.1, View […]

Leave a Reply

Your email address will not be published.