×

Block caching in a shared storage environment

  • US 10,481,808 B1
  • Filed: 05/03/2017
  • Issued: 11/19/2019
  • Est. Priority Date: 12/17/2012
  • Status: Active Grant
First Claim
Patent Images

1. An apparatus comprising:

  • a shared storage environment comprising a storage array having at least one storage volume shared between first and second host devices;

    a server associated with the storage array and external to the first and second host devices;

    at least first and second clients implemented on the respective first and second host devices; and

    a first block cache located between the first client and the storage array, wherein the first block cache is implemented externally to the storage array;

    wherein the first client communicates with the storage array over at least first and second distinct paths, the first path connecting the first client to the storage array via the server and bypassing the first block cache, and the second path connecting the first client to the storage array via the first block cache and bypassing the server;

    wherein the server is configured to coordinate operations of the first and second clients relating to the storage volume shared between the first and second host devices in a manner that ensures coherency of data blocks stored in the first block cache;

    wherein a given set of data blocks of the storage volume shared between the first and second host devices is stored in the first block cache;

    wherein the server is configured, responsive to the second client writing to the given set of data blocks in the storage volume shared between the first and second host devices, to provide a notification to the first client over the first path;

    wherein the first client is configured to invalidate the given set of data blocks stored in the first block cache responsive to receiving the notification;

    wherein the first block cache comprises a read-enabled write-through cache;

    wherein the first client performs input/output operations with the storage array over the second path, the input/output operations comprising at least one of a read operation and a write operation;

    wherein the read operation comprises attempting to read one or more data blocks of the one or more files from the first block cache and reading the one or more data blocks from the storage array responsive to the one or more data blocks not being available in the first block cache;

    wherein the write operation comprises writing one or more data blocks to the storage array and caching the one or more data blocks in the first block cache;

    wherein the first block cache is an internal block cache of the first host device;

    wherein the first client comprises a storage block mapping protocol (SBMP) client implemented on the first host device;

    wherein the server comprises a SBMP server implemented on an array controller of the storage array; and

    wherein the SBMP client and the SBMP server are configured for communication using a file mapping protocol (FMP).

View all claims
  • 6 Assignments
Timeline View
Assignment View
    ×
    ×