ServerAdministration

Chair for Computer Aided Medical Procedures & Augmented Reality
Lehrstuhl für Informatikanwendungen in der Medizin & Augmented Reality

Administration

Raid

  • Hardware Raid 6 x 72Gb -> Home
  • Soft Raid -> shared, root

Hier noch etwas für die Administratoren:

Neue Accounts

Neue Accounts kann man mit "janusadduser" anlegen; der Benutzer muss vorher einen Lehrstuhl-account haben (also im LDAP-Server eingetragen sein).

Neue Gruppen

Neue Gruppen (mit shared-Verzeichnis) muss man in folgende Orte eintragen:

  • /etc/group (GIDs am besten wie auf filebruegge)
  • /shared (Verzeichnis anlegen)
  • /etc/httpd/httpd.conf.local
  • /usr/local/bin/fix-group-permissions

... danach noch ausführen:

  • /usr/lib/yp/ypinit -m < /dev/null

Noch was: um Benutzer- oder Gruppenänderungen zu verteilen, muss man leider manchmal folgendes ausführen :

  • rcypserv restart ; ssh-all-clients rcypbind restart

Neue NFS-Clients

Neue NFS-Clients trägt man auf janus in /etc/exports ein, und fügt folgende Zeilen lokal in /etc/fstab hinzu:

janus:/home     /home     nfs   rsize=8192,wsize=8192,hard,intr    0 0
janus:/shared   /shared   nfs   rsize=8192,wsize=8192,hard,intr    0 0

Ebenfalls setzt man in rc.config (oder YaST)

YP_DOMAINNAME="dwarf"
YP_SERVER="131.159.38.101"
START_YPBIND="yes"

Eine genaue Beschreibung zum Aufsetzen neuer Rechner findet sich im dwarf-cvs unter doc/labadmin/LinuxInstallation.txt

Außerdem gibts ja dafür einen Chair.HiWi (sitzt im Schrank).

User löschen

Den betroffenen Leuten sagt man am besten vorher Bescheid. Und führt dann ein paar Tage später auf janus das Skript /usr/local/bin/janusdeluser aus. Dann werden alle Spuren des Users beseitigt und sein Home-Verzeichnis wird unter /shared/admin/tmp_oldhomes/ archiviert. Diese Archive muss man dann irgendwann von Hand löschen...

Synchronisation mit LDAP

Das Skript /usr/local/bin/check-ldap-users überprüft, ob alle Benutzer in /etc/passwd auch im LDAP sind. Wo das nicht der Fall ist, muss der entsprechende Benutzer umgehend einen Notes-Account bekommen - oder der Account kann gelöscht werden.

Lokale Benutzer für Demos

Für Demos gibt es lokale Benutzer auf einzelnen Rechnern, im wesentlichen auf atbruegge10 und atbruegge34.

um neue lokale Benutzer anzulegen,etwas wie useradd -m -c "lokaler user" -u 47112 -g users -d /localhome/heart heart verwenden.

Globale Benutzer für Demos

Für Demos gibt es auch inzwischen Benutzer im NFS (aber nur auf dem Linux-Cluster); bitte vorsichtig verwenden:

  • sheep: Für die ProjectSheep Demo (uid 47113)
  • cardemo: Für die ProjectBar Demo (uid 47114)
  • peyclon (uid 47115)

um neue Demo-Benutzer anzulegen, "janusadduser.local" verwenden.

Server neu aufsetzen

Dies ist ein (möglicherweise unvollständiges) Installationsprotokoll unseres neuen Linux-Servers. Einen noch neueren müsste man analog installieren.-- AsaMacWilliams - 02 Jan 2004

