HD VDR


Die Teile im Einzelnen:

– Thermaltake DH 202
– Intel Pentium G620T
– Intel DH67BL
– Technotrend Premium S2-6400 Twin HD
– Crucial m4 64 GB SSD
– FSP Fortron/Source Aurum Gold 400W
– Scythe Big Shuriken
– LG DVD-RW
– 4 GB RAM

Festplatten Image übers Netzwerk ziehen

Hier ist ein Beispiel, wie man ein komplettes Festplatten Image eines Rechners übers Netzwerk mit dd und netcat ziehen kann inkl. Kompression (lzop) und Fortschrittsanzeige (pv).

Das ganze macht man am besten über Knoppix die fehlenden Programme können mittels apt-get installieren werden.

Ziel Rechner:

netcat -l -p 5555 | lzop -d | dd of=/dev/sda bs=16065b

Quell Rechner:

dd if=/dev/sda bs=16065b | pv | lzop | netcat IPAddr 5555

Debian – apt-get upgrade – The following packages have been kept back

Sollte sich apt mal weigern alle Updates einzuspielen, wie hier z.B.:

# apt-get upgrade
Reading package lists… Done
Building dependency tree… Done
The following packages have been kept back:
linux-headers-2.6-xen-vserver-amd64 linux-image-2.6-xen-vserver-amd64 openssh-client openssh-server
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

So kann man mit apt-get dist-upgrade die Kiste doch zur Mitarbeit überreden

# apt-get dist-upgrade
Reading package lists… Done
Building dependency tree… Done
Calculating upgrade… Done
The following NEW packages will be installed:
linux-headers-2.6.18-6-xen-vserver linux-headers-2.6.18-6-xen-vserver-amd64 linux-image-2.6.18-6-xen-vserver-amd64 linux-modules-2.6.18-6-xen-vserver-amd64 openssh-blacklist
The following packages will be upgraded:
linux-headers-2.6-xen-vserver-amd64 linux-image-2.6-xen-vserver-amd64 openssh-client openssh-server
4 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 23.7MB of archives.
After unpacking 102MB of additional disk space will be used.

Allerdings sollte man einen Blick darauf werfen, was jetzt alles genau upgedatet wird!


Debian – apt-get – There is no public key available for the following key IDs

Falls eines Tages bei einem apt-get update die folgende Meldung auftauchen sollte:

Reading package lists… Done
W: There is no public key available for the following key IDs:
4D270D06F42584E6
W: You may want to run apt-get update to correct these problems

so hilft ein einfaches

# apt-key update


VHCS Auto-Responder

Wer anstatt der Auto-Responder Nachricht nur die folgende Fehlermeldung geschickt bekommt, sollte mal folgendes machen.

Command
died with status 25: „/var/www/vhcs2/engine/messager/vhcs2-arpl-msgr“.
Command output: Can’t return outside a subroutine at
/var/www/vhcs2/engine/messager/vhcs2-arpl-msgr line 1570.

mkdir -p /var/log/vhcs2/vhcs2-arpl-msgr/
chown vmail:mail /var/log/vhcs2/vhcs2-arpl-msgr
chown vmail:mail /var/www/vhcs2/engine/messager/
chmod 644 /etc/vhcs2/vhcs2.conf

Außerdem muss die Postfix Konfiguration noch angepasst werden:

/etc/postfix/main.cf

vhcs2-arpl_destination_recipient_limit = 1
transport_destination_recipient_limit = 1

/etc/postfix/master.cf

vhcs2-arpl unix – n n – – pipe flags=O user=vmail argv=/var/www/vhcs2/engine/messager/vhcs2-arpl-msgr

/etc/init.d/postfix reload und Gut is…


Umzug auf neuen Rootserver

Es ist an der Zeit auf einen neuen Rootserver umzuziehen und den Alten in den wohlverdienten Ruhestand zu schicken. Dazu sind die folgenden Schritte notwendig:

  • Debian mit RAID und LVM aus Rescuesystem installieren
  • Xen installieren
  • Einrichten der Dom0s
  • Server Umzug in Dom0
  • Anpassen VHCS

Das vorinstallierte Debian 4 bietet leider kein Software RAID und kein LVM.
Das System via installimage von Hetzner neu aufsetzen bietet keine Möglichkeit das LVM anzulegen

