Mirror File System for Cloud Computing
摘要
軟體新技術「鏡像檔案系統」Mirror File System (MFS) 的概念非常簡潔:當使用者更新一個檔案時,MFS 即時的同步更新本機端與雲端等兩地的檔案資料。MFS 還可以即時的、單向或雙向的,複製相同的資料到世界各地的多台伺服器。整個即時複製作業是完全通透的 (transparent),無論是使用者或是應用程式,都不會感受到 MFS 的存在,而同步作業就在幕後完成。本文說明 MFS 在雲端運算的適用性,以及對用戶和雲端服務供應商的運用性。
簡述
鏡像檔案系統 Mirror File System (MFS) 是由 Twin Peaks Software 研發的一個專利的檔案系統 (File System) [註1] [註2],目前有Solaris、Linux、以及Windows等版本。MFS 可以在兩個系統之間,單向或雙向,即時的複製檔案資料。MFS 的設計與架構,允許檔案資料傳播到多台伺服器。MFS 可以運用在災難復原 Disaster Recovery、高可用性 High Availability、叢集 Clustering、平衡負載 Load Balancing、以及線上檔案備份 Online File Backup 等領域。
本文包含兩個部分:
第一部分,探討 MFS 如何幫助雲端運算的施行。對於雲端服務供應商,MFS 可以讓雲端運算的基礎架構更強固、更有效率、可用性更高。
第二部分,討論類似的技術,諸如 Storage and Volume replication、Clustering system、和 Clustering file system等等。並且將這些技術與 MFS 做比較,說明為什麼這些技術做不到 MFS 達到的層次 -- 更佳的彈性、效率、和可用性。
關於 MFS 的工作原理等技術細節請參考 MFS 專利 [註1],關於 MFS 的各種技術介紹請參考 [註3] [註4]。
第一部分:MFS 與雲端運算
MFS 為使用者帶來的好處
雲端運算 (cloud computing) 是將傳統的桌面運算 (desktop computing) 所需的軟硬體資源,從本地端轉移到雲端,轉移的項目包含運算、儲存、應用程式、以及資料。用戶和企業在考慮是否採用雲端運算時,關鍵在於資料的安全性、可靠度、和可用性。大家不願意貿然採用雲端運算的一個重要的理由是,一旦資料轉移到雲端,資料的主控權也同時交出去了。MFS 專注在解決這個疑慮,在桌面運算轉移到雲端運算時,讓資料的使用更安全、無縫密接、更容易、更可靠,帶給用戶超凡的信心來面對雲端運算這種技術與環境的「大躍進」。
從本地端運算到雲端運算
MFS 讓用戶可以即時的,在桌上電腦以及雲端伺服器,各儲存同一份檔案。用戶不用在本地端運算 (local computing) 或是雲端運算之間二選一,而是同時使用兩者。由於同樣的活檔案 (live file) 同時儲存在本地端與雲端兩個地方,所以使用者可以像以前一樣擁有本地端運算的便利,並且同時得到雲端運算的效益。MFS 可以為這種新式的運算與資訊模式帶來許多優勢:
- 效能與彈性:有些應用程式運作在雲端系統會有比較好的運算能力與儲存容量,但是另外一些應用程式運作在本地端系統地比較順暢。有了 MFS,用戶就可以在本地端與雲端系統之間,選擇最適合的平台來執行他們的應用程式,同時掌握兩種平台的優勢。
- 可用性:若是用戶到了不能上網的地方,可以先用自己的電腦離線工作,到了下次連上網的時候,資料會自動更新到雲端。反過來也是依樣,若是自己的電腦暫時不能使用,用戶可以先用其他的設備,利用存放在雲端的資料與應用程式繼續工作,下次再將雲端的資料同步回自己的電腦上。
- 雲端線上備份:無論是用戶或是企業,可以輕易地、無縫地將重要的檔案即時備份到雲端,不需要手動備份或是排程備份。
私有雲 Private Cloud
雖然雲端運算擁有許多優點,但是用戶與企業對雲端運算的可靠度和安全性仍然存有疑慮,大家不願意信賴遠在雲深不知處的伺服器上的應用程式和檔案儲存 [註5]。為了減輕這種疑慮,MFS 提供私有雲解決方案。
私有雲 (Private Cloud) 跟公有雲 (Public Cloud) 近似,兩者的差別在於,公有雲是將應用程式與檔案放置在遠端資料中心的伺服器上,而私有雲是將伺服器放置在家裡或是公司裡。
私有雲經過防火牆的保護再連結到互聯網上,使用者可以「即時的」複製自己的電腦資料到伺服器上。因此,私有雲之內的使用者,總是可以安全地複製重要資料的複本。外部的使用者也可以使用私用雲,但是必須經過防火牆的保護。私有雲帶來許多優勢:
- 更好的安全性:重要的資料可以保護在防火牆之內
- 改善網路速度與頻寬:在企業內網裡,執行應用程式與檔案複製等作業,比透過互聯網執行更快速更有效率
- 提供企業和用戶更好的控制能力、軟硬體資源的調配
MFS為雲端服務供應商帶來的好處
當雲端服務供應商打造資料中心作為基礎架構,準備為用戶與企業提供雲端服務,通常會碰到下列的挑戰:
- 如何讓服務全年不打烊 24/7/365
- 如何處理災難復原,或更進一步,如何一開始就避免災難發生
- 如何延展資料中心的服務以滿足雲端服務的動態需求
- 如何讓服務更有效率更經濟
可用性 Availability
MFS 能讓各資料中心彼此同步資料,當其中一個資料中心的某個檔案被更新時,就會即時的複製到其他資料中心,而且各資料中心可以相隔千萬里遠,這是一般叢集技術 (clustering) 與儲存複製技術 (storage replication) 做不到的地方。
當一座資料中心因為天災或人為因素而斷線時,其他位於遠方未受災害影響的資料中心,依然可以持續提供用戶與企業相同的服務。
效能 Performance
在雲端部署多個資料中心,可以平衡流量並分散服務各地的使用者,提供用戶更好更快的效能。例如,用戶可以直接利用最近的區域資料中心而不必跑到遙遠的中央資料中心存取資料,因此得到更好的服務效率。傳統的技術只能在單一地點提供live的、即時的資訊服務,而不能在多點提供同樣的資料與服務,這種單點資源模式終將在未來服務量增加的時候,變成服務效能的瓶頸。
延展性 Scalability
延展性 Scalability
無論距離多遠,MFS 可以讓雲端服務供應商增加一個新的資料中心,而且不用打斷現有資料中心的運作。一旦新的資料中心向其他資料中心完成同步作業,立刻就可以在新的區域提供一致的服務。假設其中一個資料中心由於災難、維修或關閉而停止服務,也不會影響其他資料中心的運作。
第二部分:其他方法的限制
任何單一資源是脆弱的
我們的目標是要讓雲端運算更有吸引力、更有效率、更可靠,並且防範單點資源 (Single Resource) 模式的失敗,所以雲端服務供應商必須建立跨越多個資料中心的多重資源體系。只靠單點資源模式提供服務,是雲端供應商的弱點,這是自從有資訊工業以來就有的問題,時至今日,雲端運算的出現讓這個問題更為重要。
許多科技曾經企圖在各個層面去解決這種單源故障 (Single Source Failure) 的問題,底下討論幾種使用最廣泛的方法:
- 磁碟陣列 Disk Array:這種技術是在硬碟層,藉由提供贅餘 (redundant) 的硬碟給單一儲存系統,以解決這個問題
- 儲存複製 Storage and Volume Replication:這種技術是在儲存層,藉由提供贅餘的儲存設備給單一系統或共享式儲存叢集系統,以解決這個問題 [註6] [註7] [註8]
- 共享式儲存叢集系統 Shared Storage Clustering System:這種技術是在系統層,藉由提供贅餘的系統節點共享單一儲存系統,以解決這個問題
- 叢集檔案系統 Clustering File System:這種技術是在檔案系統層,允許多個贅餘的節點掛載 (mount) 到共享式儲存系統上的檔案系統,以便可以同時存取檔案
磁碟陣列 Disk Array
磁碟陣列的解決方案,範圍僅限於單一的儲存系統,因此沒有涉及到贅餘資源 (redundant resources) 和多點資料中心等議題。
儲存複製 Storage and Volume Replication
儲存複製技術,可以是軟體或硬體,從一個儲存設備複製原始數據 (raw block data) 到另一個儲存設備以作為備份。這種技術有許多限制,但是在這裡我們只討論影響雲端運算贅餘功能 (redundancy) 的部分。
這種技術只允許主要的儲存設備可以上線使用 [註6],而備用的儲存設備不能上線使用,甚至是連接在同一套電腦系統上的備用儲存設備也不能實際上線,純粹只能當作備用而已。備用設備唯一可以上場的機會,只有在主要儲存設備當機的時候。當機時,電腦系統需要在主要儲存設備執行復原程序,諸如 fsck、mount storage/volume 等等程序,然後開始使用備用儲存系統。甚至有一些系統的配置,備用伺服器還實體的連接在備用儲存設備上,這個備用電腦系統也需要為備用儲存設備執行同樣的 fsck 以及 mount 等程序,然後才能使用它。這種檢查和修理的作業程序非常耗時,特別是在主機系統或主要儲存設備發生異常的時候。
除了耗時的復原程序之外,儲存複製技術最大的限制是用戶不能立刻使用備用系統上的資料。如果說,雖然用戶可以複製資料到雲端的儲存系統上,卻不能馬上使用這些資料,這將阻礙用戶使用雲端服務的意願。
此外,雲端服務供應商必須購買兩套儲存設備,但是只能使用其中一套主要的設備,另一套備用的設備只能被動地等待資料送進來,而不能被利用。很明顯地,這種做法是資源的低效利用。
圖 1: Storage/Volume Replication |
MFS 和儲存複製這兩種技術都可以在儲存系統之間複製資料。但是為什麼用MFS複製的資料可以立刻被看到與使用,而儲存複製技術不能?
關鍵在於檔案系統軟體模組 (file system software module, 以下簡稱為檔案系統),檔案系統是儲存設備的大腦,用來管理儲存設備上的資料。儲存設備本身是一種普通的 I/O 設備,就像是一個沒有大腦的身體,如果沒有檔案系統,那麼在儲存設備上的資料就只是非結構化的原始數據 (raw data),使用者是沒有辦法直接使用的。如果電腦沒有經過檔案系統的控制,就直接複製原始數據 (raw block data) 到儲存設備上,將會導致:
- 備用系統上的檔案系統,不知道儲存設備裡的內容已經更新
- 即使檔案系統想要知道儲存設備裡的最新的內容,必須重新掛載 (mount) storage/volume,不然無法得知
當主要儲存設備在未經過檔案系統的管控下,持續地直接複製原始數據到備用儲存設備上,但是備用儲存設備上的檔案系統不會有最新的簿記資訊 (bookkeeping information)。如此一來,掛載 (mount) 的動作在開始時可能會成功,但是隨著時間的增長,兩者的資訊落差愈來愈大,使用這些同步失效的資料將面臨不可預測的風險。
在作業系統核心層 (OS kernel layer) 的架構中,無論是儲存複製、卷冊複製、或是 IP-based 複製等等,都是位於檔案系統層 (file system) 以下的層級,這些層級裡任何複製的動作都會面臨上述的問題 [圖 2]。
圖 2: Replication Layers |
相較之下,MFS 在檔案系統軟體模組層執行複製作業,主要的與備用的儲存設備都已經掛載到各自的檔案系統上。所有被複製的資料都在檔案系統的掌控之下,備用系統可以立刻看到這些資料/ 檔案並且馬上可以使用。
對使用者而言,從桌上電腦複製到雲端的檔案是鮮活可用的 (live and ready to use)。對服務供應商而言,MFS 讓一份檔案立即同步更新到兩個、甚至多個資料中心。MFS 的能力,大大的豐富了任何雲端運算服務的價值和可靠度。
共享式儲存叢集系統 Shared Storage Clustering System
傳統的共享式儲存叢集系統在系統層 (system level) 提供贅餘機制,以保護叢集系統避免發生單一系統故障 (single system failure)。
兩個節點的叢集系統是由一個主要節點和一個備援節點所組成,兩者都是實體地連結到同一個儲存系統;然而,其中只有一個節點,也就是主要的節點,才能存取儲存系統。當主要節點透過檔案系統存取共享式儲存設備的時候,備援節點不能掛載它的檔案系統到同一儲存設備上,因為儲存設備正在被主要節點更新資料,而且不會同時通知備援節點更新過什麼內容。備援節點唯一可以掛載共享式儲存設備的機會,只有在主要節點當機並停止更新資料到共享式儲存設備的時候。當機事件發生的時候,備援節點會將檔案系統掛載到共享式儲存設備上並且接手主機的工作,這種程序在叢集系統裡稱作故障轉移 (failover)。這樣的叢集系統必須部署在同一個地點,同一個實體的資料中心,用實體連接的方式,連結到共享式儲存設備。
共享式儲存叢集系統 (shared storage clustering system) 沒有提供任何好處給雲端運算的用戶,使用者必須在本地端運算或雲端運算之間選邊站。對於服務供應商而言,使用兩套系統卻只能使用其中一套,既沒有效率也不經濟。事實是,一個資料中心雖然具有叢集系統但沒有贅餘機制部署在多個資料中心,當災難發生時對雲端運算是個嚴重的缺點,例如地震,會影響單一資料中心的所有系統。
圖 3: Shared Storage Clustering |
共享式儲存叢集檔案系統 Shared Storage Clustering File System
共享式儲存叢集檔案系統可以讓所有參與的節點都可以掛載到共享式儲存設備上,並可以在同一時間存取儲存設備上的檔案 [註9] [註10]。這比傳統式的叢集系統向前邁進了一步,舊式的叢集系統只允許單一節點掛載與存取共享式儲存設備上的檔案。可惜的是,這些優點還是沒有辦法延伸到雲端運算的用戶身上,共享式叢集系統雖然能讓一個雲端資料中心運作得更有效率,但是牽涉到多個雲端資料中心則力有未逮。
鏡像檔案系統 Mirror File System
MFS 有兩個獨創的特性,為雲端服務的用戶及供應商帶來效益:
- 直接在檔案系統層提供複製服務
這個特性允許檔案被即時的複製在兩個遠離的系統之間。對用戶來說,可以在同一時間擁有兩份複本,並各自存放在兩個系統中,一份存在自己的電腦,另一份存在雲端伺服器。這項特性可以輕易地、無縫地讓本地端運算過渡或遷移到雲端運算。對雲端服務供應商來說,同一份檔案可以即時的複製到多個資料中心,可以提高雲端服務作業的效率與可用性。 - 非共享式儲存 No Shared Storage
MFS 沒有限制它的儲存設備一定要集中共享,也不限制它的儲存設備必須要放置在同一個資料中心。因此,雲端服務供應商可以隨著客戶的需要與事業的擴展,輕易地將一個資料中心擴展到多個資料中心,反之亦然。各個資料中心可以擁有獨立的系統與儲存設施,又能擁有一致相同的資料。MFS 這種資料分散佈署的能力,讓雲端服務更加可靠、更有效率。
圖 4: Mirror File System Replication |
結論
MFS 獨特的能力,利用檔案系統層,即時的 (real time) 複製可閱讀的檔案 (live file) 在兩地之間,這跟傳統的儲存複製與贅餘叢集技術有很重大的區別。MFS 讓用戶,同時的、即時的,在自己的電腦與雲端伺服器都保存著相同的檔案資料,所以用戶可以自由的選擇使用桌面運算或是雲端運算。更重要的是,它讓雲端運算供應商在多個、多地的資料中心都有一致的資料,彼此在雲間互相即時的同步資料。這種新式的資料部署模式,讓雲端服務更可靠、更堅固、更有效率。
< 註釋 >
[1] 美國專利字號 7418439
[2] 美商雙峰科技公司 Twin Peaks Software Inc. http://www.TwinPeakSoft.com
[5] 評論「不要理會炒作:雲端儲存尚未備便」 “Don’t buy the hype: Firms not ready for cloud storage”, Jan. 26, 2010, Sam Narisi, Docucrunch: http://www.docucrunch.com/dont-buy-the-hype-firms-not-ready-for-cloud-storage
[6] EMC Symmetrix Family: http://www.emc/products/family/symmetrix-family.htm
[7] Veritas Volume Replicator: http://www.symantec.com/business/volume-replicator
[8] DRBD, Disk Replication Block Device: http://www.drbd.org/home/mirroring
[9] Veritas Storage Foundation Cluster File System: http://www.symantec.com/business/storage-foundation-cluster-file-system
[10] Red Hat Global File System: http://www.redhat.com/gfs/
沒有留言:
張貼留言