Dein Centos 5 64 bit installiert immer auch 32 bit Pakete?

Habt ihr euch schon einmal gewundert warum auf eurem 64 bit Centos immer auch 32 bit Pakete installiert werden?

Wenn ihr wissen möchtet warum dies geschieht und wir ihr diese überflüssigen Pakete am schnellsten entfernen könnt, dann benutzt einfach die folgende Anleitung:

Zunächst einmal solltet ihr feststellen ob wirklich ein 64bit OS läuft, dazu  in der Shell folgenden Befehl ausführen:

uname -a

dieses listet den verwendeten Kernel auf:
Linux hostname 2.6.18-194.8.1.el5.028stab070.2xen #1 SMP Tue Jul 6 15:00:04 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux

Am Ende der Zeile sieht man dass ein 64bit Kernel läuft.
Soweit so gut, nun lassen wir uns die installierten 32bit Pakete mit folgendem Befehl auflisten:

rpm -qa --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' | column -t | grep -vE '(x86_64)|(noarch)|(none.$)'

Nun erhält man eine (lange) Liste mit installierten 32bit Paketen.
Wenn man sich aus dieser Liste einen Paketnamen raus pickt und folgenden Befehl ausführt:

rpm -q --queryformat '%{NAME}.%{ARCH}\n' mkinitrd

mkinitrd.x86_64
mkinitrd.i386

sieht man in der Ausgabe wie gesagt, dass zu diesen Paketen je ein 64bit und ein 32bit Paket installiert ist.
Diese sind in der Regel völlig unnütz. Man würde sie nur dann benötigen wenn man selbst eine Source kompilieren möchte und diese zwingend 32bit Libraries benötigt.
Wenn man nur die Centos Repositories nutzt, dann wird man nie in die Verlegenheit kommen diese Pakete zu benötigen.

Ok, wir möchten diese also nun gerne los werden, nur wie geht das am Besten?
Hier gibt es verschiedene Lösungen, zum einen kann man die Liste hinter einen ‚yum remove‘ Befehl hängen. Oder aber – und das ist der schnelle Weg – wir entfernen einfach den Kompiler, dann werden alle Abhängigkeiten auch entfernt :)
Dazu führen wir folgenden Befehl aus:

yum remove glibc.i686

dieser entfernt dann alle betroffenen i386/i686 Pakete.

Achtung – bitte überprüft unbedingt die angezeigte Paketliste! Ich übernehme keine Haftung wenn ihr nicht wisst was ihr macht!

Cooles Gadget

Ich glaube ich brauch 300.- Eur und einen Saturn. Ok, zweiteres ist hier in der Nähe, fehlt nur noch die Kohle.

Beim Stöbern bin ich über diesen Artikel gestolpert:

http://www.netzwelt.de/news/83724-videospiel-iphone-kampfdrohne-ab-sofort-deutschland-verfuegbar.html

Für Videospieler und Modellflieger gleichermaßen interessant ist die via iPhone, iPod touch oder iPad fernsteuerbare, fliegende Drohne AR.Drone vom französischen Hersteller Parrot. Nach mehr als vier Jahren Entwicklungszeit kommt das Gerät nun auch in Deutschland in den Handel.“

Super, sieht so aus als müssen man(n) das haben.

Kino: Kiss & Kill

Dank Freikarte habe ich mich heute für den vermeindlichen Frauenfilm Kiss & Kill ins Kino begeben. Der Trailer sah ganz vielversprechend aus deswegen entschloss ich mich tatsächlich den Film anzusehen. Ok, ich hätte es besser wissen können oder sollen, oder meinem Bauchgefühl trauen – aber es war ja nun mal Gratis und ich hatte gefühlt nichts besseres zu tun.

Der Film ist laut Kinowelt eine ‚actiongeladene romantische Komödie‘ – vielleicht ist das Ziel ein wenig zu hoch gesteckt und man hätte besser die Action weggelassen und versucht lediglich eine Komödie zu machen – oder man hatte genau das im Sinn und entschloss sich dann spontan (mangels fehlender Gags?) ein wenig Action rein zu mischen. Ich weiß es nicht.

Weiter nach dem Break – SPOILERALARM!!

Physikalischen Server per Rsync auf einen Xen Server umziehen (P2V)

Wer sich überlegt seine Server zu virtualisieren stoßt über kurz oder lang auf folgende Frage:

Wie zur Hölle kriege ich meine Physikalischen Server nun umgezogen?

AHA – zum Glück gibt es ja Xenconvert – damit kann ich meine Maschinen migrieren – klappt auch, allerdings nur für Windows Clients  und Server. Da fällt mir ein, beim Installieren von XenServer (bis 5.6) wurde ich ja gefragt ob ich XenServer installieren oder eine vorhande Instalation umwandeln möchte, also  CD rein in die Physikalische Maschine (PM) und booten.

Das Ergebniss in den meisten Fällen dürfte sein, dass man auf einer Fehlermeldung landet welche sagt, dass ausgerechnet dein System nicht kompatibel ist, Schade auch.

Ich möchte mit diesem Post eine kleine Anleitung geben wie man mit sehr wenig Aufwand Linux Server doch umziehen kann (probiert habe ich das mit Debian und Centos).

