캐시 장치를 백업 장치에 연결할 수 없습니다.

캐시 장치를 백업 장치에 연결할 수 없습니다.

LVM이 있고 bcache를 사용하여 LVM 중 하나를 캐시하고 싶었습니다. (예, 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]

뭔가 빠졌나요? 캐싱을 활성화하기 위해 사용해야 하는 또 다른 명령이 있습니까?

bcache가 내 캐시 장치를 좋아하지 않고 이를 내 백업 장치에 연결하는 것을 허용하지 않는 이유는 무엇입니까? --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

bcache-super-showUUID를 가져오는 데 사용합니다 .

그런 다음 다시 등록해 보세요.

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지원 dev.data.cache_state상태가 0으로만 구성되어 있다고 clean말하면 bcache cset.uuid장치는 유효하지 않은 상태이므로 다시 생성해야 합니다. [원천]

그러나 깨끗하다면 캐시 장치 없이 백업 장치를 강제로 시작해 볼 수 있습니다.

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

관련 정보