PROXMOX RAID Setup

Tips per l’installazione di PROXMOX con RAID software

Al momento del boot da CD è possibile stabilire la dimensione del disco e dello swap, questo è utile nel caso di setup su disci molto grandi o su dischi diversi da quelli che ospiteranno definitivamente il sistema.

 linux hdsize=200 maxroot=25 swapsize=8

LINK

A questo punto si effettua il setup sul primo dei dischi disponibili, di avvia e si aggiorna con i conseguenti reboot.

Quando il setup è completato si può seguire il precedente articolo “PROXMOX Tips” per poi passare alla migrazione del sistema su un RAID software in standard Linux (mdadm).

Si duplica il partizionamento dei dischi che faranno parte del RAID10

sfdisk -d /dev/sda | sfdisk -f /dev/sdb
sfdisk -d /dev/sda | sfdisk -f /dev/sdc
sfdisk -d /dev/sda | sfdisk -f /dev/sdd

si setta la tipologia di partizione in fd

sfdisk -c /dev/sdb 1 fd
sfdisk -c /dev/sdb 2 fd
sfdisk -c /dev/sdc 1 fd
sfdisk -c /dev/sdc 2 fd
sfdisk -c /dev/sdd 1 fd
sfdisk -c /dev/sdd 2 fd

E si creano i device RAID10 senza perdere tempo nella sincronizzazione

mdadm --create --level=1 --raid-devices=4 --chunk=128 --metadata=0.9 /dev/md126 missing /dev/sdb1 /dev/sdc1 /dev/sdd1 --assume-clean
mdadm --create --level=10 --raid-devices=4 --chunk=128 /dev/md127 missing /dev/sdb2 /dev/sdc2/dev/sdd2 --assume-clean

Formattiamo /dev/md126, che diventerà la /boot, e copiamo il contenuto di /boo

mkfs.ext3 /dev/md126 -Lboot
mkdir /mnt/tmp
mount /dev/md126 /mnt/tmp
rsync -av /boot /mnt/tmp/
umount /mnt/tmp

Sostituire in /etc/fstab la voce UUID=… con LABEL=boot

LABEL=boot /boot ext3 defaults 0 1

A questo punto tentiamo un reboot.

Appena ripartito il sistema si esegue in sequenza…

echo 'GRUB_DISABLE_LINUX_UUID=true' >> /etc/default/grub
echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub
echo raid1 >> /etc/modules
echo raid1 >> /etc/initramfs-tools/modules
grub-install /dev/sda
grub-install /dev/sdb
grub-install /dev/sdc
grub-install /dev/sdd
grub-install /dev/md126
update-grub
update-initramfs -u

Uniformiamo sda alla configurazione in RAID10 e agganciamola al RAID

sfdisk -c /dev/sda 1 fd
mdadm --add /dev/md126 /dev/sda1

Terminata la sincronizzazione si può reboottare.

Ripartita la macchina possiamo sportare il contenitore LVM.

pvcreate /dev/md127
vgextend pve /dev/md127
pvmove /dev/sda2 /dev/md127
vgreduce pve /dev/sda2
pvremove /dev/sda2
sfdisk -c /dev/sda 2 fd
mdadm --add /dev/md127 /dev/sda2

Si attende la sincronizzazione e si riavvia la macchina ed il sistema si trova configurato su un sottosistema dischi affidabile e veloce.

PROXMOX tips

Tips per la personalizzazione di PROXMOX

Al momento del boot da CD è possibile stabilire la dimensione del disco e dello swap, questo è utile nel caso di setup su disci molto grandi o su dischi diversi da quelli che ospiteranno definitivamente il sistema.
Basta digitare il seguente comando.

 linux hdsize=200 maxroot=25 swapsize=8

Pacchetti da installare preliminarmente

apt-get install acpid vim mdadm dbench smartmontools irqbalance iotop tcpdump htop bmon

LINK

per la personalizzazione del prompt della bash usiamo questo, basta copiarlo in un file in /etc/bash_completion.d/

prompt-bash

echo -ne "\033]0; ${USER}@${HOSTNAME} +${SHLVL} @${SSH_TTY/\/dev\/} - `uptime` \007"
declare -x PROMPT_COMMAND="echo -en \"\\033[m\\033[38;5;2m\"\$(( \`sed -n \"s/MemFree:[\\t ]\\+\\([0-9]\\+\\) kB/\\1/p\" /proc/meminfo\`/1024))\"\\033[38;5;22m/\"\$((\`sed -n \"s/MemTotal:[\\t ]\\+\\([0-9]\\+\\) kB/\\1/Ip\" /proc/meminfo\`/1024 ))MB\"\\t\\033[m\\033[38;5;55m\$(< /proc/loadavg)\\033[m\""
declare -x PS1="\\[\\e[m\\n\\e[1;30m\\][\$\$:\$PPID \\j:\\!\\[\\e[1;30m\\]]\\[\\e[0;36m\\] \\T \\d \\[\\e[1;30m\\][\\[\\e[1;34m\\]\\u@\\H\\[\\e[1;30m\\]:\\[\\e[0;37m\\]\${SSH_TTY} \\[\\e[0;32m\\]+\${SHLVL}\\[\\e[1;30m\\]] \\[\\e[1;37m\\]\\w\\[\\e[0;37m\\] \\n(\$SHLVL:\\!)\\\$ "

