Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用dmsetup内核3.9.6创建dm缓存_Linux_Caching_Kernel_Virtualbox_Dm - Fatal编程技术网

Linux 使用dmsetup内核3.9.6创建dm缓存

Linux 使用dmsetup内核3.9.6创建dm缓存,linux,caching,kernel,virtualbox,dm,Linux,Caching,Kernel,Virtualbox,Dm,我正在尝试使用虚拟机创建dm缓存设备。我在/dev/sdb、sdc、sdd中分别有多个标记为Cache\u disk、Device\u to\u Cache和meta\u data的磁盘,在尝试创建缓存时,我运行以下命令: dmsetup create my_cache --table '0 16775168 cache /dev/sdd1 /dev/sdb1 /dev/sdc1 512 1 writeback default 0' 按照dm缓存文章文档中的说明 我已在内核中启用了dm缓存,但

我正在尝试使用虚拟机创建dm缓存设备。我在/dev/sdb、sdc、sdd中分别有多个标记为Cache\u disk、Device\u to\u Cache和meta\u data的磁盘,在尝试创建缓存时,我运行以下命令:

dmsetup create my_cache --table '0 16775168 cache /dev/sdd1 /dev/sdb1 /dev/sdc1 512 1 writeback default 0'
按照dm缓存文章文档中的说明

我已在内核中启用了dm缓存,但发现了以下错误:

device-mapper: reload ioctl failed: Invalid or incomplete multibyte or wide character
command failed
查看dmesg设备映射器时:缓存元数据未通过其sb_检查

root@msali014-VirtualBox:/home/msali014# dmesg
[ 5432.738603] device-mapper: cache-policy-mq: version 1.0.0 loaded
[ 5432.794852] device-mapper: cache metadata: sb_check failed: magic 0: wanted 1623043
[ 5432.794862] device-mapper: block manager: superblock validator check failed for block 0
[ 5432.794867] device-mapper: cache metadata: couldn't read lock superblock
[ 5432.797952] device-mapper: table: 252:0: cache: Error creating metadata object
/var/log/syslog与此类似:

Jun 28 11:17:01 msali014-VirtualBox CRON[2935]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 28 11:33:08 msali014-VirtualBox kernel: [ 5432.738603] device-mapper: cache-policy-mq: version 1.0.0 loaded
Jun 28 11:33:08 msali014-VirtualBox kernel: [ 5432.794852] device-mapper: cache metadata: sb_check failed: magic 0: wanted 1623043
Jun 28 11:33:08 msali014-VirtualBox kernel: [ 5432.794862] device-mapper: block manager: superblock validator check failed for block 0
Jun 28 11:33:08 msali014-VirtualBox kernel: [ 5432.794867] device-mapper: cache metadata: couldn't read lock superblock
Jun 28 11:33:08 msali014-VirtualBox kernel: [ 5432.797952] device-mapper: table: 252:0: cache: Error creating metadata object
Jun 28 11:33:08 msali014-VirtualBox kernel: [ 5432.797960] device-mapper: ioctl: error adding target to table
Jun 28 11:33:08 msali014-VirtualBox udevd[619]: inotify_add_watch(6, /dev/dm-0, 10) failed: No such file or directory
Jun 28 11:33:08 msali014-VirtualBox udevd[619]: inotify_add_watch(6, /dev/dm-0, 10) failed: No such file or directory

[ 5432.797960] device-mapper: ioctl: error adding target to table

如何更改sb->magic的值以使dm cache成功加载?任何帮助都将不胜感激。

多字节或宽字符错误消息对我来说很麻烦,我没有任何直接的建议来解决这个问题

我假设/dev/sdd1和/dev/sdb1是您的元数据和数据存储块设备?它们是否包含任何数据

您是否尝试过将元数据卷归零(dd if=/dev/zero of=/dev/sdd1)?不久前,我在设置dm缓存时遇到了问题

简而言之,我做了以下工作(在Ubuntu 13.04+Linux 3.10版本上):

另一方面,我在Ubuntu12.11和13.04上运行了3.9.6和一些早期的3.9内核


如果所有其他方法都失败了,我有一个更详细的示例,您可能想查看一个分步教程。

我遇到了完全相同的问题:

[  968.960618] device-mapper: cache metadata: sb_check failed: blocknr 985712174465152: wanted 0
将0复制到我的元数据设备修复了该问题

dd bs=64k if=/dev/zero of=/dev/md1

谢谢@Kyle。

由于我没有完全理解表并给它一些垃圾输入,多字节看起来像是一条伞形错误消息。我创建了新的驱动器,但没有像您那样创建ssd元数据或块,但是在这样做并获得家庭缓存设备的正确偏移量后,它工作得很好!谢谢你的帮助。很高兴你能成功。您的专用分区或专用设备没有理由不工作。长期而言,我可能会使用lvm2来管理我的dm线性区域,而不是自己管理它们。
dd bs=64k if=/dev/zero of=/dev/md1