캐시 장치를 지원 장치에 연결할 수 없습니다

캐시 장치를 지원 장치에 연결할 수 없습니다

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

관련 정보