€•¿fŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ6/translations/zh_CN/admin-guide/device-mapper/snapshot”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/zh_TW/admin-guide/device-mapper/snapshot”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/it_IT/admin-guide/device-mapper/snapshot”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/ja_JP/admin-guide/device-mapper/snapshot”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/ko_KR/admin-guide/device-mapper/snapshot”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ6/translations/sp_SP/admin-guide/device-mapper/snapshot”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒDevice-mapper snapshot support”h]”hŒDevice-mapper snapshot support”…””}”(hh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒP/var/lib/git/docbuild/linux/Documentation/admin-guide/device-mapper/snapshot.rst”h KubhŒ paragraph”“”)”}”(hŒ7Device-mapper allows you, without massive data copying:”h]”hŒ7Device-mapper allows you, without massive data copying:”…””}”(hh¹hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhŒ bullet_list”“”)”}”(hhh]”(hŒ list_item”“”)”}”(hŒŸTo create snapshots of any block device i.e. mountable, saved states of the block device which are also writable without interfering with the original content;”h]”h¸)”}”(hŒŸTo create snapshots of any block device i.e. mountable, saved states of the block device which are also writable without interfering with the original content;”h]”hŒŸTo create snapshots of any block device i.e. mountable, saved states of the block device which are also writable without interfering with the original content;”…””}”(hhÒhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KhhÎubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhhÉhžhhŸh¶h NubhÍ)”}”(hŒSTo create device "forks", i.e. multiple different versions of the same data stream.”h]”h¸)”}”(hŒSTo create device "forks", i.e. multiple different versions of the same data stream.”h]”hŒWTo create device “forksâ€, i.e. multiple different versions of the same data stream.”…””}”(hhêhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hhæubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhhÉhžhhŸh¶h NubhÍ)”}”(hŒNTo merge a snapshot of a block device back into the snapshot's origin device. ”h]”h¸)”}”(hŒMTo merge a snapshot of a block device back into the snapshot's origin device.”h]”hŒOTo merge a snapshot of a block device back into the snapshot’s origin device.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K hhþubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhhÉhžhhŸh¶h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1hÇhŸh¶h Khh£hžhubh¸)”}”(hŒŒIn the first two cases, dm copies only the chunks of data that get changed and uses a separate copy-on-write (COW) block device for storage.”h]”hŒŒIn the first two cases, dm copies only the chunks of data that get changed and uses a separate copy-on-write (COW) block device for storage.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒZFor snapshot merge the contents of the COW storage are merged back into the origin device.”h]”hŒZFor snapshot merge the contents of the COW storage are merged back into the origin device.”…””}”(hj,hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubh¸)”}”(hŒTThere are three dm targets available: snapshot, snapshot-origin, and snapshot-merge.”h]”hŒTThere are three dm targets available: snapshot, snapshot-origin, and snapshot-merge.”…””}”(hj:hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhÈ)”}”(hhh]”hÍ)”}”(hŒsnapshot-origin ”h]”h¸)”}”(hŒsnapshot-origin ”h]”hŒsnapshot-origin ”…””}”(hjOhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KhjKubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjHhžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”jjuh1hÇhŸh¶h Khh£hžhubh¸)”}”(hXwhich will normally have one or more snapshots based on it. Reads will be mapped directly to the backing device. For each write, the original data will be saved in the of each snapshot to keep its visible content unchanged, at least until the fills up.”h]”hXwhich will normally have one or more snapshots based on it. Reads will be mapped directly to the backing device. For each write, the original data will be saved in the of each snapshot to keep its visible content unchanged, at least until the fills up.”…””}”(hjihžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Khh£hžhubhÈ)”}”(hhh]”hÍ)”}”(hŒUsnapshot [<# feature args> []*] ”h]”h¸)”}”(hŒTsnapshot [<# feature args> []*]”h]”hŒTsnapshot [<# feature args> []*]”…””}”(hj~hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K"hjzubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjwhžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”jjuh1hÇhŸh¶h K"hh£hžhubh¸)”}”(hXæA snapshot of the block device is created. Changed chunks of sectors will be stored on the . Writes will only go to the . Reads will come from the or from for unchanged data. will often be smaller than the origin and if it fills up the snapshot will become useless and be disabled, returning errors. So it is important to monitor the amount of free space and expand the before it fills up.”h]”hXæA snapshot of the block device is created. Changed chunks of sectors will be stored on the . Writes will only go to the . Reads will come from the or from for unchanged data. will often be smaller than the origin and if it fills up the snapshot will become useless and be disabled, returning errors. So it is important to monitor the amount of free space and expand the before it fills up.”…””}”(hj˜hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K%hh£hžhubh¸)”}”(hX is P (Persistent) or N (Not persistent - will not survive after reboot). O (Overflow) can be added as a persistent store option to allow userspace to advertise its support for seeing "Overflow" in the snapshot status. So supported store types are "P", "PO" and "N".”h]”hX) is P (Persistent) or N (Not persistent - will not survive after reboot). O (Overflow) can be added as a persistent store option to allow userspace to advertise its support for seeing “Overflow†in the snapshot status. So supported store types are “Pâ€, “PO†and “Nâ€.”…””}”(hj¦hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K-hh£hžhubh¸)”}”(hŒ›The difference between persistent and transient is with transient snapshots less metadata must be saved on disk - they can be kept in memory by the kernel.”h]”hŒ›The difference between persistent and transient is with transient snapshots less metadata must be saved on disk - they can be kept in memory by the kernel.”…””}”(hj´hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K2hh£hžhubh¸)”}”(hŒÄWhen loading or unloading the snapshot target, the corresponding snapshot-origin or snapshot-merge target must be suspended. A failure to suspend the origin target could result in data corruption.”h]”hŒÄWhen loading or unloading the snapshot target, the corresponding snapshot-origin or snapshot-merge target must be suspended. A failure to suspend the origin target could result in data corruption.”…””}”(hjÂhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K6hh£hžhubh¸)”}”(hŒOptional features:”h]”hŒOptional features:”…””}”(hjÐhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K:hh£hžhubhŒ block_quote”“”)”}”(hXêdiscard_zeroes_cow - a discard issued to the snapshot device that maps to entire chunks to will zero the corresponding exception(s) in the snapshot's exception store. discard_passdown_origin - a discard to the snapshot device is passed down to the snapshot-origin's underlying device. This doesn't cause copy-out to the snapshot exception store because the snapshot-origin target is bypassed. The discard_passdown_origin feature depends on the discard_zeroes_cow feature being enabled. ”h]”(h¸)”}”(hŒ¦discard_zeroes_cow - a discard issued to the snapshot device that maps to entire chunks to will zero the corresponding exception(s) in the snapshot's exception store.”h]”hŒ¨discard_zeroes_cow - a discard issued to the snapshot device that maps to entire chunks to will zero the corresponding exception(s) in the snapshot’s exception store.”…””}”(hjähžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K [<# feature args> []*] ”h]”h¸)”}”(hŒYsnapshot-merge [<# feature args> []*]”h]”hŒYsnapshot-merge [<# feature args> []*]”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KIhjubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjhžhhŸh¶h Nubah}”(h]”h ]”h"]”h$]”h&]”jjuh1hÇhŸh¶h KIhh£hžhubh¸)”}”(hŒòtakes the same table arguments as the snapshot target except it only works with persistent snapshots. This target assumes the role of the "snapshot-origin" target and must not be loaded if the "snapshot-origin" is still present for .”h]”hŒútakes the same table arguments as the snapshot target except it only works with persistent snapshots. This target assumes the role of the “snapshot-origin†target and must not be loaded if the “snapshot-origin†is still present for .”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KLhh£hžhubh¸)”}”(hX(Creates a merging snapshot that takes control of the changed chunks stored in the of an existing snapshot, through a handover procedure, and merges these chunks back into the . Once merging has started (in the background) the may be opened and the merge will continue while I/O is flowing to it. Changes to the are deferred until the merging snapshot's corresponding chunk(s) have been merged. Once merging has started the snapshot device, associated with the "snapshot" target, will return -EIO when accessed.”h]”hX.Creates a merging snapshot that takes control of the changed chunks stored in the of an existing snapshot, through a handover procedure, and merges these chunks back into the . Once merging has started (in the background) the may be opened and the merge will continue while I/O is flowing to it. Changes to the are deferred until the merging snapshot’s corresponding chunk(s) have been merged. Once merging has started the snapshot device, associated with the “snapshot†target, will return -EIO when accessed.”…””}”(hjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KQhh£hžhubh¢)”}”(hhh]”(h§)”}”(hŒHow snapshot is used by LVM2”h]”hŒHow snapshot is used by LVM2”…””}”(hjThžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjQhžhhŸh¶h K\ubh¸)”}”(hŒNWhen you create the first LVM2 snapshot of a volume, four dm devices are used:”h]”hŒNWhen you create the first LVM2 snapshot of a volume, four dm devices are used:”…””}”(hjbhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K]hjQhžhubhŒenumerated_list”“”)”}”(hhh]”(hÍ)”}”(hŒDa device containing the original mapping table of the source volume;”h]”h¸)”}”(hjwh]”hŒDa device containing the original mapping table of the source volume;”…””}”(hjyhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K_hjuubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjrhžhhŸh¶h NubhÍ)”}”(hŒ"a device used as the ;”h]”h¸)”}”(hjŽh]”hŒ"a device used as the ;”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K`hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjrhžhhŸh¶h NubhÍ)”}”(hŒOa "snapshot" device, combining #1 and #2, which is the visible snapshot volume;”h]”h¸)”}”(hŒOa "snapshot" device, combining #1 and #2, which is the visible snapshot volume;”h]”hŒSa “snapshot†device, combining #1 and #2, which is the visible snapshot volume;”…””}”(hj§hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kahj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjrhžhhŸh¶h NubhÍ)”}”(hŒ the "original" volume (which uses the device number used by the original source volume), whose table is replaced by a "snapshot-origin" mapping from device #1. ”h]”h¸)”}”(hŒŸthe "original" volume (which uses the device number used by the original source volume), whose table is replaced by a "snapshot-origin" mapping from device #1.”h]”hŒ§the “original†volume (which uses the device number used by the original source volume), whose table is replaced by a “snapshot-origin†mapping from device #1.”…””}”(hj¿hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kchj»ubah}”(h]”h ]”h"]”h$]”h&]”uh1hÌhjrhžhhŸh¶h Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ)”uh1jphjQhžhhŸh¶h K_ubh¸)”}”(hŒ?A fixed naming scheme is used, so with the following commands::”h]”hŒ>A fixed naming scheme is used, so with the following commands:”…””}”(hjÞhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KghjQhžhubhŒ literal_block”“”)”}”(hŒWlvcreate -L 1G -n base volumeGroup lvcreate -L 100M --snapshot -n snap volumeGroup/base”h]”hŒWlvcreate -L 1G -n base volumeGroup lvcreate -L 100M --snapshot -n snap volumeGroup/base”…””}”hjîsbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1jìhŸh¶h KihjQhžhubh¸)”}”(hŒ9we'll have this situation (with volumes in above order)::”h]”hŒ:we’ll have this situation (with volumes in above order):”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KlhjQhžhubjí)”}”(hXE# dmsetup table|grep volumeGroup volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-snap-cow: 0 204800 linear 8:19 2097536 volumeGroup-snap: 0 2097152 snapshot 254:11 254:12 P 16 volumeGroup-base: 0 2097152 snapshot-origin 254:11 # ls -lL /dev/mapper/volumeGroup-* brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:15 /dev/mapper/volumeGroup-snap-cow brw------- 1 root root 254, 13 29 ago 18:15 /dev/mapper/volumeGroup-snap brw------- 1 root root 254, 10 29 ago 18:14 /dev/mapper/volumeGroup-base”h]”hXE# dmsetup table|grep volumeGroup volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-snap-cow: 0 204800 linear 8:19 2097536 volumeGroup-snap: 0 2097152 snapshot 254:11 254:12 P 16 volumeGroup-base: 0 2097152 snapshot-origin 254:11 # ls -lL /dev/mapper/volumeGroup-* brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:15 /dev/mapper/volumeGroup-snap-cow brw------- 1 root root 254, 13 29 ago 18:15 /dev/mapper/volumeGroup-snap brw------- 1 root root 254, 10 29 ago 18:14 /dev/mapper/volumeGroup-base”…””}”hj sbah}”(h]”h ]”h"]”h$]”h&]”jüjýuh1jìhŸh¶h KnhjQhžhubeh}”(h]”Œhow-snapshot-is-used-by-lvm2”ah ]”h"]”Œhow snapshot is used by lvm2”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K\ubh¢)”}”(hhh]”(h§)”}”(hŒ"How snapshot-merge is used by LVM2”h]”hŒ"How snapshot-merge is used by LVM2”…””}”(hj%hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hj"hžhhŸh¶h K}ubh¸)”}”(hXÜA merging snapshot assumes the role of the "snapshot-origin" while merging. As such the "snapshot-origin" is replaced with "snapshot-merge". The "-real" device is not changed and the "-cow" device is renamed to -cow to aid LVM2's cleanup of the merging snapshot after it completes. The "snapshot" that hands over its COW device to the "snapshot-merge" is deactivated (unless using lvchange --refresh); but if it is left active it will simply return I/O errors.”h]”hXúA merging snapshot assumes the role of the “snapshot-origin†while merging. As such the “snapshot-origin†is replaced with “snapshot-mergeâ€. The “-real†device is not changed and the “-cow†device is renamed to -cow to aid LVM2’s cleanup of the merging snapshot after it completes. The “snapshot†that hands over its COW device to the “snapshot-merge†is deactivated (unless using lvchange --refresh); but if it is left active it will simply return I/O errors.”…””}”(hj3hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K~hj"hžhubh¸)”}”(hŒBA snapshot will merge into its origin with the following command::”h]”hŒAA snapshot will merge into its origin with the following command:”…””}”(hjAhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K†hj"hžhubjí)”}”(hŒ"lvconvert --merge volumeGroup/snap”h]”hŒ"lvconvert --merge volumeGroup/snap”…””}”hjOsbah}”(h]”h ]”h"]”h$]”h&]”jüjýuh1jìhŸh¶h Kˆhj"hžhubh¸)”}”(hŒwe'll now have this situation::”h]”hŒ we’ll now have this situation:”…””}”(hj]hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h KŠhj"hžhubjí)”}”(hXÎ# dmsetup table|grep volumeGroup volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-base-cow: 0 204800 linear 8:19 2097536 volumeGroup-base: 0 2097152 snapshot-merge 254:11 254:12 P 16 # ls -lL /dev/mapper/volumeGroup-* brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:16 /dev/mapper/volumeGroup-base-cow brw------- 1 root root 254, 10 29 ago 18:16 /dev/mapper/volumeGroup-base”h]”hXÎ# dmsetup table|grep volumeGroup volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-base-cow: 0 204800 linear 8:19 2097536 volumeGroup-base: 0 2097152 snapshot-merge 254:11 254:12 P 16 # ls -lL /dev/mapper/volumeGroup-* brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:16 /dev/mapper/volumeGroup-base-cow brw------- 1 root root 254, 10 29 ago 18:16 /dev/mapper/volumeGroup-base”…””}”hjksbah}”(h]”h ]”h"]”h$]”h&]”jüjýuh1jìhŸh¶h KŒhj"hžhubeh}”(h]”Œ"how-snapshot-merge-is-used-by-lvm2”ah ]”h"]”Œ"how snapshot-merge is used by lvm2”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K}ubh¢)”}”(hhh]”(h§)”}”(hŒ+How to determine when a merging is complete”h]”hŒ+How to determine when a merging is complete”…””}”(hj„hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hjhžhhŸh¶h K™ubh¸)”}”(hŒ6The snapshot-merge and snapshot status lines end with:”h]”hŒ6The snapshot-merge and snapshot status lines end with:”…””}”(hj’hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kšhjhžhubjß)”}”(hŒ7/ ”h]”h¸)”}”(hŒ6/ ”h]”hŒ6/ ”…””}”(hj¤hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kœhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÞhŸh¶h Kœhjhžhubh¸)”}”(hXBoth and include both data and metadata. During merging, the number of sectors allocated gets smaller and smaller. Merging has finished when the number of sectors holding data is zero, in other words == .”h]”hXBoth and include both data and metadata. During merging, the number of sectors allocated gets smaller and smaller. Merging has finished when the number of sectors holding data is zero, in other words == .”…””}”(hj¸hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h Kžhjhžhubh¸)”}”(hŒJHere is a practical example (using a hybrid of lvm and dmsetup commands)::”h]”hŒIHere is a practical example (using a hybrid of lvm and dmsetup commands):”…””}”(hjÆhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K£hjhžhubjí)”}”(hXë# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert base volumeGroup owi-a- 4.00g snap volumeGroup swi-a- 1.00g base 18.97 # dmsetup status volumeGroup-snap 0 8388608 snapshot 397896/2097152 1560 ^^^^ metadata sectors # lvconvert --merge -b volumeGroup/snap Merging of volume snap started. # lvs volumeGroup/snap LV VG Attr LSize Origin Snap% Move Log Copy% Convert base volumeGroup Owi-a- 4.00g 17.23 # dmsetup status volumeGroup-base 0 8388608 snapshot-merge 281688/2097152 1104 # dmsetup status volumeGroup-base 0 8388608 snapshot-merge 180480/2097152 712 # dmsetup status volumeGroup-base 0 8388608 snapshot-merge 16/2097152 16”h]”hXë# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert base volumeGroup owi-a- 4.00g snap volumeGroup swi-a- 1.00g base 18.97 # dmsetup status volumeGroup-snap 0 8388608 snapshot 397896/2097152 1560 ^^^^ metadata sectors # lvconvert --merge -b volumeGroup/snap Merging of volume snap started. # lvs volumeGroup/snap LV VG Attr LSize Origin Snap% Move Log Copy% Convert base volumeGroup Owi-a- 4.00g 17.23 # dmsetup status volumeGroup-base 0 8388608 snapshot-merge 281688/2097152 1104 # dmsetup status volumeGroup-base 0 8388608 snapshot-merge 180480/2097152 712 # dmsetup status volumeGroup-base 0 8388608 snapshot-merge 16/2097152 16”…””}”hjÔsbah}”(h]”h ]”h"]”h$]”h&]”jüjýuh1jìhŸh¶h K¥hjhžhubh¸)”}”(hŒMerging has finished.”h]”hŒMerging has finished.”…””}”(hjâhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h·hŸh¶h K¾hjhžhubjí)”}”(hŒr# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert base volumeGroup owi-a- 4.00g”h]”hŒr# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert base volumeGroup owi-a- 4.00g”…””}”hjðsbah}”(h]”h ]”h"]”h$]”h&]”jüjýuh1jìhŸh¶h KÂhjhžhubeh}”(h]”Œ+how-to-determine-when-a-merging-is-complete”ah ]”h"]”Œ+how to determine when a merging is complete”ah$]”h&]”uh1h¡hh£hžhhŸh¶h K™ubeh}”(h]”Œdevice-mapper-snapshot-support”ah ]”h"]”Œdevice-mapper snapshot support”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j1Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(j jjjj~j{jjuŒ nametypes”}”(j ‰j‰j~‰j‰uh}”(jh£jjQj{j"jjuŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.