前言
首先,要來稱讚的是 Ubuntu 這個 Linux Distribution 的出現。因為 Ububtu 的出現,所以在 Linux 上面終於有一個比較容易維運的 Distribution,不過,當然也有可能是我笨,所以學不會 ReaHat 系統要怎麼做才不會把事情越便越複雜。不過呢,大家都知道:「Linux 的 Kernel 的預設值,往往是給正常人使用是綽綽有餘的。」可是呢?本公司有一件很討厭的地方就是:「使用者眾,所以動不動 1 台 Proxy 不夠用,多台 Proxy 分配不平均」,套具孫逸仙的話就是:「不是患貧,而是患不均」(OS:「不過你確定不是患貧也患不均嗎?」)
所以管理的前人呢,就引入的 Linux Virtual Server + keepalived,來造就 HA 的 Server Load Balancer。不過呢,因為預設 IPVS 的同時連線數只能承載 4096,所以必須要來乖乖重新 Compile Kernel。
由於本公司內部 Ubuntu Mirror Site 不 Mirror Source Package,所以,不適用透過 apt-get 安裝 source 的方式,不過,貼心的 Ubuntu 還是有考慮到這點,不 Mirror Source Package 還是可以安裝 Kernel Source 而且重新編譯 Kernel 的。
操作步驟
- 安裝 Ubuntu 10.04.3-LTS
- 更新 apt 資料庫,同時更新現有套件:
$ sudo apt-get update $ sudo apt-get upgrade
- 安裝前置相關 Binary Package:
$ sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile \ kernel-package $ sudo apt-get install libncurses5 libncurses5-dev libelf-dev binutils-dev
- 安裝 Kernel Package
$ sudo apt-get install linux-source
- 解壓縮 Kernel Package
$ cd /usr/src/ $ sudo tar jxf /usr/src/linux-source-<version-number-here>.tar.bz2 $ cd linux-source-<version-number-here> $
- 修改 Config 並重新編譯 Kernel
$ sudo cp -vi /boot/config-`uname -r` .config $ sudo vim .config <修改CONFIG_IP_VS_TAB_BITS 從 12->16 > $ diff .config.old .config 731c731 < CONFIG_IP_VS_TAB_BITS=12 --- > CONFIG_IP_VS_TAB_BITS=16 $ sudo fakeroot make-kpkg --initrd --append-to-version=-some-string-here \ kernel-image kernel-headers < 編譯過程省略 >
- 安裝 Kernel Package
$ sudo mkdir -p /etc/kernel/postrm.d/ $ sudo cp /usr/share/kernel-package/examples/etc/kernel/postrm.d/initramfs \ /etc/kernel/postrm.d/initramfs $ cd /usr/src $ sudo dpkg -i linux-image-<version-number-here>-some-string-here_<version-number-here>.Custom_amd64.deb $ sudo dpkg -i linux-headers-<version-number-here>-some-string-here_<version-number-here>.Custom_amd64.deb $ cd /boot $ sudo mkinitramfs -k -o initrd.img-<version-number-here>-some-string-here <version-number-here>-some-string-here $ sudo update-grub2
- 重新開機,安裝 LVS+ keepalived 套件
$ sudo apt-get install keepalived <檢查是否有達成目標> $ sudo ipvsadm -L IP Virtual Server version 1.2.1 (size=65536) <以下省略>
以上參考自:Ubuntu 官網上的Kernel Compile文件,不過呢,因為可能組合情形太多,所以常常會搞不清楚要看那一段,所以之前重裝了N次,最後終於成功了,把結果記錄一下………
沒有留言:
張貼留言