為什么要擁有服務器硬件?在過去的15年里,每當服務器出現(xiàn)故障,或者需要對各臺Web服務器、郵件服務器和數(shù)據(jù)庫服務器進行升級,我就重復在問自己這個問題。我原本可以選擇向托管服務商租用專門硬件,或者使用共享主機。但是我的要求所需的資源其成本將遠高于采用租賃方案后分攤下來的費用。于是,我只好擁有、維護和更新自己的服務器。
這種狀況一直持續(xù)到了去年秋天,當時我試用了虛擬專用服務器(VPS):在高端服務器上運行的擁有根訪問權的虛擬化服務器,專門為了滿足你這個用戶的需要。雖然數(shù)年來你可以向眾多公司租用VPS,但是選擇方案在2010年特別多。軟件已成熟,可靠服務已可用;相對絕大多數(shù)網(wǎng)站執(zhí)行的那種常規(guī)Web和數(shù)據(jù)庫任務的性能而言,其成本現(xiàn)在具有相當大的優(yōu)勢。
競爭很重要。因為競爭不但促使價格降下來,還確保如果某個主機服務商未能滿足你的要求,你在選擇另一家服務商時有眾多選擇。從一種服務遷移到另一種服務并非易事,但也不是什么可怕的任務。亞馬遜推出彈性計算云(EC2)后,我先關注了虛擬化主機服務;此后進入這個領域的提供商逐年增多,提供的服務也不大復雜。去年11月,我終于決定試水;到去年年底,我扔掉了自己擁有或幫助管理的所有服務器硬件,一并扔掉的還有相當大的壓力和成本。性能更好,備份更簡單,我晚上也睡得更安穩(wěn)了。四個月下來,我遇到過幾次小麻煩,但總的來說運行相當順暢。
本文將逐步介紹為什么應該選擇VPS,而不是專用服務器或共享主機;介紹如何選擇你所需要的服務和方案,可能會出現(xiàn)什么岔子,以及如何應對備份和災難。如果你在運行幾臺對外的服務器,時常但無規(guī)律地需要應對繁重需求,或者需要為遍布各地的工作小組或個人維護共享服務器,就應該學會如何評估一個或多個VPS主機是不是適合自己。
我直接使用過Rackspace的云服務器(Cloud Server)和Linode同名的Linode。我還試用過亞馬遜的EC2,我經(jīng)常使用這項服務,處理一項經(jīng)常性的數(shù)據(jù)庫構建工作。在文章末尾的圖表中,你能看到其他服務在價格和功能方面相比如何,但我無法提供坊間傳聞。
無法逐一羅列所有的服務提供商,也沒有這個必要。將有些提供商排除在外,是因為其價格高得離譜。比如說,Ubiquity Server Solutions對Linux VPS收取的費率兩倍于本文中提到的其他公司,又沒有什么明顯的理由。
VPS與專用主機托管和共享主機托管的比較
PS是在一個共享硬件上運行的虛擬機器。一臺功能通常很強的多核主機經(jīng)配置后,可以提供專用內存池;共享核心、單核或多核;以及硬盤存儲空間。主機通常提供一系列的GNU/Linux操作系統(tǒng),供客戶選擇。有些主機還提供一個或多個版本的Windows Server。(蘋果允許使用Mac OS X Server虛擬化,但只能用在蘋果硬件上,還要求為硬件和每個虛擬化實例單獨購買許可證。蘋果終止了機架Xserve服務器,因而我們不太可能看到任何大規(guī)模的虛擬化。)
與VPS連接的存儲系統(tǒng)具有持續(xù)性:如果你的虛擬機或運行虛擬機的主機硬件崩潰或斷電,重啟后,可以在上一次停運的地方繼續(xù)運行,當然硬盤故障除外。亞馬遜是唯一的例外,我會單獨討論。可能還需要恢復文件系統(tǒng),這視操作系統(tǒng)而定。由于Linux中有ext3日志功能,我還沒有發(fā)現(xiàn)除了簡略的啟動修復之外還需要什么操作(不過,備份虛擬機相當容易,我們會在下一篇文章中討論)。
VPS在幾個重要方面有別于租賃專用硬件設備或使用共享服務器場地
如果你向提供商租賃專用機器,無異于被這個硬件綁住了手腳。這在過去還是個特別的優(yōu)點,因為別人無法使用你的處理器周期資源,你想執(zhí)行什么任務,可以執(zhí)行什么任務。
然而,要是專用硬件出現(xiàn)了故障,主機服務商就得找出備用部件,必須移除、重新指向或恢復驅動程序。有些主機服務商承諾手頭備有這種部件。如果你的要求超出了專用設備的限制,就得安排遷移到另一個物理硬件上的事宜。如果你突然需要10個一模一樣的專用主機,這安排起來很費時間。
提供專用硬件的主機托管服務商可能并不為備份主機提供簡單的解決方案,備份主機可能完全是你的責任。這就使得恢復同樣很困難,或者需要支付按小時計費的昂貴的“遠程操作服務費”。
至于共享主機托管,你與其他用戶共享同一臺機器。你不知道有多少人的網(wǎng)站或其他服務在系統(tǒng)上運行,也不知道你在某個時間可以使用多少的計算功能。眾多的節(jié)制系統(tǒng)試圖牢牢控制每個用戶,但是這好比一群人在擁擠的房間里,只要有個人大聲喧嘩,別人就無法談話。
如果你自己使用過多的資源——無論出于正當原因,還是由于編程上的錯誤,可能會被踢開、被建議升級到專用硬件,或者受到節(jié)制,結果任務完成不了。共享主機通常不斷地增量備份,但這得不到保證:你得承擔一部分風險,確保自己也有備份。
(現(xiàn)在開始出現(xiàn)了一種共享主機替代方案,Rackspace的Cloud Sites就是典例。它比共享主機方案要貴不少,你也無法獲得根訪問權。但是你的文件和腳本散布在能夠自動擴展的一組機器上?;举M用相當于一臺專用計算機。它奇特地結合了虛擬化和共享主機,適用于不需要調整后臺服務器的流量較大的網(wǎng)站。如果某網(wǎng)站大多數(shù)時候每天的頁面瀏覽量平均為5萬人次,但偶爾猛增至100萬人次,那它很適合采用這種方案。還有內容分發(fā)網(wǎng)絡(CDN),可用于分發(fā)靜態(tài)頁面、組件、圖像及其他媒體,按每GB量收費。)
VPS消除了硬件方面的任何顧慮:無論主機服務提供商作出什么決定,其選擇對你來說是看不見的。你獲得了專用服務器的一些優(yōu)點,因為VPS看起來就像一個設備,與一組特定的硬件相連接。如果主機有閑置周期,許多服務器允許你在峰值時期的處理器使用率高于保證的極限值,因而在那個方面提供了小小的優(yōu)勢。最近,我在Linode運行的一臺MySQL服務器在幾小時內保持著400%的處理器使用率。
你仍要負責維護操作系統(tǒng)的運行,可能會把什么事情弄糟。但是你也可以將系統(tǒng)快照作為備份來保存,萬一犯了重大錯誤,可以迅速恢復到快照。如果主機硬件出現(xiàn)故障,VPS服務可以迅速將你遷移到另一個系統(tǒng)上(我已經(jīng)碰到過這種事)。
一旦你創(chuàng)建了合自己心意的VPS,幾乎所有VPS服務都允許你復制。遇到了流量激增的情況,你可以啟動額外的一橫一樣的鏡像。有些服務還提供工具,以便在這類服務器或循環(huán)DNS之間均衡負載。亞馬遜在這方面顯得尤其靈活,它設計的系統(tǒng)讓用戶可以啟動1000臺服務器,然后停用這些服務器,用戶只需要為運行期間的使用量付費。