IPod Mini Mod

9. Dezember 2012 Keine Kommentare

Also ich war am Modden meines iPod Mini’s und hab im großen und ganzen alles wie im HowTo beschrieben gemacht.
iPod Mini Mod by Mark Hoekstra

Einziges Problem war, dass ich aktuell eine W7x64 Lizenze verwende. Hierfür muss das iTunes für Windows x64 installiert werden um die richtigen Treiber für das Gerät mitgeliefert zu bekommen. Einige male an- und abstecken und schon ist das Gerät Resetet und Aktualisiert.

Darüber hinaus habe ich einen Stärkeren Akku(1300mAh) eingesetzt welchen ich über Amazon bezogen habe.

Zusätzlich könnte noch ein alternatives OS aufgespielt werden, wie z.B. Rockbox.

Homeserver – APCUPSD

10. September 2012 Keine Kommentare

Einführung:

Nun gut wir wollen ja das unser Server auch bei einem Gewitter geregelt herunter fährt, also muss eine USV her.

TODO:

Daemon:

Ich habe den größten Teil entsprechend dem How To aus AndysBlog konfiguriert.
Bis auf den Teil mit dem Webinterface, da ich den Lighttpd Webserver nutze. Hierfür sind Kleinigkeiten zu aktiveren bzw. einzurichten um das WUI angezeigt zu bekommen.

Webinterface:

Zunächst muss das CGI modul aktiviert werden falls es noch nicht aktiviert ist.

lighty-enable-mod cgi
/etc/init.d/lighttpd force-reload

Nun gibt es 2 Methoden. Die erste habe ich verwendet bis ich über die zweite Methode gestolpert bin, welche mir persönlich besser gefällt.

Methode 1:

Anschließend muss ein cgi-bin Verzeichnis ins DocumentRoot vom Webserver gelegt werden, bei Debian einfach.

mkdir /var/www/cgi-bin

Zu guter letzt habe ich ein Symbolic Link auf das von APCUPSD bereitgestellte WUI gelegt.

ln -s /usr/lib/cgi-bin/apcupsd/ /var/www/cgi-bin/apcd

Nun sollte auch das WebUserInterface vom Deamon erreichbar sein.

Methode 2:

Für diese Methode muss man die lighttpd-Konfigurationsdatei etwas bearbeiten werden.

vi /etc/lighttpd/lighttpd.conf

Hier muss nun dem Webserver erklärt werden dass er *.cgi Erweiterungen ausführen kann.

cgi.execute-x-only = "enable"
cgi.assign += ( ".cgi" => "" )
static-file.exclude-extensions += (".cgi")

Nun reicht ein einfacher Symboliclink auf den APCUPSD Ordner im DocumentRoot des Webservers und die Seiten können geöffnet werden.

ln -s /usr/lib/cgi-bin/apcupsd/ /var/www/apcupsd

Nach einem Dienstneustart oder einem force-reload ist der Ordner und die Webseiten über den Webserver erreichbar.

service lighttpd restart

Konfiguration:

Der Daemon und das Abschaltverhalten wird über eine Konfigurationsdatei eingestellt.

/etc/apcupsd/apcupsd.conf

Sie ist relativ intuitiv, einfach mit bevorzugtem Texteditor bearbeiten und den Daemon neustarten.

service apcupsd restart

Referenzen:

Andys Blog: How To

KategorienLinux Tags: , , , ,

GPT – GUID Partition Table klonen

28. Juni 2012 Keine Kommentare

Um eine vorhandene GPT Partition Table von einer Platte auf eine neue Platte zu klonen, braucht man das Paket „gdisk“, welches z.B bei Debian Squeeze im backports Repository enthalten ist.

Anschließend reichen folgende 2 Kommandos um die Partition Table zu klonen:

sgdisk -R=/dev/sdb /dev/sda
sgdisk -G /dev/sdb

In diesem Beispiel wird die Partition-Table von /dev/sda auf /dev/sdb kopiert.

Homeserver

Hallo Homeserver,

kürzlich habe ich beschlossen mir einen Homeserver, aus meiner alten Hardware, zu basteln. Er sollte vor allem als Netzwerkspeicher dienen jedoch auch alle möglichen Jobs für mich erledigen wenn er ja schon 24/7 läuft oder zumindest länger als mein Standpc. Das heisst natürlich, dass das Betriebsystem meine Hardware unterstützen sollte und mir aber trotzdem die Freiheiten lassen sollte Scripts und Zusatzprogramme hinzuzufügen.

