Cache-Gerät kann nicht an Sicherungsgerät angeschlossen werden

Cache-Gerät kann nicht an Sicherungsgerät angeschlossen werden

Ich habe ein LVM und wollte bcache verwenden, um eines seiner LVs zwischenzuspeichern. (Ja, ich weiß, dass ich lvmcache verwenden könnte, aber ich hatte Probleme beim Booten und habe es aufgegeben, es zu verwenden.)

Zuerst benutzte ichBlöckeum das LV in ein Bcache-Backing-Device umzuwandeln (das schien tatsächlich zu funktionieren!):

blocks to-bcache /dev/my_vg/my_lv

Ich habe auf meiner SSD ein Caching-Gerät erstellt:

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

Anschließend habe ich versucht, den Cache an das Sicherungsgerät anzuhängen:

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

Anschließend habe ich meinen Computer neu gestartet (nachdem ich /dev/bcache0ihn hinzugefügt hatte /etc/fstab) und festgestellt, dass der Cache nicht ausgeführt wurde.

# 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]

Übersehe ich etwas? Gibt es einen anderen Befehl, den ich verwenden muss, um das Caching zu aktivieren?

Warum mag bcache mein Cache-Gerät nicht und lässt mich es nicht an mein Sicherungsgerät anschließen? Habe ich die falschen Werte für --blockund verwendet --bucket?

Antwort1

Ich konnte das Problem beheben, indem ich den Superblock neu erstellte /dev/sdc4. Es sieht so aus, als wäre der --block 4k --bucket 2Mfalsch gewesen und deshalb konnte das Cache-Gerät nicht angeschlossen werden.

Ich habe den Superblock gelöscht und dann Folgendes ausgeführt:

make-bcache -C /dev/sdc4

Als ich das getan habe:

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

es funktionierte!

Antwort2

Ich hatte das gleiche Problem:

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

hat den Schreibfehler verursacht: Ungültiges Argument.

Konkret war es der --block 4k, der das Problem verursachte.

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

Hat perfekt funktioniert.

Antwort3

Versuchen Sie zunächst, etwas aufzuräumen:

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

Verwenden Sie es bcache-super-show, um die UUIDs abzurufen.

Versuchen Sie dann erneut, sich zu registrieren:

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

Die Cache-UUID sollte in /dev/fs/bcache vorhanden sein, wenn das Cache-Gerät erfolgreich registriert wurde.

Wenn Ihr Sicherungsgerät über einen verfügt cache_state, invalidunterliegen Ihre Sicherungsdaten dem Zugriff von fsck.

Wenn bcache-super-showbedeutet, dass der Backing- dev.data.cache_stateStatus ist cleanund cset.uuidnur aus Nullen besteht, befindet sich das Bcache-Gerät im ungültigen Zustand und muss neu erstellt werden. [Quelle]

Wenn es jedoch sauber ist, können Sie versuchen, einen Zwangsstart des Sicherungsgeräts ohne Cache-Gerät durchzuführen:

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

verwandte Informationen