本文根據上課筆記整理,大家都知道雲計算的基礎就是虛擬化,而開源的虛擬化基本以kvm技術為主導,因此kvm技術已成為運維工程師必備的技術,也是雲時代必不可少的技術
在介紹kvm之前 我們先來了解一下vnc這個軟件,後面安裝kvm需要vnc來支持
1、vnc的安裝及使用
# yum -y install tigervnc-server 首次啟動 # vncserver :1 會提示輸入兩次密碼 然後編輯/root/.vnc/xstartup,將最後一行twm替換為gnome-session或者startkde 懶人可以直接用以下語句直接替換(執行任意一條即可,建議選擇第一條穩定,但是占用內存較多) sed -i 's/twm/gnome-session/g' /root/.vnc/xstartup sed -i 's/twm/startkde/g' /root/.vnc/xstartup 重啟vncserver # vncserver 客戶端連接 vncclient裏輸入 vncserver-IP:1
2、查看是否 支持虛擬化
確定服務器是否支持虛擬化,如果沒有查到,在bios裏面開啟
vmx屬於inter處理器,svm屬於amd處理器 egrep 'vmx|svm' /proc/cpuinfo
3、安裝kvm軟件包
yum groupinstall "DevelopmentTools" yum groupinstall "Virtualization" "Virtualization Client""Virtualization Platform" virtualization //提供虛擬機的環境,主要包含qumu-kvm virtualization-client//管理和安裝虛擬機實例的客戶端,主要有python-virtinst,virt-manager,virt-viewer virtualization-platform//提供訪問和控制虛擬客戶端的接口,主要有libvirt,libvirt-client
4、檢查安裝後是否加載相關模塊
5、kvm虛擬機的安裝
安裝虛擬機有兩種方式,一種是通過vnc連接到宿主機圖形界面內,然後通過virt-manager命令打開虛擬機創建圖形界面創建即可。這裏我們簡單截圖說明,首先通過vncview連接服務端
點擊new
之後一步一步根據提示安裝完成即可,如果這裏需要詳細說明,我們下次再介紹
另一種是通過命令行方式進行安裝,步驟如下: 1. 上傳ISO文件,這裏采用centos6.5 2. 開始安裝centos6.5 # virt-install --name=vigor --ram 2048 --vcpus=1 --disk path=/var/lib/libvirt/images/iiveylinux4.img,size=30,bus=virtio --accelerate --cdrom /iso/CentOS-6.5-x86_64-bin-DVD1.iso --vnc --vncport=5911 --vnclisten=0.0.0.0 --Network bridge=br0,model=virtio --noautoconsole 說明:在linux系統安裝開始就要註意添加提高性能的一些參數,後面就不需要做一些調整了。 kvm虛擬化學習筆記(五)之Windows虛擬機性能調整,這篇文章介紹windows配置virtio的驅動還有些麻煩,最好是在開始安裝時註意加入這些參數。 參數說明: --name 指定虛擬機名稱 --ram 分配內存大小。 --vcpus分配CPU核心數,最大與實體機CPU核心數相同 --disk 指定虛擬機鏡像,size 指定分配大小單位為G。 --network 網絡類型,此處用的是默認,一般用的應該是 bridge 橋接。 --accelerate 加速 --cdrom指定安裝鏡像iso --vnc啟用VNC遠程管理,一般安裝系統都要啟用。 --vncport指定VNC 監控端口,默認端口為5900,端口不能重復。 --vnclisten指定VNC 綁定IP,默認綁定127.0.0.1,這裏改為 0.0.0.0
6、網絡配置
kvm的網絡設置我們在博客中詳細說明,這裏簡單說明下 kvm虛擬機網絡問為三種:a)虛擬網絡'default':NAT (默認方式,支持虛擬機上網但不支持互訪) b)主機設備 vnet0(根據使勁情況而定):macvtap(支持互訪) c)主機設備 vent0 (橋接'br0') (bridge方式,可以使用虛擬機成為網絡中具有獨立IP的主機)bridge方式介紹:1、建立橋接器在/etc/sysconfig/network-scripts目錄下,創建一個ifcfg-br0 橋接器,內容如下:[root@hadoop network-scripts]# more ifcfg-br0 DEVICE="br0"BOOTPROTO="static"ONBOOT="yes"IPADDR=172.16.212.232NETMASK=255.255.255.0TYPE="Bridge"2、更改物理設備,這裏選擇 eth0 ,內容如下:[root@hadoop network-scripts]# more ifcfg-eth0DEVICE="eth0"BOOTPROTO="none"ONBOOT="yes"TYPE="Ethernet"BRIDGE="br0"UUID="d931154d-d2c9-4977-ab78-4a9efa971f39"3、重啟網絡服務:service network restart
7、虛擬機的克隆
kvm虛擬機的克隆分為兩種情況,本文也就通過以下兩種情況進行克隆。(1) KVM主機本機虛擬機直接克隆。(2) 通過復制配置文件與磁盤文件的虛擬機復制克隆(適用於異機的靜態遷移)。1. 本機虛擬機直接克隆 (1) 查看虛擬機配置文件[root@node1 ~]# cat /etc/libvirt/qemu/oeltest01.xml虛擬機磁盤文件: /data/test01.img虛擬機名稱:oeltest01(2) 開始克隆# virt-clone -o oeltest01 -n oeltest02 -f /data/test02.img說明:以oeltest01做為源,克隆oeltest01虛擬機,並創建名稱為oeltest02虛擬機,使用磁盤文件/data/test02.img(3) 啟動虛擬機並配置主機名,IP地址等。
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 test02localhost.localdomainlocalhost
::1 localhost6.localdomain6 localhost6
# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=test02
GATEWAY=192.168.233.2
修改IP地址
# vi /etc/sysconfig/network-script/ifcfg-eth0
# Virtio Network Device
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=52:54:00:56:bd:2b
IPADDR=192.168.233.142
NETMASK=255.255.255.0
[root@test01 ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
8、進入虛擬控制臺
kvm虛擬機能否像xen虛擬機一樣通過virsh console 一樣采用字符界面進行linux虛擬機控制臺呢,答案是肯定的,默認情況下該命令是不起作用的,需要修改KVM虛擬機(非宿主機)相關文件才能實現。
這裏我們先看下效果,以後再詳細說明
可以看到 我們能看到完整的啟動的過程,這樣的好處是我們不在需要依靠第三方軟件vnc登陸
,效果等同於我們拿著console線直接插入到交換機的管理口一樣,即可直接在物理主機上面對虛擬機進行控制
9、kvm虛擬化常用管理命令
1、查看KVM虛擬機配置文件及運行狀態 (1) KVM虛擬機默認配置文件位置: /etc/libvirt/qemu/ autostart目錄是配置kvm虛擬機開機自啟動目錄。 (2) virsh命令幫助 # virsh -help 或直接virsh命令和,再執行子命令。如下所示。 [root@node1 ~]# virsh 歡迎使用virsh,虛擬化的交互式終端。 輸入:'help' 來獲得命令的幫助信息 'quit' 退出 virsh # help (3) 查看kvm虛擬機狀態 顯示虛擬機列表: virsh # list --all 2. KVM虛擬機開機 啟動虛擬機: virsh # start [name] 3. KVM虛擬機關機或斷電 (1) 關機 默認情況下virsh工具不能對linux虛擬機進行關機操作,linux操作系統需要開啟與啟動acpid服務。在安裝KVM linux虛擬機必須配置此服務。 # chkconfigacpid on # serviceacpid restart 關閉虛擬機: virsh # shutdown [name] (2) 強制關閉電源 # virsh destroy wintest01 (3)重啟虛擬機 重啟虛擬機: virsh # reboot [name] (4)查看kvm虛擬機配置文件 virsh # dumpxml [name] 4. 通過配置文件啟動虛擬機 # virsh create /etc/libvirt/qemu/wintest01.xml 5. 配置開機自啟動虛擬機 # virshautostart oeltest01 autostart目錄是kvm虛擬機開機自啟動目錄,可以看到該目錄中有KVM配置文件鏈接。 6. 導出KVM虛擬機配置文件 # virshdumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml KVM虛擬機配置文件可以通過這種方式進行備份。 7. 添加與刪除KVM虛擬機 (1) 刪除kvm虛擬機 # virshundefine wintest01 說明:該命令只是刪除wintest01的配置文件,並不刪除虛擬磁盤文件。 (2) 重新定義虛擬機配置文件 通過導出備份的配置文件恢復原KVM虛擬機的定義,並重新定義虛擬機。 # mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml # virsh define /etc/libvirt/qemu/wintest01.xml 8. 編輯KVM虛擬機配置文件 # virsh edit wintest01 virsh edit將調用vi命令編輯/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通過vi命令進行編輯,修改,保存。 可以但不建議直接通過vi編輯。 9. virsh console 控制臺管理linux虛擬機 [root@node1 data]# virsh console oeltest02 10. 其它virsh命令 (1) 掛起服務器 # virsh suspend oeltest01 (2) 恢復服務器 # virsh resume oeltest01
本文出自 “martin” 博客,謝絕轉載!
Tags: 雲計算 處理器 服務器 虛擬機 工程師
文章來源: