首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dmsetup内核3.9.6创建dm-cache

使用dmsetup内核3.9.6创建dm-cache
EN

Stack Overflow用户
提问于 2013-06-29 00:47:52
回答 2查看 5.2K关注 0票数 1

我正在尝试使用虚拟机创建dm-cache设备。我在/dev/sdb、sdc和sdd中分别有多个标记为Cache_disk、Device_to_Cache和meta_data的磁盘,在尝试创建缓存时,我运行以下命令:

代码语言:javascript
复制
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,但是正在捕获这个错误:

代码语言:javascript
复制
device-mapper: reload ioctl failed: Invalid or incomplete multibyte or wide character
command failed

查看dmesg设备映射器时:缓存元数据的sb_check失败

代码语言:javascript
复制
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类似于:

代码语言:javascript
复制
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?任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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发行版上):

代码语言:javascript
复制
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,您可能想要查看逐步教程。

票数 0
EN

Stack Overflow用户

发布于 2015-04-27 12:28:44

我也遇到了同样的问题:

代码语言:javascript
复制
[  968.960618] device-mapper: cache metadata: sb_check failed: blocknr 985712174465152: wanted 0

将0复制到我的元数据设备解决了这个问题。

代码语言:javascript
复制
dd bs=64k if=/dev/zero of=/dev/md1

谢谢@Kyle。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17369767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档