#用本地文件加载为虚拟块设备作实验
#生成10M大小空文件
dd if=/dev/zero of=v0 bs=1M count=10
dd if=/dev/zero of=v1 bs=1M count=10
dd if=/dev/zero of=v2 bs=1M count=10
dd if=/dev/zero of=v3 bs=1M count=10
#加载为loop块设备
sudo losetup /dev/loop0 v0
sudo losetup /dev/loop1 v1
sudo losetup /dev/loop2 v2
sudo losetup /dev/loop3 v3
#查看块设备扇区数量fdisk -l 和 blockdev --getsz都可以
blockdev --getsz /dev/loop0
......
#计算chunk数
#等下要在dmsetup命令里填入chunk参数,此参数为chunk数量。块设备每次读写I/O大小等于chunk数乘以每个chunk大小。每个chunk大小等于一个扇区大小,扇区一般都为512Byte。linux kernel memory page I/O大小在x86、x64电脑上一般都为4KB,块设备每次读写I/O最小值不能小于这个值。所以chunk总大小至少为4KB。chunk数最少为8(虽然文档里是这么说的,但我实际上分配小于4KB时也未报错)。分配更大的chunk数时要为2的次方。
#计算扇区数
#dmsetup命令里要填入扇区数,此数字必须为chunk数的倍数。如果扇区数除以chunk数有余数要舍弃。比如一个块设备有156168扇区&#x