キャッシュデバイスをサポートデバイスに接続できません

キャッシュデバイスをサポートデバイスに接続できません

LVMがあり、bcacheを使用してLVの1つをキャッシュしたいと思います。 (はい、lvmcacheを使用できることはわかりましたが、起動に問題があり、使用を放棄しました。)

まず、私は彫刻LVをbcacheバックアップデバイスに変換します(これはうまくいくようです!):

blocks to-bcache /dev/my_vg/my_lv

SSDにキャッシュデバイスを作成しました。

make-bcache --block 4k --bucket 2M -C /dev/sdc4

その後、キャッシュをサポートデバイスに接続しようとします。

bcache-super-show /dev/sdc4 | grep cset.uuid
echo 'above_uuid' > /sys/block/bcache0/bcache/attach

その後、コンピュータを追加して再起動しましたが、/dev/bcache0キャッシュ/etc/fstabが実行されていないことに気づきました。

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

# bcache-super-show /dev/my_vg/my_lv | grep cache_state
dev.data.cache_state    0 [detached]

私は何を逃したことがありませんか?キャッシュを有効にするには別のコマンドを使用する必要がありますか?

キャッシュデバイスが自分のキャッシュデバイスを好きではなく、バックアップデバイスに接続することを許可しないのはなぜですか?--blockとに間違った値を使用しましたか--bucket

答え1

私はスーパーブロックを再生成してこの問題を解決しました/dev/sdc4。間違っているようです --block 4k --bucket 2M。だからキャッシュデバイスが接続されていません。

私はスーパーブロックを消去し、以下を実行しました。

make-bcache -C /dev/sdc4

今私がこれをしたら:

echo 'uuid' > /sys/block/bcache0/bcache/attach

効率的!

答え2

私は同じ問題があります:

make-bcache --block 4k --bucket 2M -C /dev/nvme0n1p1

書き込みエラーが発生しました:引数が無効です。

特に問題の原因は --block 4k でした。

make-bcache --bucket 2M -C /dev/nvme0n1p1 

良い結果。

答え3

まず、いくつかの整理を試してみてください。

echo $cset_uuid | sudo tee /sys/fs/bcache/pendings_cleanup
echo $backing_uuid | sudo tee /sys/fs/bcache/pendings_cleanup

UUIDを取得するために使用されますbcache-super-show

それからもう一度登録してみてください。

echo $cset_uuid | sudo tee /sys/fs/bcache/register
echo $backing_uuid | sudo tee /sys/fs/bcache/register

キャッシュデバイスの登録が成功した場合、キャッシュuuidは/ dev / fs / bcacheに存在する必要があります。

サポートされているデバイスがある場合は、cache_stateサポートinvalidデータにが適用されますfsck

bcache-super-show代替状態が0のみでdev.data.cache_state構成されている場合、bcacheデバイスは無効な状態であるため、再生成する必要があります。 [cleancset.uuid源泉]

ただし、きれいな場合は、キャッシュされたデバイスなしでサポートデバイスを強制的に起動できます。

echo 1 | sudo tee /sys/class/block/$dev/bcache/running

関連情報