Debian mit XFS Dateisystem


XFS Kernel erstellen und XFS Tools installieren ..

Für die meisten Linux Distributionen sind mittlerweile eine reihe verschiedener Journaling Filesysteme verfügbar, wie reiserfs, jfs, ext3 und auch XFS. Einige davon haben mittlerweile Einzug in den aktuellen Kernel (2.4) gehalten, leider ist derzeit noch kein XFS im aktuellen Kernel verfügbar.
Des weiteren möchte man ggf. direkt XFS also root-Partition nutzen können und benötigt ein Bootmedium was XFS unterstützt.
In dieser kurzen Anleitung will ich erklären, wie man XFS einsetzen kann bei Debian Woody (auch direkt bei der Installation).

Wenn der Rechner eine Netzwerkverbindung hat, bietet sich
eine Installation mit einem Netimage (CD) an.

Solche CDs gibt es hier:

Mit diesen BootCDs oder Bootfloppies kann man Debian aus dem Netz installieren und die Partitionen vorher mit XFS Formatieren.
Der Haken ist, das in der Regel eine nicht so aktuelle XFS Version
(Kernelpatch passt nicht mehr zu den aktuellen XFS-Tools von Debian) zum einsatz kommt.
Das ist zwar kein Beinbruch aber auf Dauer unschön, daher werde ich erläutern wie man einen XFS-Kernel erstellt.
Bestehende Systeme werden per „umkopieren“
(Daten aud freie Partitionen kopieren, alte Partition neu mit XFS Formatieren, Daten zurück kopieren)
umgestellt, worauf am Ende dieser Anleitung noch eingegangen wird.

XFS-Kernel erstellen

Um einen Kernel neu zu kompilieren, gibt es bei Debian eine elegante Sonderlösung: das Kernelpackage.

apt-get install kernel-package

man packt den Kernel (bei http://www.kernel.org,
(oder siehe Kernel Mirror auf der Startseite…) heruntergeladenen) aus unter

/usr/src
und wechselt in das neue Kernelverzeichnis.

Der Kernel muss nun gepatcht werden, dazu läd man sich das aktuelle Patch von SGI herunter:

Das Patch zum 2.4.20 Kernel gibt es hier:

ftp://oss.sgi.com/projects/xfs/download/patches/2.4.20

Patches zu anderen Kernelquellen gibt es hier:

ftp://oss.sgi.com/projects/xfs/download/patches/
Für Intel-Kompatibele Rechner läd man sich das ..-all-i386.bz2
Patch herunter (darin sind alle XFS Kerneloptionen enthalten)

Das Patch wird mit:

bunzip2 /patchpfad/patchname-all-i386.bz2

„ausgepackt“ und mit:

patch -p 1 < /patchpfad/patchname-all-i386

in den aktuellen Kernel eingespielt.

Nach einspielen des Patch startet man entweder:

  • make config – Konfiguration über Textconsole, oder
  • make menuconfig – Konfiguration über ncurses Interface, oder
  • make xconfig – Konfiguration über X11 Interface (Tcl/Tk)

In der Konfiguration schaltet man unter anderem folgende
Kerneloptionen für XFS ein (unter Filesystems/Filesysteme) :

  1. XFS Filesystem support
  2. eventuell noch Realtime support
  3. und eventuell noch Quota support

in .config stehen dann folgende Werte:

CONFIG_XFS_FS=y

CONFIG_XFS_RT=y

CONFIG_XFS_QUOTA=y

# CONFIG_XFS_DMAPI is not set

# CONFIG_XFS_DEBUG is not set

Man kann XFS auch als Modul kompilieren, da aber ggf. die Root-Partition auch als XFS Dateisystem genutzt werden soll
und hier nicht auf die Nutzung einer initrd und sonstiger Mechanismen eingegangen wird,
empfehle ich XFS direkt in den Kernel zu kompilieren.

Übersetzen kann man den Kernel nun mit dem schon angesprochenen Kernelpackage:

make-kpkg kernel_image

erzeugt ein Debianpacket des Kernels welches ein Verzeichnis höher abgelegt wird und dann mittels:


cd ..

dpkg -i kernel-image-2.4.20-XXX_i386.deb

Installiert werden kann (XXX steht für Revisionsnummern oder Patchkennungen(hier z.B. xfs), die im Packetnamen auftauchen können)

