1. 程式人生 > >命令行利用KVM創建虛擬機

命令行利用KVM創建虛擬機

proc face cas 服務 generator virtual lin adc rate

一,實驗環境OS:CENTOS6.5 X86_64二,KVM宿主環境配置1.cat /proc/cpuinfo | egrep ‘vmx|svm‘ //查看是否支持虛擬技術2.安裝KVM相關yum -y groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" //可以先用yum grouplist查看下,為了避免缺少組件,索性一次全裝了三,網絡配置1.安裝網橋工具yum install bridge-utils -y2.ifconfig virbr0 //確認有類似下面的輸出
virbr0 Link encap:Ethernet HWaddr 52:54:00:A0:83:9A inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)3.設置bridge //bridge模式有個好處,無論是想從vm訪問外網還是從外網訪問vm都可以,所以建議設置為這種模式1)修改/etc/sysconfig/network-scripts/ifcfg-eth0,並且在同目錄下新建ifcfg-br0,兩文件內容如下:[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=noBRIDGE=br0
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0TYPE=BridgeONBOOT=yesNM_CONTROLLED=noBOOTPROTO=Static //如果想使用DHCP方式,把這裏換成dhcp,下面的都刪掉就行了IPADDR=192.168.1.80NETMASK=255.255.255.0GATEWAY=192.168.1.12)sysctl -p //查看如下三項是否都為0,我這裏默認就是0,官網說這是為了disabled netfilternet.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 3)/etc/init.d/network restart後,確認bridge是否設置成功[[email protected] ~]# ifconfigbr0 Link encap:Ethernet HWaddr 00:0C:29:69:07:FE inet addr:192.168.1.80 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe69:7fe/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:788 errors:0 dropped:0 overruns:0 frame:0 TX packets:369 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:78433 (76.5 KiB) TX bytes:58258 (56.8 KiB)eth0 Link encap:Ethernet HWaddr 00:0C:29:69:07:FE inet6 addr: fe80::20c:29ff:fe69:7fe/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:37360 errors:0 dropped:0 overruns:0 frame:0 TX packets:8899 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:38608283 (36.8 MiB) TX bytes:796592 (777.9 KiB).......或者使用brctl show[[email protected] ~]# brctl showbridge namebridge idSTP enabledinterfacesbr08000.000c296907fenoeth0virbr08000.525400a0839ayesvirbr0-nic四,安裝虛擬機1)新建兩個目錄分別存放ISO文件和虛擬磁盤,我這裏在/opt下新建了iso和kvmimg目錄;有些朋友不知道怎麽將PC上的ISO文件傳送到服務器上,我這裏推薦大家用xshell和xftp,簡單好用且免費!2)利用virt-install開始安裝系統,更多參數可以參考--help安裝linux:[[email protected] iso]# virt-install --name www --boot network,cdrom,menu=on --ram 2048 --vcpus=2 --os-variant=rhel6 --accelerate --cdrom=/opt/iso/CentOS-6.4-x86_64-bin-DVD1.iso --disk path=/opt/kvmimg/vm01.img,size=5,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5900 --vnclisten=0.0.0.0安裝windwosvirt-install --name windows-2008 --boot network,cdrom,menu=on --ram 2048 --vcpus=2 --os-variant=win7 --accelerate --cdrom=/opt/iso/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso --disk path=/opt/kvmimg/2008server.img,size=50,bus=ide --bridge=br0,model=virtio --autostart --vnc --vncport=5900 --vnclisten=0.0.0.0Starting install...Creating storage file vm01.img | 5.0 GB 00:00 Creating domain... | 0 B 00:00 Cannot open display:Run ‘virt-viewer --help‘ to see a full list of available command line optionsDomain installation still in progress. You can reconnect tothe console to complete the installation process.這個時候就是已經OK了,用vnc軟件(vnc-viewer/tigervnc)填好IP地址和端口,這裏是5900連接,就能看到裝系統的界面了,裝機過程就省略了。。。3)安裝完畢後的補充virsh list --all //可以發現vm01狀態時shut offvirsh start vm01 //手動啟動vm01/etc/init.d/network restart //用vnc登錄到vm01,重啟網絡獲取IP地址,至此vm01就可以正常使用了五,克隆虛擬機我們有時候需要多臺虛擬機以滿足需求,這時候只要利用vm01克隆出來就行了,過程簡單,方便,快速,但是需要做一些改動1)virsh suspend vm01 //克隆的時候狀態必須是非running,之後把suspend換成resume恢復即可2)virt-clone -o vm01 -n vm02 -f /opt/kvmimg/vm02.img //克隆vm023)virsh edit vm02 //修改vm02.xml文件,因為vm01的vnc已經把5900端口占用所以需要換一下,我這裏修改成6900<graphics type=‘vnc‘ port=‘6900‘ autoport=‘no‘ listen=‘0.0.0.0‘>4)virsh start vm02 //啟動vm025)利用vnc登錄到vm02之後,有些網絡設置需要修改,否則網卡無法啟動cat /etc/sysconfig/network-scripts/ifcfg-eth0 //刪除mac地址和uuid那一行DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=dhcpcat /etc/udev/rules.d/70-persistent-net.rules //把之前的"SUBSYSTEM=="這一行註釋掉,把新的那行的eth1換成eth0# This file was automatically generated by the /lib/udev/write_net_rules# program, run by the persistent-net-generator.rules rules file.## You can modify it, as long as you keep each rule on a single# line, and change only the value of the NAME= key.# PCI device 0x1af4:0x1000 (virtio-pci)#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:72:69:a1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"# PCI device 0x1af4:0x1000 (virtio-pci)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:f8:e5:86", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"6)重啟vm02,重啟網絡 //至此,大功告成!六,常用virsh指令1)virsh list 列出當前虛擬機列表,不包括未啟動的2)virsh list --all 列出所有虛擬機,包括所有已經定義的虛擬機3)virsh destroy vm-name 關閉虛擬機4)virsh start vm-name 啟動虛擬機5)virsh edit vm-name 編輯虛擬機xml文件6)virsh undefine vm-name 刪除虛擬機7)virsh shutdown vm-name 停止虛擬機8)virsh reboot vm-name 重啟虛擬機9)virsh autostart vm-name 虛擬機隨宿主機啟動

命令行利用KVM創建虛擬機