Hardware:

Wie gesagt alte, herumliegende Teile werden zusammegestöpselt und voilà der Server steht.
Mobo: Asus A8R32-MVP Deluxe
CPU: AMD Opteron 170
Ram: 4G DDR
Graka: NVidia 7800GT
HDD: Kingston DT108-8GB, 5x 80GB HDD

Die Idee: als Systempartition wird der USB Stick verwendet und die 80er Disken über ein mdadm-Software Raid6 verbunden.

Betriebssystem:

Auch wenn ich lange mit FreeNAS geliebäugelt hatte, beschloss ich ein „normales“ Linux zu nehmen, wegen besagter Zusatzprogramme und weil es im Forum hieß FreeNAS sei ja eigentlich für kleine NAS-Systeme gedacht.
Gut also Linux hmmm, da gibt es ja auch ordentlich an Auswahl: Mint, Ubuntu, Debian, Archlinux, Gentoo, ….
Da ich jedoch die Hardware in 64Bit betreiben möchte, um sie möglichst gut auslassten zu können, siehe RAM. War meine Auswahl aber bereits eingeschränkt, nebenbei wollte ich mich auch nicht ewigkeiten mit einem neuen OS herumspielen, also bin ich wieder einmal bei Debian gelandet 🙂

Debian it is:

Nun zur Installation des Systems auf einen USB-Stick. Im Netz gibt es einige Möglichkeiten das System auf ein USB-Stick zu bekommen. Die einfachste die mir eingefallen ist, einfach einmal den Stick als einziges Speichergerät anzustecken und über eine Netinst-CD installieren und siehe da es funktioniert. Das Setup erkennt den Stick als SDA man kann gleich darauf los installiern. Einziges Manko an der Geschichte ist die Installationsdauer, ich vermute es liegt an den beschränkten IOPS der USB-Lösung.

Systemkonfiguration:

Netzwerk:

Aktuell besteht das Netzwerk aus einem Modem/Router PRG AV 4202N, zwei kleinen Switches, einigen Rechnern und eben dem neuen Homeserver. Der Router spielt den DHCP, WINS und Time Server.

IP: DHCP/Static

Da, wie die Bezeichnung schon erahnen lässt, der Homeserver als Server betrieben wird. Werde ich Ihm eine Fixe-IP zuweisen, dass im Falle eines Router/Modem-ausfalls es keine Probleme gibt.
Bei Debien ist das in der Datei /etc/network/interfaces hinterlegt. Einfach mit deinem Bevorzugtem Textbearbeitungswerkzeug öffnen und eintragen.

allow-hotplug eth0
auto eth0
iface eth0 inet static
        address 192.168.0.50
        netmask 255.255.255.0
        network 192.168.0.0
        gateway 192.168.0.1

Natürlich die lokalen gegebenheiten anpassen:). Nachdem das gespeicherwurde muss das Interface einmal DOWN und UP genommen werden um die aktellen Einstellungen zu übernehemen.

sudo ifdown eth0 && sudo ifup eth0

Nun sollte die IP eingestellt und statisch sein. Es sollte auch darauf geachtet werden, dass der DHCP-Server davon weis und die IP für diese MAC-Adresse reserviert hält.
Mit folgendem Befehl kann man die MAC-Adresse und die aktuelle Interface-Einstellugen sehen:

ifconfig

Zeitsynchronisation: ntp, ntpdate

Zunächsteinmal müssen die entsprechenden Packete installiert werden.

aptitude install ntp ntpdate

Leider ist es mir nicht gelungen den Router als Zeitserver hinzuzufügen deswegen wurden die, entsprechend ntp.org, vorgeschlagenen Server verwendet. Wieder muss die Konfiguration in eine Datei, /etc/ntp.conf, eingetragen werden.

server 0.at.pool.ntp.org iburst
server 1.at.pool.ntp.org iburst
server 2.at.pool.ntp.org iburst
server 3.at.pool.ntp.org iburst

Nach einem Dienstneustart sollte sich die Zeit von alleien Synchronisieren.

/etc/init.d/ntp restart

Die aktuelle Zeit kann einfach per Befehl

date

abgefragt werden.
Falls diese nicht aktuell ist, oder stark abweicht, muss man per

