LVM now has two implementations for creating mirrored logical volumes - the "mirror" segment type and the "raid1" segment type. The "raid1" segment type contains design improvements over the "mirror" segment type that are useful to its operation with snapshots. As a result, users who employ snapshots of mirrored volumes are encouraged to use the "raid1" segment type rather than the "mirror" segment type. Users who continue to use the "mirror" segment type as the origin LV for snapshots should plan for the possibility of the following disruptions.
When a snapshot is created or resized, it forces I/O through the underlying origin. The operation will not complete until this occurs. If a device failure occurs to a mirrored logical volume (of "mirror" segment type) that is the origin of the snapshot being created or resized, it will delay I/O until it is reconfigured. The mirror cannot be reconfigured until the snapshot operation completes, but the snapshot operation cannot complete unless the mirror releases the I/O. Again, the problem can manifest itself when the mirror suffers a failure simultaneously with a snapshot creation or resize.
There is no current solution to this problem beyond converting the mirror from the "mirror" segment type to the "raid1" segment type. In order to convert an existing mirror from the "mirror" segment type to the "raid1" segment type, perform the following action:
~> lvconvert --type raid1 <VG>/<mirrored LV>
This operation can only be undone via 'vgcfgrestore'.
With current version of LVM2, if the "mirror" segment type is used to create a new mirror LV, a warning message is issued to warn a user about possible problems and it suggests using the "raid1" segment type instead.