Speedtest Internet da console Linux
Test di velocità link Internet xDSL da console Linux
Spesso è utile valutare la velocità e la latenza di un link ad internet di un server Linux al quale non si ha accesso diretto tramite un desktop remoto. Tramite questo tool è possibile utilizzare l’infrastruttura geografica di Speedtest.net ed ottenere una valutazione oggettivamente valida.
# wget https://github.com/sivel/speedtest-cli/raw/master/speedtest.py --no-check-certificate # chmod a+rx speedtest_cli.py # ./speedtest_cli.py
Lo script in python si collega al nodo più prossimo ed effettua un test di upload, uno di download e riporta anche la latenza in millisecondi.
root@farm ~ # ./speedtest_cli.py Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Hetzner Online AG (XX.XX.XX.XX)... Selecting best server based on ping... Hosted by Vodafone DE (Frankfurt) [100.73 km]: 6.358 ms Testing download speed........................................ Download: 87.87 Mbit/s Testing upload speed.................................................. Upload: 66.08 Mbit/s
E’ possibile condividere il test aggiungendo –share al comando e si ottiene questo:
Andrea Gagliardi – netlite.it
- Published in Sistemistica, Tips & Tricks
PROXMOX tips venet e /usr/portage
Tips per la personalizzazione di contenitori (CT) PROXMOX
Mount automatico di /usr/portage
Utilizzando Gentoo come distribuzione Linux all’interno dei contenitori OpenVZ può essere utile condividere tra i contenitori la /usr/portage/ in modo da poter sincronizzarla tramite la macchina host e ridurre drasticamente l’occupazione di spazio disco.
Per ottenere questo è possibile far svolgere queste operazioni ad ogni boot della VM creando o modificando tramite shell ed editor di testo lo script {VMID}.mount nella stessa directory dove è presente il file {VMID}.conf.
Spostiamoci quindi nella directory:
cd /etc/pve/nodes/$(hostname -s)/openvz/
E creiamo (o modifichiamo) il file:
vim {VMID}.mount
Inserendo queste righe di codice:
#!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} SRC=/var/lib/vz/portage DST=/usr/portage if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC}
Lo script è molto comprensibile e non contiene alcun riferimento alla singola macchina virtuale per cui è possibile copiarlo per ogni macchina Gentoo ospitata.
Al termine è necessario cambiare i diritti di esecuzione:
chmod 700 {VMID}.mount
Nel caso, ad esempio, di volere mantenere lo storage ed il sistema su supporto diversi per questioni di spazio o performance può essere utile aggiungere allo script il mount anche di questi mountpoint:
#!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} SRC=/var/lib/vz/portage DST=/usr/portage if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC} SRC=/storage/${VEID}/home DST=/home if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC}
Qusto permette di avere la home di ogni contenitore su di uno storage separato.
Utilizzo questo sistema, ad esempio, per avere lo storage su di un filesystem ZFS con compressione realtime attiva.
Utilizzo delle interfaccie veth al posto di venet
Può essere necessario utilizzare caratteristiche di rete che le interfaccie venet non forniscono (ad esempio ARP) QUI.
Seguendo quindi la guida QUI, dopo aver configurato tramite l’interfaccia web di PROXMOX la nuova scheda di rete questa risulta correttamente aggiunta al bridge di rete ma la VM può risultare isolata.
#!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} SRC=/var/lib/vz/portage DST=/usr/portage if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC} SRC=/storage/${VEID}/home DST=/home if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC} IP="XX.XX.XX.XX" /sbin/ip route del $IP dev vmbr0 2>/dev/null /sbin/ip route add $IP dev vmbr0 2>/dev/null
Alla fine dello script si nota la rimozione e l’aggiunta di una rotta verso il bridge che ospita la VM con l’indirizzo XX.XX.XX.XX.
Lo script purtroppo contiene una configurazione specifica per cui è necessario modificarlo per utilizzarlo per altre VM.
Esecuzione comandi all’interno di un Contenitore (CT) OpenVZ
Per eseguire comandi in un contenitore OpenVZ è possibile utilizzare il comando:
# vzctl exec 103 /etc/init.d/sshd status openssh-daemon is stopped # vzctl exec 103 /etc/init.d/sshd start Starting sshd: [ OK ]
Andrea Gagliardi – netlite.it
- Published in Sistemistica, Tips & Tricks, Virtualizzazione
PERC H300 megaraid_sas su Debian PROXMOX
Installando un sistema Linux Server, tipo Proxmox (Debian), è possibile monitorare lo stato di funzionamento del controller RAID PERC H700 alias LSI MegaRAID.
Seguendo le indicazioni sul sito hwraid.le-vert.net
E’ possibile aggiungere in /etc/apt/sources.list il repository
deb http://hwraid.le-vert.net/debian wheezy main
ed aggiungere la chiave:
wget -O - http://hwraid.le-vert.net/debian/hwraid.le-vert.net.gpg.key | apt-key add
ad un successivo apt-get update verranno resi disponibili alcuni tools
apt-get install megaclisas-status megacli
è possibile invocare direttamente megaclisas-status
# megaclisas-status -- Controller informations -- -- ID | Model c0 | PERC H700 Integrated -- Arrays informations -- -- ID | Type | Size | Status | InProgress c0u0 | RAID10 | 2454G | Optimal | None -- Disks informations -- ID | Model | Status c0u0p0 | SEAGATE ST900MM0006 LS08S0N08XHB | Online, Spun Up c0u0p1 | SEAGATE ST900MM0006 LS08S0N08896 | Online, Spun Up c0u0p0 | SEAGATE ST900MM0006 LS08S0N08X1K | Online, Spun Up c0u0p1 | SEAGATE ST900MM0006 LS08S0N08875 | Online, Spun Up c0u0p0 | SEAGATE ST900MM0006 LS08S0N07EBR | Online, Spun Up c0u0p1 | SEAGATE ST900MM0006 LS08S0N084P0 | Online, Spun Up
oppure fare affidamento sul demone già attivo dopo l’installazione e far rilevare la presenza in /var/run del file megaclisas-statusd.status
Andrea – netlite.it
- Published in Sistemistica, Tips & Tricks, Virtualizzazione
Bond tra interfacce di rete in Proxmox
Avendo più interfacce di rete disponibili ed utilizzando switch dotati di link aggregation è possibile unire le interfacce in un bond sul quale appoggiare il bridge.
Questo deve essere configurato manualmente in quanto l’interfaccia web di proxmox non prevede questo utilizzo.
/etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual bond-master bond0 mtu 9000 auto eth1 iface eth1 inet manual bond-master bond0 mtu 9000 auto bond0 iface bond0 inet manual mtu 9000 bond-mode 802.3ad bond-miimon 100 bond-slaves none bond-lacp-rate 4 auto vmbr0 iface vmbr0 inet static mtu 9000 address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 bridge_ports bond0 bridge_stp off bridge_fd 0 post-up route add -net 10.1.1.0 netmask 255.255.255.0 gw 192.168.2.254 pre-down route del -net 10.1.1.0 netmask 255.255.255.0 gw 192.168.2.254
Il traffico di rete si distribuirà in modo automatico (e non bilanciato) sulle due interfacce aumentando sensibilmente la banda di rete utilizzata.
# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:26:55:ec:ef:b6 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:82172110 errors:0 dropped:0 overruns:0 frame:0 TX packets:366333813 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:32549246640 (30.3 GiB) TX bytes:1142227109649 (1.0 TiB) Interrupt:24 Memory:feb80000-feba0000 # ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:26:55:ec:ef:b6 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:543001774 errors:0 dropped:0 overruns:0 frame:0 TX packets:366337469 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:237725677253 (221.3 GiB) TX bytes:469115298143 (436.8 GiB)
Andrea – Netlite.it
- Published in Sistemistica, Tips & Tricks, Virtualizzazione
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
per la personalizzazione del prompt della bash usiamo questo, basta copiarlo in un file in /etc/bash_completion.d/
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:\\!)\\\$ "
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
- Published in Sistemistica, Tips & Tricks, Virtualizzazione