如何在Linux發行版上安裝和配置KVM和Open vSwitch?
在如今多租戶模式的資料中心環境下,虛擬化技術正從傳統的基於虛擬機器管理程式的伺服器虛擬化,擴充到網路虛擬化。在這種環境下,基於軟體的虛擬交換器通常連同虛擬機器管理程式一起部署在伺服器上,串聯起了不同虛擬機器之間傳送的流量。
我在本教程上將示範如何在Ubuntu或Debian上安裝和配置KVM和Open vSwitch(OVS)。KVM和Open vSwitch分別是用於如今的資料中心中的最流行的開源虛擬機器管理程式和虛擬交換器。
--------------------------------------分割線 --------------------------------------
KVM中Linux虛擬機器的硬碟添加方法
Linux入門學習教程:虛擬機器體驗之KVM篇
RHEL6 KVM虛擬化建立橋接網卡-橋接器
RedHat Linux KVM虛擬機器橋接
CentOS 5.6下KVM的安裝/橋接設定/虛擬機器建立及運行
Ubuntu下用libvirt安裝KVM虛擬機器時找不到/bin/qemu-kvm問題解決
RedHat6.5下安裝配置KVM虛擬機器
--------------------------------------分割線 --------------------------------------
將Open vSwitch安裝在Ubuntu或Debian上
雖然OVS以程式包的方式出現在Ubuntu或Debian上,但我在此還是通過原始碼來構建OVS,這將擁有最新的功能特性和修正版。
首先,安裝用於構建OVS的依賴項。
- $ sudo apt-get install build-essential libssl-dev linux-headers-$(uname -r)
通過原始碼來構建OVS,如下所示。下列步驟將構建OVS核心模組以及OVS使用者空間工具。
- $ wget http://openvswitch.org/releases/openvswitch-1.9.3.tar.gz
- $ tar xvfvz openvswitch-1.9.3.tar.gz
- $ cd openvswitch-1.9.3
- $ ./configure --with-linux=/lib/modules/`uname -r`/build
- $ make
接下來,繼續在/usr/local/share/下安裝OVS使用者空間組件:
- $ sudo make install
下一步是,測試OVS核心模組(安裝該模組之前)。為此,先在核心中裝入核心模組。
- $ sudo insmod ./datapath/linux/openvswitch.ko
證實OVS核心模組已成功裝入。
- $ lsmod | grep openvswitch
- openvswitch 97934 0
一旦你證實openvswitch.ko已成功裝入到核心中,繼續安裝核心模組,如下所示。
- $ sudo make modules_install
配置和啟動Open vSwitch
建立一個架構式OVS設定資料庫。
- $ sudo mkdir /etc/openvswitch
- $ sudo ovsdb-tool create /etc/openvswitch/conf.db ./vswit
- chd/vswitch.ovsschema
啟動OVS資料庫伺服器。
- $ sudo ovsdb-server --remote=punix:/usr/local/var/run/ope
- nvswitch/db.sock - remote=db:Open_vSwitch,manager_options
- --pidfile --detach
OVS設定資料庫初始化。
- $ sudo ovs-vsctl --no-wait init
最後,啟動OVS精靈。
- $ sudo ovs-vswitchd --pidfile --detach
將KVM安裝在Ubuntu或Debian上
使用apt-get命令,安裝KVM和必要的使用者空間工具。
- $ sudo apt-get install qemu-kvm libvirt-bin bridge-utils
- virt-manager
將一個普通的非根使用者(如alice)添加到libvirtd群組,那樣該使用者不需要根使用者許可權,就能啟動虛擬機器。
- $ sudo adduser alice libvirtd
退出,重新以該使用者身份登入,讓群組成員的變更生效。
運行下面這個命令。如果你看到空空如也的虛擬機器列表,這意味著KVM已成功設定完畢。
- $ virsh -c qemu:///system list
- Id Name State
為KVM配置Open vSwitch
現在是時候建立OVS橋接器啟動指令碼了,那樣啟動或終止虛擬機器時,OVS就能自動設定。
安裝依賴項(使用者模式Linux工具 + 生產力),這些依賴項將用於處理Linux橋接器模式。
- $ sudo apt-get install uml-utilities
建立橋接器啟動指令碼,如下所示。
- $ sudo vi /etc/openvswitch/ovs-ifup
- #!/bin/sh
- switch='br0'
- /sbin/ifconfig $1 0.0.0.0 up
- ovs-vsctl add-port ${switch} $1
- $ sudo vi /etc/openvswitch/ovs-ifdown
- #!/bin/sh
- switch='br0'
- /sbin/ifconfig $1 0.0.0.0 down
- ovs-vsctl del-port ${switch} $1
- $ sudo chmod +x /etc/openvswitch/ovs-if*
然後,建立一個預設的橋接器br0,並添加一個物理網路介面,虛擬機器將通過這個介面與外部網路進行聯絡。在該教程中,我假設這類網路介面是eth5。
- $ sudo ovs-vsctl add-br br0
- $ sudo ovs-vsctl add-port br0 eth5
藉助KVM啟動虛擬機器
現在你可以準備啟動訪客虛擬機器了。
我假設,你已經準備好了一個訪客虛擬機器映像(比如ubuntu-client.img)。使用下面這個命令,啟動訪客虛擬機器。
- $ sudo kvm -m 1024 -net nic,macaddr=11:11:11:EE:EE:EE -ne
- t tap,script=/etc/openvswitch/ovs-ifup,downscript=/etc/op
- envswitch/ovs-ifdown -vnc :1 -drive file=/home/dev/images
- /ubuntu-client.img,boot=on
這會建立並啟動一個訪客虛擬機器;一旦訪客虛擬機器啟動,其虛擬介面就自動添加到OVS橋接器br0。
你可以使用ovs-vsctl這個命令,核實OVS的狀態,如下所示。
這是已啟動的虛擬機器的遠端桌面會話。
本文永久更新連結地址: