Tag Archives: Server

Ubuntu – RAID 1 nachträglich (keine Bootpartition)

Nachdem ich meine Acer Easystore H340 endlich vom WHS befreit habe und Linux, in dem Fall Ubuntu, installiert habe, bin ich auf das Problem gestoßen ein RAID nachträglich einzurichten. Da die eine Platte kaputt war, und ich nicht warten wollte, bis diese wieder da ist, konnte ich anfangs (zum Installationszeitpunkt) kein RAID nutzen.

Da es sich bei dem nachträglichen RAID nur um ein “Storage”-RAID handelt, ist dies auch gar nicht so schwer. Trotzdem fasse ichs mal kurz zusammen.

Das System

Kurz zum System.

  • Ubuntu 11.04 Desktop mit Gnome
  • 1 Systemplatte sda
  • 2 Storageplatten sdb und sdc (die neue)

Die neue Platte vorbereiten

Die Platten, die im RAID enthalten sein sollen, sollten gleich groß sein. Ich hab zweimal das gleiche Modell von WD.

sdc ist ja noch jungfräulich und muss fürs RAID vorbereitet werden.

Hierzu sollen zunächst die Partitionstabellen von sdb eingerichtet werden:

sudo su -
sfdisk -d /dev/sdb | sfdisk /dev/sdc

Anschließend markieren wir die Partition(en) als RAID und vergewissern uns, dass alles passt:

parted /dev/sdc
(parted) toggle 1 raid
(parted) print

Damit ist die Vorbereitung der zweiten Platte soweit fertig.

Erstellen des RAID

Als nächstes erstellen wir das RAID mittels folgendem Befehl:

mdadm -C /dev/md0 --force --level=1 --raid-devices=2 /dev/sdc1 missing

Das missing markiert für die zweite noch normal eingehängte Platte den Platzhalter. Das RAID ist nun so benutzbar und kann eingehängt werden.

Kopieren der Daten auf das RAID

Jetzt können wir die Daten von der einzelnen Platte auf das RAID kopieren.

Dafür hängen wir das RAID ein.

mkdir /tmp/raid1
mount /dev/md0 /tmp/raid1

Gucken, ob alle Berechtigungen passen. Anschließend kopieren wir alles von sdb1 auf md0. Ich hab das wieder als Normaluser gemacht, so dass die Berechtigungen passen. Man kann es auch mit dem p-Parameter kopieren (gibt’s das bei cp?) und rsyncen, so dass die Berechtigungen erhalten bleiben.

