KVM建立虛擬機步驟
Submitted by zhaoley on October 18, 2016 - 10:43am
測試環境:python
1: 43.243.130.89, CentOS Linux release 7.2.1511 (Core), Intel(R) Xeon(R) CPU E5620 x2(4cores,16 processors), Memory 64GB, Disk 1TB*8
2: QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-105.el7_2.7)
3: virsh 1.2.17windows
準備工做:
1: 檢查kvm是否支持
a: grep '(vmx|svm)' /proc/cpuinfo
vmx是intel cpu支持的
svm是AMD cpu支持的
若是flags: 裏有vmx 或者svm就說明支持VT;若是沒有任何的輸出,說明你的cpu不支持,將沒法使用KVM虛擬機。centos
b: 確保BIOS裏開啓VT: Intel(R) Virtualization Tech [Enabled]api
c:lsmod | grep kvm
命令輸出中必須存在 kvm_intel (intel CPU的狀況下)
若是沒有輸出 則運行 modprobe kvm-intel網絡
d: 設置橋接網絡dom
yum install -y bridge-utils tcp
複製ifcfg-em4 爲 ifcfg-br0,並將ifcfg-br0改成以下配置ide
NM_CONTROLLED=no
DEVICE=br0
STP=yes
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=br0
UUID=924f955d-4623-499c-8179-fc22420cb0d8 #可不寫
ONBOOT=yes
IPADDR=192.168.169.92
NETMASK=255.255.255.0
修改ifcfg-em4: (mac地址必須有)
HWADDR=00:26:B9:36:54:FB
TYPE=Ethernet
BOOTPROTO=none
BRIDGE=br0
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=em4
UUID=d20d1fd5-e3bc-43c2-ac37-c0c4a9484a71
ONBOOT=yes
NM_CONTROLLED=no
重啓網絡
service network restart
檢查橋接:
brctl show
e: 安裝kvm
yum -y install kvm python-virtinst libvirt virt-manager qemu-kvm-tools virt-viewer virt-v2v
執行 systemctl enable libvirtd && systemctl start libvirtd
virsh list --all
f: 安裝橋接網絡
建立br0.xml 配置文件(文件中uuid保證惟一便可)
<network>
<name>br0</name>
<uuid>fb48b969-b9f4-e859-d957-50aedd850fb4</uuid>
<forward mode='bridge'>
<bridge name ='br0'/>
</forward>
</network>
執行命令 virsh net-define br0.xml virsh net-undefine br0 刪除橋接網絡 virsh net-list all 查看橋接網絡
virsh net-list --all
virsh net-start br0
安裝映像:
1: 建立磁盤文件
qemu-img create -f raw win2008.img 200G 兩種格式或qemu-img create -f qcow2 testilanni02.img 15G(虛擬機的硬盤必定要是 qcow2 格式,不然沒法使用快照功能。)
2: 下載 win8_server_r2.iso
下載 virtio for windows driver (https://launchpad.net/kvm-guest-drivers-windows/+download)
3: 啓動qemu-kvm安裝windows()
qemu-kvm -m 1024 -cdrom win2008.iso -drive file=win2008.img,if=virtio -fda virtio.vfd -boot d -nographic -vnc :1,password測試
執行命令以後須要定義vnc的訪問密碼,本身定義便可。ui
第3:步的安裝說明:
virt-install -n ilanni02 -r 2048 –vcpus=2 –os-type=windows –accelerate -c /iso/windows_server_2008_R2/Win_Server_2008_R2_SP1_33in1.iso –disk path=/vhost/ilanni02.img,format=qcow2,bus=ide –network bridge=br0 –vnc –vncport=5992 –vnclisten=0.0.0.0 –force –autostart
–name虛擬機的名稱
–disk表示硬盤的路徑
-r 分配給虛擬機的內存
–vcpus 分配給虛擬機的cpu個數
–os-type 該虛擬機的OS類型
–vncport 鏈接該虛擬機的VNC端口號
其餘的選項能夠經過 virt-install –help進行查看。
注意其中硬盤的格式必定要使用IDE格式,若是沒有添加格式說明的話,默認是virtio格式。若是使用virtio格式的話,須要加載virtio驅動。
4: 使用root執行firewall-cmd --add-port=5901/tcp 容許5901vnc端口被外網訪問
5: 在本身電腦上下載vnc客戶端,mac osx能夠用Remote Desktop - VNC
windows電腦可使用tightvnc
打開連接vnc://43.243.130.89:5901
6: 安裝win2008系統完成以後關閉虛擬機
7: 建立win2008.xml
<domain type="kvm">
<name>win2008</name> <!--虛擬機名稱-->
<uuid>fdae7aee-af7e-4ba5-bea0-4db2cbe608e5</uuid>
<memory unit="MiB">2048</memory> <!--最大內存,單位M-->
<currentMemory unit="MiB">2048</currentMemory> <!--可用內存,單位M-->
<vcpu>2</vcpu> <!--//虛擬cpu個數-->
<os>
<type arch="x86_64" machine="pc">hvm</type>
<boot dev="hd" /> <!-- 硬盤啓動 -->
</os>
<features>
<acpi />
<apic />
<pae />
</features>
<clock offset="localtime" />
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="raw" />
<source file="/data1/vmimages/centos7.img" /> <!--目的鏡像路徑,添加硬盤路徑-->
<target dev="hda" bus="ide" />
</disk>
<interface type="bridge"> <!--虛擬機網絡鏈接方式-->
<source bridge="br0" /> <!--當前主機網橋的名稱-->
</interface>
<input type="mouse" bus="ps2" />
<!--vnc方式登陸,端口號自動分配,自動加1,能夠經過virsh vncdisplay來查詢-->
<graphics type="vnc" port="5901" autoport="no" listen="0.0.0.0" keymap="en-us" passwd='Pa5sW0rd2' />
執行命令 virsh define win2008.xml virsh undefine win2008 刪除域
查看虛擬機列表: virsh list --all
啓動虛擬機: virsh start win2008
關閉虛擬機: virsh destroy win2008
經過vnc鏈接到win2008以後, 網絡設置爲靜態ip模式,使用和br0相同網段的不一樣ip便可。
kvm虛擬機Linux系統增長硬盤:
修改配置文件來添加新硬盤
要經過修改配置文件來添加硬盤,咱們首先要關閉虛擬機,不然沒法正常添加。
關閉虛擬機,而後使用virsh edit命令修改虛擬機的主配置文件。
虛擬機的全部配置文件都存放在/etc/libvirt/qemu,以下圖:
編輯虛擬機配置文件,以下圖:
配置文件中,咱們找到有關硬盤的代碼:
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2′ cache=’none’/>
<source file=’/vhost/ilanni01.img’/>
<target dev=’vda’ bus=’virtio’/>
<address type=’pci’ domain=’0x0000′ bus=’0x00′ slot=’0x04′ function=’0x0’/>
</disk>
如今咱們在</disk>這以後,添加以下的代碼
<disk type=’file’ device=’disk’>
<driver name=’qemu’ type=’qcow2′ cache=’none’/>
<source file=’/vhost/testdisk.img’/>
<target dev=’vdb’ bus=’virtio’/>
</disk>
注意其中type表示硬盤的格式
file表示硬盤所在的路徑
dev表示硬盤在系統中顯示的硬盤名稱
bus表示硬盤的接線類型,若是是windows系統通常是ide。
添加完畢後,咱們來啓動虛擬機看看實際的效果。
能夠看到硬盤已經被添加進來了。
卸載硬盤咱們可使用virsh detach-disk命令,以下圖:
virsh detach-disk ilanni01 –target vdb
也能夠再配置文件裏調整硬盤。
使用 virsh snapshot-create-as 命令進行生成快照
快照:
一、snapshot-create-as centos7 centos7_uninstall_ftp
#爲虛擬機centos7建立快照,快照名稱爲centos7_uninstall_ftp
二、snapshot-list centos
#查看虛擬機centos7全部的快照
三、snapshot-info centos7 centos7_uninstall_ftp
#查看虛擬機centos快照centos7_uninstall_ftp詳細信息
以上咱們把centos7這臺虛擬機在安裝FTP命令先後的快照已經作好,如今虛擬機centos7處於已經安裝FTP命令狀態,若是咱們此時要把虛擬機centos7恢復到安裝FTP命令以前的話,咱們只須要使用virsh snapshot-revert命令便可。可是在使用virsh snapshot-revert命令恢復虛擬機centos狀態以前,咱們必需要把虛擬機關閉。
關閉虛擬機,咱們可使用virsh destroy centos7命令進行強制性關機,咱們也可使用virsh shutdown命令進行關機。
注意:要使用virsh shutdown命令進行關閉虛擬機的話,必定要安裝acpid服務。同時通過屢次測試證實若是虛擬機有快照的話,就沒法使用virsh shutdown/reboot,命令進行關機或者重啓。
yum -y install acpid 安裝acpid服務
/etc/init.d/acpid status 查看acpid服務是否運行
恢復:
四、destroy centos 強制關閉虛擬機centos
五、Centos虛擬機關閉後,咱們開始恢復虛擬機的狀態到未安裝FTP命令以前,即恢復虛擬機centos的快照。使用以下命令:
snapshot-revert centos centos_uninstall_ftp
注意:快照恢復完畢後,強烈建議把如今的虛擬機關閉從新啓動下。
以上是有關KVM虛擬機的建立與恢復,若是要刪除一個快照,可使用以下命令:
snapshot-delete centos centos_uninstall_ftp
至此KVM虛擬機的快照介紹完畢。