it-swarm.com.de

Wie installiere und verwende ich Flashcache / Bcache, um die Festplatte auf SSD zwischenzuspeichern?

Ich möchte wissen, ob jemand versucht hat, seinen Kernel zu installieren und auszuführen, der mit flashcache oder bcache für das SSD-Caching erstellt wurde.

Wie hast du es geschafft?

52
kapad

Nun, wir haben eine Antwort im Cache, aber keine Antwort im Flashcache. Ich habe mich für Flashcache entschieden, weil ich bereits eine Installation hatte, daher kam Bcache nicht in Frage. Für mich schien es auch einfacher, sich einzurichten. Ich habe mich für die DKMS-Methode entschieden, damit ich nicht jedes Mal, wenn ich ein Kernel-Upgrade bekomme, die Module/Tools neu erstellen muss.

Diese Schritte sind in README-DKMS auf Github beschrieben.

Erstellen des Moduls

  1. Als erstes installieren Sie die Gebäudevoraussetzungen:

    Sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
    
  2. Dann schnappen Sie sich die Quelle:

    git clone git://github.com/facebook/flashcache; cd flashcache
    
  3. Erstellen und installieren Sie die Module:

    make -f Makefile.dkms
    

Flashcache-Gerät erstellen

(In diesem Beispiel verwende ich Writeback-Caching - die Standardeinstellung - aber Flashcache kann auch Writearound und Writethrough ausführen.)

Caching eines Nicht-Root-Geräts (nicht in/gemountet)

Sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX Wobei fcache das erstellte Gerät ist (/ dev/mapper/fcache),/dev/sdaX die SSD-Partition (oder die gesamte Festplatte) und/dev/sdbX die Festplattenpartition.

Zwischenspeichern Ihres Root-Geräts

Es gibt noch ein paar Schritte, wenn Sie Ihr Root-Gerät zwischenspeichern. Für diesen Abschnitt benötigen Sie eine Ubuntu LiveCD/USB.

  1. cd /path/to/flashcache/source

  2. make -f Makefile.dkms boot_conf

  3. Bearbeiten Sie /boot/grub/grub.cnf und /etc/fstab, um von/dev/mapper/fcache zu booten (ich glaube nicht, dass dieser Schritt wirklich notwendig ist, aber er sagt es aus). Notieren Sie sich unbedingt die UUID Ihres ursprünglichen Root-Geräts.

  4. Starten Sie mit der LiveCD/LiveUSB neu.

  5. Mounten Sie Ihr Root-Gerät: mount /dev/sda4 /mnt (/ dev/sda4 ist meine Linux-Root-Partition)

  6. cd /mnt/path/to/flashcache/source

  7. Sudo apt-get install dkms build-essential linux-headers-$(uname -r)

  8. make; Sudo make install Das gesamte DKMS-Setup muss nicht in der Live-Umgebung ausgeführt werden

  9. Hängen Sie das Root-Gerät aus Sudo umount /mnt

  10. Sudo flashcache_create -p back fcache /dev/sdbX /dev/disk/by-uuid/[UUID] Wobei fcache das erstellte Gerät ist (es sollte dasselbe sein wie in/etc/fstab und /boot/grub/grub.cnf, in meinem Fall war es fcache),/dev/sdbX ist die SSD Partition (oder ganze Festplatte) und [UUID] ist die UUID Ihrer Root-Partition.

  11. Neustart!

Vorsichtsmaßnahmen bei Verwendung des Root-Geräts

Ein kleines Ärgernis bei der Verwendung von Flashcache für das Root-Gerät ist, dass grub-probe das Root-Gerät nicht erkennt und Ihr Boot-Menü durcheinander bringen kann, sodass Sie zwei Ubuntu-Geräte haben. Es sollte jedoch keine Rolle spielen, welche Funktion Sie in der Realität verwenden, da der obige Schritt make -f Makefile.dkms boot_conf einige Skripte in Ihrer initrd installiert, die das Flashcache-Gerät erkennen und verwenden.

10
Chuck R

