Virtualizzazione · 8 min read · Dec 07, 2025
Xen Su Debian Wheezy Con LVM
Xen Su Debian Wheezy Con LVM
Autore: Jason Norwood-Young jason [at] freespeechpub dot co dot za
Quindi hai bisogno di un server serio. Vuoi un sacco di server, con un paio di sistemi operativi, che eseguono i loro siti folli facendo cose giuste, servendo il mondo e rendendolo un posto migliore. C’è solo un problema: sei povero. Troppo povero per avviare server AWS e server Rackspace senza contare le ore in cui sono attivi, e piangere ogni volta che ricevi la bolletta.
Non preoccuparti - puoi avere ciò che stai cercando, per molto meno di quanto costino quei server cloud, specialmente se hai bisogno che siano attivi 24/7/365. Con la virtualizzazione, puoi usare un grande server per ospitare molti piccoli server. È quasi come avere il tuo cloud!
Questo tutorial copre l’installazione di Xen e della tua prima macchina virtuale su Debian Wheezy. Se stai usando Squeeze, dai un’occhiata al tutorial di Falko Timme, che ho usato come ispirazione per il mio (anche se facciamo le cose in modo leggermente diverso).
0. Scegliere un server su cui eseguire questo
Quindi io uso Hetzner Germania. Perché? Perché sono dannatamente economici. Con un ambiente virtualizzato, ciò che stai cercando è molta memoria. Più memoria hai, più sistemi virtuali puoi stipare lì, e più grandi possono essere. Ho due server da 32 GB, che mi permettono di eseguire circa 8 server tra 1 GB e 4 GB ciascuno senza problemi. Questa non è una raccomandazione di alcun tipo e non ho alcuna relazione con Hetzner a parte il fatto di sborsare i miei soldi guadagnati con fatica a loro ogni mese.
Ciò che stai cercando è un fornitore che ti dia un server root bello e economico, con molta e molta memoria, e la possibilità di riavviare e recuperare da remoto nel caso tu faccia davvero un pasticcio.
1. Installare Xen
Presumo che tu abbia installato Wheezy, che sei loggato come root, e che hai fatto tutti gli aggiornamenti e gli upgrade di apt-get necessari. Quindi iniziamo!
apt-get install xen-linux-system xen-toolsQuesto installa Xen, alcune cose ad alta memoria, e i molto utili xen-tools che useremo per creare le nostre immagini virtuali più tardi.
Successivamente vogliamo dire a Xen come gestire la rete. Ho una piccola confessione da fare: non sono un esperto di rete. In effetti, detesto la rete. È la tubatura di Internet, e rifiuto di piegarmi e mostrare la mia crepa da idraulico. E la rete Xen è complicata, con percorsi e ponti strani e chissà cos’altro. Quindi faccio solo la soluzione più semplice, veloce e sporca: la metto in modalità NAT. (No, non so davvero cosa sia il NAT, ma funziona, va bene? Smetti di fare domande.)
pico /etc/xen/xend-config.sxpDecommenta le seguenti due righe:
(network-script network-nat)
(vif-script vif-nat)Anche se abbiamo installato Xen, in realtà non è in esecuzione. Xen gira a livello di kernel, il che significa che devi effettivamente avviare Xen.
Prima, dobbiamo dire a Debian di avviare Xen invece del suo solito kernel:
dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen update-grubPoi dobbiamo riavviare:
rebootSo che non vedi l’ora di ssh nel tuo nuovo, fantastico sistema Xen, ma dagli un secondo per riavviarsi.
Va bene, prova ora.
Che ne dici ora?
Sei dentro? Va tutto bene? Bene. Continuiamo.
2. Controllare Xen
Quindi ora vuoi assicurarti che Xen sia effettivamente in esecuzione. Su Squeeze, potevi semplicemente eseguire uname -r, e avresti visto qualcosa come: 2.6.32-5-xen-amd64. Per qualche misteriosa ragione sconosciuta all’umanità, questo non funziona su Wheezy, quindi invece fai questo:
xen dmesgDovresti vedere qualcosa come:
(XEN) Xen version 4.1.4 (Debian 4.1.4-3+deb7u1) ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5) ) Sun May 5 14:44:49 UTC 2013
(XEN) Bootloader: GRUB 1.99-27+deb7u2
(XEN) Command line: placeholder
(XEN) Video information:
(XEN) VGA is text mode 80x25, font 8x16
(XEN) VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN) Disc information:
(XEN) Found 2 MBR signatures
(XEN) Found 2 EDD information structures
...Se non vedi questo, hai fatto qualcosa di sbagliato. Torna indietro e riprova. Per tutti gli altri, SUCCESSO! Congratulazioni! Ora hai un fantastico istanza Dom0!
Dom-chi? Chi chiami dom?
Rilassati amico. Dom0, o Domain 0, è il tuo server host, la cosa su cui sei ora, il fondo della pila. I server guest sono chiamati DomU, probabilmente perché suona anche leggermente offensivo.
xm listName ID Mem VCPUs State Time(s)
Domain-0 0 31089 8 r—— 8.8Quel comando elenca tutti i nostri server virtuali, incluso Dom0. Al momento questo è l’unico server che abbiamo in esecuzione.
Possiamo fare molto con xm, incluso xm create che avvia un server, xm destroy che uccide un server, xm reboot che riavvia un server, e xm top che monitora tutti i server in esecuzione.
3. Configurare LVM
Puoi creare server Xen sia come dispositivi a blocchi che come istanze LVM. A me piace LVM, perché è più maschile, e rende anche molto più facile ridimensionare le partizioni in seguito.
Prima abbiamo bisogno di un’unità vuota e smontata su cui mettere LVM. Non ho un’unità vuota e smontata, quindi ruberò semplicemente una dal mio server.
df -hFilesystem Size Used Avail Use% Mounted on
rootfs 1008G 915M 956G 1% /
udev 10M 0 10M 0% /dev
tmpfs 3.0G 292K 3.0G 1% /run
/dev/disk/by-uuid/5642a4c4-1bcb-49e2-b89c-7d754e6a521a 1008G 915M 956G 1% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 9.2G 0 9.2G 0% /run/shm
/dev/md1 496M 34M 437M 8% /boot
/dev/md3 1.7T 196M 1.7T 1% /home1.7TB per /home? Sei serio? Sembra totalmente superfluo.
pico /etc/fstabCommenta l’unità offensiva
#/dev/md/3 /home ext4 defaults 0 0Smonta l’unità
umount /dev/md3Giusto, ora possiamo creare la nostra partizione LVM.
pvcreate /dev/md3 Writing physical volume data to disk "/dev/md3"
Physical volume "/dev/md3" successfully createdvgcreate xen-vol /dev/md3vgdisplay --- Volume group ---
VG Name xen-vol
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1.71 TiB
PE Size 4.00 MiB
Total PE 448996
Alloc PE / Size 0 / 0
Free PE / Size 448996 / 1.71 TiB
VG UUID wa0QCN-lBc1-545B-zMwf-vIuS-VXXI-GZAfbWGiusto!
4. Configurare Xen Tools
Xen Tools rende la nostra vita Xen molto più facile, specialmente quando si tratta di creare nuovi server. Ma prima dobbiamo configurarlo un po’.
pico /etc/xen-tools/xen-tools.conflvm = xen-vol
size = 20Gb # Dimensione dell'immagine del disco.
memory = 4Gb # Dimensione della memoria
swap = 512Mb # Dimensione dello swap
gateway = 192.168.1.2
netmask = 255.255.0.0
broadcast = 192.168.1.255
mirror = http://ftp.de.debian.org/debian/
mirror_precise = http://archive.ubuntu.com/ubuntu # (e qualsiasi altro tu voglia)
serial_device = hvc0
disk_device = xvda #default
copyhosts = 15. Creare un server guest
È tempo dell’evento principale! Questo è il processo che ripeterai ogni volta che vuoi creare un nuovo server guest Xen.
Per il nostro primo server di test, farò qualcosa di un po’ più piccolo rispetto ai valori predefiniti che abbiamo impostato in xen-tools.conf. Puoi sovrascrivere qualsiasi valore predefinito dalla riga di comando, a seconda di ciò che desideri. Poiché non stiamo usando un server dhcp, dovrai impostare “hostname” e “ip” ogni volta. Tutto il resto è facoltativo.
xen-create-image --hostname=test --ip=192.168.1.99 --memory=512Mb --size=5G --swap=256KbInformazioni generali
--------------------
Hostname : test
Distribuzione : wheezy
Mirror : http://ftp.de.debian.org/debian/
Partizioni : swap 256Kb (swap)
/ 5G (ext3)
Tipo immagine : full
Dimensione memoria: 512Mb
Percorso kernel : /boot/vmlinuz-3.2.0-4-amd64
Percorso Initrd : /boot/initrd.img-3.2.0-4-amd64
Informazioni di rete
----------------------
Indirizzo IP 1 : 192.168.1.99 [MAC: 00:16:3E:27:33:2D]
Netmask : 255.255.0.0
Broadcast : 192.168.1.255
Gateway : 192.168.1.2
Creando swap su /dev/xen-vol/test-swap
Fatto
Creando filesystem ext3 su /dev/xen-vol/test-disk
Fatto
Metodo di installazione: debootstrap
Esecuzione dei hook
Fatto
Nessun script di ruolo è stato specificato. Salto
Creando file di configurazione Xen
Fatto
Nessun script di ruolo è stato specificato. Salto
Impostazione della password di root
Generazione di una password per il nuovo guest.
Tutto fatto
File di log prodotto in:
/var/log/xen-tools/test.log
Riepilogo dell'installazione
---------------------
Hostname : test
Distribuzione : wheezy
Indirizzo IP : 192.168.1.99
Fingerprint RSA : de:92:b7:63:55:20:74:46:d3:de:cc:ff:55:22:69:24
Password di root : MlkaIn8Questo crea il file di configurazione e la partizione per noi, ma non avvia il server per noi. Il file di configurazione si trova in /etc/xen/hostname.cfg. Puoi modificare questo file direttamente se hai bisogno di cambiare cose come la memoria in seguito.
Procediamo e avviamo il server
xm create /etc/xen/test.cfgUtilizzando il file di configurazione "/etc/xen/test.cfg".
Avviato dominio test (id=1)Ciò che è piuttosto interessante è che “test” verrà aggiunto al nostro file /etc/hosts, il che significa che possiamo semplicemente fare questo:
ssh testUsa la password che hai ricevuto alla fine dell’output di xen-create-image, e sei dentro!
Assicurati di poter vedere gli interwebs:
ping google.comPING google.com (173.194.70.113) 56(84) bytes of data.
64 bytes from fa-in-f113.1e100.net (173.194.70.113): icmp_req=1 ttl=48 time=6.05 ms
64 bytes from fa-in-f113.1e100.net (173.194.70.113): icmp_req=2 ttl=48 time=6.03 ms
^C
--- google.com statistiche ping ---
2 pacchetti trasmessi, 2 ricevuti, 0% perdita di pacchetti, tempo 1001ms
rtt min/avg/max/mdev = 6.030/6.044/6.058/0.014 ms6. Prendi una birra
Te la meriti!
7. Puntare indirizzi IP ai tuoi server virtuali
Avrai bisogno di un sacco di indirizzi IP dal tuo ISP (chiamati subnet). Pago un po’ di più al mese per otto indirizzi IP extra. Ma farli passare direttamente al tuo server virtuale richiede un po’ di lavoro.
pico /etc/network/interfacesauto br0
iface br0 inet static
address 192.168.1.2
netmask 255.255.0.0
pre-up brctl addbr $IFACE
post-down brctl delbr $IFACE/etc/init.d/networking restartifconfig br0br0 Link encap:Ethernet HWaddr 82:18:d1:b8:37:c9
inet addr:192.168.1.2 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::9118:d1ff:feb8:37c9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:172 (172.0 B)ip addr add 80.1.2.41 dev eth0iptables -A PREROUTING -t nat -p all -i eth0 -d 80.1.2.41 -j DNAT --to 192.168.1.99Usa –bridge=br0 quando usi xen-create. Per i file esistenti /etc/xen/*.cfg, modifica questa riga:
vif = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34' ]per apparire così:
vif = [ 'ip=192.168.1.99,mac=00:15:3F:B4:AC:34','bridge=br0' ]Distruggi e crea il server virtuale se necessario.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.