Diese Methode kann man natürlich auch für P2P oder V2V oder für P2V nach nicht XenServern nutzen, die Anleitung muss dann entsprechend angepasst werden, das Prinzip bleibt das Gleiche.

Ich übernehme keinerlei Haftung dafür, dass diese Anleitung auf deinem Server funktioniert. Alle Änderungen welche du an deinem System vornimmst erfolgen auf dein eigenes Risiko. Wenn du nicht weißt was du machst, dann beauftrage lieber jemanden damit der sich auskennt!

Was man braucht:

  1. Natürlich einen physikalischen Server mit Linux (in meinen Fall Debian)
  2. einen XenServer Host auf dem man die Virtuelle Maschine (VM) aufsetzen kann
  3. Eine Netzwerkverbindung zwischen den beiden Servern. Das System läuft auch remote, ich empfehle dringlich doch lieber in der Nähe von der PM zu sitzen damit man bei Problemen diese auf jeden Fall erreichen kann – besonders bei Debian basierten Systemen.
  4. Root Zugriff auf die PM und XenCenter für den Zugriff auf den XenServer

Zur Transfer geht man wie folgt vor:

1. Auf der PM schaut mal sich die eingebundenen Devices an:

mount

Hier muss man sich alle Verzeichnisse notieren, welche nicht von einem lokalen Medium gemountet sind (NFS und ähnliches), diese schreibt man sich raus.

2. Da wir beide Maschinen in Runlevel 1 benötigen um den Transfer einleiten zu können müssen wir sicherstellen, dass sowohl das Netzwerk als auch SSH laufen. In der Regel sind diese Dienste im Runlevel 1 NICHT verfügbar – Ergebniss ist dann, dass die Maschine weg ist (daher besser daneben sitzen :) )

Bei Debian habe ich die Erfahrung gemacht, dass unter Umständen ein Maintenance Kennwort eingegeben werden muss, das funktioniert NUR wenn man lokal Zugriff auf den Server hat!

Bei RedHat basierten System (z.B. Centos 5) löst man das wie folgt:

chkconfig --level 1 network on
chkconfig --level 1 sshd on

bei anderen Systemen kann man das wie folgt lösen:

echo /etc/init.d/networking start >> /root/.bashrc
echo /etc/init.d/ssh start >> /root/.bashrc

Bitte beachten, dass die Daemons auch anders heißen könnten!

Wenn ihr vor der Kiste sitzt – was ich nochmals empfehlen möchte – dann könnt ihr den vorherigen Schritt sparen und die Dienste manuell starten!

3. sicher stellen, dass rsync installiert ist, das ist nicht immer der Fall!

Debian:

apt-get install rsync

Centos:

yum install rsync

Konfigurieren muss man hier nichts.

4. In Xencenter einloggen und eine VM erstellen, am Besten ist es ihr installiert hier exakt die OS Version welche ihr transferieren möchtet, also wenn die PM ein Centos 5 ist – dann erstellt eine Centos 5 VM – für Debian Etch eine Debian Etch VM etc.
Auf der VM muss mindestens so viel Speicherplatz konfiguriert werden wie auf der PM – das ist eigentlich logisch aber man weiß ja nie :)
Dennoch empfehle ich etwas mehr zu nehmen, man möchte ja auch noch neue Daten auf den Server spielen.

5. Auf der VM einloggen und sicherstellen, dass rync auch hier installiert ist.

6. VM und PM in den Runlevel 1 bringen – ACHTUNG! ab hier sind die Dienste auf der PM nicht mehr erreichbar!

Zum switchen des Runlevels auf beiden Maschinen ausführen:

init 1

dann noch die erforderlichen Dienste starten:

/etc/init.d/networking start
/etc/init.d/ssh start

7. nun werden alle Daten von der PM zur VM übertragen, wir schließen einige Verzeichnisse und Dateien aus, ansonsten schlägt der Transfer oder der Reboot fehl! Wichtig ist auch, dass alle nicht lokalen Verzeichnisse welche wir in Punkt 1. aufgeschrieben haben auch ausgenommen werden müssen, diese stehen auf der PM in init 1 nicht zur Verfügung!

Auf der VM startet wir nun den folgenden Befehl:

rsync -av --numeric-ids --delete --progress --exclude /sys --exclude /boot --exclude /dev --exclude /proc --exclude /etc/mtab --exclude /etc/fstab --exclude /etc/udev/rules.d --exclude /lib/modules PM-Servername-oder-IP:/ /

Wichtig ist, dass ganze Geraffel muss in einer Zeile stehen und den Roten Teil muss man natürlich anpassen.
Nun kann man einen (oder drei) lecker Kaffee trinken gehen, bis der Zähler am Ende auf 0 steht.

8. Fetich… nur noch die PM ausschalten:

init 0

Und die VM neu booten

reboot

Das war alles :)

Wenn man beide Maschinen weiterhin laufen haben möchte, dann muss man auf einer der Beiden die IP Adresse(n) anpassen, ansonsten gibt es Salat. Natürlich nicht vergessen darf man, dass z.B. in einem Apache Server auch die IP Adressen konfiguriert sind – diese muss man selbstverständlich alle anpassen.