更新時(shí)間:2017年12月18日17時(shí)17分 來(lái)源:傳智播客 瀏覽次數(shù):
1、虛擬化是什么
虛擬化是指計(jì)算元件在虛擬的基礎(chǔ)上而不是真實(shí)的基礎(chǔ)上運(yùn)行,是一個(gè)為了簡(jiǎn)化管理,優(yōu)化資源的解決方案,通過(guò)模擬不同的元件做到資源的隔離和資源的充分利用。例如CPU的虛擬化技術(shù)可以單CPU模擬多CPU并行,允許一個(gè)平臺(tái)同時(shí)運(yùn)行多個(gè)操作系統(tǒng),并且應(yīng)用程序都可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率。
2、虛擬化發(fā)展的階段
到目前為止,虛擬化經(jīng)歷了五個(gè)比較明顯的階段,分別是全模擬、分層模擬、半虛擬化、全虛擬化、容器虛擬化。全模擬是指CPU、網(wǎng)卡、芯片、磁盤(pán)都是通過(guò)軟件模擬的,特點(diǎn)是慢;分層模擬采用的是捕獲和翻譯技術(shù),對(duì)全虛擬化進(jìn)行組合或虛擬化的不同層次;半虛擬化通過(guò)改造虛擬機(jī)器,讓虛擬機(jī)明白自己就是一個(gè)虛擬機(jī)從而執(zhí)行一些指令;全虛擬化是指2005英特爾支持硬件層面(主要是CPU)的虛擬化之后的時(shí)間段,容器虛擬化是現(xiàn)在比較火的虛擬化技術(shù),以docker為代表,主要是進(jìn)程間的隔離,資源消耗低且具備資源隔離的特性。
3、主流虛擬化軟件
目前主流的虛擬化技術(shù)主要有: KVM 、 Xen 、 VMware(VirtualBox)、Hyper-v。
Xen 和KVM ,是開(kāi)源免費(fèi)的虛擬化軟件。
VMware是付費(fèi)的虛擬化軟件。
Hyper-v是微軟windows 2008 R2附帶的虛擬化組件,需要花錢(qián)買(mǎi)授權(quán)。
虛擬Linux用哪些軟件?
如果是虛擬Linux,建議首先使用Xen ,支持Linux的半虛擬化,可以直接使用主系統(tǒng)的CPU和磁盤(pán)及網(wǎng)絡(luò)資源,達(dá)到較少的虛擬化調(diào)度操作,可以達(dá)到非常高的性能,但Xen 操作復(fù)雜,維護(hù)成本較高。其次我們推薦KVM 來(lái)虛擬Linux,Linux本身支持KVM 的virtio技術(shù),可以達(dá)到少量的虛擬化調(diào)度操作,得到較高的系統(tǒng)性能。
虛擬windows用那些軟件?
在有授權(quán)的情況下,虛擬windows,建議使用hyper-v。
沒(méi)有授權(quán)的情況下,實(shí)驗(yàn)環(huán)境使用VMware,企業(yè)生產(chǎn)環(huán)境建議使用KVM,可以從redhat那里免費(fèi)拿到針對(duì)windows優(yōu)化過(guò)的磁盤(pán)和網(wǎng)絡(luò)的驅(qū)動(dòng)程序,可以達(dá)到較高的性能(幾乎與hyper-v性能持平)
不打算買(mǎi)廠商支持,其中vmware和hyper-v,是不建議使用的,主要是授權(quán)問(wèn)題。
4、KVM虛擬化
KVM是指基于Linux內(nèi)核的虛擬機(jī)(Kernel-base Virtual Machine),2010年4月發(fā)布的RHEL6.0,將KVM增加到Linux內(nèi)核是Linux發(fā)展的一個(gè)重要里程碑,這也是第一個(gè)整合到Linux主線內(nèi)核的虛擬化技術(shù)。
一個(gè)普通的Linux進(jìn)程有兩種運(yùn)行模式:內(nèi)核模式和用戶(hù)模式( 用戶(hù)模式是指進(jìn)程在用戶(hù)代碼中運(yùn)行。內(nèi)核模式是指進(jìn)程進(jìn)入內(nèi)核代碼,執(zhí)行內(nèi)核的代碼),KVM增加了第三種模式:客戶(hù)模式(有自己的內(nèi)核和用戶(hù)模式)。這里的客戶(hù)模式,就相當(dāng)于你在VMware中安裝了自己的某個(gè)windows操作系統(tǒng)一樣。在KVM模型中,每一個(gè)虛擬機(jī)都是一個(gè)由Linux調(diào)度程序管理的標(biāo)準(zhǔn)進(jìn)程,你可以在用戶(hù)空間啟動(dòng)客戶(hù)機(jī)操作系統(tǒng)。
簡(jiǎn)單的類(lèi)比關(guān)系就是,KVM相當(dāng)于是windows版本的VMware,我們可以在KVM中創(chuàng)建很多其他版本的操作系統(tǒng)實(shí)例,只不過(guò)KVM在創(chuàng)建實(shí)例的時(shí)候,需要一些輔助的工具,比如QEMU-KVM和Virt-manager。
5、KVM 的管理工具
KVM僅僅是Linux內(nèi)核的一個(gè)模塊
在 Linux 系統(tǒng)中,首先我們可以用modprobe(modprobe是linux的一個(gè)命令,可載入指定的個(gè)別模塊,或是載入一組相依的模塊)系統(tǒng)工具去加載 KVM 模塊,如果用 RPM 安裝 KVM 軟件包,系統(tǒng)會(huì)在啟動(dòng)時(shí)自動(dòng)加載模塊。加載了模塊后,才能進(jìn)一步通過(guò)其他工具創(chuàng)建虛擬機(jī)。
但KVM僅僅是Linux內(nèi)核的一個(gè)模塊,僅有 KVM 模塊是遠(yuǎn)遠(yuǎn)不夠的,因?yàn)橛脩?hù)無(wú)法直接控制內(nèi)核模塊去做事情,還必須有一個(gè)用戶(hù)空間的工具。
用戶(hù)工具QEMU-KVM
QEMU是一套模擬CPU的開(kāi)源軟件。KVM作為內(nèi)核的一個(gè)模塊,可以通過(guò)QEMU提供的模擬方式,來(lái)使用處理器。這樣,KVM就提供了一個(gè)模擬的(虛擬的)硬件層,虛擬機(jī)就運(yùn)行在這個(gè)模擬的硬件層之上。
上圖,是KVM虛擬機(jī)的整體架構(gòu)。KVM內(nèi)核模塊在運(yùn)行時(shí)按需加載進(jìn)入內(nèi)核空間運(yùn)行。KVM本身不執(zhí)行任何硬件設(shè)備模擬,需要用戶(hù)空間程序QEMU通過(guò)/dev/kvm接口設(shè)置一個(gè)虛擬客戶(hù)機(jī)的地址空間,向它提供模擬的I/O等硬件設(shè)備。
Libvirt/Virsh/Virt-manager:
盡管 QEMU-KVM 工具可以創(chuàng)建和管理 KVM 虛擬機(jī),RedHat為 KVM 開(kāi)發(fā)了更通用的輔助工具libvirt。Libvirt是一套提供了多種語(yǔ)言接口的 API,為各種虛擬化工具提供一套方便、可靠的編程接口,不僅支持 KVM,而且支持Xen等其他虛擬機(jī)。
使用libvirt,你只需要通過(guò)libvirt提供的函數(shù)連接到 KVM 或Xen宿主機(jī),便可以用同樣的命令控制不同的虛擬機(jī)了。
Libvirt不僅提供了API,還自帶一套基于文本的管理虛擬機(jī)的命令virsh,你可以通過(guò)使用virsh命令來(lái)使用libvirt的全部功能。
同時(shí)還能使用圖形界面進(jìn)行管理操作,其工具是Virt-manager。他是一套用 python 編寫(xiě)的虛擬機(jī)管理圖形界面,用戶(hù)可以通過(guò)它直觀地操作不同的虛擬機(jī)。Virt-manager 就是利用libvirt的 API 實(shí)現(xiàn)的。
6、KVM安裝說(shuō)明
KVM的安裝步驟大致如下:
1、準(zhǔn)備一臺(tái)物理機(jī),并安裝CentOS 6.x以上的Linux的發(fā)行版
這臺(tái)可以運(yùn)行最新linux內(nèi)核的Intel處理器(含VT虛擬化技術(shù))或AMD處理器(含SVM安全虛擬機(jī)技術(shù)的AMD處理器,也叫AMD-V)
2、安裝KVM對(duì)應(yīng)的軟件包
3、在KVM中創(chuàng)建虛擬機(jī)
通過(guò)QEMU-IMG命令創(chuàng)建一個(gè)硬盤(pán),第一次接觸請(qǐng)選擇raw格式
通過(guò)virt-install命令安裝并啟動(dòng)虛擬機(jī)
指定虛擬機(jī)的內(nèi)存、CPU、網(wǎng)絡(luò)信息
指定虛擬機(jī)的網(wǎng)絡(luò)模式,生產(chǎn)環(huán)境使用橋接模式
指定VNC的端口及密碼信息
4、下載VNC軟件server--client
5、配置VNC軟件信息
主要是解決VNC閃退的問(wèn)題
6、通過(guò)VNC連接新創(chuàng)建的虛擬機(jī)
根據(jù)端口號(hào)進(jìn)行配置
7、在虛擬機(jī)中安裝系統(tǒng)
8、配置虛擬機(jī)的IP地址
7、KVM部署實(shí)踐
7.1、安裝Cent OS 6.X系統(tǒng)
[root@localhost ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
7.2、檢查系統(tǒng)是否支持虛擬化
cat /proc/cpuinfo |grep 'vmx'
cat /proc/cpuinfo |grep 'svm'
依次執(zhí)行以上兩條命令,看看是否有返回值。返回值參考如下:
如果輸出的結(jié)果包含VMX,它是Intel處理器虛擬機(jī)技術(shù)標(biāo)志;
如果包含SVM,它是AMD處理器虛擬機(jī)技術(shù)的標(biāo)志,
如果你什么都沒(méi)有得到,那應(yīng)你的系統(tǒng)并沒(méi)有支持虛擬化的處理,不能使用KVM,
另處linux發(fā)行版本必須在64bit環(huán)境中才能使用KVM。
7.3、更新Linux操作系統(tǒng)軟件
yum update
yum upgrade
這兩個(gè)命令會(huì)下載大量的安裝包,根據(jù)網(wǎng)速不同,需要等待的時(shí)長(zhǎng)不一。
如果對(duì)網(wǎng)速有要求,建議換成國(guó)內(nèi)的yum源地址。
網(wǎng)易Yum源配置
---------------------------------------------------------------
首先備份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下載對(duì)應(yīng)版本repo文件, 放入/etc/yum.repos.d/(操作前請(qǐng)做好相應(yīng)備份)
CentOS7 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
CentOS6 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS5 wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
運(yùn)行以下命令生成緩存
yum clean all
yum makecache
7.4、關(guān)閉防火墻
(1) 重啟后永久性生效:
開(kāi)啟:chkconfig iptables on
關(guān)閉:chkconfig iptables off
(2) 即時(shí)生效,重啟后失效:
開(kāi)啟:service iptables start
關(guān)閉:service iptables stop
內(nèi)部環(huán)境建議永久關(guān)閉,永久關(guān)閉之后,需要重啟
7.5、關(guān)閉selinux
(1) 重啟后永久性生效:
vi /etc/sysconfig/selinux
SELINUX=disabled
編輯/etc/sysconfig/selinux文件,將文件中的SELINUX配置項(xiàng)改成disabled。
(2) 即時(shí)生效,重啟后失效:
setenforce 0
SELINUX作為軍用級(jí)別的防火墻,一般在生產(chǎn)環(huán)境中都會(huì)關(guān)閉掉,不關(guān)掉會(huì)有很多異常。
建議永久關(guān)閉,永久關(guān)閉之后,需要重啟
7.6、安裝KVM相關(guān)軟件包
yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v
7.7、確認(rèn)libvirtd是否正常啟動(dòng)
[root@node-3 ~]# /etc/init.d/libvirtd status
libvirtd (pid 3793) is running...
如果沒(méi)有啟動(dòng),可以嘗試手動(dòng)啟動(dòng)
/etc/init.d/libvirtd restart
回顧:
RedHat為 KVM 開(kāi)發(fā)了更通用的輔助工具libvirt。Libvirt是一套提供了多種語(yǔ)言接口的 API,為各種虛擬化工具提供一套方便、可靠的編程接口,不僅支持 KVM,而且支持Xen等其他虛擬機(jī)。詳見(jiàn)章節(jié)5。
7.8、檢查KVM是否加載成功
顯示結(jié)果如下表示kvm模塊已經(jīng)加載,如果沒(méi)有輸出信息,則表示沒(méi)有加載成功
[root@node-3 ~]# lsmod | grep kvm
kvm_intel 55464 30
kvm 345070 1 kvm_intel
7.9、檢查KVM是否成功安裝
[root@node-3 ~]# virsh list --all
Id Name State
----------------------------------------------------
7.10、查看工具版本信息
各版本查詢(xún)
[root@node-3 ~]# virt-install --version
0.600.0
[root@node-3 ~]# virsh --version
0.10.2
7.11、下載安裝VNC-Server服務(wù)
目的:通過(guò)Windows/Linux上的VNC客戶(hù)端來(lái)遠(yuǎn)程訪問(wèn)服務(wù)器,并且可使服務(wù)器的圖形化交互界面可見(jiàn)。前提需要在服務(wù)器端安裝并配置vncserver,在客戶(hù)端安裝vncview。
(1)、VNC-Server的安裝
yum -y install vnc *vnc-server*
(2)、修改配置文件
vim /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:lisi"
VNCSERVERARGS[1]="-geometry 1024x768"
上面第一行是設(shè)定可以使用VNC服務(wù)器的帳號(hào),可以設(shè)定多個(gè),但中間要用空格隔開(kāi)。注意前面的數(shù)字“1”或是“2”,當(dāng)你要從其它電腦來(lái)訪問(wèn)VNC服務(wù)器時(shí),就需要用IP:1這種方法,而不能直接用IP。
(3)、配置會(huì)話密碼:
執(zhí)行命令:vncpasswd
123456
123456
(4)、啟動(dòng)VNC服務(wù):
/etc/init.d/vncserver start
7.12、修改VNC連接權(quán)限
通過(guò)KVM可以創(chuàng)建虛擬機(jī),在給虛擬機(jī)安裝操作系統(tǒng)時(shí),有些操作系統(tǒng)的安裝需要人為干預(yù)進(jìn)行界面操作,所以我們需要通過(guò)遠(yuǎn)程桌面的方式連接到這些虛擬機(jī)。
由于這些虛擬機(jī)是使用QEMU-KVM進(jìn)行管理的,所以我們需要在QEMU的配置文件中進(jìn)行VNC IP地址的修改。
修改qemu.conf配置
vi /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
打開(kāi)vnc_listen = "0.0.0.0"選項(xiàng),否則默認(rèn)綁定的IP地址是127.0.0.1,遠(yuǎn)程無(wú)法訪問(wèn)。
重要說(shuō)明
通過(guò)以上的步驟,我們就能準(zhǔn)備好KVM的環(huán)境,接下來(lái),我們需要通過(guò)工具創(chuàng)建一個(gè)基于KVM的虛擬機(jī)。
在創(chuàng)建虛擬機(jī)之前,我們有個(gè)問(wèn)題要解決,就是橋接網(wǎng)絡(luò)的設(shè)置。
一般在生產(chǎn)環(huán)境中,我們通過(guò)KVM虛擬機(jī)出來(lái)的虛擬機(jī),是需要通過(guò)IP地址對(duì)外直接提供服務(wù)的,這就需要我們配置橋接模式。
回顧
網(wǎng)絡(luò)鏈接有幾種方式,我們比較常用的有兩種,一種是通過(guò)NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換),另一種是橋接的方式。兩種鏈接方式的區(qū)別,簡(jiǎn)單說(shuō)就是橋接使用的是虛擬機(jī)獨(dú)立的網(wǎng)卡,具有獨(dú)立的IP地址,該ip地址和虛擬機(jī)所在的物理機(jī)是同等級(jí)的。NAT翻譯過(guò)來(lái)就是網(wǎng)絡(luò)地址轉(zhuǎn)換,相當(dāng)于是把虛擬機(jī)所在的物理機(jī)當(dāng)做路由器在使用。
7.13、上傳鏡像文件到宿主機(jī)
下載winscp或者是使用yum -y install lrzsz* 安裝lrzsz軟件,將鏡像文件上傳到宿主機(jī)上。
目標(biāo)地址:/export/iso/
7.14、在宿主機(jī)上配置橋接網(wǎng)絡(luò)
cp ifcfg-eth0 ifcfg-br0
修改網(wǎng)橋的網(wǎng)絡(luò)信息,注意看紅色字段
[root@node-3 network-scripts]# vi ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPV6INIT=no
ONBOOT=yes
IPADDR=172.16.0.201
NETMASK=255.255.254.0
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DELAY=0
修改當(dāng)前宿主機(jī)的網(wǎng)絡(luò)信息,注意看紅色字段
[root@node-3 network-scripts]# vi ifcfg-eth0
HWADDR=00:25:90:AE:21:C0
DEVICE=eth0
TYPE=Ethernet
BRIDGE=br0
BOOTPROTO=none
IPV6INIT=no
ONBOOT=yes
疑問(wèn):宿主機(jī)怎么沒(méi)有設(shè)置IP地址,我以后想訪問(wèn)宿主機(jī)怎么辦?
訪問(wèn)網(wǎng)橋的IP地址就可以訪問(wèn)宿主機(jī),他們是同一臺(tái)機(jī)器。
疑問(wèn):是否可以給宿主機(jī)單獨(dú)設(shè)置一個(gè)IP地址?
也可以,去掉上文配置文件的BOOTPROTO=none
回顧:
BOOTPROTO網(wǎng)絡(luò)配置參數(shù):
BOOTPROTO=static 靜態(tài)IP
BOOTPROTO=dhcp 動(dòng)態(tài)IP
BOOTPROTO=none 無(wú)(不指定)
通常情況下是dhcp或者static,通過(guò)指定方式的辦法來(lái)獲得地址,如果沒(méi)有指定的話可能會(huì)出現(xiàn)問(wèn)題。
7.15、通過(guò)KVM創(chuàng)建虛擬機(jī)硬盤(pán)
先為虛擬機(jī)創(chuàng)建一個(gè)硬盤(pán)
qemu-img create -f raw /export/vm/devEnv-01.vm.itcast.img 200G
硬盤(pán)格式說(shuō)明:
raw 格式的硬盤(pán),會(huì)在創(chuàng)建的時(shí)候就占200G的空間
qcow2 格式的硬盤(pán),會(huì)隨著系統(tǒng)的數(shù)據(jù)逐漸占用200G的空間
初次使用KVM的時(shí)候,建議使用raw格式創(chuàng)建硬盤(pán),不會(huì)后期安裝操作系統(tǒng)是可能會(huì)出現(xiàn)錯(cuò)誤。錯(cuò)誤如下:
7.16、通過(guò)KVM創(chuàng)建虛擬機(jī)
virt-install --name=devEnv-01.vm.itcast --ram=8192 --vcpus=4 --disk path=/export/vm/devEnv-01.vm.itcast.img --accelerate --cdrom /export/iso/CentOS-6.5-x86_64-bin-DVD1.iso --graphics vnc,password=123456,port=5992 --network bridge=br0 --force --autostart
運(yùn)行以上命令,會(huì)創(chuàng)建一個(gè)虛擬機(jī)。創(chuàng)建成功界面如下
出現(xiàn)以上界面,表示虛擬機(jī)創(chuàng)建成功,緊接著我們需要通過(guò)VNC遠(yuǎn)程連接新創(chuàng)建的虛擬機(jī)進(jìn)行操作系統(tǒng)的安裝。
VNC的IP地址:172.16.0.201
當(dāng)前宿主機(jī)的IP地址,也就是網(wǎng)橋的IP地址
VNC的PORT端口號(hào):5992
見(jiàn)命令腳本vnc,password=123456,port=5992
VNC的Password密碼:123456
有必要一提的是上文的腳本中有bridge=br0的配置,表示我們新創(chuàng)建的虛擬機(jī)使用橋接的網(wǎng)絡(luò)模式。
7.17、下載安裝VNC客戶(hù)端
https://www.realvnc.com/download/file/vnc.files/VNC-6.0.1-Windows.exe
7.18、解決VNC軟件的閃退問(wèn)題
用VNC Viewer來(lái)連接一臺(tái)服務(wù)器,輸入密碼連上后直接閃退,可能是ColourLevel的問(wèn)題。
依次點(diǎn)Option-->Advanced-->Expert找到ColourLevel,默認(rèn)值是pal8,修改為rgb222或full。
重新連接,沒(méi)有問(wèn)題了。
7.19、VNC軟件連接新創(chuàng)建的虛擬機(jī)
連接成功后,需要輸入密碼。密碼是123456
點(diǎn)擊OK按鈕之后,就進(jìn)入了我們熟悉的界面
7.20、再次啟動(dòng)虛擬機(jī)器
安裝完系統(tǒng)之后,需要reboot。一旦執(zhí)行reboot,虛擬機(jī)并不會(huì)啟動(dòng),需要手動(dòng)在KVM管理工具中啟動(dòng)。
[root@node-3 ~]# virsh
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # list --all
Id Name State
----------------------------------------------------
1 centos64 running
2 centos642 running
3 centos643 running
6 centos648 running
8 centos649 running
- devEnv-01.vm.itcast shut off
virsh # start devEnv-01.vm.itcast
Domain devEnv-01.vm.itcast started
7.21、為虛擬機(jī)配置網(wǎng)絡(luò)
通過(guò)VNC創(chuàng)建繼續(xù)訪問(wèn)
為新創(chuàng)建的虛擬機(jī)安裝完操作系統(tǒng)之后,修改網(wǎng)絡(luò)配置如下:
[root@devEnv-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=52:54:00:1A:CC:96
TYPE=Ethernet
UUID=d00f89f0-49b0-4252-a6a3-61575e49d8d8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
重啟網(wǎng)絡(luò)
Service network restart
8、KVM常用管理命令
8.1創(chuàng)建虛擬機(jī)
[root@localhost ~]# virt-install --name=centos1 \ #生成一個(gè)虛擬機(jī)
--ram 1024 \ #分配內(nèi)存大小(默認(rèn)大小MB)
--vcpus=1 \ #分配CPU核心數(shù)
--disk path=/root/centos1.img \ #指定虛擬機(jī)鏡像(size單位為GB)
--accelerate \ #加速
--cdrom /root/CentOS-6.5-x86_64-bin-DVD1.iso \ # 指定安裝鏡像iso
--graphics vnc,password=123456,port=5921 \ # 指定vnc的連接密碼和監(jiān)聽(tīng)端口
--network bridge=br0 \ #指定網(wǎng)絡(luò)
--autostart \ ##自動(dòng)開(kāi)啟
8.2 virsh的其他操作
[root@localhost /]# virsh start centos1 #啟動(dòng)虛擬機(jī)
[root@localhost /]# virt-viewer centos1 #如果有圖形界面的話,可以進(jìn)入虛擬機(jī)的界面
[root@localhost ~]# virsh shutdown centos1 #關(guān)閉虛擬機(jī)
注意:shutdown使用發(fā)送acpid指令來(lái)控制虛擬機(jī)的電源,而KVM虛擬機(jī)安裝Linux系統(tǒng)時(shí)默認(rèn)沒(méi)有安裝acpid服務(wù),反以導(dǎo)致不能關(guān)閉虛擬機(jī),需要安裝acpid。
查看acpid服務(wù)是否開(kāi)啟:/etc/init.d/acpid status
啟動(dòng)acpid服務(wù):/etc/init.d/acpid start
[root@localhost /]# virsh reboot centos1 #重啟虛擬機(jī)
[root@localhost /]# virsh suspend centos1 #暫停虛擬機(jī)
[root@localhost /]# virsh resume centos1 #恢復(fù)虛擬機(jī)
[root@localhost /]# virsh autostart centos1 #自動(dòng)加載虛擬機(jī)
[root@localhost /]# virsh undefine centos1 #刪除一個(gè)虛擬機(jī)
virsh參數(shù)說(shuō)明如下:
autostart自動(dòng)加載指定的一個(gè)虛擬機(jī)
connect重新連接到hypervisor
console連接到客戶(hù)會(huì)話
create從一個(gè)SML文件創(chuàng)建一個(gè)虛擬機(jī)
start開(kāi)始一個(gè)非活躍的虛擬機(jī)
destroy刪除一個(gè)虛擬機(jī)
define從一個(gè)XML文件定義一個(gè)虛擬機(jī)
domid 把一個(gè)虛擬機(jī)名或UUID轉(zhuǎn)換為ID
domuuid把一個(gè)郁悶或ID轉(zhuǎn)換為UUID
dominfo查看虛擬機(jī)信息
domstate查看虛擬機(jī)狀態(tài)
domblkstat獲取虛擬機(jī)設(shè)備快狀態(tài)
domifstat獲取虛擬機(jī)網(wǎng)絡(luò)接口狀態(tài)
dumpxmlXML中的虛擬機(jī)信息
edit編輯某個(gè)虛擬機(jī)的XML文件
list列出虛擬機(jī)
migrate將虛擬機(jī)遷移到另一臺(tái)主機(jī)
quit退出非交互式終端
reboot重新啟動(dòng)一個(gè)虛擬機(jī)
resume重新恢復(fù)一個(gè)虛擬機(jī)
save把一個(gè)虛擬機(jī)的狀態(tài)保存到一個(gè)文件
dump把一個(gè)虛擬機(jī)的內(nèi)核dump到一個(gè)文件中以方便分析
shutdown關(guān)閉一個(gè)虛擬機(jī)
setmem改變內(nèi)存的分配
setmaxmem改變最大內(nèi)存限制值
suspend掛起一個(gè)虛擬機(jī)
vcpuinfo虛擬機(jī)的cpu信息
version顯示virsh版本
8.3 virt-clone克隆
當(dāng)安裝完一臺(tái)后,如何快速的虛擬出第二臺(tái)呢?
這里就可以采用克隆這種方式
(1)通過(guò)命令:
virt-clone -o devEnv-01.vm.itcast -n devEnv-02.vm.itcast -f /home/kvm/centos02.img
參數(shù)說(shuō)明:
-o :指定源虛擬機(jī)
-n :命名新克隆的虛擬機(jī)
-f :指定新克隆虛擬機(jī)的位置
(2)克隆完成后,在生成硬盤(pán)映像文件的同時(shí),也會(huì)克隆虛擬機(jī)的配置文件
(3) 修改克隆出來(lái)的心虛擬機(jī)的配置文件
通過(guò)命令:virsh edit devEnv-02.vm.itcast
修改此處的vnc監(jiān)控的端口號(hào),避免與克隆前的虛擬機(jī)端口一樣,而出現(xiàn)端口地址被占用。
(4)啟動(dòng)克隆出來(lái)的新的虛擬機(jī)devEnv-02.vm.itcast
通過(guò)命令: virsh start devEnv-02.vm.itcast
(5) 通過(guò)用VNC Viewer來(lái)連接該虛擬機(jī)
由于是克隆出來(lái)的,跟之前我們使用VMware克隆效果是一樣的,需要進(jìn)行相應(yīng)的修改。
a:修改對(duì)應(yīng)的主機(jī)名
進(jìn)入/etc/sysconfig/network進(jìn)行相應(yīng)的修改
b:因?yàn)榭寺「淖冃绿摂M機(jī)的MAC地址,故eth0無(wú)法啟動(dòng),新的虛擬機(jī)后網(wǎng)卡變成了 eth1
進(jìn)入/etc/udev/rules.d/70-persistent-net.rules文件刪除之前的eth0這個(gè)網(wǎng)卡記錄,保留eth1。
進(jìn)入到/etc/sysconfig/network-scripts/,執(zhí)行命令mv ifcfg-eth0 ifcfg-eth1 重命名
vi ifcfg-eth1 修改配置
c: 重啟網(wǎng)卡,通過(guò)命令service network restart
8.4 libguestfs-tools安裝和使用
libguestfs-tools是虛擬機(jī)一個(gè)管理包,很有用的工具。
(1)安裝
yum -y install libguestfs-tools
(2)使用
查看虛擬機(jī)的分區(qū)情況
[root@node-1 home]# virt-filesystems -d devEnv-01.vm.itcast
[root@node-1 home]# virt-list-partitions /home/kvm/devEnv-01.vm.itcast.img
[root@node-1 home]# virt-df /home/kvm/devEnv-01.vm.itcast.img
8.5 kvm虛擬機(jī)參數(shù)修改
(1) 修改kvm虛擬機(jī)的內(nèi)存大小
[root@node-1 home]# virsh edit devEnv-01.vm.itcast
注意不可直接修改devEnv-01.vm.itcast.xml 文件
查看內(nèi)存:free
(2)修改kvm虛擬機(jī)的cpu核數(shù)大小
[root@node-1 home]# virsh edit devEnv-01.vm.itcast
查看cpu核數(shù): cat /proc/cpuinfo |grep "processor"|sort -u|wc -l
注意:修改完成之后,都要重啟虛擬機(jī)
先關(guān)閉:virsh shutdown devEnv-01.vm.itcast
再啟動(dòng):virsh start devEnv-01.vm.itcast
其他參數(shù)修改相同。
北京校區(qū)