Also müssen wir das System manuell über das Rescuesystem installieren

Das Rettungssystem verfügt aber alles um den Server nach den eigenen Wunschvorstellungen aufzusetzen, fehlende Pakete lassen sich mit apt-get install nachinstallieren (Platz auf RAM-Disk vorausgesetzt)

Anlegen der Partitionierung über fdisk oder cfdisk.
Die beiden angelegten RAID-Partionen erhalten den Typ fd (sda1 und sda3), die Swap-Partition sda2 den Typ 82.

sfdisk -d /dev/sda | sfdisk /dev/sdb

Unter Umständen reboot damit die neue Partitionstabelle neu eingelesen wird.

Swap Partitionen formatieren und aktivieren

mkswap /dev/sda2
mkswap /dev/sdb2
swapon /dev/sda2
swapon /dev/sdb2

RAID:

Die mit dem Typ fd gekennzeichneten Partitionenspaare sollen nun zu RAID-Arrays zusammengefügt werden, dazu dient das Programm mdadm:

mdadm –create /dev/md0 –level 1 –raid-devices=2 /dev/sda1 /dev/sdb1
mdadm –create /dev/md1 –level 1 –raid-devices=2 /dev/sda3 /dev/sdb3

Fortschritt cat /proc/mdstat noch bequemer watch -n 10 „cat /proc/mdstat“
Die RAID-Devices md0 und md1 können jetzt bereits genutzt werden.

Das RAID-Gerät md0 soll als /boot dienen, daher formatieren wir es ganz konservativ mit ext2.

mkfs.ext2 /dev/md0

LVM:

Jetzt legen wir LVM über das RAID-Blockdevice md1 (sda3 und sdb3).
LVM fasst sogenannte Physical Volumes zu Volume Groups zusammen, in denen schließlich dann die Logical Volumes, also die schlussendlichen Dateisysteme entstehen. Hier in unserem Fall besteht die einzige Volume-Gruppe nur aus einem physischen Volume, nämlich dem RAID-Array md1. Mit dem Programm pvcreate (Physical Volume Create) schreibt LVM seine Signatur auf den Datenträger.

pvcreate /dev/md1

Da sich nun langsam sehr viele Schichten überlappen, ist Vorsicht geboten: Schnell wendet man Befehle auf die falsche Ebene an, und vertauscht LVM-Volumes, RAID-Array und Partitionen.

Aus dem physischen Volume erzeugen wir nun eine Volume Group namens main:

vgcreate main /dev/md1

Nun fehlen nur noch die logischen Volumes – um später auf sich ändernde Umstände vorbereitet zu sein, habe ich noch Platz in der Volume-Gruppe gelassen.

lvcreate -n root -L 2G main
lvcreate -n var -L 2G main

Die logischen Datenträger nun mit dem EXT3-Dateisystem formatiert:

mkfs.ext3 /dev/main/root
mkfs.ext3 /dev/main/var

Damit ist die Einrichtung der Festplatten abgeschlossen

Debian Installation:

Die neu angelegten Partitionen werden gemountet, beispielsweise unterhalb des Verzeichnisses /mnt

mount /dev/main/root /mnt

mkdir /mnt/boot
mkdir /mnt/var

mount /dev/md0 /mnt/boot
mount /dev/main/var /mnt/var/

Damit steht unterhalb von /mnt/ der künftige Dateibaum bereit

Debootstrap:

debootstrap –arch amd64 etch /mnt/ http://ftp.de.debian.org/debian

mount -o bind /sys /mnt/sys
mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev

chroot /mnt /bin/bash

passwd

vi /etc/fstab

proc /proc proc defaults 0 0
/dev/md0 /boot ext2 defaults 0 2
/dev/main/root / ext3 defaults,errors=remount-ro 0 1
/dev/main/var /var ext3 defaults 0 2
/dev/sda2 none swap defaults,pri=1 0 0
/dev/sdb2 none swap defaults,pri=1 0 0

vi /etc/network/interfaces

# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto eth0
iface eth0 inet static
address 78.46.43.xx
netmask 255.255.255.224
broadcast 78.46.43.255
gateway 78.46.43.xxx

# default route to access subnet
up route add -net 78.43.46.xxx netmask 255.255.255.224 gw 78.46.43.xxx eth0