ntpdate

einen initiale, manuelle Zeitsynchronisation starten. Es muss jedoch der NTP-Dienst hierfür beendet werden.

/etc/init.d/ntp stop
ntpdate at.pool.ntp.org
/etc/init.d/ntp start

Nun sollte sich der Server selbstständig synchronisieren.

Webserver: lighttpd

Als Webserver verwende ich lighttpd, er wird einfach über den Packetmanager installiert.

aptitude install lighttpd php5-cgi

Um auch PHP-Seiten darstellen zu können muss zusätzlich das entsprechende Modul installiert werden.
Jetzt muss dem Webserver beigebracht werden wie die Seiten zu verarbeiten sind, dies passiert über die Modul aktivierung.

sudo lighty-enable-mod fastcgi 
sudo lighty-enable-mod fastcgi-php

Ein Neustart des Dienstes erledigt den Rest.

sudo service lighttpd force-reload

Speicher:

Softwareraid: mdadm

Ich möchte ein Raid 6 aus meinen 5 80er Platten erstellen um bei einem möglichen Ausfall von 2 Platten noch immer meine Daten abrufen zu können.

Nun gut nach Anschluss aller Platten und dem korrekten erkennen durch das OS kann man sich daran machen die Partitionen auf den HDD’s zu erstellen.

Partition schreiben:

Um ungleich große Festplatten in Ihrer Größe zu „Normieren“ erstelle ich überall eine gleich große Partition mit Hilfe von cfdisk hier setzte ich auch den Partitiontyp auf fd was als Linux Raid interpretiert wird.

cfdisk /dev/sda
sfdisk -d /dev/sda | sfdisk /dev/sdb
sfdisk -d /dev/sda | sfdisk /dev/sdc
sfdisk -d /dev/sda | sfdisk /dev/sdd
sfdisk -d /dev/sda | sfdisk /dev/sde

Raid erstellen:

mdadm --create --verbose /dev/md1 --level=raid6 
      --chunk=64 --raid-devices=5 --spare-devices=0 /dev/sd{a,b,c,d,e}1

Dateisystem erstellen:

Ich habe mich für ein ext4 entschieden. Um nun das Dateisystem an das Raid anzupassen wurde die Blocksize von 4kB gewählt und eine Stride von 16 verwendet womit man nun auf die Chunksize 64kB vom Raid kommt.

mkfs.ext4 -b 4096 -R stride=16 /dev/md1 -L <Label_Name>

Der Name des Raid’s kann auch im Nachhinein bearbeitet werden.

e2label /dev/md1 <Label_Name>

Automatisches mounten:

Das Dateisystem kann nun in die fstab Datei eingetragen werden um das Mounten nach dem Start zu automatisieren.

vi /etc/fstab

Raid einbinden:

Damit das Softwareraid auch nach einem Neustart nicht auf seine Konfiguration vergisst kann man diese mit folgenden Befehl in der mdadm.conf hinterlegen.

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Windows Filesharing: Samba

Hardwaremonitoring:

CPU Taktung: cpufrequtils

CPU Temperatur: lm-sensors

Festplatten Temperatur: hddtemp

SMART Monitoring: smartmontools

Zusatzfunktionen:

Downloader: pyLoad

Nähere Infos hierzu auf der entsprechenden Seite.
http://www.zettabyte.eu/homeserver-pyload/

Torrent Loader: Transmission

Media Server: Plex

EBay Helper: esniper

Nähere Infos hierzu auf der entsprechenden Seite.
http://www.zettabyte.eu/homeserver-esniper-esf/

APC USV Daemon: apcupsd

Nähere Infos hierzu auf der entsprechenden Seite.
http://www.zettabyte.eu/homeserver-apcupsd/

DC Crawler: MJ12Node

Genauere Informationen sind auf der entsprechenden Seite zu finden.
http://www.zettabyte.eu/homeserver-mj12/

Referenzen:

KategorienLinux Tags: , ,

Homeserver – MJ12

Einführung:

Also nun zum distributed Client Projekt Majestic-12 das dezentral Webseiten Indiziert um so in Zukunft eine Basis für eine Suchmaschienen zu sein.
Zunächst gehe ich von meiner Homeserverinstallation aus, Debian Squeeze 64bit.

ToDo:

Zuerst müssen wir die Software herunterladen, entpacken und dann zum laufen bekommen.