Es gibt ein Konvertierungstool zum Aktivieren von bcache auf einem vorhandenen Gerät (Offenlegung: Ich habe es geschrieben). Dies ist auch der Weg für Neuinstallationen, da die aktuellen Distributoren nicht wissen, wie sie Bcache-Geräte erstellen sollen (in diesem Fall: Beginnen Sie mit der Installation auf der Festplatte).

Anweisungen finden Sie unter Konvertieren Ihres Root-Dateisystems in bcache in blocks README.

für bcache ist Linux 3.10 oder neuer erforderlich, das sich in der aktuellen Version befindet und manuell von http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D installiert werden kann (Suchen Sie nach der neuesten Version mit Tags, derzeit v3.11.5-saucy, und installieren Sie die Debs, die Ihrer Architektur entsprechen).

bcache-tools und blocks können von my storage ppa installiert werden.

12
Gabriel

Vorherige Warnung: bcache kann nicht für Ihre bestehende Ubuntu-Installation verwendet werden. Wenn Sie SSD-Caching für Ihr Betriebssystem benötigen, sollten Sie auf eine zukünftige oder spezielle Version des Ubuntu-Installationsprogramms warten, die Ihren SSD-Cache einrichten könnte. Siehe diese Antwort von Oli hier: Benötigt bcache eine Neuinstallation?

Für alle anderen, die ein Bcache-Laufwerk für Nicht-OS-Daten wünschen:

Das erste, was Sie tun müssen, ist, Ihren Kernel zu aktualisieren, wenn Sie 13.04 oder älter verwenden und das Kernel-Mainline-PPA verwenden. Eine Anleitung dazu finden Sie hier:

https://wiki.ubuntu.com/Kernel/MainlineBuilds

Stellen Sie sicher, dass Sie beim Booten den Kernel 3.9 oder höher auswählen, da er sonst nicht funktioniert und Ihr Laufwerk verschwindet.

Installiere bcache-tools, im Moment musst du es aus dem Git-Repository installieren:

git clone http://evilpiepirate.org/git/bcache-tools.git

Wenn Sie es schaffen, bcache-tools für debian zu packen, lassen Sie es uns wissen, und diese Frage wird für Sie aktualisiert. (Die Build-Abhängigkeiten von bcache-tools sind uuid-dev und libblkid-dev. Sie müssen installiert werden, um bcache-tools zu erstellen.)

Sobald Sie alle Tools installiert haben, können Sie versuchen, die Anleitung hier zu befolgen:

http://atlas.evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt

Diese Anleitung zeigt, wie Sie die Laufwerke (SSD UND Festplatte) formatieren und dann miteinander verbinden, um mit bcache einen neuen Geräteblock zu erstellen. Schreiben Sie einen Kommentar, wenn Sie die Anweisungen verwirrend finden und ich diese Antwort mit Vereinfachungen aktualisieren werde.

ich dachte, ich würde hierher kommen und kommentieren, was mir einfiel, als ich einen neuen Kernel installierte. Ich habe Flashcache nur für meine/home/Ordner-Partition verwendet. Ich habe einen neuen Kernel installiert, ihn gebootet und während des Bootvorgangs angehalten. Er konnte/dev/mapper/home_cached nicht finden. Sie haben drei Möglichkeiten, wenn Sie diese Nachricht erhalten, und ich wähle die Option, mich als root und anzumelden versuchen Sie es zu beheben. Ich habe zuerst versucht, das Flashcache-Modul zu laden und es wurde gemeldet, dass es nicht gefunden werden konnte. Also dachte ich, ich müsste es für diesen neuen Kernel, den ich gerade installiert habe, kompilieren und installieren. Ich hatte immer noch den/flashcache/-Ordner in/root /, also habe ich die CD eingelegt und bin gelaufen

make -f Makefile.dkms boot_conf

dann rannte ich

make install

dann habe ich das flashcache modul mit geladen

modprobe flashcache

dann musste ich nur noch mein vorhandenes flashcache-gerät laden, das war

flashcache_load /dev/sdb1

dann mounte einfach meine home partition mit

mount /home

beenden Sie dann die Anmeldung als root mit exit in der Befehlszeile, und der Start sollte wie gewohnt fortgesetzt werden. alles erledigt!

2