
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デバイスは無効な状態であるため、再生成する必要があります。 [clean
cset.uuid
源泉]
ただし、きれいな場合は、キャッシュされたデバイスなしでサポートデバイスを強制的に起動できます。
echo 1 | sudo tee /sys/class/block/$dev/bcache/running