FCache

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
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 :)

'Persönliche Werkzeuge
Andere Sprachen