What is Mirroring?

Mirroring is a process whereby a group of two or more storage devices are configured to maintain identical copies of data (RAID 1 is one example of mirroring). This configuration of storage devices is known as a mirror group and each of the storage devices are members of the mirror group. Every write operation is applied to all members of the mirror group and read operations may be fulfilled from any member of the mirror group.

The example configurations described here are simple examples to show the concepts of mirroring. Mirroring is typically used in more complex configurations that include additional redundancy techniques.

The primary benefit of mirroring is to avoid unplanned downtime due to hardware failure of a member of the mirror group. This protection against storage hardware failures is transparent to applications. Mirroring provides no protection against data being compromised, deleted, or overwritten.

Storage administrators must consider factors such as system performance, cost-effectiveness, and complexity when designing a mirroring-based solution.

Software-based mirroring is a process provided by software in a host (e.g., by the operating system or third-party software) that consumes additional host CPU resources instead of requiring additional hardware resources to support mirroring.

Hardware-based mirroring is implemented in hardware (e.g., RAID controller) and is transparent to the host. There are multiple locations in a storage topology where hardware-based mirroring may be implemented:

  • Host controller-based mirroring is depicted in Figure 1 and shows a configuration where more than one storage device in a mirror group is connected to the same host controller that performs the mirroring operation (i.e., the host software performs writes to the host controller which then writes that data to all the members of the mirror group; the host software performs reads to the host controller which then reads data from any member of the mirror group). Failure of a storage device in the mirror group does not impact access to the data (i.e., RTO (Recovery Time Objective) and RPO (Recovery Point Objective) are zero) since the host controller is able to read the data from another member of the mirror group. With this configuration, the host controller is a single point of failure.
A diagram of a computer
  • Storage controller-based mirroring is depicted in Figure 2 and shows a configuration where the storage devices of a mirror group are connected to a storage controller in the storage subsystem.  In this configuration, the host writes data to the storage controller which writes the data to the members of the mirror group. Failure of a storage device in the mirror group does not impact access to the data since the storage controller is able to read the data from another member of the mirror group. With this configuration, the storage controller is a single point of failure.
A diagram of a storage control system
  • Fabric-based mirroring is depicted in Figure 3 and shows a configuration where the storage fabric intercepts read and write commands from the host. For each write command the fabric issues write commands to all members of the mirror group. For each read command the fabric issues a read command to a member of the mirror group. Failure of one member of the mirror group does not impact access to the data since the fabric is able to read the data from another member of the mirror group.
A diagram of a mirroring process