English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Panoramica delle tecnologie di virtualizzazione e manuale di installazione e gestione dei virtual machine

Introduzione alla virtualizzazione tecnica (kvm, qemu), installazione del virtual machine, gestione del virtual machine (virt-manger, virsh ecc).

1. Perché c'è bisogno della tecnologia di virtualizzazione?

Se il tuo sistema operativo principale è Windows ma hai bisogno di lavorare su Linux, come VMware (che richiede un pagamento...) o virtualbox sono sicuramente la tua scelta, in questo modo puoi passare liberamente da un sistema operativo all'altro, oltre a questo, abbiamo risolto molti problemi di virtualizzazione; come il virtual drive, non abbiamo bisogno di un'unità ottica reale per utilizzare l'immagine del disco, tutto questo è ciò che incontriamo nella vita quotidiana, ma non è tutto della tecnologia di virtualizzazione, oggi la containerizzazione docker è anche una tecnologia di virtualizzazione.

Negli ambienti aziendali, è possibile dividere le risorse dello stesso computer, gli amministratori possono configurare diverse virtual machine per diversi gruppi di clienti, isolare diverse aree, per effettuare aggiornamenti di sistema e manutenzione, senza influenzare le attività degli utenti finali. Gli amministratori di informazioni possono costruire un sistema di computer da ufficio e personale, isolando efficacemente il caricamento del software e gli attacchi dei virus; o costruire un computer che può eseguire diversi sistemi operativi e software, per soddisfare diverse esigenze o supportare software di vecchia versione. Ecco che la tecnologia di virtualizzazione ha un'ampia applicazione negli ambienti aziendali.

Dopo aver detto tutto questo, vediamo prima se il tuo computer supporta la virtualizzazione, apri il terminale e digita grep --color -E "vmx|svm" /proc/cpuinfo

Se vengono visualizzate informazioni, ti congratuliamo, puoi installare il software di virtualizzazione


Installazione del software di virtualizzazione

yum install qemu-kvm qemu-img
yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client

2. Installazione della virtual machine

La tecnologia di virtualizzazione più amichevole e semplice che abbiamo è la virtual machine, qui facciamo una breve introduzione all'installazione della virtual machine.

2.1) Installazione grafica

Trovare Virtual Machine Manager tra gli strumenti di sistema o digitare virt-manager nel terminale per aprire la finestra di gestione grafica del virtual machine, fare clic con il tasto destro sul punto evidenziato con un cerchio e selezionare NEW per accedere alla creazione del virtual machine


Entrare in questa interfaccia e selezionare la prima opzione, utilizzare i media locali per l'installazione

  

Modifica la seconda opzione con il percorso dell'immagine del disco, selezionato Forward


Qui selezionare la dimensione della memoria del tuo virtual machine


Qui selezionare la dimensione del disco rigido


Qui selezionare il nome del virtual machine, questo nome è un segno che ci aiuta a riconoscere il virtual machine


Dopo aver completato questi punti, finalmente siamo arrivati alla schermata di installazione, dove ci sono due opzioni: la prima opzione è installare direttamente redhat7.1, la seconda opzione è testare questo immagine prima di installarla.


Scegliere la lingua utilizzata per installare il sistema operativo (per enfatizzare ulteriormente l'importanza dell'inglese, ho scelto l'inglese...), è la lingua utilizzata durante l'installazione del sistema e non quella del sistema stesso!


L'interfaccia principale dell'installazione del sistema, in ordine da alto a basso e da sinistra a destra, è la selezione della zona temporale (Shanghai), la selezione del tipo di tastiera (tastiera americana), il supporto delle lingue del sistema (aggiungere il cinese, altrimenti si vedranno caratteri confusi), quale è la sorgente dell'immagine di installazione (l'immagine locale del disco), la selezione dei pacchetti software (per installare rapidamente ho scelto l'installazione minima), su quale disco installare e la partizione del disco (la partizione del disco predefinita e quella che ho creato non sono molto diverse... di solito /boot 200MB, swap è il doppio della memoria, il resto va a /), Kdump è un meccanismo di cattura di crash del kernel basato su kexec, che salva l'immagine della memoria del kernel prima del crash. I programmatori possono analizzare questo file per trovare le cause del crash del kernel e migliorare il sistema. Infine, la configurazione di rete durante l'installazione (abbiamo scelto di non configurarla).


Una volta configurati tutti i parametri, entriamo nella finestra di progresso dell'installazione, aspettiamo che la barra di avanzamento si completi e poi riavviamo per accedere a questo nuovo redhat.


2.2) Installazione della VM tramite comando

In Linux tutto è comando. Installare una VM può anche essere fatto tramite comando e molto comodo

