Migration von OpenXen VMs in Citrix XenServer

xva.py  für die Migration laden http://www-archive.xenproject.org/files/xva/

In die Laufende VM von dem OpenSource Xen gehen (backup nicht vergessen):

fstab anpassen: sah dann wie folgt aus

/etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
/dev/xvda / ext3 noatime,nodiratime,errors=remount-ro 0 1

Linux Kernel installieren und Grub vorbereiten (grub muss nicht installiert werden)

apt-get install linux-image-amd64
 
mkdir /boot/grub/
cat > /boot/grub/menu.lst << EOF
default         0
timeout         2
title           Debian GNU/Linux
root            (hd0,0)
kernel          /vmlinuz root=/dev/xvda ro
initrd          /initrd.img
title           Debian GNU/Linux (recovery mode)
root            (hd0,0)
kernel          /vmlinuz root=/dev/xvda ro single
initrd          /initrd.img
EOF

VM runterfahren!

Auf dem Opensource Xen die config für die VM anpassen /etc/xen/….cfg Diese sah dann wie folgt aus:

#
# Configuration file for the Xen instance login, created
# by xen-tools 4.3.1 on Thu Jan 17 13:58:42 2013.
#
 
#
#  Kernel + memory size
 
#
kernel      = '/boot/vmlinuz-2.6.32-5-xen-amd64'
ramdisk     = '/boot/initrd.img-2.6.32-5-xen-amd64'
 
vcpus       = '1'
memory      = '128'
 
#
#  Disk device(s).
#
 
#root        = '/dev/xvda2 ro'
#disk        = [
#                  'file:/home/xen/domains/login/disk.img,xvda2,w',
#                  'file:/home/xen/domains/login/swap.img,xvda1,w',
#              ]
 
root        = '/dev/xvda ro'
disk        = [
                  'file:/home/xen/domains/login/disk.img,xvda,w',
              ]
 
 
 
 
#
#  Physical volumes
#
 
 
#
#  Hostname
#
name        = 'login'
 
#
#  Networking
#
vif         = [ 'ip=192.168.0.103 ,mac=00:16:3E:85:24:74' ]
 
#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Mirgration anstoßen:

./xva.py -c /etc/xen/vm1.cfg -n vm1 -s xenserver1 --username=root --password="mypassword"

Schließend wird einem vom Migrationtool vorgegeben welche Kernel files auf den Citrix xen müssen:

Auf dem Citrix Xen schon einmal den Ordner anlegen.

ID kann abweichen
mkdir -p /boot/guest/44fca35c-f561-11e3-8b4c-003005f965b8

Von dem OpenSource Xen nun die benötigten Files kopieren:

scp /boot/vmlinuz-2.6.32-5-xen-amd64 192.168.0.56:/boot/guest/44fca35c-f561-11e3-8b4c-003005f965b8/vmlinuz
scp /boot/initrd.img-2.6.32-5-xen-amd64 192.168.0.56:/boot/guest/44fca35c-f561-11e3-8b4c-003005f965b8/initrd

Diese files müssen auf alle Citrix-Xen Server im Cluster/Pool

TMUX

Tmux Basics

Neue Session

tmux attach

Session Parken

Strg + B + D

Session wieder aufnehmen

tmux attach

Shotcuts

