Bug 1196319

Summary: Backport the dm-switch target to RHEL 6
Product: Red Hat Enterprise Linux 6 Reporter: Mikuláš Patočka <mpatocka>
Component: kernelAssignee: LVM and device-mapper development team <lvm-team>
kernel sub component: Device Mapper QA Contact: Zhang Yi <yizhan>
Status: CLOSED ERRATA Docs Contact: Christian Huffman <chuffman>
Severity: low    
Priority: medium CC: agk, lvm-team, mpatocka, msnitzer, rvdwees, yanwang
Version: 6.6   
Target Milestone: rc   
Target Release: 6.7   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-2.6.32-542.el6 Doc Type: Enhancement
Doc Text:
Inclusion of the device-mapper switch target The device-mapper (DM) switch target creates a device that supports an arbitrary mapping of fixed-size regions of I/O across a fixed set of paths. The path used for any specific region can be switched dynamically by sending the target a message. This functionality provides a two-layer device hierarchy that allows for efficient load balancing across a large member group.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-22 08:42:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
The patch that backports dm-switch none

Comment 1 Mikuláš Patočka 2015-02-25 17:05:20 UTC
Created attachment 995272 [details]
The patch that backports dm-switch

Comment 3 RHEL Program Management 2015-02-26 20:13:18 UTC
This request was evaluated by Red Hat Product Management for
inclusion in a Red Hat Enterprise Linux release.  Product
Management has requested further review of this request by
Red Hat Engineering, for potential inclusion in a Red Hat
Enterprise Linux release for currently deployed products.
This request is not yet committed for inclusion in a release.

Comment 5 Mikuláš Patočka 2015-02-27 19:37:11 UTC
Test it this way:

1) Create several logical volumes with the same size, for example:
  LV        VG   Attr       LSize
  switch-0  vg1  -wi-a-----   1,00g
  switch-1  vg1  -wi-a-----   1,00g
  switch-2  vg1  -wi-a-----   1,00g

2) Load the switch target that uses these volumes:
dmsetup create switch --table "0 2097152 switch 3 31 0 /dev/vg1/switch-0 0 /dev/vg1/switch-1 0 /dev/vg1/switch-2 0"
(3 is the number of volumes; 31 is the region size in sectors, you can put any value there)

3) Load something into the mapping table, use several commands "dmsetup message switch 0 set_region_mappings..." The syntax of the command is in the file Documentation/device-mapper/switch.txt. You can load whatever you want into the table, and remember what have you loaded.

4) Create a filesystem on the switch device /dev/mapper/switch

5) Mount the filesystem, copy some data to the filesytem, unmount it.

6) Unload the switch target: dmsetup remove switch

7) Repeat the steps 2), 3), 5) (in step 3, load the same mapping table as you did before)

8) Check the filesystem with fsck, then mount it and verify that the data is intact

Comment 6 Mikuláš Patočka 2015-02-27 19:38:25 UTC
Correction - step 7) should be "Repeat the steps 2), 3)" - you don't need to copy data to the filesystem because it's already there.

Comment 18 errata-xmlrpc 2015-07-22 08:42:46 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-1272.html