從備份到營運,都別讓「單點失誤」釀成企業災難/傅瑞德
日前公共電視台的影片檔案在交由外部廠商備份時,出現了數十萬筆資料完全消失的嚴重錯誤。無論是備份的技術問題、或是人為操作失誤,這個現象都凸顯了「災難性單點失誤」在公視流程中的存在。這種失誤不僅會出現在備份時,也會在人事、財務、管理上發生;於是本文就以備份為例,來討論一下這個問題。
財團法人公共電視新聞「片庫」驚傳重大災情,公視新聞部、客家電視台及台語台,近5年約42萬筆新聞資料畫面,竟遭外包資訊公司人員全數刪除,其中包括許多具歷史意義的珍貴影像,未來要剪輯相關畫面只能花公帑向華視購買。離譜的是,去年6月公視才遭駭客入侵,為防再遭駭客入侵,才找來專業資訊公司備份片庫等資料,沒想到竟出現如此低級錯誤。本刊調查,公視董事會已要求相關單位在24日前提出調查報告,並委託律師向廠商求償。
──鏡新聞〈公視認片庫遭全刪 強調:正研擬提告求償〉
以我當過業主、也當過外包廠商的經驗,把唯一一份資料交給外包廠商去備份,是最容易出錯的事情之一。
其實不只是資料,企業中包括營運、人事、資源管理、工作程序等等,都必須遵循一個最高原則,就是:
絕對要避免讓「災難性的單點失誤」出現。
由於公視事件的詳細內情尚不清楚,所以這邊只是將它當作個引子,來討論一下「單點失誤」的問題。
而本文所說的「備份」原則,如前面所提過的,雖然字面上談的是資料,但也適用於人事、財務、流程等等,請讀者自行推論聯想。
備份的原則
一般在談備份的時候,觀念上是從A複製出一份B,就算是備份了。在確保A、B兩份在符合以下標準:
備份作業成功、內容完整;
A、B內容完全相同(行話叫做「mirrored」);
A、B內容可以各自獨立開啟;
……的前提下,就算是完整的備份作業(這些前提適用於以下所有敘述,不再重複)。
或許「完全相同」、「可各自開啟」看起來像是廢話;但在人類歷史上,備份完A、B內容不太一樣或有缺損,或是A打得開B打不開、甚至兩個都無法打開(例如RAID 1嚴重損毀)的案例都發生過太多,所以千萬不要覺得不可能。
以個人的非關鍵資料而言,或許從A到B的備份就夠用了;但是對於多人、多部門的企業而言,就必須有妥善的備份策略,才能避免如公視(和其他許多沒有上新聞的企業)這樣的慘劇發生。
一切都要「分散」
理想的備份策略,不只要異地、要多份、還要分時,部門在交出一份拷貝之前自己也要先備份、而且不能在同一時間時備份在同一個地方。
異地、多份的觀念比較常聽說,「分時」則比較少人談;簡單的說,就是各部門不要在同一時間進行備份作業,以免例如公司大樓停電,導致同時進行的作業全部失敗。
總之,就是必須假設每一個程序都會出問題(這很正常,誰來做都一樣),但盡量將每一個可能出問題的環節錯開,將「單點失誤」導致全毀的機率降到最低。
以全公司的檔案備份而言,理想狀況下的基本策略應該是如下圖所示:
各部門自己先將資料從A拷備份成B拷;
交出B拷給中央MIS彙整成C拷、並備份成D拷;
MIS將D拷交給外部廠商;
外部廠商將D拷做成E拷,再分散成異地或重複備份(行話叫做「redundant」,也有翻譯成「冗餘」的,但我自己不喜歡這個翻法)的F、G、H拷。
在這個圖中,最容易出問題的有兩個地方:
路徑重疊度越高的(例如前面提過的「同時停電」),所以要盡量錯開;
只有單一路徑,所以最容易出現「單點失誤」的;如圖中間的部分,所以必須額外加上重複備份的安全措施。
當然在中間的單一路徑部分,也可能在「安全措施」的單線處理中出錯,但至少C、D、E同時全部損毀的機率很低;而且萬一真的發生,也還有A、B階段的資料可以支援。
回過頭來看,即使在A拷階段就出錯,最糟也就是損失單一部門的資料而已,不會影響到其他部門。
人的問題
不過除非公司中央的MIS有嚴格要求並執行,實務上會完整做到上述程序的公司很少;多半會省略其中一些步驟,甚至直接從A→C→E,沒有任何內部先備份,頂多MIS自己備個B拷留底,就交給廠商處理了。
而今天看到的公視新聞資料損毀情形,如果確定是「全毀無備份」、並且從這個狀況倒推,就是部門也懶得做備份、公司MIS也懶得留底,將一切回復到最原始的「A→B」做法;然後就在過程中發生最違反資訊安全原則、最致命、損失最大、而且最容易在不該發生的時候發生的「災難性單點失誤」。
這是十分常見的「人因問題」,我自己也在個人資料上犯過這種錯,所以十分明白這種「懶得做」、「沒碰沒責任」、「沒那麼倒楣」、「給廠商做就好」的心態;但如果MIS部分經過妥善的策略規劃,這些程序都可以全自動進行(排除「懶」和「部門責任」因素)、也多用不了幾(十)顆硬碟,比起出狀況後的處理善後成本,實在便宜太多了。
設備的問題
新聞資料中沒有明說廠商是用什麼方式備份,有其他報導指出廠商是用NAS網路磁碟機;但因為還無法確認,所以就從與事件無關的角度來談一下設備的事情。
我自己曾經是NAS的愛用者,但後來連續發生兩次主機板損毀、陣列重建失敗(不算是單點失誤,只是運氣很差),導致兩個備份全毀(幸好都已經先另外備份到雲端)之後,我對於NAS這種線上(不是網路的線上)備份機制就不再那麼信任了。
現在則是改用雙重雲端備份、以及「定時備份到外接硬碟A,再設定程序自動將A備份到硬碟B」;如同前面所說的原則,A和B兩者都不是陣列,內容相同,而且可以獨立讀取)。
在正常的備份作業中,原始資料和備份資料同時完全損毀的機率不高,但確實會發生(而且如前述就發生在我身上);但除非是外部原因(如地震導致設備實體損毀、或是停電),多數的作業方式都只會造成備份資料因不完整而損壞,而不會損及原始資料。
依據我自己的經驗,最容易發生的設備配置就是磁碟陣列(RAID);而矛盾的是,雖然許多種類的陣列設計都是以資料完整為目的,但在發生實體(如主機板)損毀之類的狀況時,往往分散儲存、甚至加密處理的陣列資料也是最難回復的。
以彙整資料的「線下」安全性備份(如上圖中的D和E步驟)而言,我認為反而「老式」的磁帶機、硬碟、或是RAID 1陣列還是比較安全的。
至於廠商,或許就用相對便宜的方式來處理(第一道備份千萬不要直接進NAS啊),覺得「應該不會那麼衰」,結果就是這麼衰。
結語
雖說不同的備份裝置有不同的特性,不同的資料型態、存取時間需求、甚至各家MIS主管都有自己的偏好,所以本文所提到的個人觀念(例如「不要用NAS做備份」)不一定大家都同意,每個人選擇的裝置、設計的程序也都可能有所不同。
但總而言之,如同一開始時提過的,資料備份也好、人事佈局也好、投資策略也好,任何企業決策一樣,避免風險最好的方式之一,就是透過機制的設計和資源(設備、人員、外部廠商等等)的配置運用,在整個流程中盡可能消除「災難性單點失誤」的可能性。
此外,雖然「消除單點失誤」屬於預防性的設計,但如果在數位轉型的過程中就已經內化成體系的一部分,就會像是免疫系統一樣,有助於資訊體系的健全、流程的順暢、以及資訊的安全與完整性。
相信我,相對於出狀況後才彌補、或是事後才恍然大悟趕快建立流程,預防的成本會低得多。
That’s a good analysis and recommendation.
謝謝你的提醒,我現在正是NAS的愛用者,卻沒有意識到主機板毀損會造成的毀滅性後果,這類運氣不好的狀態我很難承擔,的確有可能造成「單點失誤」的後果!