[dm-devel] [PATCH 0/4] dm unstriped: support non power of 2 chunk size...

Heinz Mauelshagen heinzm at redhat.com
Thu Feb 1 18:06:08 UTC 2018


Patch series adds support for non power of 2 chunk size to
the "unstriped" target to better suit the striped target
in patch 1.

Patches 2-4 remove the module init error path message,
rename symbols to conform to the target name and avoid
unnecessary headers.


Test script:
------------
#!/bin/sh
#
# Test "unstriped" target non power of 2 chunk size support.
#
# Requires precreated "striped" logical volume as backing device.
# Device will be overwritten!
#
po2=0 # adjust to 1 = power of2, 0 = non-po2
dev=/dev/$vg/$lv # "striped" backing device; adjust to exisiting "striped" LV

table=`dmsetup table $dev`
size=`echo "$table"|awk '{print $2}'`
stripes=`echo "$table"|awk '{print $4}'`
stripesize=`echo "$table"|awk '{print $5}'`
bdstripesize=$stripesize

[ $po2 -eq 0 ] && stripesize=$(($stripesize - 9))
len=$(($size / $stripes / $stripesize * $stripesize))

if [ $po2 -eq 0 ]
then
	dmsetup table $dev | sed "s/$size/$(($len * $stripes))/;s/$bdstripesize/$stripesize/" | dmsetup load $dev
	dmsetup suspend $dev ; dmsetup resume $dev
fi

echo y | mkfs -t ext4 $dev
fsck -fn $dev

devs=""
for i in `seq 0 $(($stripes - 1))`
do
	echo "0 $len unstriped $stripes $stripesize $i $dev 0" | dmsetup create s-$i
	devs="$devs /dev/mapper/s-$i 0"
done

dmsetup create `basename $dev` --table "0 $(($len * $stripes)) striped $stripes $stripesize $devs"
fsck -fn /dev/mapper/`basename $dev`


Example mapping tables resulting from script:
---------------------------------------------
# dmsetup table|egrep "^(nvm-s|s)"
s: 0 270249 striped 3 119 254:7 0 254:8 0 254:9 0
s-2: 0 90083 unstriped 3 119 2 254:6 0
s-1: 0 90083 unstriped 3 119 1 254:6 0
s-0: 0 90083 unstriped 3 119 0 254:6 0
nvm-s: 0 270249 striped 3 119 66:96 13854720 66:64 2048 66:48 2048



Signed-off-by: Heinz Mauelshagen <heinzm at redhat.com>

Heinz Mauelshagen (4):
  dm unstriped: support non power of 2 chunk size
  dm unstriped: remove superfluous module init error path message
  dm unstriped: rename symbols to conform to target name
  dm unstriped: remove unnecessary header includes

 Documentation/device-mapper/unstriped.txt |   5 ++
 drivers/md/dm-unstripe.c                  | 109 +++++++++++++-----------------
 2 files changed, 53 insertions(+), 61 deletions(-)

-- 
2.14.3




More information about the dm-devel mailing list