淺談網頁服務器群的設計 (A group of web server)
前陣子, 在師兄那邊聽了一個他的經驗, 一間寄存公司其中一個網頁服務器壞了的經驗.
話說一個裝有 800 客戶的網頁服務器只用 raid 5 作備份, 沒有備份服務器 (HA / heartbeat)的低成本制作, 某天一下子死掉兩個硬碟. 之後的 18 小時, 客戶服務部就 ... 在 HSBC 中學得的服務器管理知識, 告訴我任何作實戰 production 的服務器必需有備份, 而且是能夠在 15 分鐘內回復的備份. 不過, 現實情況是一些中小型機構, 沒有兩倍的成本去做備份. 所以回復時間在 18-24小時內都可以接受. 現時中小企的 IT 成本, 軟件比硬件高得多. 所以如果選用開源軟件, 再買一個 HKD $3000 的小服務器就安全得多了. 本文是以一個案例作介紹以虛擬技術把服務器模組化, 令備份 / 資源調動時方便得多. 那我師兄的故事, 如果是我的話怎樣處理 ? 先發現問題所在 問題 1: 裝有 800 客戶的服務器沒有虛擬化, 在救援 / 備份時造成不便 問題 2: 沒有備用服務器, 服務器停止的 18 小時中客戶服務部的開支比買一個小型服務器更高 問題 3: 除 raid 5 以外, 沒有資料備份. 原因可能是沒有虛擬化令備份程序複雜 所以根本問題是服務器的設計, 與技術人員的能耐無關 ! 解決方法: 沒有人說備份服務器的比例一定是 1:1 的, 以一部備份多部 production 亦可. 因成本與客戶要求而定, 備份服務器不一定要有 raid, 不一定要有足夠的計算能力 (cpu power / cpw). 因此, 一部 HKD $3000 的服務器, 只要能夠作備份就足夠有餘了. 但出現的問題是, 1) 如果我把所有客戶的資料都備份, 資源需求很大. 這時可考慮 rsync, rsync 是增加式資料備份, 只備份已更改 / 新增檔案 以下是 rysnc 的示範, 在linux備份服務器輸入: sudo rsync -avl --delete --exclude=/不包括的資料夾1 --exclude=/不包括的資料夾2 來源地址:/要備份的資料夾 /本地儲存資料的位置 2) CPU 已經用來服務客人了, 怎樣做備份 這時需要 at 指令 / crontab, 可以設定只在特定時間作備份. 以前在 HSBC 時, 備份會在股市收市後進行. 以 at command 作示範 at 1900 ← 意思是當天下午 7:00 > 備份指令 (如以上的 rsync) > 完成後 CTRL + D 除此之外, 把服務器虛擬化, 有些選擇是把服務器放到一個 img 檔案中. 這樣, 備份時把整個 img 檔案備份就能佔用較小資源. 3) 出事了, 怎樣啟動備用服務器 ? 你可以選用 HA (high availability) 設計, 並以 heartbeat 啟動, 這樣就可以作即時回復. 但成本較高. 在這文中不作詳談. 一般來說, 可以手動. 但先要為服務器作一個好的設計.
以下是一個網頁服務器群的設計
所謂服務器模組化就是一個服務器只作一種服務. 以前的日子, 成本會很高. 但在虛擬化之下就不算問題. 參考虛擬化制作: http://www.yubis.net/blog/keith/summary-virtualbox-vmware-xen-351?page=2
在服務器模組化出名的有 MICROSOFT VIRTUAL SERVER, 但使用 xen 的話更好. 在使用服務器群時會出現一個重大問題. 就是同一種服務不能有兩個服務器, 因為同一個 ip 地址 不能用同一個 port. 例如 port 80, 路由器只能指向一個服務器. 這時, 模組化就會不攻自破.
以下是一個解決方法

上圖中有兩個網頁服務器. External 是給客人用的. 但如果想把公司的網頁都用同一個 ip 地址放出去, 那就要 proxy 服務器的幫助. 先在 External 中開動 apache 的 proxy modules
# a2enmod proxy*
#/etc/init.d/apache2 restart
例如公司的網頁是 abc.xyz.org, 那分別在 dns 服務器, External & Internal 中加上圖中的設定, abc.xyz.org 就可以提供服務了.
以上說的與師兄的案例有什麼關連 ?
試把圖中 internal web server 當成師兄故事中所死掉的服務器, 那不就把 External 中的設定改一下, 由 死掉的服務器指向備份中的服務器就成了嗎 ? 同樣方法可以加上更多的網頁服務器 !
About this entry
You’re currently reading “淺談網頁服務器群的設計 (A group of web server),” an entry on keithyau
- Published:
- April 3, 2009 / 11:56 am
- Category:
- Information Technology, server management, sme, virtualization
- Tags:
- cost reduction, 網絡, 虛擬化, IT risk, server, virtual networking, virtualization, vmware howto, xen, xen howto, 可靠性, 中小企
No comments yet
Jump to comment form | comments rss [?] | trackback uri [?]