Installation:

Da wir eine 64Bit Installation haben müssen erst einmal die 32Bit Bibliotheken nachinstalliert werden. Da es dass von uns verwendete Bundle nur in 32Bit Version im Forum gibt.

aptitude install ia32-libs ia32-libs-gtk

Weiters ist der eigentliche Client für Windows und in .NET geschrieben, nun bräuchte man zunächst MONO um es zum laufen zu bekomme. Jedoch, zum Glück für uns, hat sich damit bereits jemand beschäftigt und ein Bundle für Linuxkisten zusammengestellt. Dieses ist im Forum zu finden.
Laut Linux FHS werde ich einen Unterordner in /usr/local/etc anlegen in dem das Programm gespeichert wird. Zusätzlich wird der Eigentümer auf einen NONROOT Benutzer umgelegt.

cd /usr/local/etc
wget http://refic.psimerion.org/CURRENTVERSION.tgz
tar -xf CURRENTVERSION.tgz
chmod -R UNPRIVUSER:UNPRIVGROUP MJ12node
rm CURRENTVERSION.tgz

Nun sollte es bereits möglich sein den Client mithilfe der mitgeliferten run.sh zu starten.

sudo -u UNPRIVUSER /usr/local/etc/MJ12node/run.sh

Falls dieser ohne Probleme startet, aktivieren wir den internen Webserver mit dem Shortcut S. Nun sollte der Node über einen Browser und die URL http://IP:1088/ erreichbar sein.

Edit:

Da es negative Erfahrungen mit dem Node auf einem USB-Stick gibt, habe ich beschlossen es auf mein Raid auszulagern. Damit es jedoch über den aktuellen Pfad erreichbar bleibt habe ich eine symbolische Verknüpfung erstellt.

mv /usr/local/etc/MJ12node /srv/
ln -s /srv/MJ12node /usr/local/etc/MJ12node

Konfiguration:

Wenn der Webserver der Software läuft können wir den Node Konfigurieren. Theoretisch kann man diesen auch ohne den Webserver einstellen, da dieser die Informationen in die lokal angelegte Datei config.xml schreibt.
Wichtige, zu bearbeitende, Punkte stehen in der Kategorie Personal. Darüber hinaus kann unter MISC-Web server das selbstständige aktivieren des Webservers eingeschalten werden.
Bei Änderungen nicht vergessen ganz nach unten zu scrollen und den Button Save Options zu klicken.

Memory Disk

Da ich als Rootpartition einen USB-Stick nutze und somit, wie bei allen EEPROM basierten Speichern(SSD’s), die Schreibzyklen begrenzt sind, werde ich mir den /tmp Ordner als Memory Disk mounten. Da es, gerade beim Archivieren zu erhöhten Schreib-/Lesenzyklen kommt und somit auf die Lebenszeit des Speichers, sowie die Geschwindigkeit des Nodes Einfluss nimmt.
Dies wird einfach per Eintrag in der /etc/fstab bewerkstelligt.

tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=512M,mode=01777 0 0

Damit nun der Client beim Archivieren auch wirklich diesen Ordner verwendet muss unter MISC-Archiving-Temporary files path: der Pfad /tmp/MJ12tmp eingetragen werden.
Nun noch ein Reboot damit der Ordner richtig gemountet wird und der Client verwendet die RAM Disk.

reboot

DNS Server

Aufgrund der Funktion des MJ Nodes gibt es viele DNS Abfragen was meinem Router/Modem etwas zu schaffen macht. Nun da ich nicht alle x Stunden diesen neustarten möchte setzte ich den DNS Server für den gesamten Server einfach auf einen Öffentlichen.

Dass geht bei Debian recht einfach, mit einem Texteditor die Datei /etc/resolv.conf öffnen und hier die IP des zu verwendenden Servers eintragen.

vi /etc/resolv.conf

Konkret muss am Ende der Zeile nameserver die IP eingesetzt werden.

nameserver 8.8.8.8

Wäre zum Beispiel der öffentlich DNS Server von Google.

Achtung!

Dies verändert aber den DNS Server vom gesamten Rechner also können zb. lokale Domains nicht mehr umgesetzt werden. Leider ist mir nicht klar wie ich nur den DNS Server für ein Programm setzten könnte ausser vielleicht einen Proxy einzurichten bei dem der DNS Server so gestzt ist und im MJ12Node den Proxy dann festlege.

