LVM2-Partitionen einer Dateisystemprüfung unterziehen

Seit jeher scheue ich mich vor Logical Volume Management oder Software-RAID-Systemen im Privatgebrauch, weil ich über die komplexere Administration weiß. Und einmal nicht aufgepasst und auf die Standardinstallation einer Debian-Umgebung (Skolelinux) keinen großen Wert gelegt, stehe ich nun vor einem zu spiegelnden System, welches LVM2 nutzt und die einzelnen Partitionen also schwer wartbar macht.

Doch Internet sei Dank gibt es hilfreiche Anleitungen, wie man auf die Schnelle doch fix die Volumes mittels fsck auf Fehler überprüfen kann. Das ganze findet sich hier.

Anschließend stellt sich noch die Frage, wie man so ein Konstrukt spiegelt, also ein Image erstellt. Und da das Internet hier nicht ganz so nett zu mir war, wähle ich den bewährten, einfachen Weg einer Bytekopie, also einer 1:1-Kopie der gesamten Festplatte. Mag nicht in jedem Fall praktikabel sein, aber in meinem klappt es. Natürlich hat man hier nicht den Luxus einer Kompression, aber den könnte man ja hinterher mittels tar oder anderem erreichen. Das geht dann also wie folgt:

Zuerst boote ich den Computer von einer Live-Distribution von USB-Stick oder CD und hänge meine externe Festplatte im Dateimanager ein. Dann ein:

sudo mount -l

Hiermit sehen wir, auf welchen Mountpunkten die Laufwerke liegen.Ich meinem Fall ist das /media/data.

Meine Platte mit den LVM-Partitionen ist übrigens die einzige verbaute, ergo /dev/sda

sudo dcfldd if=/dev/sda of=/media/data/dateiname

Der Befehl dcfldd (muss ggf. vorher installiert werden) gibt mir beim Kopieren eine Fortschrittsanzeige aus und kopiert nun byteweise von der ersten verbauten Festplatte in die Datei “dateiname” auf der eingebundenen USB-Festplatte.

Wurzelzertifikate in Ubuntu/Debian installieren

Leidiges Problem: Man nutzt selbst signierte Zertifikate oder Zertifikate einer Zertifizierungsbehörde, die nicht in den offiziellen Systemquellen vorhanden ist. Symptom: Immer wieder soll man die Zertifikate akzeptieren. Lösung: Wurzel-/Stammzertifikate importieren.

Aber wie?

Askubuntu bietet Abhilfe – und das kinderleicht über Boardmittel. Geht natürlich auch unter Debian.

Serverumzug

Nachdem mein Hoster netcup.de mich vor einem halben Jahr über die geplante Umstellung auf KVM anstelle von Linux vServer informiert hat, wurde ich nun rechtlich zwar sauber aber ethisch nicht ganz nett dazu genötigt, meinen Server zu migrieren. Damit das alles so wenig zeitaufwendig und komplikationslos wie möglich abläuft, ich aber kein Backup der Installation durchführen konnte, musste ich also alle Daten kopieren respektive adaptieren. Aber wo fängt man an, wo hört man auf, und wie hat man die geringste Last auf der eigenen Leitung – gerade beim Upload?

Zunächst habe ich meine Distribution gewechselt. Anstelle von Debian 6.0 Squeeze läuft nun ein Ubuntu Server 12.04.2 LTS. Warum? LTS! Damit habe ich theoretisch bis 2017 Ruhe vor einer neuen Migrationsrunde, und sollte das mit der Zwangsmigration bei netcup.de weiter so laufen, dann werde ich bis dahin auch immer wieder neue Hardware haben und kann dennoch bei der gleichen Installation bleiben.

Sodann habe ich überprüft, was der Server eigentlich macht, und entsprechend die Komponenten bei der neuen Installation via apt-get eingespielt. Für mich war das nicht mehr besonders viel, da der Server vor allem als Webserver dient: apache2, php5, mysql und einige Module derselben (SSL, curl, rewrite)

Hiernach ging es um die Frage der Daten. Wie bekomme ich nun alles vom einen auf den anderen Server, ohne mir dabei die Finger wund zu kopieren? Total einfach via SCP, insofern man Zugriff auf zwei SSH Server hat (was hier der Fall war). Dafür habe ich mich folgenden Tipps bedient:

MySQL-Transfer: “mysqldump –extended-insert –force –log-error=log.txt -uBENUTZER -pPASSWORT –all-databases | ssh -C BENUTZER@NEUERSERVER “mysql -uBENUTZER -pPASSWORT”

Datentransfer: “scp -rp DATEN NUTZER@SERVER:/VERZEICHNIS”

Einfach, nicht? Schon lag das gesamte /var/www sowie meine Home-Verzeichnisse samt MySQL-DB auf dem neuen Server. Was gab’s dann noch zu tun? SSL einrichten, zlib Compression in der php.ini steuern, .htaccess Datei anpassen, ownCloud testen, finito. Alles in allem hat das Übertragen der Daten via mysqldump und scp mir also vielfältige Arbeitsstunden erleichtert.

Jetzt geht es um’s Testen. Aber wie erreiche ich eigentlich den Server, wenn meine Domain die gleiche bleiben soll? Dafür ändere ich noch schnell die MX-Records auf die neue IP und flushe meinen Betriebssystem-Cache meines Produktivsystems, damit auch der neue Server erreichbar wird. Dafür gibt’s übrigens ein kleines Tool unter Ubuntu.

Übrigens: Das alles geschieht schon auf dem neuen Server, der alte ist bereits abgeschaltet. Vielleicht fällt mir ja nochmal etwas ein, was ich vergessen habe, wenn es den alten Server nicht mehr online gibt. Bis dahin sieht es sehr gut aus.

Große Dateien unter Linux finden

Wer sich schon einmal gefragt hat, wie man eigentlich in der Konsole (bspw. auch via ssh) große Dateien findet, stößt im Netz auf viele Möglichkeiten, doch wirklich sinnvolle Befehle sind selten. Deshalb habe ich, auch weil ich meinen eigenen Server etwas entrümpeln wollte, selbst mal recherchiert und bin auf folgenden gestoßen:

find / -type f -size +20000k -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }' | sort -hrk 2,2

Der Befehl listet alle Dateien des Systems auf, welche größer als 20 MB sind, schickt alle Standardfehlermeldungen (kein Zugriff auf /proc etc.) nach /dev/null, sortiert diese nach Größe und macht sie menschenlesbar. Tolles Ding, Credits belong to these guys.