Basisinstallation von Suse 9.0

  • Installation übers Netz (von unserem alten Server)
  • Software: Basisauswahl "minimal", kein X.
    • Zusätzliche Pakete für Serverdienste: NFS Server, YP Server, Samba Server, Apache, Netatalk, CUPS server, pure-ftpd, mailman, inetd, tcpd, netdate, acroread, mhonarc, htdig, cvs, gd, freetype, cvsgraph, enscript
  • Partitionierung: beide Festplatten identisch Partitionieren: 20GB Root, 1 GB Swap, Rest für /shared
  • Mirroring: RAID1 einrichten
    • hda1 und hdb1 werden md0, für /
    • hda3 und hdb3 werden md1, für /shared
    • hda2 und hdb2 sind unabhängig, für swap
  • Uhr GMT
  • Boot-Loader GRUB, von hda und hda1 booten, zweite Einstellung für hdb, falls hda kauputt (Vorsicht, GRUB muss manuell installiert werden)

Basis-Konfiguration

  • IP-Konfiguration zum Einrichten per DHCP (später dann manuell)
  • Mail (postfix, per Yast): versenden per mail.in.tum.de, root forwarden an macwilli at in.tum.de, ausliefern mit procmail
  • Testen mit "mail root"

Migrationsreihenfolge

Schritte der Migration von einem Server zum anderen

  • Neuen Server installieren, mit eigener IP-Addresse
  • Serverdienste NFS und NIS einrichten
  • NFS und NIS mit einem Client testen, der auf den neuen Server verweist.
  • Andere Serverdienste einrichten, testen soweit möglich
  • Client-Config-Dateien und Cron-Skripten kopieren, testen soweit möglich
  • IP-Adresse des neuen Servers auf die des alten stellen, ausschalten
  • Alten Server ausschalten
  • externes RAID umhängen
  • Neuen Server mit IP-Addresse des alten Servers neu starten.
  • Einen zweiten Client neu starten, der noch auf die alte Addresse verweist
  • Alles testen und, falls nötig, verbessern