Referenzen:

Majestic 12 Webseite
Majestic 12 Forum
RAM Disk How-to

PRG AV-4202N Modem Konfigurieren

Geschichte:

Durch meinen ISP-Wechsel habe ich doch gleich ein neues Modem bekommen, ein PRG AV 4202N. Da es schon den N-Standard für WLAN unterstütz, habe ich beschlossen den Thomson in Ruhestand zu schicken und mir das Pirelli herzurichten.

Nun da ich jedoch selten mit der Grundkonfiguration zufrieden bin, habe ich mir mal das WUI zu gemüte geführt. Leider musste ich feststellen, dass man da nicht wirklich viel anstellen darf.

ToDo:

Berechtigung:

Zum Glück gibt es jedoch Suchmaschienen und Leute die, genau wie ich, Unzufrieden mit ISP Grundkonfiguartionen sind. Da findet sich doch gleich eine „Stallown3d“ Zugangsberechtigung über die man sich im Webinterface gleich mal Adminstratorrechte verschaffen kann.

Einrichten:

WUI->Menü->Erweitert->Benutzer->(name-des-nutzers-in-der-liste)
und im Allgemein/Berechtigungen Punkt mal das Häckchen bei Administratorrechte setzten und OK drücken.

Zeitserver:

Das Modem kann sich doch Glatt die Zeit selber aus dem Internet holen und sich so selbst Synchronisieren, und z.B. so auch die Sommer/Winterzeitsprünge selber mitbekommen.

Einrichten:

WUI->Menü->Erweitert->Datum und Uhrzeit->Neuer Eintrag
Dort gleich mal die Server für deine Region, oder dein Land, eintragen. Am besten hierfür einfach mal auf ntp.org gehen und informieren. Ich habe hier die vier AT-Server und den übergeordneten EUROPE pool genommen. Ach und das Zeitintervall in dem es die Synchronisationen durchführen soll, kann man hier auch einstellen.

Nebenbei kann man den Windows-Clients im Netzwerk auch das Modem als Timeserver eintragen und somit die synchronisierten Zeiten gleich „weitervererben“.

DNS-Server:

Wie auch bei meinem alten Modem will ich meinen DNS-Server umstellen. Um so vielleicht so auch etwas vom ISP wegzukommen oder diese Service zu trennen. Auf jeden fall funktioniert das wie folgt.

Einrichten:

WUI->Menü->Netzwerkverbindungen->WAN PPPoA->Einstellungen->DNS Server
Dann im Drop-Down-Menü „Die folgenden DNS Serveradressen verwenden“ auswählen und darunter die DNS-Server-IP’s setzten.

IP Bereich:

Da mir das 10er Netz nicht gefällt, muss das umgestellt werden 🙂

Einrichten:

WUI->Menü->Netzwerkverbindungen->LAN Bridge->Einstellungen
Sop DHCP-Server im Drop-Down-Menü setzten, falls nicht bereits gesetzt ^^. Und dann hier den IP-Bereich ändern Subnetzmaske und Leasetime können hier auch gesetzt werden. Ach und nicht vergessen die LAN-IP des Modems gleich mit zu ändern, falls diese nicht Dynamisch bezogen wird.

Modem:

Da ich das Modem nicht immer über die IP ansprechen möchte habe ich Ihm einen Hostnamen gegeben und gleich eine lokale Domäne gesetzt.

Einrichten:

WUI->Menü->Erweitert->Systemeinstellungen->System
Hier kann der Hostname und die Windowsdomäne gesetzt werden.

Diagnose:

Was ich recht interessant finde ist, dass man sich nich nur das SNR hier ansehen kann sondern auch die Maximale Bandbreite bei diesem.

Testen:

WUI->Menü->Erweitert->Diagnose->DSL Leitungsdaten und Statistik->Go
Ich könnte gerade auf 12MBit Downstream rauf … leider schwankt dieser Wert da sich die Dämpfung der Leitung auch immer ändert.

Port Forwarding

Um einen Server von außen zugänglich zu machen muss der eingangs Port freigegeben werden. Einfach die RouterIP im Browser eingeben und über das Webinterface einstellen.
Webinterface->Login->Sicherheit->Port-Forwarding->Neuer Eintrag

  • Lokaler Rechner: Server IP
  • Protokoll: Benutzerdefiniert
    • Protokoll: TCP
    • Quellports: Beliebig
    • Zielports: Einzeln _PORT_