[root@foundation3 ~]# virt-install --name mo1 --ram 1024 --file /var/lib/li 
bvirt/images/mo1.img --cdrom /root/Desktop/rhel-server-7.1-x86_64-dvd.iso - 
-file-size 8 
AVVISO: Nessun sistema operativo rilevato, la prestazione della VM potrebbe subire. Specificare un OS 
con --os-variant per risultati ottimali. 
AVVISO: i media CDROM non stampano il testo nella console di testo per impostazione predefinita, quindi probabilmente 
non vedrete l'output di installazione del testo. Potrebbe essere utile usare --location. Vedi il manuale 
 pagina per esempi di utilizzo di --location con media CDROM 
Inizio installazione... 
Assegnando 'mo1.img'         | 8.0 GB  00:00 
Creando dominio...         | 0 B  00:00 
Connected to domain mo1 

这其中--name选项是确定虚拟机的名字,--ram是虚拟机的内存,--file为你将虚拟机的磁盘文件存储路径,--cdrom是你的镜像文件路径,--file-size是虚拟机的磁盘大小。键入命令后即可进入安装系统的界面,在上一步骤已经介绍完了。

3)虚拟机的管理

在介绍虚拟机管理命令之前我们先介绍下创建完虚拟机并安装完系统后生成了哪些文件,或者说虚拟机对于我们真机到底是个啥?

[root@foundation3 ~]# ls /etc/libvirt/qemu /var/lib/libvirt/images/ 
/etc/libvirt/qemu: 
desktop.xml <span style="color:#ff0000;">mo.xml</span> networks server.xml 
/var/lib/libvirt/images/: 
mo1.img    rh124-desktop-vda.qcow2 rh124-server-vda.ovl rh124-server.xml 
<span style="color:#ff0000;">mo.img</span>     rh124-desktop-vdb.ovl rh124-server-vda.qcow2 test.sh 
mo_shot.qcow2   rh124-desktop-vdb.qcow2 rh124-server-vdb.ovl vm1.qcow2 
rh124-desktop-vda.ovl rh124-desktop.xml  rh124-server-vdb.qcow2 

上面输出的结果中红色字处就是我们生成的文件,总共两个一个xml文件和一个硬盘文件。xml文件可以随意删掉,不会影响虚拟机,但是如果删掉他我们不能再virt-manager(虚拟机图形管理工具上找到他),不过我们有方法恢复;硬盘文件如果删掉的话那你的虚拟机也就无法使用了。

virt-manager ##开启图形管理工具
virt-viewer vmname 
##显示以vmname为名字的虚拟机,当我们开启虚拟机时默认不会,将他显示在前台而只是running状态,如果我们要将他显示出来就要键入上面这条命令

virsh list ## elenca le virtual machine in esecuzione (per impostazione predefinita, è necessario essere root per vedere)

[root@foundation3 ~]# virsh list 
 Id Nome       Stato 
---------------------------------------------------- 

Questo indica che non ho virtual machine in esecuzione, ma se non fossi utente root, mostrerebbe anche come nell'immagine riportata

[root@foundation3 ~]# virsh start mo 
Dominio mo avviato 
[root@foundation3 ~]# virsh list 
 Id Nome       Stato 
---------------------------------------------------- 
 9  mo        in esecuzione 
[root@foundation3 ~]# su - mo 
Ultimo accesso: Mer 19 Ott 10:48:59 CST 2016 su pts/3 
[mo@foundation3 ~]$ virsh list 
 Id Nome       Stato 
---------------------------------------------------- 

Quindi è necessario passare all'utente root per utilizzare questo comando altrimenti è invalido, ma il motivo per cui solo l'utente root può vedere o altre impostazioni sono definite nel file di configurazione (/etc/libvirt/qemu.conf). A questo punto mi è venuto in mente un errore che ho avuto durante l'installazione iniziale del virtual machine, come segue:

[root@foundation3 ~]# virt-install --name zhao --ram 1024 --file /var/lib/libvirt/images/zhao.img --file-size 8 --cdrom /root/Desktop/rhel-server-7.1-x86_64-dvd.iso 
ATTENZIONE Nessun sistema operativo rilevato, la prestazione della VM potrebbe essere compromessa. Specificare un OS con --os-variant per ottenere risultati ottimali. 
ATTENZIONE Il media CDROM non stampa al console di testo per impostazione predefinita, quindi probabilmente non vedrete l'output dell'installazione del testo. Potrebbe voler usare --location. Vedi la pagina del manuale per esempi di utilizzo di --location con media CDROM 
Inizio installazione... 
Assegnazione 'zhao.img'            | 8.0 GB 00:00:00  
<span style="color:#ff0000;">ERROR </span> errore interno: il processo è uscito durante la connessione al monitor: 2016-10-19T03:00:25.552714Z qemu-kvm: -drive file=/root/Desktop/rhel-server-7.1-x86_64-dvd.iso,if=none,id=drive-ide0-0-1,readonly=on,format=raw: <span style="color:#ff0000;">impossibile aprire l'immagine del disco /root/Desktop/rhel-server-7.1-x86_64-dvd.iso: impossibile aprire il file: Permission denied</span> 
L'installazione del dominio non sembra essere stata completata con successo. 
Se lo era, puoi riavviare il dominio eseguendo: 
 virsh --connect qemu:///system start zhao 
