Omnistor_AMOS(Storage) 高可用架構說明

AMOS備援架構採取兩台實體伺服主機,達到高可用性與備援之目的。

當Web Relay接受到來自用戶端(Client)的儲存新檔案時(File Upload)請求時,由Metadata負責分派適當的Amos pair給予Web Relay進行新檔儲存,並且確保每一對的Amos能平均分配,也確保每一Amos上的硬碟空間(Disk Drive)使用狀況能平均分配。

Web Relay透過Metadata取得成對的Amos位置(如Amos-1, Amos-2),Web Relay會挑選其中一台上傳,並告知Amos-1它的pair是哪一個主機,由Amos-1抄寫至Amos-2。因此,檔案寫入Amos-1後(以及完成DLP/防毒掃描),前端使用者即會看到上傳成功的訊息。

倘若Amos-1發生故障,而Metadata仍然是指派成對的Amos位置(如Amos-1, Amos-2),由Web Relay在嘗試連接Amos-1失敗,則會從Amos-2進行上傳。補充,Amos-2會記錄尚未完成抄寫的檔案紀錄,當Amos-1恢復後,Amos-2會再將檔案自動抄寫至Amos-1。請留意,尚未完成抄寫的檔案紀錄會留在Amos-2的主機硬碟,一旦硬碟寫滿之後,則無法再紀錄差異資料,需以人工比對的方式補齊Amos-1的資料。

倘若Amos-1, Amos-2皆發生故障,則Metadata不會指派給Web Relay。當使用者上傳檔案時,則會發生失敗。

若客戶有更高保障資料安全性需求,可透過調改Config,將儲存模式改為兩台Amos(同一個pair)都成功寫入Web Relay才會回報上傳成功。相關config參數如下

/opt/ecaremeadmin/etc/amos/amosserverconfig.xml

    supportOneAmosUpload >>> 由true改為false

/opt/ecaremeadmin/etc/metadata/apiconfig.xml

    allow_parital_failure_in_drivegroup >>> 由true改為false

/opt/ecaremeadmin/etc/web-relay/webrelayapiconfig.xml

    support_one_amos_upload >>> 由true改為false

/opt/ecaremeadmin/etc/wopi-host/wopi_host_config.xml

    support_one_amos_upload >>> 由true改為false

/opt/ecaremeadmin/etc/component.xml

    support_one_amos_upload >>> 由true改為false


  • Q1:假設客戶端有兩對(4台)Amos,可接受的損壞程度為何?

    • A:這要從幾個觀點來回答

      • (1)以服務的可用性來說,4台裡面可以壞掉3台。但剩下的這一台硬體規格並不能保證能撐住所有的流量。

      • (2)以資料的可用性來說,一對的Amos只能壞其中一台。因為OmniStor的實體檔案只會存在其中一對Amos。萬一4台裡面壞掉3台,那麼部分資料存在某一對的Amos就會讀取不到。

  • Q2:如果客戶預算有限,是否可以只裝一台Amos?

    • A:可以,但是一定要建議客戶使用RAID5或RAID6等級的資料保護,否則硬碟壞了資料就完全救不回來了。

  • Q3:Amos的檔案到底是否需要備份?

    • A:站在資料安全的角度,當然會建議客戶定期備份,而且是備到異地才有它的價值。為什麼這麼說呢? 因為在規劃架構時,我們已推薦客戶RAID5以上的資料保護,再加上一對Amos會有兩份資料,至少在本地端就已經有一定程度的保護。長期使用下來,檔案量是很可觀的。因此有足夠預算的客戶才會討論到異地備份的議題。

  • Q5:可以一個實體檔案存在4台Amos主機嗎? 等於是存4份的概念

    • A:不行,目前產品架構不支援。

  • Q6:Amos的Load balance是怎麼做的? 需要靠L2/4 Switch嗎?

    • A:本專題主要探討的是Amos的高可用性,不熟悉的新手會把Load balance(又叫分流、負載平衝)的觀念混在一起討論。因為OmniStor產品可以將AP/AMOS/DB/SEARCH裝在一起,也可以個別拆開來安裝。而在較小規模的客戶環境下,AP/AMOS又會裝在一起,因為OmniStor的AP是靠前端網路設備來做load balance,所以常常會讓人搞不清楚Amos的load balance實際做法。如本文前面所述,”當Web Relay接受到來自用戶端(Client)的儲存新檔案時(File Upload)請求時,由Metadata負責分派適當的Amos pair給予Web Relay進行新檔儲存,並且確保每一對的Amos能平均分配,也確保每一Amos上的硬碟空間(Disk Drive)使用狀況能平均分配。”也就是資料要流進哪一對Amos都是由Metadata來分配,不是由load balance來分配。目前Metadata僅會依照Amos儲存的水位來做分配,並不會依照機器的忙碌程度來分配。

  • Q7:Amos的高可用性跟資料庫有關連嗎?

    • A:Amos的運作需仰賴資料庫這是必然的,但與資料庫本身的叢集架構無關。

      • (1)以服務的可用性來說,不管任何元件,資料庫是一定要回著的。

      • (2)以資料的可用性來說,Amos僅儲存實體檔案,但沒有對該檔案的詮釋資料(Metadata),如檔名、建立者、建立時間等資訊,詮釋資料都放在資料庫,因此資料庫是絕對不能損毀的。但以系統架構來看,Amos主要互動的對象是Metdata,其次就是被動的被WR/FTP/WOPI等元件呼叫,因此Amos僅需對接AP不需對接資料庫。