Einrichten der Serverdienste

  • NIS:
    • /etc/passwd, /etc/shadow und /etc/group einpflegen (d.h. die Zeilen, die nicht "Systembenutzer" sind, in die Standarddateien mit aufnehmen)
    • In Yast NIS/YP Server einschalten, Passwortänderungen deaktivieren, nur passwd und group mappen
    • /var/lib/yp/Makefile editieren, MINGID auf 8 statt 500 setzen (um www- und uucp-Gruppen zu synchronisieren)
  • NFS:
    • /etc/netgroup und /etc/exports kopieren
    • /home und /shared anlegen
    • in Yast NFS Server einschalten
    • auf /janushome und /janusshared das alte /home und /shared mounten
    • /shared kopieren mit cp -av /janusshared/* /shared
    • Zum Testen, vor dem Umstecken des externen /home-RAIDs: /home/macwilli (oder irgendeinen anderen testaccount) kopieren mit cp -av /janushome/macwilli /home (später dann wieder löschen, wenn externes RAID nicht gemountet)
  • NIS und NFS testen:
    • auf einem Clientrechner /etc/yp.conf und /etc/fstab auf neuen Server verstellen
    • mit dem Kopierten testaccount versuchen, einzuloggen; freuen, wenn's geht
  • Administrative Skripten
    • Relevante Skripten von /usr/local/bin kopieren
    • Relevante Zeilen von /etc/crontab einpflegen: fix-group-permissions und Backup der Konfig-Dateien nach /shared (diese nicht in cron.*)
    • Relevante cron.*-Einträge kopieren: lab-netdate-lrz und janus-backup-configscripts
  • Client-Konfiguration
    • SSH-Identity von root von altem Server kopieren
    • /usr/local/etc/client_hosts kopieren
    • alles von /usr/local/clientconfig kopieren, aber so, dass alles erhalten bleibt. z.B.:
macbruegge16:/usr/local/clientconfig # 
/usr/bin/rsync -e ssh -av /usr/local/clientconfig/ atbruegge40:/usr/local/clientconfig
    • Testen mit ssh-all-clients uptime
    • Mit Vorsicht testen, während der alte Server noch läuft: update-client-configs
  • CUPS:
    • unter /etc/cups cupsd.conf, printers.conf und die ppds unter ppd/ kopieren
    • testen mit lpq und lpr
  • Samba:
    • unter /etc/samba smb.conf und smbpasswd kopieren
    • mit Runlevel-Editor smbd und nmbd einschalten
  • AFP (Netatalk):
    • unter /etc/netatalk AppleVolumes.default, atalkd.conf kopieren
    • mit Runlevel-Editor netatalk einschalten
  • HTTP (Apache1):
    • unter /etc/httpd httpd.conf.local, group und passwd kopieren
    • mit Runlevel-Editor apache einschalten
    • Änderungen bitte nur in httpd.conf.local!
    • NB: Apache2 ist auch installiert, aber nicht aktiviert.
  • CVS Server:
    • den inetd wie unter CvsServer? beschrieben einrichten
  • Mailman:
    • unter /etc/postfix main.cf kopieren
    • unter /etc/sysconfig mailman, mail und postfix kopieren, SuSEconfig laufen lassen
    • den Inhalt von /usr/share/doc/packages/mailman/README.SuSE befolgen
    • unter /usr/lib/mailman/cron crontab kopieren
    • unter /usr/lib/mailman/Mailman mm_cfg.py kopieren
    • die archivierten Daten nach /var/lib/mailman/lists und /var/lib/mailman/archives zurückspielen, dann das Skript /usr/lib/mailman/bin/genaliases ausführen
    • mit Runlevel-Editor mailman einschalten
    • Besser noch: Upgrade von Mailman?, damit htdig und MHonArc auch geht

Soft RAID wiederherstellen

Das Soft RAID ist so eingerichtet:

  • hda1 und hdb1 werden md0, für /
  • hda3 und hdb3 werden md1, für /shared
  • hda2 und hdb2 sind unabhängig, für swap

Grub muss man dann folgendermassen installieren:

grub
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)

Hier ein Auszug aus der /boot/grub/menu.lst:

title Linux
    kernel (hd0,0)/boot/vmlinuz root=/dev/md0
    initrd (hd0,0)/boot/initrd
#only needed when hda is corrupt - hdb becomes hda when hda fails
title Linux Platte 2
    kernel (hd1,0)/boot/vmlinuz root=/dev/md0
    initrd (hd1,0)/boot/initrd

Wenn eine Platte ausfällt, erkennt man das an dem (F) in /proc/mdstat:

md1 : active raid1 hda3[0](F) hdb3[1]
      38025728 blocks [2/1] [_U]
md0 : active raid1 hda1[0](F) hdb1[1]
      20972736 blocks [2/1] [_U]

Ausserdem sollte von mdadmd automatisch eine mail an root verschickt werden.

Nun fährt man den Rechner runter, ersetzt die kaputte Platte und partitioniert sie richtig neu, genau wie die noch funktionierende. Oder aber man steckt das abgefallene Kabel einfach wieder an. Dann fährt man den Rechner neu hoch, überprüft, dass nur noch die funktionierende Platte im RAID ist und führt

raidhotadd /dev/md0 /dev/hda1
raidhotadd /dev/md1 /dev/hda3
aus (falls hda defekt war, ansonsten analog für hdb). Die RAIDs werden dann neu gebaut, wie hier zu sehen:
md1 : active raid1 hda3[2] hdb3[1]
      38025728 blocks [2/1] [_U]
      [======>..............]  recovery = 30.8% (11726504/38025728) finish=15.1min speed=29020K/sec
md0 : active raid1 hda1[0] hdb1[1]
      20972736 blocks [2/2] [UU]


Edit | Attach | Refresh | Diffs | More | Revision r1.28 - 23 Mar 2005 - 19:38 - NikolasDoerfler

Lehrstuhl für Computer Aided Medical Procedures & Augmented Reality    rss.gif