KVM虛擬化(一)——KVM虛擬機(jī)的介紹與簡單使用
一、架構(gòu)及介紹
KVM(Kernel-based Virtual Machine)它由 Quramnet 開發(fā),該公司于 2008年被 Red Hat 收購;
自Linux 2.6.20后整合到內(nèi)核,該內(nèi)核模塊使得 Linux 變成了一個(gè) Hypervisor層;
它依托于CPU虛擬化指令集,性能、安全性、兼容性、穩(wěn)定性表現(xiàn)很好,每個(gè)虛擬化操作系統(tǒng)表現(xiàn)為單個(gè)系統(tǒng)進(jìn)程,與Linux安全模塊selinux安全模塊很好結(jié)合;
官方網(wǎng)站為http://www.linux-kvm.org/page/Main_Page
二、KVM的安裝
(1)安裝之前要查看CPU是否支持虛擬化,以下命令有輸出就代表支持虛擬化;如果確定cpu可以支持虛擬化,但以上命令沒有輸出結(jié)果,就進(jìn)入bash加載虛擬化
Intel CPU:
[root@localhost ~ ]#cat /proc/cpuinfo | grep vmx
AMD CPU:
[root@localhost ~ ]#cat /proc/cpuinfo | grep smv [root@localhost ~ ]# modprobe kvm #加載kvm模塊
(2)安裝方法
方法一:在安裝系統(tǒng)的時(shí)候,選擇桌面安裝,然后選擇虛擬化選項(xiàng)
方法二:在已有系統(tǒng)基礎(chǔ)上,安裝KVM所需軟件。
必安包:
qemu-kvm.x86_64 //KVM模塊 qemu-img.x86_64 //qemu組件,創(chuàng)建磁盤、啟動(dòng)虛擬機(jī)等
可選工具包:
yum -y groupinstall "Desktop" //安裝GNOME桌面環(huán)境 virt-manager //圖形界面管理虛擬機(jī)工具 libvirt //圖形化虛擬機(jī)管理工具 python-virtinst.noarch //python組件,記錄創(chuàng)建VM時(shí)的xml文件 bridge-util.x86.64 //網(wǎng)絡(luò)支持工具,橋接功能模塊 libguestfs-tools //文件管理工具 acpid //virsh命令依賴的服務(wù),需要開機(jī)啟動(dòng)的,他是一個(gè)服務(wù),不是工具包
(3)驗(yàn)證安裝結(jié)果
[root@localhost ~ ]# lsmod | grep kvm kvm_intel 54285 0 kvm 333172 1 kvm_intel
三、KVM網(wǎng)絡(luò)
1、KVM虛擬機(jī)網(wǎng)絡(luò)介紹
在libvirt中運(yùn)行KVM網(wǎng)絡(luò)有兩種方法:NAT和Bridge,默認(rèn)是NAT
(1)NAT模式:即用戶模式,可以訪問外網(wǎng),但是無法從外部訪問虛擬機(jī)網(wǎng)絡(luò)。
(2)Bridge模式:即橋接模式,這種模式允許虛擬機(jī)像一臺(tái)獨(dú)立的主機(jī)一樣擁有網(wǎng)絡(luò),外部的機(jī)器可以直接訪問到虛擬機(jī)內(nèi)部,但需要網(wǎng)卡支持,一般有線網(wǎng)卡都支持。另外需要編輯網(wǎng)卡參數(shù)文件以支持橋接。
如圖所示,兩臺(tái)虛擬機(jī)的網(wǎng)卡對(duì)應(yīng)著宿主機(jī)的兩個(gè)虛擬網(wǎng)卡,他們會(huì)以一個(gè)叫br0的網(wǎng)橋連接,虛擬機(jī)網(wǎng)卡和網(wǎng)橋連接后,就可以獲得設(shè)置和宿主機(jī)一個(gè)網(wǎng)段的IP地址的權(quán)限,因此就可以通過宿主機(jī)的網(wǎng)絡(luò)訪問外網(wǎng)。
2、設(shè)置KVM橋接網(wǎng)絡(luò)
[root@localhost network-scripts]# cat ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:A6:73:18 TYPE=Ethernet UUID=ea80305d-532a-4c31-883f-d9797e279e29 ONBOOT=yes NM_CONTROLLED=no #關(guān)閉network manager對(duì)網(wǎng)卡的控制 BOOTPROTO=none #不需要給物理機(jī)設(shè)置ip地址 BRIDGE="br0" #設(shè)置eth0網(wǎng)卡支持網(wǎng)橋
[root@localhost network-scripts]# vi ifcfg-br0 添加: DEVICE=br0 TYPE=Bridge ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPADDR=192.168.1.10 NETMASK=255.255.255.0 [root@localhost ~]# /etc/init.d/NetworkManager stop #關(guān)掉網(wǎng)卡守護(hù)進(jìn)程 [root@localhost ~]# service network restart
四、管理虛擬機(jī)
創(chuàng)建虛擬機(jī)有兩種方法,一種基于命令行,一種基于圖形化界面。
1、圖形化界面管理
virt-manager是基于libvirt的圖像化虛擬機(jī)管理軟件,不同版本的virt-manager的界面和操作方法可能不同,他是創(chuàng)建KVM虛擬機(jī)的最簡單的方法。用這種方法必須基于之前我們安裝的軟件包virt-manager和libvirt.這里不做過多闡述。
創(chuàng)建虛擬機(jī)的步驟大致如下:
(1)創(chuàng)建存儲(chǔ)池并創(chuàng)建存儲(chǔ)卷,所謂存儲(chǔ)池其實(shí)就是一個(gè)文件夾,存儲(chǔ)卷就是kvm虛擬機(jī)的實(shí)體鏡像
(2)創(chuàng)建鏡像存儲(chǔ)池,用于存放操作系統(tǒng)鏡像,鏡像存儲(chǔ)池就是放操作系統(tǒng)鏡像的文件夾
(3)創(chuàng)建虛擬機(jī),并設(shè)置相應(yīng)參數(shù)
(4)可把時(shí)鐘偏移改為“l(fā)ocaltime”
(5)可設(shè)置主機(jī)引導(dǎo)時(shí)啟動(dòng)虛擬機(jī)
(6)可設(shè)置通過VNC遠(yuǎn)程管理,keymap選項(xiàng)設(shè)為Copy local keymap
2、命令行式創(chuàng)建虛擬機(jī)
使用命令創(chuàng)建虛擬機(jī)
--name 指定KVM虛擬機(jī)的名字
--ram 內(nèi)存大小
--file 磁盤文件的路徑
--vcpus 指定虛擬機(jī)的 CPU 數(shù)量
--file-size=30(默認(rèn)單位是G) 設(shè)置硬盤大小
--cdrom 光驅(qū)提供boot.iso 鏡像
--location 本地提供boot.iso 鏡像
--network network:default 設(shè)置網(wǎng)卡(使用默認(rèn))
--vnc --vncport=5911 連接桌面環(huán)境的vnc端口
[root@localhost ~]# virt-install --name=benet --ram=2048 --vcpus=1 --file=/var/lib/libvirt/images/benet.img --file-size=30 --location=/tmp/rhel6.5.iso --force &
3、KVM命令集
想使用virsh命令必須開啟acpid服務(wù)
yum -y install acpid /etc/init.d/acpid start chkconfig acpid on
虛擬機(jī)重要的兩個(gè)文件目錄
/etc/libvirt/qemu/ //虛擬機(jī)配置文件目錄 /var/lib/libvirt/images/ //虛擬機(jī)磁盤文件目錄
修改虛擬機(jī)的配置
vim /etc/libvirt/qemu/benet.xml //修改虛擬機(jī)配置信息(用來修改系統(tǒng)內(nèi)存大小、磁盤文件等信息) virsh edit benet //通過virsh命令修改虛擬機(jī)配置信息
基本命令
virsh -h //查看命令幫助 virsh list //查看正在運(yùn)行的虛擬機(jī) virsh list --all //查看所有虛擬機(jī) virsh create /etc/libvirt/qemu/benet.xml //通過配置文件啟動(dòng)虛擬機(jī)系統(tǒng)實(shí)例 virsh start benet //啟動(dòng),需要確認(rèn)acpid服務(wù)安裝并運(yùn)行 virsh shutdown benet //關(guān)機(jī),需要確認(rèn)acpid服務(wù)安裝并運(yùn)行 virsh destroy benet //強(qiáng)制關(guān)機(jī) virsh autostart benet //隨宿主機(jī)自動(dòng)啟動(dòng),此命令將創(chuàng)建/etc/libvirt/qemu/autostart/目錄,目錄內(nèi)容為開機(jī)自動(dòng)啟動(dòng)的系統(tǒng)。 virsh suspend benet //掛起 virsh resume benet //恢復(fù) virsh dumpxml benet > /etc/libvirt/qemu/benet2.xml //導(dǎo)出虛擬機(jī)配置 virsh undefine benet //刪除虛擬機(jī),會(huì)發(fā)現(xiàn)配置文件被清除,但是磁盤文件不會(huì)被刪除 mv /etc/libvirt/qemu/benet2.xml/ /etc/libvirt/qemu/benet.xml //把備份的配置文件改回去,以便重新定義虛擬機(jī) virsh define benet.xml //重新定義虛擬機(jī)(因?yàn)榇疟P文件沒有被刪除)
4、KVM文件管理
通過文件管理可以直接查看、修改、復(fù)制虛擬機(jī)的內(nèi)部文件、例如,當(dāng)系統(tǒng)因?yàn)榕渲脝栴}無法啟動(dòng)時(shí),可以直接修改虛擬機(jī)的文件。虛擬機(jī)磁盤文件有raw與qcow2格式,qcow2格式是kvm支持的標(biāo)準(zhǔn)格式,raw格式為虛擬磁盤文件通用格式。KVM虛擬機(jī)默認(rèn)使用raw格式,raw格式性能最好,速度最快,其缺點(diǎn)是不支持一些新的功能,如鏡像,Zlib磁盤壓縮、AES加密等,另外raw格式文件比qcow2格式文件大很多,將近15倍吧。
文件管理需要專門的工具才能完成,不同格式的磁盤有不同的文件管理工具。本地yum安裝libguestfs-tools后產(chǎn)生的命令行工具(這個(gè)工具可以直接讀取qcow2格式的磁盤文件,因此需要將raw格式的磁盤文件轉(zhuǎn)換成qcow2格式)
轉(zhuǎn)換磁盤格式方法:
qemu-img info /var/lib/libvirt/images/benet.img # 查看當(dāng)前磁盤格式 virsh shutdown benet qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/benet.img /var/lib/libvirt/images/benet.qcow2 #轉(zhuǎn)換磁盤文件格式,轉(zhuǎn)化后多了一個(gè)新的qcow2文件,注意是新增了 virsh edit benet #修改benet的xml配置文件 ……//省略部分內(nèi)容 <disk type='file' device='disk'> <driver name='qemu' type='qcow2' chche='none'/> <source file='/var/lib/libvirt/images/benet.qcow2'/>
其他用法如下:
~]# virt-cat -a /var/lib/libvirt/images/benet.qcow2 /etc/sysconfig/network #查看命令,用法與cat命令類似,格式為:virt-cat 磁盤鏡像路徑 文件絕對(duì)路徑(最后要看的就是這個(gè)network文件) NETWORKING=yes HOSTNAME=benet ~]# virt-edit -a /var/lib/libvirt/images/benet.qcow2 /etc/resolv.conf #與vim用法基本一致 nameserver 8.8.8.8 ~]# virt-df -h benet #用于查看虛擬機(jī)磁盤信息 Filesystem Size Used Available Use% benet:/dev/sda1 484M 32M 427M 7% benet:/dev/VolGroup/lv_root 7.4G 1.6G 5.4G 5.4G 22%
5、克隆與快照
[root@localhost ~]# virt-clone -o benet -n benet2 -f /var/lib/libvirt/images/benet2.img //虛擬機(jī)克隆 [root@localhost ~]# virsh snapshot-create benet //創(chuàng)建新快照 Domain snapshot 1382572463 created [root@localhost ~]# virsh snapshot-delete benet 1382572463 //刪除快照 Domain snapshot 1382572463 deleted [root@localhost ~]# virsh snapshot-revert benet 1382572463 //恢復(fù)虛擬機(jī)狀態(tài) [root@localhost ~]# virsh snapshot-current benet //查看快照版本號(hào) [root@localhost ~]# virsh snapshot-list benet //查看快照信息
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- centos 6.6 安裝 KVM 虛擬機(jī)的方法
- KVM虛擬化技術(shù)之使用Qemu-kvm創(chuàng)建和管理虛擬機(jī)的方法
- KVM虛擬機(jī)的創(chuàng)建、管理與遷移介紹
- KVM虛擬化技術(shù)之virt-manager使用及KVM虛擬化平臺(tái)網(wǎng)絡(luò)模型介紹
- KVM虛擬機(jī)技術(shù)學(xué)習(xí)總結(jié)
- 詳細(xì)介紹kvm虛擬機(jī)靜態(tài)和動(dòng)態(tài)遷移(圖文介紹)
- Linux KVM的QCOW2 和 ROW的詳解及區(qū)別介紹
- kvm安裝和刪除虛擬機(jī)的方法
- ubuntu kylin虛擬機(jī)中安裝KVM
- kvm虛擬機(jī)的創(chuàng)建與克隆操作方法
相關(guān)文章
KVM虛擬機(jī)實(shí)現(xiàn)在線熱遷移的方法步驟(圖文)
這篇文章主要介紹了KVM虛擬機(jī)實(shí)現(xiàn)在線熱遷移的方法步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10詳細(xì)介紹kvm虛擬機(jī)靜態(tài)和動(dòng)態(tài)遷移(圖文介紹)
本篇文章主要詳細(xì)介紹kvm虛擬機(jī)靜態(tài)和動(dòng)態(tài)遷移,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11kvm虛擬化學(xué)習(xí)筆記(一)之kvm虛擬化環(huán)境安裝的步驟
這篇文章主要介紹了kvm虛擬化學(xué)習(xí)筆記(一)之kvm虛擬化環(huán)境安裝的步驟,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12