[dm-devel] creating two device mapper files for an underline blockdevice
Milan Broz
mbroz at redhat.com
Tue Nov 1 08:31:54 UTC 2011
On 11/01/2011 07:08 AM, Sanjana Shari wrote:
> But if I use the other part of the disk to map. The command is not successful
>
> [root at bladelinux01 root]# dmsetup create half1 --table "102401 102399 linear /dev/loop0 102400"
> device-mapper: reload ioctl failed: Invalid argument
> Command failed
You have to always map the whole table (starting at sector 0).
If you see syslog, you can see why
device-mapper: table: 254:2: linear: Gap in table
device-mapper: ioctl: error adding target to table
Anyway, for the info how it works, example how to switch active table:
1. create linear device mapped to /dev/sdb
# dmsetup create x --table "0 10000 linear /dev/sdb 0"
# dmsetup table x
0 10000 linear 8:16 0
2. Remap the first half of device to another target, here "error"
- load new (yet inactive) table
# echo -e "0 5000 error\n5000 10000 linear /dev/sdb 5000" | dmsetup load x
- so now you have one active table and one inactive (prepared for switch)
# dmsetup table x
0 10000 linear 8:16 0
# dmsetup table x --inactive
0 5000 error
5000 10000 linear 8:16 5000
3. switch to new (inactive) table (note that "dmsetup suspend" here is implicit)
# dmsetup resume x
# dmsetup table x
0 5000 error
5000 10000 linear 8:16 5000
If you want more info about this low level DM operation, read
http://people.redhat.com/agk/talks/FOSDEM_2005/
http://mbroz.fedorapeople.org/talks/DeviceMapperBasics/
(old, but still useful, I hope :-)
Milan
More information about the dm-devel
mailing list