2013-06-28 362 views
1

我試圖用虛擬機創建一個dm-cache設備。我有一個標Cache_disk,Device_to_Cache和meta_data多個磁盤中的/ dev/sdb的,SDC,SDD分別,當試圖創建緩存,我運行命令:使用dmsetup創建dm-cache內核3.9.6

dmsetup create my_cache --table '0 16775168 cache /dev/sdd1 /dev/sdb1 /dev/sdc1 512 1 writeback default 0' 

的指示在DM緩存文章文檔page

我已啓用內核DM-緩存,但我抓住這個錯誤:

device-mapper: reload ioctl failed: Invalid or incomplete multibyte or wide character 
command failed 

當在dmesg的設備映射尋找:高速緩存元數據無法實現其sb_check

[email protected]:/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->魔法值,使DM-緩存加載成功?任何幫助將不勝感激。

回答

1

多字節或寬字符錯誤信息對我很麻煩,我沒有任何直接的建議來解決這個問題。

我認爲/ 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' 

在一個側面說明,我跑了3.9.6和幾個早期3.9內核沒有問題,在Ubuntu 12.11和13.04。

如果一切都失敗,我有一個working solution for my setup on my blog與更多的細節,你可能想看看一步一步的教程。

+0

由於我沒有完全理解表格並給它一些垃圾輸入,所以多字節看起來像是一個傘狀的錯誤信息,我創建了新的驅動器,但沒有創建ssd-metadata或塊,但是這樣做後,爲家用緩存設備獲得正確的偏移量,它非常棒!感謝您所有的幫助。 – thisismario123

+0

很高興你能工作。沒有理由你的專用分區或專用設備不應該工作。長期來說,我可能會使用lvm2來管理我的dm線性區域,而不是自己管理它們。 – Kyle

0

我有完全相同的問題:

[ 968.960618] device-mapper: cache metadata: sb_check failed: blocknr 985712174465152: wanted 0 

複製0到固定的問題我的元數據設備。

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

感謝@Kyle。