configure Openvswitch on Proxmox VE

Logo-ProxmoxVE

這部分的資料在網路上找了很久還是都沒有,

只得知 PVE 把 Linux 原生的 bridge 設定內建的,

無法用 Open vswitch 去取代它。

最後只好…來挑戰一下 make linux kernel 了

 

 

首先利用 git 把 pve 的 kernel 抓回來,並放置在 /usr/src/ 資料夾內

下 make ,它就會自動的把 source code 給抓回來

source code 的目錄為 /usr/src/pve-kernel/linux-2.6-2.6.32

[root@www ~]$ git clone git://git.proxmox.com/git/pve-kernel-2.6.32.git pve-kernel
[root@www ~]$ mv pve-kernel /usr/src
[root@www ~]$ cd pve-kernel
[root@www ~]$ make

 

 

再來,切換進去 linux-2.6-2.6.32 資料夾內,

開始 make 我們的 kernel 了。

先下

# 把 source code 中的目標檔刪除
[root@www ~]$ make mrproper
# 清除暫存檔
[root@www ~]$ make clean
[root@www ~]$ make menuconfig

 

 

就會開始出現藍底白字的畫面了,如下

未命名

 

 

可以先在 General setup ->> Local version – append to kernel release 設定你這次編譯的名稱

未命名1

 

 

選擇 Networking support -> Network options
把 bridge  * 改為 M

未命名2

未命名3

未命名4

 

 

最後,按下 save an alternate configureation file

保留 config 檔,並離開設定

未命名5

 

 

再來,就可以編譯我們的 kernel 了

#先編譯核心
[root@www linux-2.6-2.6.32]$ make bzImage
#再編譯模組
[root@www linux-2.6-2.6.32]$ make modules
#實際安全模組
[root@www linux-2.6-2.6.32]$ make modules_install

 

 

每一個步驟花的時間都滿長的,請耐心等候…

都編譯好後,就可以開始來設定 Grub 多重核心選單了

我們先複製我們的 kernel 到 /boot 底下

#複製 kernel
[root@www /boot]$ cp /usr/src/pve-kernel/linux-2.6-2.6.32/arch/x86_64/boot/bzImage \
> /boot/vmlinuz-2.6.32-19-pvebridge
#複製 config 檔
[root@www /boot]$ cp /usr/src/pve-kernel/linux-2.6-2.6.32/.config \
> /boot/config-2.6.32-19-pvebridge

 

 

建立相對應的 Initial Ram Disk(initrd)

[root@www /boot]$ mkinitramfs -o /boot/initrd.img-2.6.32-19-pvebridge 2.6.32-19-pvebridge

 

 

編輯開機選單 grub 加入

vim /boot/grub/grub.cfg
menuentry 'Proxmox Virtual Environment GNU/Linux, with Linux 2.6.32-19-pvebridge' --class proxmox --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 9cc709ff-7275-461e-8e91-505d0b1c158f
echo 'Loading Linux 2.6.32-19-pvebridge ...'
linux /vmlinuz-2.6.32-19-pvebridge root=/dev/mapper/pve-root ro quiet
echo 'Loading initial ramdisk ...'
initrd /initrd.img-2.6.32-19-pvebridge
}

 

 

再來就可以重開機了~~~~

重開機後利用 uname -r 查看你的 kernel 版本是不是你剛剛編的

 

 

安裝 openvswitch 的部分,

請參考 Install and Configuring OpenvSwitch on ubuntu 12.04

 

 

參考資料:

1. 鳥哥的 Linux 私房菜

發表留言