LINK

mentre per il .bashrc

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -alh'
alias ll='ls $LS_OPTIONS -alht'
alias l='ls $LS_OPTIONS -l'
alias ..='cd ..'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ports='netstat -tulanp'
alias pstree="pstree -G"
alias t="tail -f /var/log/messages"

 

Su di un HP ML310eGen8, cpu  Intel(R) Xeon(R) CPU E3-1220 V2 @ 3.10GHz, con quattro dischi SATA in RAID10 otteniamo con pveperf

# pveperf
CPU BOGOMIPS: 24745.92
REGEX/SECOND: 1450123
HD SIZE: 19.69 GB (/dev/mapper/pve-root)
BUFFERED READS: 262.38 MB/sec
AVERAGE SEEK TIME: 7.53 ms
FSYNCS/SECOND: 1470.62
DNS EXT: 54.63 ms
DNS INT: 62.04 ms (netlite.it)

Ottimizzazione della  gestione dell’I/O da inserire in /etc/rc.conf o /etc/rc.local

#!/bin/bash
#
# rc.local
echo 0 > /proc/sys/kernel/hung_task_timeout_secs
echo 0 > /proc/sys/vm/swappiness
DISKS=$(find /sys/block/ -iname "sd*")
for DISK in $DISKS; do
        echo "Disk $DISK..."
        echo 0 > $DISK/queue/add_random;
        echo 0 > $DISK/queue/rq_affinity;
        #echo cfq > $DISK/queue/scheduler;
        echo noop > $DISK/queue/scheduler;
        #cat $DISK/queue/scheduler;
done
true > /etc/motd
if [ -e /etc/lsb-release ]
then
        grep DISTRIB_DESCRIPTION /etc/lsb-release | sed 's/^DISTRIB_DESCRIPTION="\(.*\)"$/\1/' > /etc/motd
fi
uname -a >> /etc/motd
echo >> /etc/motd
echo "server    : `cat /root/.mdg 2>/dev/null`" >> /etc/motd
echo "ip        : `cat /etc/network/interfaces | grep "address" | head -n 1 | cut -f 3 -d " "`"  >> /etc/motd
echo "hostname  : `hostname`" >> /etc/motd
echo >> /etc/motd
/bin/cat /etc/motd > /etc/issue

Scaricherei QUI i drivers più recenti per i sistemi Windows

cd /var/lib/vz/template/iso/
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/virtio-win-0.1-74.iso

Aggiungerei in /etc/default/grub l’elevator più performante ed aggiornerei il grub2

GRUB_CMDLINE_LINUX_DEFAULT="quiet elevator=deadline"
update-grub

In alcune migrazioni (Centos 5.X) i drivers virtio non sono presenti nell’initrd quindi il sistema va in crash al momento del boot per la mancanza della root. In seguente comando rigenera l’initrd con i moduli mancanti.

mkinitrd --with virtio_net --with virtio_pci --with virtio_blk -f /boot/initrd-$(uname -r).img $(uname -r)

Dalla versione 3.1 di Proxmox è presente un fastidioso alert presentato ad ogni login, pur comprendendone le ragioni trovo fastidioso che mi venga ricordato ogni volta.
Dopo aver letto l’articolo LINK ho scritto questo comando per evitare che l’alert appaia.
Ad ogni aggiornamento potrebbe essere necessario riapplicarlo o modificarlo leggermente (grazie Federico per la segnalazione).

LINEA=$(cat -n /usr/share/pve-manager/ext4/pvemanagerlib.js | grep "if (data.status !== 'Active') {" | awk '{print $1}')
sed -i "${LINEA}s/.*/if (false) {/" /usr/share/pve-manager/ext4/pvemanagerlib.js

A volte può essere utile limitare la velocità di lettura per i backup di proxmox (vzdump) al fine di non saturare eventuali storage condivisi o non sovraccaricare l’hardware locale.
Dopo aver letto l’ articolo LINK riporto questa modifica al file /etc/vzdump.conf che limita a 40Mb/sec la lettura dai dispositivi locali.

bwlimit 40000

Backup differenziali con proxmox (vzdump).
Ho trovato QUESTO interessante articolo.

Quali drivers installare per i diversi sistemi operativi LINK.

In caso i componenti di un Cluster Proxmox si isolino le macchine virtuali continueranno a funzionare correttamente ma dall’interfaccia web non sarà più possibile amministrare i nodi remoti e non sarà possibile creare o eliminare VM.
Considerate di disabilitare l’alta affidabilità (HA) prima di procedere.
Per risolvere il problema è sufficiente eseguire i seguenti comandi su tutti i nodi in sequenza, senza un particolare ordine:

/etc/init.d/pve-cluster restart
/etc/init.d/cman restart
/etc/init.d/pvedaemon restart
/etc/init.d/pvestatd restart
/etc/init.d/pve-manager restart
/etc/init.d/pve-cluster restart

Questo simula un riavvio dei nodi SENZA riavviare le VM.

Andrea Gagliardi – netlite.it