一. 概念介紹:
(1)全虛擬化(Full Virtulization)
簡介:主要是在客戶操作系統和硬件之間捕捉和處理那些對虛擬化敏感的特權指令,使客戶操作系統無需修改就能運行, 速度會根據不同的實現而不同,但大致能滿足用戶的需求。這種方式是業界現今最成熟和最常見的,而且屬於 Hosted 模式和 Hypervisor 模式的都有,知名的產品有IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX(它在其4.0版,被改名為VMware vSphere)。
其中,Hypervisors 通過一個仿真硬件層為其上的每個Guest操作系統(虛擬機)仿真出一個具有常用硬件設備的標准服務器,當一個運行的Guest系統試圖用特權指令控制硬 件時,hypervisor會將真實的硬件隱藏起來,並仿真一個硬件設備給Guest系統,從而使得Guest系統無需修改代碼就可以安全地訪問硬件。
(全虛擬化都需要CPU的特殊支持(比如Intel VT 以及AMD-V)?如果沒有CPU特殊支持就不能通過全虛擬化模擬OS?)
優點:Guest OS無需修改,速度和功能都非常不錯,更重要的是使用非常簡單,不論是 VMware 的產品,還是 VirtualBox。
缺點:基於Hosted模式的全虛擬產品性能方面不是特別優異,特別是I/O方面。
(2)半虛擬化(Parairtulization)
簡介:它與完全虛擬化有一些類似,它也利用Hypervisor來實現對底層硬件的共享訪問,但是由於在Hypervisor 上面運行的Guest OS已經集成與半虛擬化有關的代碼,使得Guest OS能夠非常好地配合Hyperivosr來實現虛擬化。通過這種方法將無需重新編譯或捕獲特權指令,使其性能非常接近物理機,其最經典的產品就是Xen,而且因為微軟的Hyper-V所采用技術和Xen類似,所以也可以把Hyper-V歸屬於半虛擬化。
Guest 系統在訪問真實硬件時是重用當前系統的驅動,而不是通過仿真的硬件實現的。Guest系統和hypervisor交互是通過一個高效、底層的的 API(hypercall API)來實現的,這使得hypervisor和Guest系統可以共同最優化地使用底層的硬件和I/O,從而可獲得極高的運行性能。
優點:這種模式和全虛擬化相比,架構更精簡,而且在整體速度上有一定的優勢。
缺點:需要對Guest OS進行修改,所以在用戶體驗方面比較麻煩。
二. VMware Workstation:
vmware是全虛擬化的,它的安裝使用都非常簡單便捷。
(在vmware上安裝的系統都是全虛擬化的?全虛擬化可以模擬windows,半虛擬化暫時不能夠模擬windows?如果cpu沒有特殊支持,vmware能正常使用么?查資料有的說可以正常使用,但是宿主系統如果32位,就不能模擬64位系統。。。?)
ubuntu 14.04 下安裝vmware workstation 10.0版本,命令行下執行:
cd xxxxxxx //進入到安裝文件所在路徑
sudo chmod +x Vmware-Workstation-FXXXXXXXXX.bundl //替換成自己的文件名
sudo ./VMware-Workstation-FXXXXXXXXX.bundle //替換成自己的文件名
vmware安裝完成后,雙擊運行,然后在虛擬機內安裝操作系統基本就是在圖形界面下操作,非常方便,也非常便捷。
(1)安裝windows xp 系統
通過新建虛擬機,按照流程一步一步完成windows xp的安裝,期間不需要配置相關環境參數。傻瓜式完成安裝后,開啟虛擬系統,會自動完成VMware Tools的安裝,通過該工具,可以實現宿主OS與虛擬OS之間剪切,復制等文件操作。
虛擬OS可以直接自動連接網絡(與宿主OS共享網絡),在虛擬OS中軟件的安裝使用就跟在物理機中使用方式相同,但運行速度稍顯緩慢一些,但整體速度,效率還可以接受。
(2)安裝ubuntu系統
ubuntu系統的安裝與windows系統的安裝類似,圖形化界面下直接安裝完成,不需要進行任何配置,VMware Tools也會自動安裝,實現宿主系統與虛擬系統之間的文件傳輸。
虛擬系統中的軟件使用也跟物理機的系統類似,PC與用戶交互體驗比較好。
三. KVM:
KVM是基於硬件的完全虛擬化,其虛擬化需要硬件支持(如Intel VT技術或者AMD-V技術)。
首先檢查自己的機器是否支持VT,
ubuntu 14.04下安裝KVM,命令行執行:
egrep -o ‘(vmx|svm)’ /proc/cpuinfo
顯示支持,下面進行安裝:
sudo apt-get install qemu-kvm libvirt-bin virt-manager bridge-utils
安裝自動進行,安裝完成后可以驗證是否正確安裝,服務是否可用。
lsmod | grep kvm
sudo virsh -c qemu:///system list
環境安裝完成后,開始創建虛擬機。
(1) 安裝windows xp 系統:
虛擬系統的安裝,沒有圖形化界面,需要命令行進行安裝,過程比較繁瑣。
首先在根目錄下創建一個文件夾作為虛擬機文件夾,里面創建一個文件夾存放系統映像文件(根目錄下文件的操作需要管理員權限,所以在命令行下sudo操作),並在其中創建winxp.img文件作為虛擬硬盤文件,大小10G容量,動態擴充。
sudo qemu-img create -f qcow2 winxp.img 10G
然后創建啟動虛擬機,內存分配512M。
sudo qemu-system-x86_64 -hda winxp.img -cdrom xx.iso -boot d -m 512 -no-acpi -soundhw all
此時會彈出系統安裝界面,按照引導一步步即可安裝完成。
以后啟動時,可以直接命令行:
sudo qemu-system-x86_64 -hda winxp.img
此時將會啟動虛擬系統,不過安裝過程繁瑣,最重要是緩慢費時。。。
開啟虛擬系統之后,就可以在虛擬系統中正常安裝軟件了。不過,kvm 虛擬出的windows xp 系統使用非常慢,效率很低,比vmware要慢很多。
而且因為缺少Tools所以不能直接跟宿主系統之間進行文件的相關操作。
虛擬系統的聯網也存在問題,不能與宿主系統共享網絡。
(2)安裝ubuntu系統:
ubuntu系統的安裝跟windows安裝方法相同,命令行操作,然后根據引導一步一步即可安裝完成。
首先創建虛擬磁盤
sudo qemu-img create -f qcow2 ubuntu.img 10G
然后安裝系統
sudo kvm -m 740 -cdrom xxxxx.iso ubuntu.img
這樣系統就自動安裝完成。這個過程比安裝windows要快很多。
開啟系統
sudo kvm -m 740 -smp 1 -hda ubuntu.img
安裝完成后使用起來也比windows效率高,運行速度快一些,不過還是比不上在vmware里面的速度,與宿主系統共享網絡。虛擬系統里軟件的安裝使用就跟物理系統相同。
文件傳輸問題
四. XEN:
XEN既支持全虛擬化,也支持半虛擬化 。最初,xen只支持半虛擬化,用戶需要修改系統內核,而xen在半虛擬化形式下可以獲得極高的運行效率,極低的效能損失。
后來,Intel對Xen貢獻修改以支持其VT-X Vanderpool架構擴展。如果主系統支持Vanderpool或者Pacifica擴展(Intel和AMD對本地支持虛擬化的擴展),這項技術將 允許未修改的客戶作業系統運行在Xen虛擬機中。這意味着可以在沒有進行任何協議不允許的修改的情況下對Windows進行虛擬。
xen的安裝:
ubuntu14.04按照上面這種方式安裝,虛擬機的確安裝成功了,但是宿主系統再進入就無法聯網,顯卡也不正常工作,然后系統總是一進入就處於無響應狀態。暫時沒有找出原因,只得重裝系統。。。
windows系統下通過vmware安裝ubuntu12.04,然后在虛擬系統中安裝xen,發現根本進不到xen的內核中,只好重新裝物理系統再行嘗試。
ubuntu12.04下安裝xen:
安裝編譯 Xen 和 Linux xen kernel 所需要的軟件包:
sudo apt-get install build-essential binutils python-dev libncurses5-dev libcurl4-openssl-dev xorg-dev uuid-dev bridge-utils bison flex udev gettext bin86 bcc iasl libgcrypt11-dev libssl-dev pciutils libglib2.0-dev gcc-multilib texinfo zlib1g-dev
sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \build-essential crash kexec-tools makedumpfile libncurses5 \libncurses5-dev iasl gawk
以上軟件包有些是重復的,沒關系,重復了它自己會跳過不安裝。安裝軟件包之前注意要選好源,163和cn.archive都是可以的。
安裝xen vmm
32位和64位系統的區別也很重要。64位按下面步驟很簡單,32位就不同,因為xen需要開啟pae,默認是沒有開啟的,所以32位ubuntu首先得執行下面這個命令:
sudo apt-get install linux-image-server
sudo apt-get install xen-hypervisor-4.1-i386 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils
這里xen-hypervisor-4.1要分32位、64位,64位系統用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.
安裝libvirt和Virtual Manager
sudo apt-get install virtinst python-libvirt virt-viewer virt-manager
重啟機器,選擇有xen的內核啟動,進入系統之后,再檢查一下 Xen 是否已經成功安裝:
sudo xm list
出現上面的信息,則代表安裝成功。
修改配置文件
sudo gedit /etc/xen/xend-config.sxp
將/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”注釋去掉 即把“#”去掉,並把“no”改成“yes”,保存即可。
然后重啟xend服務:sudo service xend restart
sudo gedit ~/.bashrc
在打開的.bashrc文件中添加下面這句話:export VIRSH_DEFAULT_CONNECT_URI=”xen:///”
cp -r /usr/share/qemu-linaro/ /usr/share/qemu
這樣創建過程基本沒有問題了.
通過libvirt查看xen的版本信息,確認libvirt和xen都已經安裝成功
sodu -s
virsh version
xen安裝完成,下面就可以安裝虛擬系統了。
(1)安裝winxp系統
把window xp的iso鏡像拷貝到根目錄的其中一個文件夾下,例如/usr , /opt等(不要拷到home里面)。
在命令行鍵入sudo virt-manager用root權限打開虛擬機管理器,接下來就會出現圖形化安裝界面,按照向導來一步一步安裝,非常簡單就可以安裝完成。
安裝完成后虛擬系統內部軟件安裝使用就跟實際物理系統相同,與宿主系統共享網絡,使用性能速度高於KVM,但跟vmware相比沒有很大的差異。
(2)安裝ubuntu系統
半虛擬化的安裝方式?現在這種方式應該是全虛擬化的安裝方式吧?
ubuntu系統的安裝流程跟xp相同,進入后就根據ubuntu系統的安裝引導一步步完成安裝即可。性能也是高於kvm,等同於vmware。
虛擬系統的使用跟實際物理系統的使用相同。
文件傳輸問題。