Strg + b " - split pane horizontal.
Strg + b % - split pane verticaly.
Strg + b Pfeiltaste - pane wechseln.
Halten von Strg + b und Pfeiltasten - resize der pane.
Strg + b c - neuen Tab oder Fenster erstellen.
Strg + b n - nächstes Fenster/tab.
Strg + b p - voriges Fenster/tab.
Strg + B und L – wechsle zum vorherigen (last) Window/tab.
Strg + B und 1 ... »9« – wechsle zum Window/tab 1, 2, 3, ... 9.
Strg + B und W – zeige eine Übersicht aller Windows.
Strg + B und Shift + 7 Eine hängen gebliebene SSH verbindung cutten
Strg + B und [ scrollen mit den Pfeiltasten
Strg + b und Leertaste gibt default Templates für die Panes

Umbenennen

Strg + B :rename-window oder Strg+b und ,

Resize pane

Strg + B dann Ctrl + Pfeiltasten oder Strg + B gedrückhalten und dabei Pfeiltasten

Panes wechseln

Strg + b Feiltaste

Sessions oder Pane beenden

Strg + D

Syncrone Panes

Strg + b und :set-window-option synchronize-panes Alle Panes in einem Tab sind nun für eingaben Syncron

Activity Farben und Notify

angeführ von Strg +b :

# activity window
setw -g monitor-activity on
setw -g window-status-activity-bg red
setw -g window-status-activity-fg yellow

Automatische Umgebung anpassen

vim ~/.tmux.conf Hier können die Command wie im Livetmux übergeben werden: z.B.

# activity window
setw -g monitor-activity on
setw -g window-status-activity-bg red
setw -g window-status-activity-fg yellow

Farbigen Promt in der bash / color bash prompt

Folgende Kommandos benutze ich um mir den Prompt in der shell einzufärben, beim migrieren von 2 Systemen welche wegen der Migration gleich heißen kann man so gut unterscheiden.

Grün
export PS1="\e[0;32m[\u@\h \W]\$ \e[m "
Gelb
export PS1="\e[0;33m[\u@\h \W]\$ \e[m "
Rot
export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

 

Easy install Oracle Java in Ubuntu und Debian


echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
apt-get update
apt-get install oracle-java7-installer

Script: Monitoring CPU Temperatur unter Debian

Folgendes Script ermöglicht die Benachrichtigung per Mail bei überschrittener Temperaturschwelle ( basiert auf LM-Sensors ).


#!/bin/bash

# Email an alert should be sent to in the event the reading exceeds the trigger
 email=MAIL@MAILADDRESS.COM
 # Trigger amount in Celsuis
 temp_triggerCPU=65
 temp_triggerMB=55
 # Extract the reading of our desired sensor using the 'sensors' command
 tempCPU=$(sensors|grep 'Core0 Temp:' | awk '{print $3}' | cut -b2,3,4,5)
 tempMB=$(sensors|grep 'Core1 Temp:' | awk '{print $3}' | cut -b2,3,4,5)
 # Round our temperature reading to the nearest whole number
 rounded_tempCPU=$(echo $tempCPU | awk '{printf("%d\n",$1 + 0.5)}')
 rounded_tempMB=$(echo $tempMB | awk '{printf("%d\n",$1 + 0.5)}')
 # Compare the temperature reading with our alert trigger
 if [ $rounded_tempCPU -ge $temp_triggerCPU ]; then
 # Send an email alerting the admin!
 echo "Temperatur der CPU ist $tempCPU Celsius" | mailx -s "Xen-Server Temperatur warnung" $email
 else
 if [ $rounded_tempMB -ge $temp_triggerMB ]; then
 # Send an email alerting the admin!
 echo "Temperatur des MB ist $tempMB Celsius" | mailx -s "Xen-Server Temperatur warnung" $email
 else
 echo >> /dev/null
 fi
 fi

Rsync Backup von alten auf neuen Server

Kopie wo der Username und Groupname übernommen werden soll (muss auf Zielsystem vorhanden sein)

rsync -aH -v -e ssh --rsync-path 'sudo rsync' --partial --delete PATH/WELCHER/KOPIERT/WERDEN/SOLL USER@REMOTEHOST:/ZIELPATH/AUF/REMOTE

Wenn UID usw übernommen werden soll auch wenn der User auf dem Remotesystem nicht existiert.

rsync -aH -v -e ssh --rsync-path 'sudo rsync' --numeric-ids --partial --delete PATH/WELCHER/KOPIERT/WERDEN/SOLL USER@REMOTEHOST:/ZIELPATH/AUF/REMOTE