我正在尝试使用虚拟机创建dm-cache设备。我在/dev/sdb、sdc和sdd中分别有多个标记为Cache_disk、Device_to_Cache和meta_data的磁盘,在尝试创建缓存时,我运行以下命令:
dmsetup create my_cache --table '0 16775168 cache /dev/sdd1 /dev/sdb1 /dev/sdc1 512 1 writeback default 0'如dm-cache文章Documentation page中所述。
我已经在内核中启用了dm-cache,但是正在捕获这个错误:
device-mapper: reload ioctl failed: Invalid or incomplete multibyte or wide character
command failed查看dmesg设备映射器时:缓存元数据的sb_check失败
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?任何帮助都将不胜感激。
发布于 2013-07-02 00:36:24
多字节或宽字符错误消息对我来说很麻烦,我没有任何直接的建议来解决这个问题。
我假设/dev/sdd1和/dev/sdb1是您的元数据和数据存储块设备?它们是否包含任何数据?
您是否尝试过清零元数据卷(dd if=/dev/zero of=/dev/sdd1)?我之前在设置dm-cache时遇到了一些问题。
简而言之,我做了以下工作(在Ubuntu 13.04 + Linux 3.10发行版上):
dmsetup create ssd-metadata --table '0 19370 linear /dev/disk/by-id/scsi-SATA_OCZ-AGILITY2_f2d200034-part6 0'
dmsetup create ssd-blocks --table '0 189008982 linear /dev/disk/by-id/scsi-SATA_OCZ-AGILITY2_f2d200034-part6 19370'
dmsetup create home-cached --table '0 1048576000 cache /dev/mapper/ssd-metadata /dev/mapper/ssd-blocks /dev/vg0/spindle 512 1 writeback default 0'另外,我在Ubuntu 12.11和13.04上运行了3.9.6和更早的3.9内核,没有出现问题。
如果所有其他方法都失败了,我有一个包含更多细节的working solution for my setup on my blog,您可能想要查看逐步教程。
发布于 2015-04-27 12:28:44
我也遇到了同样的问题:
[ 968.960618] device-mapper: cache metadata: sb_check failed: blocknr 985712174465152: wanted 0将0复制到我的元数据设备解决了这个问题。
dd bs=64k if=/dev/zero of=/dev/md1谢谢@Kyle。
https://stackoverflow.com/questions/17369767
复制相似问题