Hinweise:

Man kann bei diesem Modem wirklich viel über das Web-User-Interface einstellen gefällt mir sehr. Das meiste findet man im Menüpunkt Erweitert. Es können hier noch weitere Sachen angestellt werden wie z.B. einen WINS-Server fürs lokale Windowsnetzwerk einstellen, lokale DNS Einträge setzten, File/FTP und Webserver starten, Routings setzten, SSH Server starten, und und und 🙂 also viel spass beim spielen mit den Konfigurationen.

Einziges Manko, worauf ich leider noch nicht gekommen bin, ist, wie man sich die aktuelle Konfiguration von dem Modem in eine Konfigurationsdatei holen kann. Falls das jemand weis wäre ich sehr dankbar für ein Kommentar oder Hinweis.

Referenzen:

Zeitserver: www.ntp.org

DNS Server im Thomson TG585v7 einstellen

Geschichte:

OK, da mir die Einschränkungen der DNS Listen nun langsam aufs Gemüt drückt habe ich beschlossen die DNS Auflösungen nicht mehr meinem ISP anzuvertrauen.

Da ich jedoch nicht auf jedem PC im Netzwerk den DNS-Server Eintrag verändern möchte, werde ich es zentral auf meinem Router umstellen. Hierbei handelt es sich um einen Thomson TG585v7.

Zunächst habe ich Namebench herunter geladen und laufen lassen damit ich mal eine Idee bekomme welche DNS Server schnell und ohne Sperren arbeiten. Zum Testen der Hops kann man natürlich auch noch tracert in der Windowskommandozeile verwenden.

Da kam schon mal heraus dass die öffentlichen Server von Google fleißig sind. Ich bin mir jedoch nicht sicher ob sich BIG G noch an sein eigenes Credo „Do no evil“ hält, deshalb habe ich beschlossen noch etwas weiter zu suchen. FixMBR hat mich dann zu einem alternativen DNS Anycast Resolver geführt AS250.

ToDo:

Nachdem wir uns nun über das Warum ausgelassen haben nun zum Wie.

Zunächst starten wir die Windowskommandozeile mit einem Klick auf Start->Ausführen und der Eingabe cmd.

Router IP herausfinden
ipconfig /all

Liefert uns die IP des Standardgateways was in meinem Fall meinem Thomson entspricht.

aktuelle Konfiguration speichern
      IP des Modems in einen Browser eingeben und unter Menüpunkt

Thomson Gateway -> Configuration -> Save or Restore Configuration -> Backup Configuration Now …

      die

user.ini

    Datei herunterladen und speichern.
Telnet einloggen
telnet <StandardgatewayIP>

Nach dem Verbindungsaufbau werden wir nach einer Username/Password Kombination gefragt. Diese entweder eingeben oder falls keine vorhanden mit Enter, Enter überspringen.

alte DNS Server löschen
dns server route flush

Vor dem Löschen können noch mit dns server route list die aktuellen DNS Server aufgelistet werden.

neue DNS Server eingeben
dns server route add dns=194.150.168.168 metric=0 intf=INTERNET
dns server route add dns=8.8.8.8 metric=1 intf=INTERNET

Mit Hilfe der metric kann ein DNS Server bevorzugt werden.

Routereinstellungen Speichern
saveall

Referenzen:

Forum von Thomson Benutzern: http://www.dieschmids.at/

Software zum Testen von DNS Servern: http://code.google.com/p/namebench/

Mein neuer Haupt DNS Server: 194.150.168.168  (Dienst von as250.net)

Fallback DNS Server:  8.8.4.4 (Google Public DNS Server, oder 8.8.8.8)

SSH Authentifizierung mittels Public Key

22. April 2011 1 Kommentar

Mittels Public Key Authentifizierung kann man sich via SSH auf einem Server einloggen bzw. Daten übertragen, ohne jedes Mal das Passwort eintippen zu müssen.

Hierfür wird ein sogenannter Private-Key für den Client und ein Public-Key für den Server erzeugt.
Beim Private-Key sollte man darauf achten, dass niemand unbefugten Zugriff darauf bekommt!

Erstmals erzeugen wir das Schlüsselpaar am Client:

user@client:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:

Bei der Frage, wohin der Key gespeichert werden soll, kann man einfach den Standard-Pfad benutzen (siehe oben).
Eine Passphrase kann man ebenso definieren – wenn man keine Passphrase angibt, wird der Key allerdings nicht verschlüsselt.

Jetzt muss noch der öffentliche Key (id_rsa.pub) auf den Zielserver transportiert werden – dies erledigt man am einfachsten mittels ssh-copy-id.

(MAC-User sollten diesen Artikel lesen)

user@client:~$ ssh-copy-id -i id_rsa.pub user@server
user@server's password: 
Now try logging into the machine, with "ssh 'user@server'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Wenn SSH nicht auf Port 22 lauscht, lautet der Befehl folgendermaßen:

ssh-copy-id '-p PORT -i id_rsa.pub user@server'

Das war’s! Nun sollte man sich ohne Passwort am Server einloggen können.

user@client:~$ ssh server
Linux server 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686
user@server:~$

ssh-copy-id in Mac OS X integrieren

19. April 2011 5 Kommentare

Mittels ssh-copy-id kann man sehr einfach einen Public-Key auf den Zielrechner kopieren.
Mac OS X hat dieses Script standardmäßig nicht dabei – folgende Befehle schaffen Abhilfe:

sudo curl "http://public.zettabyte.eu/ssh-copy-id" -o /usr/bin/ssh-copy-id
sudo chmod +x /usr/bin/ssh-copy-id

RAID5 Reshape

27. Januar 2011 Keine Kommentare

Seit dem 2.6.17er Kernel ist es möglich, ein bestehendes Software RAID5 online zu vergrößern.

Da mir bei meinem RAID5 mit 3 x 1.5TB der Platz ausging, war es an der Zeit das RAID zu erweitern – in meinem Fall um 2 weitere 1.5TB Platten.

Nach dem Einbau der Platten hab ich erstmal die Partition-Table mit sfdisk auf die neuen HDD’s kopiert:

sfdisk -d /dev/sda | sfdisk /dev/sdd
sfdisk -d /dev/sda | sfdisk /dev/sde

So – das war’s mit den Vorbereitungen – nun kann man die neuen Partitionen (in meinem Fall /dev/sdd2 und /dev/sde2) ins RAID-Array hinzufügen.

mdadm -a /dev/md1 /dev/sdd2
mdadm -a /dev/md1 /dev/sde2

Anschließend startet man den Reshape mittels:

mdadm --grow /dev/md1 --raid-devices=5

Den aktuellen Status kann man mittels

cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid1]
md1 : active raid5 sde2[3] sdd2[4] sda2[0] sdc2[2] sdb2[1]
      2878912128 blocks super 0.91 level 5, 64k chunk, algorithm 2 [5/5] [UUUUU]
      [>....................]  reshape =  1.9% (27938688/1439456064) 
      finish=2103.6 min speed=11180K/sec

md0 : active raid1 sda1[0] sdc1[2] sdb1[1]
      19534912 blocks [3/3] [UUU]

beobachten.

Reshape beschleunigen (z.B):

echo 200000 > /proc/sys/dev/raid/speed_limit_max
echo 25000 > /proc/sys/dev/raid/speed_limit_min

Das war’s fürs erste! Nun ist Warten und Beten angesagt….

———

Nach ungefähr 27 Stunden war der Reshape ohne Fehlermeldung erfolgreich abgeschlossen.

# cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4] [raid1]
md1 : active raid5 sda2[0] sdd2[4] sde2[3] sdc2[2] sdb2[1]
      5757824256 blocks level 5, 64k chunk, algorithm 2 [5/5] [UUUUU]

Jetzt musste man nur noch das Filesystem resizen

resize2fs /dev/md1

Nach weiteren ca. 20 Minuten war dies auch erledigt und mein RAID hatte mehr Platz:

# df -h
/dev/md1  5.3T  2.0T  3.2T  38% /data

Achtung! Man sollte, wenn alles erledigt ist, vor einem Reboot unbedingt die mdadm-Config neu generieren!

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

(ggf. die alten MD-Arrays definitions aus der mdadm.conf rauslöschen).

Anschließend muss noch ein

update-initramfs -u

ausgeführt werden, damit die Config-Änderung nach einem Reboot greift.

Das war’s. Somit wurde mein RAID5 ohne gröbere Probleme erfolgreich erweitert.
Danke mdadm! 🙂