# zusätzliche IP-Adressen
# IP-Adressen für Xen Maschinen auskommentieren!
# up ip addr add 78.47.115.xx/29 dev eth0
# up ip addr add 78.47.115.xx/29 dev eth0
# up ip addr add 78.47.115.xx/29 dev eth0
up ip addr add 78.47.115.xx/29 dev eth0
up ip addr add 78.47.115.xx/29 dev eth0
up ip addr add 78.47.115.xx/29 dev eth0

# Proxy-ARP für Xen aktivieren
post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp

Kernel und Bootloader:

apt-get install linux-image-2.6-xen-vserver-amd64
apt-get install lvm2 mdadm
apt-get install grub

grep -v rootfs /proc/mounts > /etc/mtab
grub-install –no-floppy /dev/md0
grub –no-floppy

/boot liegt auf (hd0,0) (d.h. sda1/sdb1), also liegt der Kernel hier: (hd0,0)/vmlinuz-2.6.18-4-k7 . Deswegen sagen wir in der grub shell:

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

Xen:

apt-get install ssh openssh-server vim-full
apt-get remove exim4 exim4-base lpr nfs-common portmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig lilo

apt-get install xen-hypervisor-3.0.3-1-amd64 xen-tools xen-linux-system-2.6.18-4-xen-vserver-amd64 linux-headers-2.6-xen-vserver-amd64 bridge-utils iproute

Das automatisch ausgeführte update-grub sollte /boot/grub/menu.lst eigentlich korekt konfigurieren,
es empfiehlt sich jedoch die Dateien /etc/fstab und /boot/grub/menu.lst nochmals zu kontrollieren, sonst muss der Hetzner Support aufs Knöpfchen drücken… 😉

Wer will kann gleich den RAM Hunger der Dom0 zügeln mit dom0_mem=128000 setzt man das Limit auf ca. 128 MB

/boot/grub/menu.st

# which config to boot from
default 0
fallback 0

# using boot partition from 1st disk
title 1st HDD – Xen 3.0.3-1-amd64 / Debian GNU/Linux, kernel 2.6.18-5-xen-vserver-amd64
root (hd0,0)
kernel /xen-3.0.3-1-amd64.gz dom0_mem=128000
module /vmlinuz-2.6.18-5-xen-vserver-amd64 root=/dev/mapper/main-root ro console=tty0
module /initrd.img-2.6.18-5-xen-vserver-amd64
savedefault

# using boot partition from 2nd disk
title 2st HDD – Xen 3.0.3-1-amd64 / Debian GNU/Linux, kernel 2.6.18-5-xen-vserver-amd64
root (hd1,0)
kernel /xen-3.0.3-1-amd64.gz dom0_mem=128000
module /vmlinuz-2.6.18-5-xen-vserver-amd64 root=/dev/mapper/main-root ro console=tty0
module /initrd.img-2.6.18-5-xen-vserver-amd64
savedefault

chroot verlassen mit

exit
reboot

Jetzt werden Sekunden zu Minuten in denen der Puls ordentlich steigt. Wenn die Maschine hochgekommen ist mit ssh anmelden

uname -a

Linux srv-xen-01 2.6.18-5-xen-vserver-amd64 #1 SMP Mon Dec 3 06:34:34 UTC 2007 x86_64 GNU/Linux

😀

Anpassen der xen-tools

vi /etc/xen-tools/xen-tools.conf

lvm = main

size = 100Gb # Disk image size.
memory = 1024Mb # Memory size
swap = 128Mb # Swap size
noswap = 1 # Don’t use swap at all for the new system.
fs = ext3 # use the EXT3 filesystem for the disk image.
dist = sarge # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.

kernel = /boot/vmlinuz-2.6.18-5-xen-vserver-amd64
initrd = /boot/initrd.img-2.6.18-5-xen-vserver-amd64

arch=i386

Jetzt kann die erste VM mit Hilfe der xen-tools erstellt werden:

xen-create-image –hostname xen-vm-01 –ip=78.47.115.xx –gateway=78.47.115.xx –netmask=255.255.255.248

Nachdem wir über den Luxus eines eigenen Subnetzes verfügen, ändern wir die XEN Netzwerkeinstellungen um unseren VMs im sog. Routed Modus und nicht Bridging Modues zu betreiben.

vi /etc/xen/xend-config.sxp

(network-script network-route)
(vif-script vif-route)

Jetzt können wir die VM starten und uns auf die Console verbinden.

xm create xen-vm-01.cfg
xm console xen-vm-01

Virtualisierung:

Der alte Server kann wie folgt virtualisiert werden. Am Besten bootet man den alten ins Rescuesystem und mounten seine Platten, ggf. /boot, /var usw. nicht vergessen und wieder mit chroot betreten.

Wer möchte kann vorher ein package cleanup bzw. aptitude autoclean durchführen.

Anschließend eine Datei .EXCLUDES mit folgendem Inhalt anlegen

lost+found/
/etc/mtab
/dev/*
/proc/*
/sys/*
/tmp/*
/var/tmp/*
/usr/tmp/*
/mnt/*

Die VM muss vorher natürlich heruntergefahren werden und die Platten müssen auf dem XEN Host gemountet werden.

Jetzt kann auf dem alten Server der rsync gestartet werden:

rsync -avz –numeric-ids -e „ssh“ –delete –delete-excluded –exclude-from=.EXCLUDES –progress /* root@XEN-Host:/mnt/xen-vm-01

Da bei den meisten gänigen Linux Distributionen udev läuft müssen wir noch ein paar spezielle Geräte anlegen dazu vorher das MAKEDEV vom Original in die VM kopieren:

scp root@srchost:/dev/MAKEDEV /mnt/disk/dev/

Anschließend auf dem XEN-Host die VM mittels chroot betreten und folgendes Kommando absetzen:

cd /dev; ./MAKEDEV null random urandom console zero

VHCS IP-Adresse ändern

Zuerst den vhcs2_daemon stoppen, der Rest erfolgt über die MySQL Datenbank.

mysql -u root -p vhcs2
mysql > UPDATE server_ips SET ip_number = „%NEUE_IP%“ WHERE ip_id = „%ALTE_IP%“
mysql > UPDATE subdomain SET subdomain_status = „change“ WHERE subdomain_status = „ok“;
mysql > UPDATE domain SET domain_status = „change“ WHERE domain_status = „ok“;
mysql > UPDATE domain_aliasses SET alias_status = „change“ WHERE alias_status = „ok“;

Jetzt manuell den Request Manager ausführen:

/var/www/vhcs2/engine/ispcp-rqst-mngr

Dann nochmal die Apache und Bind Konfiguration überprüfen und dann kann der VHCS Daemon wieder gestartet werden.


Backup von MySQL-Datenbanken

Um eine komfortable Sicherung aller MySQL Datenbanken eines Server zu erhalten,

eignet sich das Script automysqlbackup hervorragend.

Es hält verschiedene Stände des Backups vor, da es täglich, wöchentlich, monatlich und jährlich unterscheiden kann.

Es kann automatisch jede Datenbank sichern und jede Datenkbank wird in ein einzelnes File gesichert.

Die Konfiguration dabei ist denkbar einfach.

# Username to access the MySQL server e.g. dbuser
USERNAME=dbbackup

# Username to access the MySQL server e.g. password
PASSWORD=password

# Host name (or IP address) of MySQL server e.g localhost
DBHOST=localhost

# List of DBNAMES for Daily/Weekly Backup e.g. „DB1 DB2 DB3″
DBNAMES=“all“

# Backup directory location e.g /backups
BACKUPDIR=“/var/backup“

Der User benötigt lediglich das SELECT und LOCK Privilig auf die Datenkbanken.
Wird bei DBNAMES=“all“ konfiguirert werden sämtlich Datenbanken gesichert,
wird dies nicht gewünscht können natürlich auch nur einzelne Datenkbanken ausgewählt werden.

Um wertvollen Speicherplatz auf einem Root-Server zu sparen, können die Backups auch automatisch komprimiert werden

RHEL NIC Einstellungen

Unter Redhat gibt es die Möglichkeit die Geschwindigkeites und Duplex-Optionen für eine Netzwerkkarte bei jedem booten zu setzen,
außerdem lässt sich die Route für das APIPA Netz deaktivieren

ETHTOOL_OPTS=“speed 100 duplex full autoneg off“
NOZEROCONF=yes