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