ubuntu上利用qemu-kvm建立虛擬機器
kvm是Kernel-based Virtual Machine的縮寫,即基於核心的虛擬機器技術,執行在具備Intel vt或者AMD-V功能的x86平臺上。
在linux2.6.20之後的版本中kvm成為了linux核心的一個模組。
qemu是獨立虛擬軟體,能完全獨立執行虛擬機器,kvm虛擬技術雖然很成熟,但是無法虛擬出真實的機器,qemu-kvm使用
kvm進行虛擬處理,使用qemu做上層介面進行虛擬機器管理。
qemu-kvm在建立虛擬機器之前需要建立一個虛擬網橋,將網絡卡關聯到虛擬網橋上。openstack建立虛擬機器也是使用的qemu
技術,因此在建立虛擬機器時也需要建立網橋裝置,我最初做openstack安裝時,沒有仔細瞭解qemu-kvm建立虛擬機器,後來
通過qemu-kvm建立虛擬機器得到了啟發,原來需要建立一個網橋,並且要關聯網絡卡,這樣openstack安裝後來也順利完成了。
今天介紹ubuntu1404上通過qemu-kvm建立並啟動虛擬機器。
第一步、準備虛擬機器,設定支援Intel vt或amd-v;
我使用的是mac上的VMware Fusion建立的虛擬機器,記憶體設定4G,硬碟指定20G,高階選項中鉤上虛擬化選項,這樣就可以
在虛擬機器中虛擬化安裝虛擬機器。
ubuntu1404虛擬機器安裝完成之後,檢查是否支援虛擬化:
我配置的IP和host分別是:192.168.61.122、openstack
第二步、安裝kvm相關服務;
root@openstack:~# apt-get install qemu-kvm libvirt-bin virt-manager bridge-utils -y
安裝完成之後檢查是否安裝成功
也可以執行virsh list --all,檢視
第三步、檢查網橋裝置;
第二步安裝bridge-utils之後,會在機器上建立一個網橋br0,這時候需要我們設定網橋和eth0關聯。
虛擬機器網路需要進行如下設定:
root@openstack:~# vi /etc/network/interfaces
auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto br0 iface br0 inet static address 192.168.61.122 netmask 255.255.255.0 network 192.168.61.0 gateway 192.168.61.2 dns-nameservers 192.168.61.2 bridge_ports eth0
root@openstack:~# ifdown br0 root@openstack:~# ifup br0
重啟之後檢視網路和網橋,網橋IP換成了eth0的ip。
檢視網橋,檢視到網橋br0是從eth0的網絡卡出去的。
第四步、安裝虛擬機器;
檢視ubuntu1404虛擬機器操作作業系統名稱,後面建立虛擬機器時需要。
root@openstack:~# virt-install --os-variant list |grep ubuntu ubuntutrusty : Ubuntu 14.04 LTS (Trusty Tahr) ubuntusaucy : Ubuntu 13.10 (Saucy Salamander) ubunturaring : Ubuntu 13.04 (Raring Ringtail) ubuntuquantal : Ubuntu 12.10 (Quantal Quetzal) ubuntuprecise : Ubuntu 12.04 LTS (Precise Pangolin) ubuntuoneiric : Ubuntu 11.10 (Oneiric Ocelot) ubuntunatty : Ubuntu 11.04 (Natty Narwhal) ubuntumaverick : Ubuntu 10.10 (Maverick Meerkat) ubuntulucid : Ubuntu 10.04 LTS (Lucid Lynx) ubuntukarmic : Ubuntu 9.10 (Karmic Koala) ubuntujaunty : Ubuntu 9.04 (Jaunty Jackalope) ubuntuintrepid : Ubuntu 8.10 (Intrepid Ibex) ubuntuhardy : Ubuntu 8.04 LTS (Hardy Heron)
建立虛擬機器需要指定映象,這裡可以先掛載一個映象,然後指定該掛載的映象
root@openstack:~# mount -o loop /home/hadoop/ubuntu-14.04.2-server-amd64.iso /home/hadoop/trustyos然後就可以建立虛擬機器,建立命令如下
root@openstack:~# virt-install --connect=qemu:///system --name trustyos // 虛擬機器的名稱,可以隨便定義 --ram 1024 //記憶體 --vcpus=2 //虛擬機器CPU個數 --os-type=linux //虛擬機器作業系統 --os-variant=ubuntutrusty //作業系統名稱,就是前面通過 virt-install --os-variant list得到的對應虛擬機器的作業系統名稱 --accelerate // --hvm // --disk path=/home/hadoop/ubuntu-os.img,size=6,bus=virtio //指定虛擬機器儲存在系統的位置 --location /home/hadoop/trustyos //指定映象位置 --extra-args='console=tty0 console=ttyS0' //額外引數 --network bridge=br0,model=virtio //網路 --graphics none //是否開啟圖形化介面
安裝過程會很緩慢,慢慢等待
終於快完了
通過這樣安裝的虛擬機器無法通過ssh連線,除非知道IP地址,或者是帶圖形介面的虛擬機器安裝了view-manager之後,通過
view-manager工具訪問虛擬機器。
這裡介紹另外一種安裝啟動虛擬機器的方式。
qemu-system-x86_64 -m 1024 -hdc cirros-0.3.3-x86_64-disk.img -vnc 0.0.0.0:2180 --no-kvm
這條命令建立一個記憶體為1g,對外訪問的埠是2180,使用的映象是cirros-0.3.3-x86_64-disk.img
這裡可以使用一個叫checken of the vnc(我的機器是mac)的工具就可以連線了。
連線之後,就得到如下介面,輸入使用者名稱和密碼就可以登入了。cirros 和 cubswin:)
第五步、虛擬機器測試。
這最後介紹幾個命令
virsh destroy trustyos //如果需要刪除某個虛擬機器,建議先強制關閉虛擬機器 virsh undefine trustyos //然後刪除虛擬機器