Linux 中使用 KVM
RedHat?紅帽CTO Brian Steven在一次記者招待會說:“我們致力于Xen,RHEL 5有10年的生命周期,因此會有一個較大的交叉過渡.我們將在Red Hat 6中全面使用KVM,但KVM目前已經準備就緒,完全可以正式投入到數據中心和云中,不用再等待了!”
KVM要使用2.6.20以上的內核才行.Ubuntu到是不用擔心,它基本一直使用的是最新的內核.
需要關心一點就是,你的硬件,CPU是不是支持半虛擬(VT/AMD-V),使用下面的命令可以查看是否支持
| 1 | grep -E '(vmx|svm)'?? /proc/cpuinfo |
? 在ubuntu中安裝KVM
我原來以為KVM很難裝,沒想到現在容易成這樣了.太方便了
| 1 | sudo apt-get install kvm libvirt-bin ubuntu-vm-builder? bridge-utils kvm-pxe uml-utilities |
安裝KVM在ubuntu中的GUI管理軟件,象我,拿ubuntu當桌面,就不使用命令…呵呵
| 1 | sudo apt-get install virt-manager virt-viewer |
需要設置一下網橋
| 1 | sudo /etc/init.d/networking stop |
?我們來修改一下配置
| 1 | sudo vim /etc/network/interfaces |
?靜態IP和使用DHCP是不一樣的,DHCP修改成下面這樣
| 1 2 3 4 5 6 | auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 5 bridge_maxwait 5 |
或
static:
| 01 02 03 04 05 06 07 08 09 10 11 | auto br0 iface br0 inet static address 192.168.0.xxx network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 bridge_ports eth0 bridge_stp off bridge_fd 5 bridge_maxwait 5 |
完事后
進入ubuntu的“應用程序”-> “系統工具” -> “虛擬系統管理”就可以全GUI來玩kvm啦
?
RedHat Centos 安裝 KVM
在 Centos 中安裝 kvm 也一樣很容易,
1. 安裝 KVM 和?virtinst (一個創建?virtual machines 的工具?)
| 1 | yum install kvm kmod-kvm qemu libvirt python-virtinst |
?
?2. 裝完后記的重起,重起后檢查模塊是否有加載
| 1 2 3 | $ lsmod | grep kvm kvm_amd??????????????? 50452? 0 kvm?????????????????? 109264? 1 kvm_amd |
?也可以使用 virsh 來測試
| 1 | virsh -c qemu:///system list |
?
?3. 安裝橋接管理的工具
| 1 | yum install bridge-utils |
?
?4. 安裝 GUI 的管理軟件
| 1 | yum install virt-manager |
?
KVM 的高級管理
KVM 現在相當成熟,在三個比較常用管理程序(我所知道的),大家平時玩玩的話,就用 GUI 來管理就好了,GUI 都會我就不詳細寫了:
virt-manager: 這個我最常用,是?GUI 的,需要 x windows 的支持.這個是 RedHat 開發,大家想了解可以到? http://virt- manager.et.redhat.com/ 上看看
virt-install:python 寫的文字介面的管理 kvm 的程序,這個也是Red Hat 開發的哦.
ubuntu-vm-builder:這個是 Canonical (Ubuntu)開發的文字的管理程序.
?
virt-install 的基本使用
(1. 安裝 virt-install 和 圖形化的連接軟件 virt-viewer
?
| 1 | sudo apt-get install python-virtinst virt-viewer |
詳細使用可以 man virt-install
?
(2. virt-install 安裝虛擬系統
例:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ virt-install \ --connect qemu:///system \ --name= 虛擬機器的名字 \ --ram=設置內存的大小 [MB] \ --os-type=操作系統的類型 [linux ] \ --os-variant=操作系統的版本 [centos 5.4] \ --hvm [全虛擬化( hvm )與半虛擬化( paravirt? )選擇其一] \ --paravirt? [全虛擬化( hvm )與半虛擬化( paravirt? )選擇其一] \ --accelerate? [KVM 加速器] \ --cdrom=系統安裝的CD路徑 [*.iso] \ --file=虛擬硬盤的路徑 [*.qcow2] \ --file-size=虛擬硬盤的大小 [GB] \ --bridge=br0 \ --vnc \ --noautoconsole? \ --debug |
?注意 Windows 只能用有全虛擬化( hvm )與半虛擬化( paravirt? )中選擇 hvm.hvm 的意思是指硬件輔助的虛擬化,就是需要所謂的 VT 支持的.
?建出來的虛擬機會在?/etc/libvirt/qemu/虛擬機器名稱.xml 有個配置文件
(3. 使用 virt-install? 啟動虛擬的機器
進入 virsh 中,所有 virsh 的操作都要先進入這個
| 1 | virsh |
?管理啟動
| 1 2 3 | virsh# start 虛擬機器名字 virsh# list? --all virsh# quit |
?
(4. 安裝管理查看 virt-install 安裝后的系統是否正常
| 1 | virt-viewer --connect qemu+ssh://帳號@虛擬機實體主機IP??? 要連接的虛擬機器名字 |
?
virt-install 的其它使用
在原來的基礎上復制一個新的虛擬機器
| 1 2 | virt-clone? --connect=qemu:///system \ -o 舊的虛擬機器名稱? -n 新的虛擬機器名稱? -f? 新的虛擬硬碟路徑 [*.qcow2] |
查看所有虛擬出的機器
| 1 | virsh# list --all |
dump 虛擬出的機器配置文件
| 1 | virsh# dumpxml 虛擬出的機器名稱? /tmp/虛擬出的機器配置文件 [*.xml] |
使用現有的虛擬出的機器配置文件建立虛擬新機器
| 1 | virsh# define? /etc/libvirt/qemu/虛擬出的機器配置文件 [*.xml] |
移除虛擬出的機器
| 1 | virsh# undefine 虛擬出的機器名稱 |
關閉虛擬出的機器
| 1 | virsh# shutdown 虛擬出的機器名稱 |
關掉虛擬出的機器的電源
| 1 | virsh# destory 虛擬出的機器名稱 |
KVM的小技巧
1.提升KVM的網絡和硬盤IO在linux中的性能
官方提供了一個叫kvm-guest-drivers-windows的網卡驅動很不錯,虛擬機的啟動參數那里加上model=virtio這個參數,界面中也是可以設置的.硬盤也有virtio的驅動,記的使用.在Virt-manager 中可以選擇 virtio disk.獲得高性能的網絡和磁盤操作
virtio的網卡驅動的地址: http://sourceforge.net/project/showfiles.php?group_id=180599&package_id=267943
virtio的硬盤驅動的地址:http://www.linux-kvm.com/sites/default/files/viostor.iso
2.和真實機器中資料共享
這個是超級方便的,不需要象VBox搞個文件夾,只要在Host的設置中直接給真實的Dev的塊設備直接設定到Guest的配置中,然后在進入kvm中的系統,直接mount就行
3.轉換VMWare的image讓KVM能使用
我們先要安裝一個小軟件virt-goodies.
| 1 | sudo apt-get install virt-goodies |
然后使用vmware2libvirt來給VMWare VM的基本資料vmx轉成KVM可以讀入的XML. 如
| 1 | vmware2libvirt -f myvm.vmx > myvm.xml |
在轉VMWare VM的disk image, 使用qemu-img轉成KVM能讀的文件.
| 1 | qemu-img convert -f vmdk myvm.vmdk -O qcow2 myvm.qcow2 |
可能還需要修改一下vmx轉成的xml,
disk中的target dev,在VMWARE是ide(target dev=’hda’ bus=’ide’)可能要修改成scsi(target dev=’sda’ bus=’scsi’),我們看能不能找到ROOT就知道是不是用對了;
bridge mode, 給interface type=’network’修改成interface type=’bridge’, 而source network=’default’修改成source bridge=’br0′.
qcow選項,則會創建QCOW(寫時復制)格式
修改后給VM的配置加入到libvirtd中.
| 1 2 | virsh -c qemu:///system define myvm.xml virsh -c qemu:///system list --all |
FAQ:
1.如果在安裝的時候見到"FATAL: Error inserting kvm_intel"
這是因為沒有在BIOS中打開virtualization.需要進入BIOS中打開,然后斷電重起.進入系統后打modprobe kvm-intel來加載模塊
?
?? 先在虛擬機中打開windows自己的遠程桌面,然后給用戶設定密碼,然后運行?rundll32 netplwiz.dll,UsersRunDll?啟 用windows的自動登錄.(這三步必不可少,否則rdesktop是無法連上winxp的)
?? 重新啟動虛擬機,當聽到winxp后臺登錄的聲音后,即可用rdesktop遠程登錄:
rdesktop localhost:3389 -u *** -p *** -g 1280×700 -r sound:local
?
?
-u winxp的用戶名, -p winxp的密碼, -r sound:local ?啟用聲音
現在可以看到桌面了吧.是不是灰常流暢呢?鼠標、鍵盤 都非常完美啊,剪貼板也可以公用哦.堪比裝了tools的virtualbox,但是比后者占用的資源要少的多.
?
?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Linux 中使用 KVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下ssh登录速度慢的解决办法
- 下一篇: print输出字体特效