本文介紹安裝和運行VPS方面的一些詳細(xì)內(nèi)容。
你可能想到了,要體驗VPS得先有個帳戶。無論你需要什么樣的服務(wù),先要建立一個帳戶。即使信用卡號碼已得到了核實,有些主機服務(wù)商還是要求另外核實身份。此舉顯然是為了防止垃圾郵件發(fā)送者、網(wǎng)絡(luò)釣魚攻擊者和黑客使用竊取(但還沒有被失主掛失或發(fā)覺)的信用卡來設(shè)置VPS。
比如說,Rackspace表示,它會在帳戶建立后的15分鐘之內(nèi)聯(lián)系你,核實身份。不過我在建立兩個帳戶的過程中,對方都沒有聯(lián)系我。
帳戶建立好后,你接下來要設(shè)置實例大小。大多數(shù)主機服務(wù)商提供一份標(biāo)準(zhǔn)設(shè)置菜單供你選擇:幾家服務(wù)提供讓你可以像點菜那樣選擇更多的選項。由于設(shè)置虛擬化主機服務(wù)器的方式所限,添加更多內(nèi)容或硬盤存儲空間常常要支付看似高得離譜的費用。那是由于變化可能使得服務(wù)商無法在同一機器上提供完整的額外服務(wù)器。
作為設(shè)置實例的一部分,你幾乎總是要選擇使用哪個Linux發(fā)行版。一些VPS服務(wù)商還提供Windows Server選擇,收取的費用常常比同類的Linux平臺貴約5%至10%。 雖然每個主機在支持哪些Linux發(fā)行版方面各不相同,但大多包括CentOS、Debian、Fedora、紅帽和Ubuntu。ArchLinux、Slackware及其他發(fā)行版出現(xiàn)在特別的主機服務(wù)商,有些發(fā)行版只出現(xiàn)在由某一家公司運行的某些數(shù)據(jù)中心。在一些情況下,你還可以在32位和64位的虛擬機及操作系統(tǒng)之間作一選擇。(我使用了多年的紅帽,現(xiàn)在改用了CentOS。改換過程很容易。沒錯,我知道你所用的Linux/BSD比CentOS好得多,但我可以輕松使用該發(fā)行版,處理我想要處理的任何任務(wù)。)
標(biāo)準(zhǔn)的發(fā)行版鏡像裝入到虛擬機上,你安裝的實例立即變得有持續(xù)性。另一方面,就算你在除亞馬遜外的任何服務(wù)上關(guān)閉了實例,照樣要為此支付每小時費用。必須刪除了實例,服務(wù)商才不會繼續(xù)收費。對于從持續(xù)性卷啟動的暫停實例,亞馬遜不收費。如果使用一些服務(wù),你可以將運行中實例或暫停實例的鏡像寫到存儲區(qū)域上(為此需要每月按每GB付費,才能使用),以后可以從該鏡像還原。(亞馬遜一向是個例外,它讓你既可以從非持續(xù)模板鏡像來啟動——可以定制鏡像,但是關(guān)閉鏡像后,就被刪除,也可以從保留所有費用的持續(xù)性卷來啟動。你還可以從常規(guī)的非持續(xù)性鏡像啟動,指定可以掛載不同持續(xù)性卷的腳本。)
實例包括了一個公眾聯(lián)系得到的IP地址,但你可以添加更多地址,只需支付月費。如果你使用版本較老的Apache(支持SSL/TLS),通常只需要一個額外的IP地址。專用IP地址也可以設(shè)置,一般是免費的。這些專用IP地址(如前文所述)允許由主機服務(wù)商運行的單一數(shù)據(jù)中心里面的實例之間通訊,不另外收費。如果你在自己的運營系統(tǒng)之間需要頻繁地來回傳送數(shù)據(jù),這極其有用。
在我看到的所有情況下,實例可以在防火墻開啟的情況下創(chuàng)建,有時只允許SSH遠(yuǎn)程訪問。連SSH訪問都可能要求使用更復(fù)雜的基于密鑰的驗證——亞馬遜就是這樣,而不是只需要用戶名和密碼。你要執(zhí)行的需要最高根用戶權(quán)限的任務(wù)是在命令行配置防火墻,開啟需要遠(yuǎn)程訪問的服務(wù)。(不過亞馬遜和另一些服務(wù)商有基于Web的防火墻配置向?qū)А#?/p>
大多數(shù)Linux發(fā)行版隨帶相關(guān)的更新服務(wù),比如Fedora和CentOS隨帶的 yum,Debian和Ubuntu隨帶的apt。由于我的一些硬件服務(wù)器運行了好幾年,需要大量定制才能正常運行,所以我很少享受到自動化更新帶來的便利。你應(yīng)該享受得到。
我的發(fā)行版架構(gòu)唯一遇到問題的地方是SSL/TLS和Apache。Apache的CentOS 5.5發(fā)行版并不包括對服務(wù)器名稱指示(SNI)的支持,該功能讓多臺SSL/TLS Web服務(wù)器可以共用同一個IP地址。我只好卷起袖子,動手編譯更新版本的openSSL和Apache。問題迎刃而解,但的確失去了不需要編譯自身軟件的一點樂趣。目前我在等待MySQL 5.5,該版本現(xiàn)在已有,但還不是CentOS 5.5更新發(fā)行版的一部分。
你甚至可以安裝升級后的內(nèi)核,或者甚至干脆換掉內(nèi)核。不過這么做有危險。VPS主機對于你運行的邏輯機器通常只提供有限的支持;即使那樣,也只是針對服務(wù)商提供的標(biāo)準(zhǔn)發(fā)行版。如果你升級內(nèi)核或者轉(zhuǎn)換操作系統(tǒng),又出了什么差錯,你可能只好回到之前保存的鏡像。
一旦你設(shè)置了合自己心意的機器,幾乎總是會有保存鏡像的選項:這有時與單獨計費或按需備份的系統(tǒng)聯(lián)系在一起。保存鏡像是服務(wù)器的精確克隆版本,被大多數(shù)主機用來創(chuàng)建新的實例。如果你有理由要轉(zhuǎn)換或建立冗余機制,鏡像通常還可以在同一家公司運行的多個數(shù)據(jù)中心之間遷移。
實例創(chuàng)建并運行起來后,可能會出現(xiàn)什么差錯呢?會出好多差錯。但是運行得當(dāng)?shù)腣PS主機能夠在很大程度上抵消潛在問題。
通過儀表板的遠(yuǎn)程操作
使用VPS的目的是不用太擔(dān)心硬件。對于我和我所了解的同事來說,確實是這么回事。但可以減少顧慮,并不意味著運行VPS的所有硬件根本不會出問題。有時候,硬件會出故障。好的主機在現(xiàn)場備有數(shù)量眾多的冗余硬件,以更換難免出現(xiàn)故障的主機和驅(qū)動器。(想詳細(xì)了解提供商們?nèi)绾螛?gòu)建服務(wù)器的驅(qū)動器,參閱下面的備份部分。)
如果虛擬化主機出了故障——我完全改用VPS主機后沒過幾星期,就攤上了這檔事,服務(wù)提供商轉(zhuǎn)移或重新指向驅(qū)動器陣列,假如陣列沒有損壞的話;或者遷移鏡像,即把鏡像拷貝到其他服務(wù)器上未預(yù)留、未使用的空間。以我的情況為例,我的服務(wù)器拷貝過去,在新的主機上重新啟動,服務(wù)只受到短暫影響。IP地址及其他特性自然保持一樣。
但是如果硬件完好,虛擬機方面遇到了問題,可以求助于儀表板(dashboard)。服務(wù)提供商提供了眾多儀表板,包括得到廣泛支持的開源前端、內(nèi)部開發(fā)的Web應(yīng)用程序以及采用商業(yè)許可證的軟件。基本儀表板可以顯示服務(wù)器的運行狀況,讓你控制參數(shù)(包括升級),提供關(guān)于使用情況的圖表及其他統(tǒng)計數(shù)字,以及提供恢復(fù)、還原和備份實例的功能。
儀表板的遠(yuǎn)程訪問功能在幾種情況下很關(guān)鍵。首先,如果你聯(lián)系不上實例,如果能夠建立基于Web的Java或AJAX終端會話,直接通過主機硬件獲得訪問,就能起到很大幫助。這讓我好幾回得以弄清楚根源出在路由問題上,而不是實例壞掉。如果你愚蠢地禁用了接口,或為適配器設(shè)置了無法聯(lián)系的IP地址,也可以使用這項基于Web的訪問功能來解決網(wǎng)絡(luò)接口問題(實不相瞞,我就沒有配置好遠(yuǎn)程網(wǎng)絡(luò)適配器。)
你還可以在采取下一步之前,使用遠(yuǎn)程訪問功能,弄清楚你的實例處于多糟糕的狀況。我分析了自己直接使用的服務(wù)和圖表中調(diào)查的那些服務(wù)后,發(fā)現(xiàn)恢復(fù)是四種服務(wù)之一。
軟重啟。摁一下Web按鈕,即可重啟暫停所有進(jìn)程的虛擬鏡像,其行為就像物理機器上的軟重啟。如果機器完全陷入停頓或者無法聯(lián)系上,你也無法通過SSH會話來聯(lián)系,有時軟重啟必不可少。近幾個星期我在調(diào)試Apache時,只好使用軟重啟:我們根本沒有為VPS分配足夠多的內(nèi)存,Apache老是卡住。能夠軟重啟(或有時通過基于Web的終端,暫停、重啟Apache)讓我們不至于抓狂。
硬重啟。這個選項用來模擬斷電上電。現(xiàn)有鏡像的內(nèi)存減少了,虛擬機從存儲鏡像重新裝入。這有時是致命的,具體取決于出現(xiàn)的問題;這時可能少不了日志或其他磁盤恢復(fù)。
恢復(fù)。Linode等一些主機服務(wù)商讓你啟動與你所用的發(fā)行版一模一樣的未改動發(fā)行版,把受損實例作為一個驅(qū)動器掛載到啟動磁盤上。然后,你可以試圖修復(fù)引起這個問題的故障,或者如果看起來無法作為啟動系統(tǒng)來恢復(fù),將數(shù)據(jù)傳輸出去。
還原。要是別的所有辦法都失靈,你可以選擇之前創(chuàng)建的磁盤鏡像備份來還原,清除在此期間所作的任何變化,有助于返回到可以使用的實例。
要是你非得面對存放在托管數(shù)據(jù)中心或者甚至在你自己辦公室的自有硬件,可以考慮采用上述操作中的某一種。每種操作需要打電話給提供商,或者使用遠(yuǎn)程斷電上電設(shè)備。從鏡像來恢復(fù)或還原需要數(shù)小時,也很麻煩,包括需要另外的硬件幫助恢復(fù)。
最后要介紹的是備份,這恰恰表明了VPS實例有多健壯,并且可以幫助你應(yīng)對可能出現(xiàn)的其他問題。
備份、備份、備份
我不是存心把你搞糊涂,但你一定要為備份、備份的備份、備用備份的備份,可能還有更多的備份而操心。
我得坦白承認(rèn),在改用VPS主機的過程中,我差點兒抓狂。我遷移了所有系統(tǒng),更換了DNS,突然覺得自己缺乏安全保障。于是我作了更多的備份,還因而安排了更多的方法,以便可以始終訪問自己的數(shù)據(jù)。
VPS把你的所有雞蛋都放在一只籃子里。你的文件、程序和操作系統(tǒng)都放在劃分成幾部分的磁盤上,只有借助虛擬化管理軟件才能聯(lián)系上磁盤。 大多數(shù)服務(wù)依靠RAID10來獲得冗余機制(RAID10是RAID1+0,一組組雙驅(qū)動器經(jīng)過鏡像和條帶化處理。這增強了性能。RAID10系統(tǒng)中每一個鏡像組中的一個驅(qū)動器出現(xiàn)故障后,數(shù)據(jù)不會丟失。)
有些服務(wù)商不斷地增量備份RAID10系統(tǒng),那樣即使出現(xiàn)了災(zāi)難性故障(任意鏡像組中的兩個驅(qū)動器同時出現(xiàn)故障),也有可能還原到最近的備份點。不是所有服務(wù)商都提供這種機制,連提供這種機制的那些服務(wù)商也可能面臨漫長的恢復(fù)過程。
幾乎所有服務(wù)商都提供VPS鏡像功能,采用兩種定價方式中的一種。備份鏡像是運行中系統(tǒng)的完整快照,這意味著數(shù)據(jù)庫和文件在備份時可能打開著。不過,它是完全可以恢復(fù)的鏡像。對于大多數(shù)提供商來說,鏡像備份在夜間執(zhí)行,通常是在設(shè)定的周期性時間或設(shè)定的時間段內(nèi)進(jìn)行。這種情況下,為每周和每月保留了一份夜間備份;隨后進(jìn)行的備份成功執(zhí)行后,最舊(通常是八天前)的數(shù)據(jù)被丟棄。你還可以經(jīng)常手動創(chuàng)建一個或多個額外的快照。一些提供商讓你可以根據(jù)需要進(jìn)行備份,但并不使這個過程自動化。
順便說一下,這些鏡像通常用于從同一個起始點創(chuàng)建新的VPS。你可以創(chuàng)建一個樣板發(fā)行版,為它添加必要的文件或腳本,然后可以根據(jù)需要創(chuàng)建和停用。這些鏡像似乎無法在不同的VPS主機之間完全移植,因為不同的主機可能調(diào)整了虛擬化主機軟件,或者采用全然不同的架構(gòu)。(除非你有一個極其非典型的基本架構(gòu),否則你常常只能拷貝數(shù)據(jù)、調(diào)整一些配置文件以及恢復(fù)運行。)
一些主機服務(wù)商按GB量確定備份費用:根據(jù)虛擬磁盤里面存儲的實際數(shù)據(jù),而不是某個VPS磁盤的全部容量,你只要為保留的備份支付存儲費就行。除了自動化的每夜、每周和每月備份外,你還可以保留許多鏡像備份,或者一個備份都不保留。如果你存儲大量數(shù)據(jù),這么費用很高。如果保留VPS的五個備份,使用的存儲空間為100GB,Rackspace收取的費用將是每月75美元(15美元乘5)。
其他主機服務(wù)商收取統(tǒng)一的備份費用。比如在Linode,備份費用與VPS的大小有關(guān),包括四種快照:每日快照、每周快照、每月快照和按需快照。費用是每分配給一個實例256MB內(nèi)存,每月收費2.50美元,費用從512MB服務(wù)器5美元到4GB服務(wù)器40美元不等。
這是層次相當(dāng)多的備份,是不是?RAID 10中的鏡像驅(qū)動器可能單獨備份,還有多個磁盤鏡像用于還原,以防驅(qū)動器出現(xiàn)災(zāi)難性故障以及備份驅(qū)動器出現(xiàn)故障。
一個問題是:這些都在同一個數(shù)據(jù)中心。同時出現(xiàn)故障的可能性很小,但是要考慮地震、天然氣爆炸、炸彈、嚴(yán)重雷電以及導(dǎo)致滅火系統(tǒng)失靈的火災(zāi),等等。
凡是對你來說很重要的數(shù)據(jù),你都要有異地備份,最好妥善放在遠(yuǎn)離數(shù)據(jù)中心的地方。對于VPS來說有幾個方案的效果很好。亞馬遜和Rackspace等一些提供商在多個數(shù)據(jù)中心提供了“云文件”存儲,并且讓你可以訪問鏡像,在數(shù)據(jù)中心之間拷貝文件,只要支付傳輸費以及每月在其他地方的存儲費。
你還可以在虛擬機里面運行腳本或軟件,直接從文件系統(tǒng)提取和備份數(shù)據(jù)。FUSEOverAmazon(https://code.google.com/p/s3fs/wiki/FuseOverAmazon)這個項目提供的腳本讓你可以將亞馬遜的S3存儲作為FUSE驅(qū)動器來掛載;FUSE允許非典型的存儲或系統(tǒng)看起來就像是系統(tǒng)上的另一個掛載驅(qū)動器。然后,任何本地備份腳本都可以寫到S3上,好像它是本地存儲。(當(dāng)然,平常的S3傳輸、存儲和處理等費用照收不誤!)
我還試用了Jungle Disk(https://www.jungledisk.com/)和CrashPlan(http://www.crashplan.com/),目前仍在使用。Jungle Disk的服務(wù)器版(Server Edition)其費用標(biāo)準(zhǔn)是每個機器每月5美元,存儲費用另外收取。你可以安裝Linux或Windows服務(wù),但不需要在配置的服務(wù)器上有GUI,只需要命令行。安裝完成后,可以使用面向Mac、Windows或Linux的管理界面,用來遠(yuǎn)程配置和監(jiān)控。
Jungle Disk執(zhí)行增量備份,僅僅發(fā)送需要上傳、以便還原變化數(shù)據(jù)的那部分文件。這使得傳輸費和存儲費比較低。軟件可與亞馬遜S3 或Rackspace(Jungle Disk母公司)的Cloud Files協(xié)同運行。就你選擇的服務(wù)而言,Jungle Disk每月提供10GB的免費存儲空間。亞馬遜的費用通常是每上傳1GB收費0.10美元(每下載1GB收費0.15美元,下載用于還原及其他信號交換),每月存儲1GB照收0.14美元。
Rackspace完全放棄了傳輸費,每月每存儲1GB收費0.15美元。(不過如果你選Rackspace為主機服務(wù)商,要付VPS傳輸費。)
CrashPlan的各項服務(wù)方案都提供沒有限制的存儲空間,每月收費5美元起。CrashPlan的Linux軟件可以通過Linux GUI或者進(jìn)行一番調(diào)整(網(wǎng)上有介紹)來配置,可通過在Mac或Windows平臺下的公共IP地址來遠(yuǎn)程訪問。CrashPlan可以將同樣文件備份到自己的托管存儲空間,也可以備份到歸你控制的計算機上。我們備份到CrashPlan的服務(wù)器上,還備份到用戶內(nèi)部的硬盤上,進(jìn)一步增強安全。
結(jié)束語
我在文章開頭講到了到底為什么我們需要擁有服務(wù)器硬件。我在從物理機改換到虛擬機的過程中,只是遇到了幾個小障礙,但沒一個讓我產(chǎn)生后悔的念頭。改用主機服務(wù)商的目的應(yīng)該是提高資源潛力,消除或減少資金開支,以及杜絕將時間浪費在管理設(shè)備上的任何現(xiàn)象。
這一切自然是需要付出費用的,但是目前市場競爭激烈,這帶來了優(yōu)惠的價格,但不是價格戰(zhàn)。你也不需要價格戰(zhàn),因為那樣的話,你喜歡的提供商可能因搶不到業(yè)務(wù)而倒閉,或者收入太少,因而無法處理大批新業(yè)務(wù)。相反,價格看起來很公道。
對于合適的公司或個人來說,我覺得VPS能夠滿足你大約99%的需要;而VPS減小管理負(fù)擔(dān)和開支的優(yōu)點,加上出色的備份方案,足以掩蓋其瑕疵。
原文鏈接:http://arstechnica.com/business/news/2011/02/the-abcs-virtual-private-servers-part-2-getting-started.ars