Mirroring is the process of automatically writing data to two storage devices simultaneously. This technique is applied in certain work places that constantly require multiple backups of files and folders. Mirroring is applied in more technical procedures such as RAID (Redundant Array of Independent Disks).

The main purpose of mirroring is to provide redundancy. When one of the two storage devices fails, the redundant storage device will continue to copy the data. Hence, the user will still be able to access the data in spite of the disk failure. After the copying process, the device that failed can be replaced with a new one, and the device that has been set can be re-mirrored.

Mirroring can be implemented in both hardware and software. Hardware devices carry out the mirroring process on the I/O controller of the host computer. In this case, the I/O controller solely takes the task of writing the data twice. It should be noted though that if the I/O controller fails, it must be replaced before the user can access the data.

An external storage device can also perform mirroring. Here, the host is not in any way involved in the said process. Unlike mirroring that involves the I/O controller, the external storage device manages the entire mirroring process.

Mirroring can also be done in software. This process requires the computer to write the mirrored data two times. This enables the user to access multiple copies of one software, which is appropriate for program testing. Although software mirroring is generally less expensive than hardware mirroring, the former entails the higher use of resources.