1. 程式人生 > >ubuntu上利用qemu-kvm建立虛擬機器

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 //然後刪除虛擬機器