2012年4月11日

在 RHEL 6 設定 NIC Bonding 的注意事項 (&如何正確關閉 NetworkManager)

在 RHEL/CentOS 4/5 上設定 NIC Bonding 我已經很熟悉了(作法: Network Card Bonding On CentOS),但今天要在 RHEL 6 上設定的時候卻發現已經沒有 /etc/modprobe.conf 檔案了,找到參考作法後歷經一番曲折終於設定好,以下是今天設定的筆記:

  1. /etc/modprobe.conf 已經被 deprecated 了,新的 config 檔要自己去 /etc/modprobe.d/ 目錄下新增 bonding.conf 檔案,內容只要寫「alias bond0 bonding」即可,原本的「options bond0 miimon=100 mode=1 primary=eth0」設定改為寫到 ifcfg-bond0 檔案中。
  2. 承上,在 ifcfg-bond0 中要寫「BONDING_OPTS="miimon=100 mode=active-backup primary=eth0"」,比起 mode=1 來說可是一目了然。
  3. 若在安裝過程中僅針對 eth0 設定固定 IP,則 RHEL 6 自動產生的 ifcfg-eth0 和 ifcfg-eth1 檔案內容差會很多,eth0 多了很多設定,例如「NAME」、「UUID」等 eth1 沒有的內容,因此最好分別編輯兩個檔案,不要先改好 eth0 以後直接用新的 eth0 檔案把原本的 eth1 檔案覆蓋掉,否則可能會造成 MAC Address / UUID / NAME 重複,進而衍生其他問題(詳見下一段)。
基本上有異動的地方只有這兩點,但今天修改第一台設備的設定時遇到一個問題,重開機後只看到 eth1 這張網卡,eth0 不見了!檢查 dmesg 以後發現一個訊息:「udev: renamed network interface eth1 to eth0-eth1」,再用 ifconfig 確認網卡狀態,果然 eth0 已經被 rename 為 eth0-eth1 了,最囧的就是就算把原有的 ifcfg-eth0 檔案 rename 為 ifcfg-eth0-eth1 並修改相關設定也沒用,反而造成 bond0 下只看得到 eth0-eth1 這張網卡,eth1 反而消失了。

好心的同事(怪獸先生)幫忙查了資料以後發現,這是因為在設定過程中我改好了 eth0 檔案,然後直接用 eth0 檔案覆蓋原有的 eth1 檔案,造成 eth1 的 MAC Address 改變,因此 /etc/udev/rules.d/70-persistent-net.rules 檔案的內容錯誤(多了好幾個把 eth0 rename 為 eth0-eth1 的 rule),導致網卡異常。最後很幸運的直接編輯這個自動產生的檔案,把多餘的 rule 刪掉以後重開機就恢復正常了。

另一個問題就是如何停止 Red Hat 內建的 NetworkManager,我發現在安裝 OS 的過程中若設定了固定 IP,就會啟用 NetworkManager 來管理網路,若使用 default 的 DHCP 則不會啟用 NetworkManager。停用的方式很簡單,打開一個 Terminal 視窗 (或者在 runlevel 3 下登入系統),執行 setup,到 System Services 裡面把 NetworkManager 關掉即可。若不進行 reboot,需手動執行 service NetworkManager stop 指令來停止運行中的服務,另外也不要忘記執行 chkconfig 來關閉 NetworkManager,以確保下次 reboot 後 NetworkManager 不會再被啟動。

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D