Man folgt dann noch den Anweisungen, und kann nach erfolgreicher Installation das System mit
reboot oder shutdown -r now neu starten.


Installation der Debian XFS-Tools

Die XFS-Tools liegen als Debian Packete vor, die man einfach mittels

apt-get install xfsdump xfsprogs

installieren kann.

Danach stehen unteranderem folgende Programme zur Verfügung:

xfs_fsr um die XFS Dateisysteme zu reorganisieren
(das sollte in regelmäßigen Abständen geschehen, täglich wöchentlich oder monatlich, jenach aktivität des Dateisystems)
Durch Aufrufen von xfs_fsr hat man nach einiger Zeit ein Gefühl für den Intervall in dem xfs_fsr laufen sollte,
sodass man einen entsprechenden Eintrag für cron generieren kann um diese Aufgabe automatisch erledigen zu lasen.

Für Wöchentlich, täglich oder Monatlich kann man auch einfach ein Shellscript
in den jeweiligen cron Verzeichnissen (/etc/cron.daily , /etc/cron.weekly , /etc/cron.monthly) unterbringen.

So könnte das Shellscript aussehen:


#!/bin/bash

[ -x /usr/sbin/xfs_fsr ] && /usr/sbin/xfs_fsr

Das Shellscript sollte nun noch mit z.B. chmod 755 /etc/cron.daily/shellscriptname Ausführbar gemacht werden.

Ein fsck.xfs gibt es zwar auch das Programm ist aber nur ein Dummy, da XFS sich selbst reorganisiert.

Falls Probleme auftauchen mit dem Journal des XFS Dateisystems und das Dateisystem lässt sich nicht mehr mounten
(was in der Regel nicht vorkommt) gibt es die Möglichkeit mit
xfs_repair die Dateisystempartition zu reparieren.
Es wird ein neues Journal, basierend auf den vorliegenden Daten angelegt.

Mit xfsdump und xfsrestore kann ein XFS-Dateisystembackup erstellt und zurückgelesen werden.

Ein XFS Dateisystem wird mit mkfs.xfs erzeugt. Beim Anlegen des Dateisystems kann man angeben
wo das Journal angelegt werden soll (also Beispielsweise auf einer extra Partition s.u.).

mkfs.xfs -l logdev=/dev/sdb1,size=10000b /dev/sda1


Installationshinweise von XFS für eine bestehende Debian Installation

Bei einer bestehenden Installation benötigt man freien Festplatten
Platz um die Daten umzukopieren (eine Partition muss entwerder größer sein als die umzurüstenden Partitonen,
oder in einem bestehenden Dateisystem muss entsprechenden Platz frei sein)
Am einfachsten ist es den Rechner im „single User Mode“ zu starten mit telinit 1.
danach kopiert man ein Dateisystem nach dem Anderen auf die Partition oder den freien Platz, löscht,
bzw. Formatiert die alte Partition neu mit XFS
(z.b. umount /mountpoint; mkfs.xfs /dev/hda5; mount -t xfs /dev/hda5 /mountpoint )
und kopiert die Daten zurück auf die nun neuformatierte XFS-Partition.
Das kopieren kann man mittels

cp -ax /quellpfad/ /zielpfad

oder mit tar
(kopieren von /mountpoint auf /dev/hda5 nach /backup )

( tar clf - /mountpoint ) | ( cd /backup ; tar xvfp - )

Problematisch wirds erst bei der Root-Partition, wobei die vorgehensweise ähnlich ist:
alls erstes werden die Daten auf eine Freie Partition kopiert. Die nun „neue“ Root-Partition wird
z.B. auf /new_root gemountet nun muss lilo vor dem neuboot angepasst werden, dazu setzt man per chroot
den Rout-Mountpoint um:


chroot /new_root

In /etc/lilo.conf und in /etc/fstab muss nun das neuen Root-Dateisystem-Device angegeben werden.
Danach wird lilo aufgerufen und ein Neustart ausgelöst:


lilo

reboot

Nach dem neustart kann man die Alte Root-Partition nun mit XFS
formatieren und wiederholt den obigen Vorgang nochmal für diese Partition.

Anmerkung – Bei einem XFS-Root-Dateisystem muss Lilo im Masterbootrecord (MBR) installiert werden.

Nach dem Neustart hat man dann das Root-Dateisystem auf einer XFS Partition.


Hier noch ein paar hilfreiche Links zu XFS

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.