使用 bcache 的 ramdisk 缓存虚拟磁盘 raid 10 阵列

使用 bcache 的 ramdisk 缓存虚拟磁盘 raid 10 阵列

我尝试使用 mdadm 和 bcache 模拟一个场景。我使用 qemu-img 创建了 4 个原始 img 文件。我使用 mdadm 创建了 raid 10,并在 /mnt/ramdisk 上创建了 tmpfs,并在 ramdisk 上创建了一个原始 ramdisk.img 文件。尝试使用 bcache 连接 ramdisk.img 和其他 4 个 mdadm raid10 img 文件...

它看起来像这样。

loop0           7:0    0   512M  0 loop   
└─md0           9:0    0  1020M  0 raid10 
  └─md0p1     259:0    0  1018M  0 md     
    └─bcache0 252:0    0  1018M  0 disk   /media/gediz/vmbcache
loop1           7:1    0   512M  0 loop   
└─md0           9:0    0  1020M  0 raid10 
  └─md0p1     259:0    0  1018M  0 md     
    └─bcache0 252:0    0  1018M  0 disk   /media/gediz/vmbcache
loop2           7:2    0   512M  0 loop   
└─md0           9:0    0  1020M  0 raid10 
  └─md0p1     259:0    0  1018M  0 md     
    └─bcache0 252:0    0  1018M  0 disk   /media/gediz/vmbcache
loop3           7:3    0   512M  0 loop   
└─md0           9:0    0  1020M  0 raid10 
  └─md0p1     259:0    0  1018M  0 md     
    └─bcache0 252:0    0  1018M  0 disk   /media/gediz/vmbcache
loop101         7:101  0   255M  0 loop   
└─loop101p1   259:1    0   228M  0 loop   

mdadm 状态:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid10 loop3[3] loop2[2] loop1[1] loop0[0]
      1044480 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

支持超级块:

bcache-super-show /dev/md0p1 
sb.magic        ok
sb.first_sector     8 [match]
sb.csum         51E3C78C7BED1DBF [match]
sb.version      1 [backing device]

dev.label       (empty)
dev.uuid        bb01d667-c8bf-442e-994b-94c108864cf5
dev.sectors_per_block   1
dev.sectors_per_bucket  1024
dev.data.first_sector   16
dev.data.cache_mode 0 [writethrough]
dev.data.cache_state    0 [detached]

cset.uuid       acd29060-d604-4441-961a-413ce85cc604

缓存超级块:

sb.magic        ok
sb.first_sector     8 [match]
sb.csum         D66FD05126FF5088 [match]
sb.version      0 [cache device]

dev.label       (empty)
dev.uuid        774d0fab-82ab-4825-ba19-43a83e4b4f53
dev.sectors_per_block   1
dev.sectors_per_bucket  1024
dev.cache.first_sector  1024
dev.cache.cache_sectors 465920
dev.cache.total_sectors 466944
dev.cache.ordered   no
dev.cache.discard   no
dev.cache.pos       0
dev.cache.replacement   0 [lru]

cset.uuid       f3c837cb-a743-4615-9a7f-4f647d603eaf

我首先尝试了一下,make-bcache -B /dev/md0 -C /dev/loop101确信它可以在没有 p1 分区的情况下工作,但它无法在原始设备上工作。然后我创建了 gpt 分区并将备份磁盘格式化为 ext4 左缓存磁盘,没有格式化(如指南所述),并尝试连接,但也没有成功...

# echo f3c837cb-a743-4615-9a7f-4f647d603eaf > /sys/block/bcache0/bcache/attach
-bash: echo: write error: No such file or directory

状态是:

# cat /sys/block/bcache0/bcache/state
no cache

它已分离并且无法连接...

我做错了什么 ?

我的目标是使用 mdadm 和 bcache 模拟由带有 ramdisk 缓存的虚拟磁盘形成的 raid 10 阵列。

谢谢。

相关内容