你的網站有備援計劃嗎?

脆弱的網路

最近的網際網路是多事之秋,除了上次提到的因為一台故障的UPS讓台灣百分之八十的連外線路掛點之外,國外也連續傳出推特、蘋果、臉書甚至是微軟的內部員工,因為 Java 漏洞而被植入惡意程式,使得某些他們客戶的資料疑似外洩。

而就在這篇文章撰稿的同時,又傳出了 CloudFlare 因為 DNS 系統出問題造成全球幾十萬個網站因而斷線將近一個小時!

而我會想發這一篇文章的動機是因為收到了VPS主機商發來的一封通知信:

你的網站有備援計劃嗎?

信中說因為網路硬碟 SAN 系統出了一些問題而必需緊急計劃停機維修1-2個小時!

而事實上高登在前兩天就已經發覺這台VPS有異常,所以已經先將這台VPS上的網站搬遷到另外的VPS主機,將這台主機空出來的目的是要好好查查看到底問題出在哪裡?

所以主機商的停機並不會造成我手下網站的任何損失,但是如果這是你的主機商,那你的網站在主機停機維修的期間,一定會是這樣無法連線的下場:

你的網站有備援計劃嗎?

網站一定要有備援系統

如果你是個人網站、部落格或許可以忍受網站停擺半天或一天,但是如果這個停擺的網站是公司企業的網站,是幫公司賺錢的網站呢?

上個禮拜的是方電訊斷線事件就讓大家知道後果的嚴重性,而這次斷線造成的損失一定是很大的,我想應該沒有企業會容許這樣的事件一再重演吧?

但是從最近的事件看起來,不管是大企業還是小網站,對於「備援」這檔事好像都不怎麼關心。

不然怎麼會建設出一個全台灣百分之八十出口在同一點的網路架構呢?

說穿了就是有人省錢省過頭了,而為什麼會省到不該省的建設那要有勞大家一起來監督了。

備份不等於備援

或許很多網管人員會說:「我們網站都有備份啊!」

但是網站資料備份的目的是什麼?不就是在資料出問題的時候回復回來!

但是一般備份都只是在原地復原,那你有想過萬一原來的主機或是線路出了大問題,沒辦法在原地復原呢?這個時候就是備援使用的時機

我想大家都有電腦故障需要送修沒有辦法迅速修復的經驗吧?而網站的主機也是「電腦」所以也一定會有壞的時候。

而一般人會有網站主機不容易故障的印象,是因為一個好的主機商都應該有完善的備援計劃,但是這樣子你自己就可以省下備援的計劃了嗎?

就算是你的網站不是很重要,可以允許一兩天停機,但你應該有聽過某家主機商硬碟壞掉資料救不回來的故事吧?

所以你自己一定要再額外的執行備份,真的有必要的時候再利用你手上的備份,就可以將網站搬遷到其他的主機商那裡,這是一般網站管理員一定要作的事。

但是說到備援那就要多花錢建置一台備用的主機,在原有的主機或線路出問題時切換到備用的線路或主機。

也就是說資料是透過「異地備援」傳送到備用的主機隨時待命,在有需要的時候備用的就可以升級成正式的主機。

您自己也可以作異地備援

但是一般的網站應該是不會採取以上的備援方式,因為備援的成本比較高!

而我這邊為什麼有備援的主機?其實是因為從事電腦相關行業這麼多年,看到過太多血淋淋的案例所致。

我深切的明瞭備份的重要性也認真地執行這個工作,而不是像許多人只會用嘴備份!

所以我從很早開始都是手上保持最少兩台主機可以互相支援,而且每天利用排程工作將兩台主機的資料互相備份。

在其中任何一台主機出問題時,只要改一下 DNS 的設定就可以讓備援主機上線運作。

而備份/備援系統的最高境界就是設好了之後就忘了它的存在(事實上還是要定期檢查一下備份的資料有沒有問題),等到要用的時候就拿出來用就好了!

身為網站主或是網管人員的您不妨也可以考慮我這種作法,如果你人面夠廣的話,跟朋友的主機互相備援,你只要花一點時間設定一下就好也不用多花你的錢。

不過備援最好是異地,否則當出現大規模的當機時,你就會知道你的備援是本地還是異地了!

17 則留言

  1. 你好!近期在網路上看到你們先前有出版一本書,「WordPress 3.0部落格架站十堂課」,我想買但所以有網路商城我都翻遍了就是買不到…T_T!想問問你這兒還有辦法買到嗎!謝謝唷!打擾了

  2. 請問高大,您在文中提到“只要改一下 DNS 的設定就可以讓備援主機上線運作。”但DNS變更通常要24~48小時,才能完成全球更新(如果是台灣本島,約4~8小時)這樣的備援仍有即時性的問題,如果像yahoo這樣24小時不能停止的網站,這樣的備援可行嗎?

    • 像 Yahoo 這種大型網站不會只有一台主機,他們早就是多台主機同時上線的即時備援系統,你用 nslookup 查一下就知道了
      另外你說的 DNS 更新要 24 小時那呎因為預設 TTL 就是 86400(一天),但是可以設比較短,像我的網站就設 1800,所以我不只一次講我的網站搬家只要半個小時就生效,但是好像大家都沒興趣也沒人在問,所以我當然就不想講囉!

      • 謝謝呢!還有兩個問題請教
        1. 如果DNS不是自行管理,那就沒辦法設定TTL時間了
        2. TTL這個值設是否也是client端的DNS Cache保留時間呢?還是指其他DNS server 交換資料的保留時間?

  3. 感激大大的分享,其實常常來這寶庫潛水,助益真是良多,給您深深一鞠躬啊!^^
    其實現在冒出來是想到有個問題,那有沒有辦法就是在dns設定兩個web主機,一個掛了也會自動去連另外一個,當然這是在址資料都已同步的情況下,純就硬體主機掛點來談!這樣不就不用等了!
    提個傻問題,高大別介意啊!

    • 你要求的功能叫叢集 cluster,像是 Goolge 等大型網站你用 nslookup 去查 IP,每次回報的可能都會不一樣,因為他們的 DNS 設定了 round-robin DNS,這應該就是你要的答案
      不過對 WorxPress 這種資料庫後台的網站,實務上要上資料庫同步是一大挑戰,那還需要資料庫叢集

  4. 大大您好
    我是今天再用Wordpress資料庫轉移
    然後剛好搜尋到您的教學
    只是要如何備援呢? 我用的是免費主機
    不知道如何備援
    希望大大能指點我一下 :))

  5. 謝謝高登老師的分享,綜上所述,所以Wordpress是無法做到一個網站同時放在兩個hosting上,在網站發生問題時只能將備份上傳至另一個hosting,再修改DNS,讓中斷時間減少,這樣對嗎?

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料