Xen Setup · 10 min read · Dec 07, 2025
Come configurare Xen 4.3 su Debian Wheezy (7.0.2) e poi aggiornare a Jessie
Come configurare Xen 4.3 su Debian Wheezy (7.0.2) e poi aggiornare a Jessie
Versione 1.0
Autore: Peter Okupski
Questo sarà un rapido e semplice setup di XEN (dom0-hypervisor) e un sistema virtuale (domU-guest). Volevo testare XEN come mia seconda esperienza dopo VMware e poiché molte pagine web sono obsolete e hanno molti bug e errori fissi. Ho deciso di provarlo con XEN.
Nota importante:
Chi trarrà beneficio da questo tutorial: Solo i principianti che desiderano testare macchine virtuali semplici senza alcun vero appliance Cloud come XenOrchestra, Cloudstack, Opencloud e qualsiasi cosa che utilizzi XAPI per Xen Cloud Platform (XCP). Spero che questo faccia risparmiare tempo a chiunque abbia bisogno di un vero appliance cloud con almeno un’interfaccia web e poche funzioni per allocazione di storage/memoria/CPU, che al momento non possono essere applicate a un semplice Xen Xypervisor. (o è troppo lavoro:)
Chi non ne trarrà beneficio: Per qualsiasi utente/azienda che ha bisogno di alta disponibilità e un vero appliance Cloud.
Incoraggio tutti voi neofiti di Xen a guardare questo video per avere una sensazione e comprensione di Xen.
Il tutorial sarà suddiviso nelle seguenti sezioni:
- Installazione semplice di Debian con setup LVM veloce e semplice
- Aggiornamento a Jessie, così saremo aggiornati con le ultime correzioni di XEN
- Installazione di XEN 4.3
- Alcuni suggerimenti di ottimizzazione di XEN
- Configurazione semplice del bridge di XEN
- Configurazione di XEN per utilizzare template per creare host
- Creazione del primo sistema domU Guest con una riga;)
1. Installazione semplice di Debian con setup LVM
Suggerisco di utilizzare ISO non ufficiali (ma di Debian) che hanno già il firmware non libero necessario per le schede di rete Broadcom e altre, che potrebbero interrompere questo bel e semplice processo.
ISO non ufficiali di Debian
Dopo la configurazione iniziale dell’installer di debian, si prega di scegliere la configurazione delle partizioni personalizzata come qui sotto: ho creato le seguenti partizioni:
| Punto di mount | Dimensione | Commento |
| /boot | 200 MB | (Primaria) (Posizione per la nuova partizione: Inizio) (ext3) (Flag avviabile: attivo <– importante, altrimenti il tuo sistema non si avvierà!) |
| swap | 1GB | (Logica) (Posizione per la nuova partizione: Inizio) (la memoria dom0 sarà ridotta a 512M) |
| / | 6GB | (Logica) (Posizione per la nuova partizione: Inizio) (ext3) |
Possiamo impostare il resto del disco come LVM. Dobbiamo accettare le modifiche e scriverle su disco.
La tua installazione dovrebbe terminare, e devi scrivere grub nel tuo disco. Dopo di che l’installazione si riavvierà.
Dopo aver installato, le tue partizioni dovrebbero apparire così:
root@xen-dom0:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 6.0G 2.0G 2.4G 30% /
udev 10M 0 10M 0% /dev
tmpfs 38M 268K 38M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 266M 0 266M 0% /run/shm
/dev/sda1 180M 28M 140M 17% /bootOra installeremo lvm e creeremo il primo volume fisico.
apt-get install lvm2pvcreate /dev/sda7| Volume fisico "/dev/sda7" creato con successo root@xen-dom0:/etc/xen-tools# pvscan PV /dev/sda7 lvm2 [273.51 GiB] Totale: 1 [273.51 GiB] / in uso: 0 [0 ] / in nessun VG: 1 [273.51 GiB] root@xen-dom0:/etc/xen-tools# pvdisplay "/dev/sda7" è un nuovo volume fisico di "273.51 GiB" --- NUOVO Volume fisico --- Nome PV /dev/sda7 Nome VG Dimensione PV 273.51 GiB Allocabile NO Dimensione PE 0 Totale PE 0 PE liberi 0 PE allocati 0 UUID PV 1vKp2c-KbmM-w8Ql-noOe-U00J-hlr0-FsKwOM |
È tempo di creare un gruppo di volumi (vg0) (nota il cambiamento delle lettere p/v! prima di creare)
vgcreate vg0 /dev/sda7| Gruppo di volumi "vg0" creato con successo |
Controlliamo se è andato tutto bene.
vgdisplay| --- Gruppo di volumi --- Nome VG vg0 ID di sistema Formato lvm2 Aree di metadati 1 Numero di sequenza metadati 1 Accesso VG lettura/scrittura Stato VG ridimensionabile MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 Dimensione VG 273.51 GiB Dimensione PE 4.00 MiB Totale PE 70018 PE Allocati / Dimensione 0 / 0 PE Liberi / Dimensione 70018 / 273.51 GiB UUID VG 2a3kn9-DvVA-3Qac-g4Wz-f2Xo-s5hk-Yh5fBc |
Dopo aver impostato LVM, possiamo procedere a ripulire il nostro dom0 da quei pacchetti non necessari:
apt-get remove bsd-mailx exim4 exim4-base exim4-daemon-light nfs-commonE poi possiamo installare alcuni di cui abbiamo bisogno/potremmo aver bisogno:
apt-get install mc screen ssh debootstrap python iproute bridge-utils libcurl3-devDopo l’installazione, Debian 7.0.2 occupa circa 760MB.
| rootfs 4.6G 764M 3.7G 18% / |
2. Aggiornamento a Debian Jessie
Ora possiamo fare un aggiornamento a testing (Jessie) poiché abbiamo bisogno che XEN sia il più fresco possibile.
Usa questo generatore - ti farà risparmiare tempo:) e alcuni errori. Oppure cambia semplicemente “wheezy” in “jessie”, e “stable” in “testing” in /etc/apt/sources.list.
/etc/apt/sources.list
| deb http://ftp.pl.debian.org/debian testing main contrib non-free deb-src http://ftp.pl.debian.org/debian testing main contrib non-free deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb-src http://ftp.debian.org/debian/ jessie-updates main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free |
Primo:
apt-get update; apt-get -y upgradeDurante l’aggiornamento ti verrà chiesto di riavviare i servizi - scegli Sì. Successivamente scaricheremo tutti i .deb di cui abbiamo bisogno (solo per motivi di sicurezza):
apt-get -y --download-only dist-upgradePoi possiamo procedere all’aggiornamento reale. È meglio riavviare dopo questo, così il kernel cambierà da 3.2 a 3.11.
apt-get -y dist-upgradeRipulire:
apt-get clean; apt-get autoclean;apt-get autoremove3. Installazione di XEN 4.3
Prima dovremmo controllare se la nostra CPU supporta la virtualizzazione hardware
egrep '(vmx|svm)' --color=always /proc/cpuinfoL’output dovrebbe apparire così
root@xxxx:~# egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriority
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi flexpriorityPoi possiamo procedere all’installazione di XEN: l’hypervisor, il kernel consapevole di xen e gli strumenti xen. Questo può essere fatto tramite un metapacchetto:
apt-get install xen-linux-system xen-toolsDebian Wheezy utilizza Grub 2 e per impostazione predefinita elenca prima i kernel normali, e solo dopo elenca l’hypervisor Xen e i suoi kernel. Puoi cambiare questo per far sì che Grub 2 preferisca avviare Xen, cambiando la priorità dello script di configurazione di Grub di Xen (20_linux_xen) per essere superiore alla configurazione standard di Linux (10_linux). Questo può essere fatto più facilmente usando dpkg-divert:
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xenDopo qualsiasi aggiornamento alla configurazione di Grub, devi applicare la configurazione eseguendo:
update-grub4. Ottimizzazione di Xen
- Imposta la memoria Dom0 a 512Mb e disabilita il Ballooning in modo che i DomUs non prendano mai la memoria di Dom0
- Impedire che le macchine virtuali su volumi logici appaiano nel menu di avvio
- Disabilitare il salvataggio e il ripristino di Xendomains
- Limitare solo la prima CPU per dom0
1. Imposta la memoria Dom0 a 512Mb e disabilita il ballooning
/etc/xen/xend-config.sxp
| (dom0-min-mem 512) (enable-dom0-ballooning no) |
2. Impedire che le macchine virtuali su volumi logici appaiano nel menu di avvio
Modifica grub:
/etc/default/grub
| #alloca memoria a dom0 GRUB_CMDLINE_XEN="dom0_mem=512M" # Disabilita OS prober GRUB_DISABLE_OS_PROBER=true |
update-grub;reboot3. Disabilitare il salvataggio e il ripristino di Xendomains
/etc/default/xendomains
| #XENDOMAINS_SAVE=/var/lib/xen/save XENDOMAINS_SAVE= #XENDOMAINS_RESTORE=true XENDOMAINS_RESTORE=false |
4. Limitare dom0 solo alla prima CPU
Per impostazione predefinita, tutte le CPU sono condivise tra dom0 e tutti i domU (ospiti). Potrebbe compromettere la responsabilità di dom0 se gli ospiti consumano troppo tempo CPU. Per evitare ciò, è possibile concedere un (o più) core di processore a dom0 e anche fissarlo a dom0.
Aggiungi le seguenti opzioni a /etc/default/grub per allocare un core CPU a dom0:
/etc/default/grub
| # Parametri di avvio Xen per tutti i boot di Xen GRUB_CMDLINE_XEN="dom0_mem=512M dom0_max_vcpus=1 dom0_vcpus_pin" # Disabilita OS prober GRUB_DISABLE_OS_PROBER=true |
Ricorda di eseguire update-grub dopo queste modifiche!
update-grubFai anche tali modifiche in /etc/xen/xend-config.sxp:
/etc/xen/xend-config.sxp
| (dom0-cpus 1) |
!! Prima di riavviare controlla se hai eseguito update-grub e poi riavvia il tuo server !!
5. Configurazione semplice del bridge di XEN
La maggior parte delle configurazioni utilizzerà una configurazione BRIDGEed, e questo è sufficiente se stai pianificando un ambiente semplice, ma ti incoraggio vivamente a utilizzare OpenVSwitch se hai bisogno di VLAN o di qualsiasi ACL ecc.
Ecco la versione facile per un semplice bridge:
apt-get install bridge-utilsDobbiamo modificare: /etc/network/interfaces
/etc/network/interfaces
| ##L'interfaccia di rete loopback auto lo iface lo inet loopback iface eth0 inet manual auto xenbr0 iface xenbr0 inet static address 10.0.9.100 netmask 255.255.255.0 network 10.0.9.0 broadcast 10.0.9.255 gateway 10.0.9.1 # le opzioni dns-* sono implementate dal pacchetto resolvconf, se installato dns-nameservers 10.0.9.2 dns-search yourdomain.net bridge_ports eth0 #altre opzioni potenzialmente utili in un ambiente virtualizzato bridge_stp off # disabilita il protocollo Spanning Tree bridge_waitport 0 # nessun ritardo prima che una porta diventi disponibile bridge_fd 0 # nessun ritardo di forwarding |
Dopo di che dovresti riavviare la rete con
/etc/init.d/networking restartE controllare se il tuo bridge è attivo
brctl show| bridge name bridge id STP enabled interfaces xenbr0 8000.001a6479cd8c no eth0 |
6. Configurazione di XEN-Tools per utilizzare template per le tue macchine virtuali (ospiti-domU)
Ora creiamo la nostra prima immagine di nuovo domU con un template. Dobbiamo modificare il file:
/etc/xen-tools/xen-tools.conf
| lvm = vg0 # il tuo gruppo di volumi che abbiamo creato prima install-method = debootstrap # Questo avvierà l'installer di debian size = 10Gb # Dimensione dell'immagine del disco. memory = 512Mb # Dimensione della memoria swap = 2Gb # Dimensione dello swap noswap = 1 # Non utilizzare affatto lo swap per il nuovo sistema. fs = ext4 # usa il filesystem EXT3 per l'immagine del disco. dist = `xt-guess-suite-and-mirror --suite` # Distribuzione predefinita da installare. image = sparse # Specifica immagini sparse vs. immagini disco complete. gateway = 10.0.9.1 # Il tuo gateway, che dom0 sta anche usando con il bridge netmask = 255.255.255.0 # nessun commento necessario;) broadcast = 10.0.9.255 # Il tuo broadcast bridge = xenbr0 # Qui dovremmo usare il bridge che abbiamo creato, xen lo trasformerà in eth0 su domU. cachedir = /var/cache/xen-tools/archives/ # Luogo per *.debs per uso futuro passwd = 1 #Questo chiederà una password root da creare sulla nuova macchina kernel = /boot/vmlinuz-`uname -r` #Utilizzerà lo stesso kernel che dom0 sta usando (questo è cruciale, per evitare problemi) initrd = /boot/initrd.img-`uname -r` #Stessa cosa qui per initrd mirror = `xt-guess-suite-and-mirror --mirror` mirror = ftp://ftp.pl.debian.org/debian/ #Inserisci il tuo mirror di debian ext3_options = noatime,nodiratime,errors=remount-ro #Opzioni semplici da applicare per la nuova macchina ext2_options = noatime,nodiratime,errors=remount-ro xfs_options = defaults reiserfs_options = defaults btrfs_options = defaults boot = 1 # Vogliamo avviare la nostra nuova macchina dopo averla creata. Certo che sì! |
7. Creazione del primo domU Guest
Ora possiamo creare il nostro primo host domU:
xen-create-image --hostname domU-test --dist=jessie --vcpus=4 --ip=10.0.9.101Questo richiederà circa 3-4 minuti, a seconda della velocità della tua connessione, CPU e velocità del disco. Una volta completato possiamo controllare se funziona.
xm list| Nome ID Mem VCPUs Stato Tempo(s) Domain-0 0 512 1 r----- 93.8 domU-test 1 512 4 -b---- 23.9 |
Ti consiglio di leggere xen-create-image –help poiché ti darà un’idea di cosa puoi cambiare fornendogli opzioni per creare qualsiasi distribuzione. Esempio: eseguire comandi dopo e tutte le altre cose di cui potresti aver bisogno. C’è anche un’opzione per generare un’immagine e usarla per un sistema-template pronto per il lancio, senza dover eseguire l’installer per 3 minuti ogni volta.
Ora puoi accedere al tuo nuovo host con ssh.
Di seguito puoi trovare i link che ho utilizzato in questo tutorial:
- Xen nella Wiki di Debian
- OpenVSwitch
- Xen 4 in Debian Wheezy
- Ottimizzazione di XEN - Wiki di XEN
- Generatore di fonti Apt
- Migliori pratiche di Xen
- Come utilizzare LVM
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.