Ich möchte wissen, ob jemand versucht hat, seinen mit Flashcache oder Bcache für SSD-Caching erstellten Kernel zu installieren und auszuführen .
Wie hast du es geschafft?
Ich möchte wissen, ob jemand versucht hat, seinen mit Flashcache oder Bcache für SSD-Caching erstellten Kernel zu installieren und auszuführen .
Wie hast du es geschafft?
Antworten:
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. Mir 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.
Modul erstellen
Als erstes installieren Sie die Gebäudevoraussetzungen:
sudo apt-get install dkms build-essential linux-headers-$(uname -r) git
Dann schnappen Sie sich die Quelle:
git clone git://github.com/facebook/flashcache; cd flashcache
Erstellen und installieren Sie die Module:
make -f Makefile.dkms
Erstellen eines Flashcache-Geräts
(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 unter / gemountet)
sudo flashcache_create -p back fcache /dev/sdbX /dev/sdaX
Dabei ist fcache das erstellte Gerät (/ dev / mapper / fcache), / dev / sdaX die SSD-Partition (oder die gesamte Festplatte) und / dev / sdbX die Festplattenpartition.
Caching 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.
cd /path/to/flashcache/source
make -f Makefile.dkms boot_conf
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.
Starten Sie mit der LiveCD / LiveUSB neu.
mount /dev/sda4 /mnt
Mounten Sie Ihr Root-Gerät: (/ dev / sda4 ist meine Linux-Root-Partition)
cd /mnt/path/to/flashcache/source
sudo apt-get install dkms build-essential linux-headers-$(uname -r)
make; sudo make install
Das gesamte DKMS-Setup muss nicht in der Live-Umgebung durchgeführt werden
Hängen Sie das Root-Gerät aus sudo umount /mnt
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 die gesamte Festplatte) ) und [UUID] ist die UUID Ihrer Root-Partition.
Neustart!
Vorsichtsmaßnahmen bei der 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 Sie in der Realität verwenden, da der make -f Makefile.dkms boot_conf
obige Schritt einige Skripte in Ihrer initrd installiert, die das Flashcache-Gerät erkennen und verwenden.
linux /boot/vmlinuz-3.19.0-51-lowlatency root=UUID=0a540b91-5990-4df0-bc99-5d6e2cd3fed6 ro recovery nomodeset
zu linux /boot/vmlinuz-3.19.0-51-lowlatency root=/dev/mapper/fcache ro recovery nomodeset
(dh ändern Sie den root = -Parameter)
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 den Bcache in der blocks
README- Datei .
Für bcache ist Linux 3.10 oder neuer erforderlich, das in der aktuellen Version enthalten ist. Es kann manuell unter http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=D installiert werden
(suchen Sie nach der neuesten Version mit Tags) , zur Zeit v3.11.5-saucy
, und die debs installieren , die Ihre Architektur übereinstimmen).
bcache-tools
und blocks
kann von meinem Speicher ppa installiert werden .
/
, /home
, /usr/
, ...) , während das System läuft (wie maintboot gebrochen wird). Alternativ können Sie einen Live-USB-Stick verwenden, dort installieren blocks
und zum Konvertieren Ihrer Festplatten verwenden. Beachten Sie jedoch, dass dieses Tool nur für primäre MBR- und GPT-Partitionstabellen funktioniert und vor jeder Partition 1 MB zusätzlichen Speicherplatz benötigt.
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. Sehen Sie 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 es Ihnen gelingt, ein Paket bcache-tools
für Debian zu erstellen , lassen Sie es uns wissen, und diese Frage wird für Sie aktualisiert. ( bcache-tools
Die Build-Abhängigkeiten sind uuid-dev
und libblkid-dev
. Sie müssen installiert sein, um zu bauen bcache-tools
.)
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 zusammenfügen, 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 lief
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!