FCache
Aus Gentoo Linux Wiki
| Installationsmethoden • LiveCDs • Kernel & Hardware • Laptops & Notebooks • Portage • System • Netzwerke & Services • X • Software • Anderes • alphabetischer HOWTO Index |
Inhaltsverzeichnis |
[Bearbeiten] Einführung
Fcache ist ein Kernel-Patch, mit dessen Hilfe der Boot-Vorgang unter Linux beschleunigt werden kann. Zu diesem Zweck wird ein linearisierender Puffer zwischen Dateisystem und dem Blockgerät geschaltet.
In einem initialen Durchlauf ("Priming") wird dabei eine Pufferpartition mit Daten gefüllt. Bei allen weiteren Systemstarts kann dann auf die Daten im Zwischenspeicher zurückgegriffen werden. Durch das lineare Anordnen und Puffern aller beim Booten auftretenden Zugriffe kann der Ablauf deutlich beschleuningt werden. Nähere Informationen zur Funktionsweise enthält die Ankündigung des Autors Jens Axboe im Archiv der Linux Kernel Mailing List. [1]
Hinweis: Damit fcache funktioniert, muss die root-Partition als ext3 formatiert sein.
Hinweis: Bei Verwendung von Reiser4 mit fcache kann es zu Datenverlusten kommen! Siehe auch [[2]].
[Bearbeiten] Kernel-Konfiguration
Fcache benötigt einen entsprechend gepatchten Kernel. Der Patch ist in den ck-sources ab 2.6.17-ck1 bereits enthalten, sodass ein Patchen nicht mehr notwendig ist in dieser Version, spätere haben derzeit diesen Patch nicht mehr.
Wenn Ihr Kernel noch nicht gepatcht ist, muss der Patch manuell integriert werden.
| Code: Patchen des Kernels |
cd /usr/src/linux wget http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.17/2.6.17-ck1/patches/fs-fcache-v2.1.patch patch -p1 <fs-fcache-v2.1.patch |
| Notiz: Für den Patch wird mindestens Version 2.6.17 des Kernels benötigt. |
Als nächstes muss fcache in den Kernel-Einstellungen aktiviert werden.
| Linux Kernel Configuration: Fcache aktivieren |
Device Drivers --->
Block devices --->
[*] Boot frontend cache driver
|
Nun muss der Kernel neu kompiliert und das System mit dem neuen Kernel gestartet werden.
[Bearbeiten] Eine Partition für fcache erstellen
Fcache benötigt eine Partition in der es die Pufferdaten speichert. Die Partition muss mit ext3 formatiert sein. Zukünftige fcache-Versionen werden wahrscheinlich Unterstützung für weitere Dateisysteme bieten. Ich bin nicht sicher wie viel Speicherplatz tatsächlich benötigt wird. Ein Mailing-List-Beitrag [3] gibt folgende Empfehlung ab: Nach dem Booten 'vmstat -D' aufrufen und die Zeile 'read sectors' als Anhaltspunkt verwenden. Ich habe eine Partition mit 512 MB angelegt, was ausreichend sein sollte.
Wenn Sie noch keine Erfahrung damit haben, können Sie in der Gentoo-Dokumentation nachlesen, wie man eine neue Partition anlegt und formatiert.
[Bearbeiten] Konfiguration der Boot-Skripten und erster Start mit fcache
Nun muss noch /etc/init.d/checkroot geändert werden, um fcache beim Systemstart auszuführen. Suchen Sie die Zeile mit folgendem Inhalt:
| Datei: Datei /etc/init.d/checkroot |
mount -n -o remount,rw / &> /dev/null |
und ersetzen Sie sie mit:
| Datei: Datei /etc/init.d/checkroot |
# Urspruenglich #mount -n -o remount,rw / &> /dev/null # Erster Bootvorgang mit fcache mount -n -o remount,rw,fcache_dev=#/#,fcache_prime=1 / &> /dev/null # Weitere Bootvorgaenge mit fcache #mount -n -o remount,rw,fcache_dev=#/#,fcache_prime=0 / &> /dev/null |
| Notiz: fcache_dev=#/# muss in allen Beispielen durch das entsprechende fcache-Gerät ersetzt werden. Der Parameter fcache_dev akzeptiert als Argument eine Zeichenkette mit den Major- und Minor-Zahlen des Puffergeräts. Wenn Ihr fcache-Gerät besipielsweise /dev/sda3 ist, muss fcache_dev=8/3 gesetzt werden. Für weitere Informationen zur Gerätenummerierung siehe Documentation/devices.txt im Kernelverzeichnis. |
Starten Sie jetzt neu und lassen Sie fcache den Vorgang puffern (Der Startvorgang ist deshalb vermutlich etwas langsamer als üblich).
Wenn Sie die initiale Pufferung ("Priming") abbrechen wollen, können Sie folgende Anweisung ausführen:
| Code: Priming abbrechen |
mount / -o remount,fcache_dev=#/#,fcache_prime=0 |
Ändern Sie danach die Zeilen die wir /etc/init.d/checkroot verändert haben zu:
| Datei: Datei /etc/init.d/checkroot |
# Urspruenglich #mount -n -o remount,rw / &> /dev/null # Erster Bootvorgang mit fcache #mount -n -o remount,rw,fcache_dev=#/#,fcache_prime=1 / &> /dev/null # Weitere Bootvorgaenge mit fcache mount -n -o remount,rw,fcache_dev=#/#,fcache_prime=0 / &> /dev/null |
Starten Sie nun neu und erfreuen Sie sich an einem schnelleren Boot-Vorgang :)