cp -v /storage/* /tmp/raid1

Das -v kann man auch weglassen, bietet sich nur als ungefährer Fortschrittsindikator an (v.a. bei größeren Datenmengen).

Die zweite Platte ins RAID einbinden

Nun haben wir zweimal das gleiche, was ja schon nahe an ein RAID1 rankommt. Jetzt nehmen wir sdb noch in den RAID-Verbund auf.

Hierzu muss bei sdb nur noch das RAID-Flag gesetzt (siehe den parted-Teil oben) und folgender Befehl ausgeführt werden.

mdadm /dev/md0 --add /dev/sdb1

Jetzt beginnt das RAID sich zu syncen. Das dauert etwas.

Syncstatus beobachten

Da ich gerne sehe, wie viel Zeit ich überbrücken muss, hab ich hier mal etwas gesucht und ein kleines Skript geschrieben, um den Status des resync beobachten zu können.

1
2
3
4
5
6
7
8
9
10
11
12
13
raidstat() {
    P="0.0%"
    while [ $P != "100.0%" ]
    do
        sleep 1
        S=`grep -A2 "$1" /proc/mdstat | tail -n1`
        P=`grep -A2 "$1" /proc/mdstat | tail -n1 | egrep -o "[0-9]+\.[0-9]%"`
        clear
        echo $1: $S
    done
}
 
raidstat md0

Ich hab das einfach in eine Datei gepackt ein chmod a+x und angeschmissen. Da ist noch einiges an Potential drinnen, was man verbessern kann, aber so ein kompletter resync passiert ja nicht so oft, deswegen hab ichs mal so “roh” gelassen.

fstab anpassen

Abschließend muss man noch die /etc/fstab anpassen. Hier muss /dev/sdb oder dessen (G|U)UID durch /dev/md0 ersetzt werden.

Damit sollte alles passen. Ein Reboot ist hier nicht notwendig.

Bei Fehlern, Anmerkungen, Verbesserungsvorschlägen bitte in den Commentsbereich schreiben.

Quellen:

Edit:

Scheinbar gab es eine Änderung bei mdadm, so dass sich hier die dev-Bezeichnungen geändert haben bzw. ändern. Aus meinem md0 wurde ein md127. So hab ichs jetzt zumindest eingetragen.

Quellen hierfür:

http://ubuntuforums.org/showthread.php?t=1772692

https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/776908

Windows Headless Netzwerk Reset

Als Besitzer eines WHS (Windows Home Server) und kaum Problemen damit, ist mir heute eine fatale Eigenschaft von Klicki-Bunti-System wieder allzu klar geworden.

Ich hab versehentlich bei meinem Acer Aspire EasyStore H340 den Netzwerkadapter deaktiviert. LOL gedacht als mir klar wurde, dass es unheimlich doof ist, sich de Teppich unter den Füßen wegzuziehen. Naja… dann mach ich nen Neustart und alles ist gut.

Dann kam die bittere Erkenntnis, dass es leider endgültig war. Kein Netzwerk bei einem Headless System ist schon ziemlich bescheiden. Was nun tun? Doof gucken, sich der Fatalität immer mehr bewusst werden und googlen.

Tja, da kam leider ziemlich lang nicht viel rum, außer Tipps zum Reset des Systems. Das hat mindestens zur Folge, dass die Benutzerkonten weg sind und die Einstellungen zurückgesetzt. Geht ja gar nicht.

Also weitergesucht. Irgendwas hab ich dann von Registry gelesen. Ok. Biestiges Ding, wollte es nie mehr anfassen. Der Registry-Tipp (Link vergessen) ging allerdings von einer kleinen Fehlkonfiguration aus, so dass das auch nicht weitergeholfen hat (Irgendwas mit duplex 1000mbit oder so).

Auf der Suche nach einer Registry-Einstellung ist neben “Nimm doch defcon” immer wieder gekommen, dass es sehr viele Keys sind, die geändert werden. Windows olé.

Dann bin ich schlussendlich fündig geworden durch das großartige servervault und dem Beitrag Where is the network connection enabled/disabled setting stored?.

Eigentlich geht es genau wie in dem Beitrag formuliert. Ich fasse es trotzdem nochmal kurz zusammen:

  1. Systemplatte ausbauen bzw. die Möglichkeit erlangen Zugriff aufs Dateisystem zu bekommen.
  2. regedit starten
  3. Unter HKEY_LOCAL_MACHINE die Datei C:\WINDOWS\system32\config\software “mounten”. Das geht über “File -> Load Hive” bzw. dem deutschen Pendant “Datei -> 3. Einstellung von oben” :) . Als Bezeichnung kann man irgendwas sinniges nehmen, wie z.B. “WHSBak_Software”. Davor am besten ein Backup der “software”-Datei machen.
  4. Unter HKEY_LOCAL_MACHINE\WHSBak_Software\Microsoft\Windows\CurrentVersion\RunOnce dann einen neuen Wert (Keinen Schlüssel; Bezeichner ist egal) eintragen (REG_SZ):
    netsh interface set interface "Local Area Connection" enabled
  5. Da das nur beim Login ausgeführt wird, muss man noch das AutoAdminLogon einstellen. Dafür setzt man HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon auf 1. Anschließend muss noch DefaultUserName und DefaultPassword auf den Admin (oder einen anderen berechtigten Benutzer) setzen.
  6. Anschließend Platte aushängen, einbauen und neu starten.
  7. Zum Schluss noch die AutoAdminLogin Einstellungen aus 5. beseitigen und alles sollte wieder gut sein.

via:

Where is the network connection enabled/disabled setting stored?

How to turn on automatic logon in Windows XP

Umzug – Fast ohne Spuren verlaufen

So… neuer Server neues Glück.

Da unser alter Server schon etwas in die Tage gekommen ist, haben wir ein “Upgrade” gemacht. Gleicher Preise, bessere Hardware.

Leider sind bei der Blog-Migration ein paar � über geblieben. Hab den Dump auf verschiedene Arten eingespielt und gebe mich jetzt mit dem, der die wenigsten � enthält zufrieden. Sozusagen ein klassischer Fall von “Schei� encoding”.

Zusätzlich braucht das WordPress mit gleichen Einstellungen ein wenig mehr Speicher. Naja… wir hams ja.

HowTo – Ubuntu Tomcat Autostart

Vieles ist in Linux einfach zu bewerkstelligen, ein paar Sachen sind etwas mit Wissen zu hinterlegen bevor man sie durchführt. So auch das Starten von Applikationen beim Bootvorgang.

Nehmen wir als Beispiel mal einen Tomcat App Server. Das Programm gibt einem schon Skripte zum starten und beenden an die Hand. Das ist eigentlich auch alles was man zum weiteren Vorgehen braucht.

Im Verzeichnis /etc/init.d sind bei Linux üblicherweise die Startskripten abgelegt. Diese stellen im Normalfall 4 Parameter zur Verfügung (start/stop/restart/force-reload). Zum Starten brauchen wir… Trommelwirbel… den Start-Parameter.

Wir legen also nun für den Tomcat unter /etc/init.d eine Datei namens tomcat an (mit Root-Rechten).

sudo vi /etc/init.d/tomcat

Es kann auch jeglicher anderer Editor, wie z.B. nano genommen werden.

Anschließend befüllen wir die Datei mit Inhalt:

# Autostart script for tomcat

CATALINA_HOME=path-to-tomcat-directory
export JRE_HOME=path-to-jre-directory

case $1 in
start)
sudo -u username sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sudo -u username sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sudo -u username sh $CATALINA_HOME/bin/shutdown.sh
sudo -u username sh $CATALINA_HOME/bin/startup.sh
;;
force-reload)
sudo -u username sh $CATALINA_HOME/bin/shutdown.sh
sudo -u username sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0

Damit können wir schon recht komfortabel den Kater starten, aber nur manuell. Aber zumindest sind mal die einzelnen Skriptaufrufe weggekapselt.

Zum Autostart verwendet Linux sogenannte Runlevel. Natürlich hat jede größere Distribution da andere.

sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat

Obige Zeilen bedeuten, dass der Tomcat im Multiusermode (rc2) gestartet wird (S99), aber beim Betreten des Singleusermode (rc1) gestoppt wird (K99).

Update Dapper auf Hardy erfolgreich

Unfassbar. Wir haben es grad innerhalb einer Stunde geschafft ein komplettes Dist-upgrade von Dapper (6.06 LTS) auf Hardy (8.04 LTS) ohne Umwege über 6.10, 7.04 und 7.10 zu machen. Das Ganze auf einem Host Europe VPS. Und bis auf ein paar Kleinigkeiten läuft alles.

Sehr schön. Virtuozzo spackt auch nicht, Plesk geht. Hervorragend.

Reihenfolge war (Auszug aus dem HE Forum mit ein paar Ergänzungen):

  • Backup über Plesk gemacht (fürs Gewissen).
  • syslogd durch syslog-ng ausgetauscht:
  • apt-get install syslog-ng
    Dieses führt dazu, dass sowohl syslog-ng als auch klogd deinstalliert werden. Der syslog-ng ist wesentlich mächtiger. klogd brauche ich nicht, da für den Kernel HE zuständig ist, wenn da mal was kneift…
  • In /etc/apt/sources.list dapper durch hardy ersetzt. Plesk Source auskommentiert.
  • apt-get update
  • apt-get dist-upgrade. Teilweise alte Configs übernommen, da kommen ein paar Nachfragen.
  • reboot

via (Login notwendig)

[Edit]

und alles war gut….bis wir Plesk aufgerufen haben… da lachte uns ein Service not correctly installed an :)

aber auch das konnten wir aber folgendermassen beheben…

1. apt-get remove psa
2. /var/lib/dpkg/status das package “psa” entfernen (http://kb.parallels.com/en/5990)
3. dpkg -i /var/cache/apt/archives/psa_8.6.0-ubuntu8.04.build86080722.00_i386.deb

danach muss noch der License Key eingespielt werden

4. /usr/local/psa/admin/sbin/keymng –install –source-file=’/path/to/file/PLSK.******.key’
das hat bei uns gemuckt, da uns das Package libxmlrpc-c3 fehlt…

danach war alles gut und Plesk startete mit

5. /etc/init.d/psa start
6. /etc/init.d/psa stopall

Zu guter letzt kam im Client View noch ein lustiger “Unable to get default language” Fehler, den wir mit den ersten 4 der hier (http://kb.parallels.com/en/3526) beschriebenen Update Statements beheben konnte.