筆記 : proxmox ve 下用 OpenVZ 安裝 CentOS 的一些小眉角

這幾天玩 proxmox ve 來裝 CentOS 其實碰到許多問題 , 所以寫下心得

由於 OpenVZ 必須要有所謂的 template 檔案才能模擬出各種 Linux 環境 , 所以必須要去下載  , proxmox ve 的管理介面裡頭是有一些現成 , 但都是 32bit , 若要安裝 64bit 的 CentOS , 則必須到 OpenVZ 官方網站下載

http://wiki.openvz.org/Download/template/precreated

但下載回來後發現用 proxmox ve 上傳 template 檔案是會發生錯誤的 , 因為它要求 template 檔案的檔案命名方式必須符合它的規定

--__(i386|amd64).tar.gz

所以下載回來的 CentOS 5.4 64bit 的 template 檔案可以改成如 centos-5-default_5.2-1_amd64.tar.gz , 名稱只要符合規則就好 , 看個人喜好 , 然後再把這個檔案透過 proxmox ve 管理介面上傳上去即可以使用

在創建 OpenVZ 虛擬環境的過程 , 若網卡選擇 bridge 模式 , 在建立好之後 , 其實該虛擬機的網路是起不來的

雖然在虛擬的 CentOS 下有 /etc/sysconfig/network-scripts/ifcfg-venet0 這個檔 , 當初我以為這就是虛擬網卡設定 ... 但我錯了 , 搞了許久都無法啟動 , 後來將檔案名稱改成 ifcfg-eth0 , 並將 ifcfg-eth0 裡面的 DEVICE=venet0 改成 eth0 , 然後重新執行 /etc/rc.d/init.d/network restart
 , 這樣就可以正常運作了

當然網路通了之後 , 可以用 yum 來進行各種軟體安裝及更新 , 但後來又發現 iptables 不能用 , 因為 CentOS 預設的 iptables 設定工具 system-config-securitylevel-tui 這個套件若有安裝 , 透過 setup 去設定防火牆會無法生效的 , 後來查一查 , 原因是 proxymox 沒有載入一些 CentOS 或 RHEL 常用的 iptables 模組 , 所以必須修改 proxymox ve 下的 /etc/vz/vz.conf

找到一行  IPTABLES="ipt_REJECT ipt_tos ..........

這一行是設定 OpenVZ 下會載入 iptables 那些 modules , 我則是修改成

IPTABLES="ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp"

然後要重啟 vz 這個 service , /etc/init.d/vz restart , 不然就重開機

接下來還要修改一下 CentOS 下的 /etc/sysconfig/iptables-config , 將 IPTABLES_MODULES="ip_conntrack_netbios_ns" 改為 IPTABLES_MODULES="" 以及將 IPTABLES_MODULES_UNLOAD="yes" 改為 IPTABLES_MODULES_UNLOAD="no"

這樣子 OpenVZ 下的 CentOS iptables 就可以正常運作了

到目前為止 , 我的網站運作在 OpenVZ 下很正常很順暢 , LAMP 架構基本上用 OpenVZ 來虛擬就很棒了 , 若要玩 X-Windows 或有牽扯到 kernel modules 的應用程式才有必要採用 KVM 來建立虛擬機

發佈留言