altrimenti, riavvia l'installazione. 

Secondo l'errore indicato in rosso sopra, mi dice che non ho i permessi, sono root o no? Sono molto arrabbiato. Come utente root, devo ancora vedere l'offesa 'Permission denied'. Prima di tutto, ho controllato i permessi del file immagine, come segue:

[root@foundation3 ~]# ll /root/Desktop/rhel-server-7.1-x86_64-dvd.iso 
-rw-r--r-- 1 qemu qemu 3890216960 Ott 17 22:15 /root/Desktop/rhel-server-7.1-x86_64-dvd.iso 

Il risultato mostrato è che ho i permessi di lettura e scrittura su di lui, quindi non ci sono problemi di permessi. Dopo aver consultato attentamente i materiali, ho trovato la soluzione: i permessi per le operazioni sulla macchina virtuale sono ancora definiti in un file di configurazione suo!

<span style="color:#ff0000;">#user = "root"</span> 
# Il gruppo per i processi QEMU eseguiti dall'istanza di sistema. Può essere 
# specificato allo stesso modo dell'utente. 
<span style="color:#ff0000;">#group = "root"</span> 
# Se libvirt dovrebbe cambiare dinamicamente la proprietà dei file 
# per abbinarsi all'utente/group configurato sopra. Predefinito a 1. 
# Impostare a 0 per disabilitare le modifiche di proprietà dei file. 
<span style="color:#ff0000;">#dynamic_ownership =0 </span> 

取消红色处的#,我们的root就有权限创建虚拟机啦。

virsh list --all  ##列出所有虚拟机(同样也需要root用户)

[root@foundation3 ~]# virsh list --all 
 Id Nome       Stato 
---------------------------------------------------- 
 -  desktop      spegnere 
 -  mo        spegnere 
 -  server       spegnere

virsh start vmname ##开启名为vmname的虚拟机
virsh shutdown vmname ##正常关闭vmname虚拟机
virsh destroy vmname ##强行结束vmname虚拟机
virsh create vmname.xml ##指定vmname虚拟机前端文件(*.xml),并显示在图形管理工具上,相当于临时恢复虚拟机前端引导选项
virsh define vmname.xml ##永久恢复虚拟机前端引导项

virsh undefine vmname.xml ## Elimina il front-end di gestione del virtual machine, ma non elimina l'immagine del disco.

Di seguito, illustrerò in dettaglio il ruolo dell'avvio frontale e alcune operazioni:

L'interfaccia grafica della virtual machine e il comando virsh list --all mostrano lo stesso risultato

Possiamo anche selezionare il virtual machine 'mo' con un clic destro e selezionare Delete per eliminare il file frontale.


Puoi anche cancellare il file frontale utilizzando il comando virsh undefine mo. Il principio di questo comando è eliminare /etc/libvirt/qemu/mo.xml, quindi è sufficiente fare una copia di backup di questo file per poterlo ripristinare. Poi puoi ripristinare il file frontale usando virsh define */mo.xml.


Ma non ho fatto il backup. Devo quindi ricaricare l'immagine per generare il file mo.xml, anche se è molto semplice.

[root@foundation3 ~]# virt-install --name mo --ram 1024 --disk /var/lib/libvirt/images/mo.img

Non è diverso dal comando con cui abbiamo creato la virtual machine all'inizio, ma con alcune modifiche ai parametri. Qui, nel film, cancelliamo l'identità di un agente e ne creiamo un'altra, quindi dobbiamo solo specificare il nuovo nome (può essere lo stesso) e cosa è la persona reale (cioè il file disco) e il tutto è molto veloce. Così possiamo ricreare il file frontale.


4) Snapshot delle virtual machine

Chi ha usato vmware sa che i virtual machine hanno una funzione di snapshot molto utile, che è anche la garanzia di base per poterci sbizzarri con le virtual machine


La linea rossa è il punto di cattura degli snapshot. Il nostro kvm, naturalmente, ha anche questa funzione. Ecco come

[root@foundation3 ~]# qemu-img create -f qcow2 -b /var/lib//libvirt/images/mo.img /var/lib/libvirt/images/test.qcow2 
Formattando '/var/lib/libvirt/images/test.qcow2', fmt=qcow2 dimensione=8589934592 file_di_sotto=/var/lib//libvirt/images/mo.img crittografia=disattivata dimensione_cluster=65536 lazy_refcounts=disattivato 
[root@foundation3 ~]# ls /var/lib/libvirt/images/ 
mo1.img     rh124-desktop-vdb.ovl rh124-server-vdb.ovl vm1.qcow2 
mo.img     rh124-desktop-vdb.qcow2 rh124-server-vdb.qcow2 zhao.img 
mo_shot.qcow2   rh124-desktop.xml  rh124-server.xml 
rh124-desktop-vda.ovl rh124-server-vda.ovl <span style="color:#ff0000;">test.qcow2</span> 
rh124-desktop-vda.qcow2 rh124-server-vda.qcow2 test.sh 
[root@foundation3 ~]# 

La parte rossa è lo snapshot che abbiamo creato, quindi utilizzeremo quanto menzionato sopra

[root@foundation3 ~]# virt-install --name mo --ram 1024 --disk /var/lib/libvirt/images/test.qcow2 
Puoi utilizzare lo snapshot, se lo snapshot è danneggiato, crea nuovamente uno snapshot, ancora identico al virtual machine originale, ma attenzione, il file di disco vero del virtual machine non può essere cancellato o danneggiato, perché in questo caso non sarà possibile il recupero.

Riassumendo, il snapshot di kvm è basato sul file di disco del virtual machine originale, crea uno snapshot, ogni snapshot creato è identico al virtual machine originale, quindi qualsiasi modifica al virtual machine originale, lo snapshot avrà anche la modifica corrispondente.

Poiché i comandi di gestione integrati sono molto potenti, ma alcune funzioni non sono necessarie, e manca una semplice operazione come il riavvio immediato, ho creato uno script per gestire le macchine virtuali, il codice è il seguente:

#!/bin/bash 
create_img() 
{ 
 virsh undefine $1 &>/dev/null 
 qemu-img create -f qcow2 -b /var/lib/libvirt/images/$1.img /var/lib/libvirt/images/$1_shot.qcow2 &>/dev/null 
 virt-install --name $1 --ram 1024 --disk /var/lib/libvirt/images/$1_shot.qcow2 --import --noautoconsole &>/dev/null 
 virsh define /etc/libvirt/qemu/$1.xml &>/dev/null 
} 
delete_img() 
{ 
 virsh undefine $1 &>/dev/null 
 rm -rf /var/lib/libvirt/images/$1_shot.qcow2 &>/dev/null 
} 
check_status() 
{ 
 status=`virsh list --all| sed -n '3,$p'|sed 's/[[:space:]]\+/:/g'|grep $1 |cut -d':' -f4` 
 echo $status 
 if [ $status = "shut" ];then 
  return 0 
 elif [ $status = 'running' ];then 
  return 1 
 fi 
} 
case $1 in 
--start|-s) 
shift 
echo "start $1 ..." 
check_status $1 &>/dev/null && virsh start $1 &>/dev/null 
;; 
--view|-v) 
shift 
echo "view $1 ..." 
check_status $1 &> /dev/null || virt-viewer $1 &>/dev/null & 
;; 
--shutdown|-d) 
shift 
echo "shutdown $1 ..." 
check_status $1 &> /dev/null || virsh destroy $1 &>/dev/null & 
;; 
--create|-c) 
shift 
check_status $1 &> /dev/null || virsh destroy $1 
echo "create snapshot for $1 ..." 
create_img $1 
echo "success create snapshot" 
;; 
--reset|-r) 
shift 
check_status &>/dev/null $1 || virsh destroy $1 
delete_img $1 
create_img $1 
;; 
--check|-h) 
shift 
echo $1 `check_status $1` 
;; 
) 
echo "vmctl <COMANDO> <OPZIONI> " 
echo "" 
echo "apri,mostra,chiudi,resetta...Virtual Machine" 
echo -e "--start|-s\tapri la Virtual Machine\n--view|-v\tmostra la Virtual Machine che è stata aperta" 
echo -e "--shutdown|-d\tchiudi la tua Virtual Machine" 
echo -e "--create|-c\tcrea uno snapshot per la tua Virtual Machine" 
echo -e "--reset|-r\tresetta la tua Virtual Machine" 
echo -e "--check|-h\tverifica lo stato di esecuzione o spegnimento della Virtual Machine" 
;; 
esac 

Questo è tutto il contenuto dell'articolo, speriamo che sia utile per la tua apprendimento, e speriamo che tu supporti fortemente il tutorial di urla.

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, appartiene ai rispettivi autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, il sito web non possiede il diritto di proprietà, non è stato elaborato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, è gradito inviare una email a: notice#oldtoolbag.com (al momento dell'invio dell'email, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, il sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare