1. 程式人生 > >在雲時代執行資料庫(演示)

在雲時代執行資料庫(演示)

公共雲和私有云使現代企業能夠擺脫傳統的容易出錯的架構,並以五個九和九個九的可用性執行應用程式。業務應用程式可以按需,即時且經濟高效地進行調整。資料庫應用程式一直是所有企業基礎架構的關鍵元件,但在利用雲的強大功能時,這些應用程式和關係資料庫仍有很長的路要走。由於被設計為大型單片應用程式,當您嘗試以可擴充套件的方式可靠地執行它們時,它們提出了重大挑戰。

我們建立了一個演示,展示了Hedvig如何實現私有云和混合雲資料庫的可靠部署。在本演示中,我們將介紹執行資料庫,高可用性資料庫和測試/開發資料庫的兩種方案。您可以在本文末尾找到指向實際演示的連結。隨意跳過閱讀細節,並跳轉到演示。

我們將從Hedvig的雙層架構快速展示。有關更多架構詳細資訊,請在此處下載Hedvig的技術概述白皮書。

演示設定

Hedvig Cluster

 

  1. 資料中心
    Hedvig叢集橫跨三個資料中心,其中兩個是本地(DC1和DC2),另一個是雲(Azure)。每個資料中心有三個儲存節點(west1 / 2/3,east1 / 2/3,azurenode1 / 2/3),每個節點都連線有多個儲存磁碟。Hedvig Web UI可用於顯示所有磁碟,節點和資料中心,以及儲存引數,例如群集大小,可用空間,已用空間,重複資料刪除節省等。

  2. 儲存代理
    每個資料中心中的一個儲存代理負責在相應資料中心中執行的應用程式的Hedvig卷I / O操作。這些儲存代理可以將Hedvig卷呈現給可以訪問儲存代理的iSCSI目標埠的任何本地或遠端客戶端。

資料庫客戶端 
主動/被動對 

對於生產資料庫演示,我們使用corosync和pacemaker在兩個不同的資料中心中設定兩個Linux客戶端(dbclient1.dc1,dbclient2.dc2)作為主動/被動對。這些客戶端上的MySQL資料庫例項由corosync程序管理,這保證了在任何時間點只有一個數據庫例項在活動客戶端上執行。第三個遠端客戶端使用VIP(虛擬IP)訪問活動客戶端,以便當活動客戶端發生故障並且被動客戶端接管時,遠端客戶端將繼續訪問資料庫例項而不會中斷。

雲實例 

在Azure雲(azureclient)中建立Linux客戶端,該客戶端可以訪問從生產資料庫克隆的Test / Dev資料庫例項。

高度可用的資料庫

我們首先配置Hedvig iSCSI卷並將資料副本設定為DC1和DC2。然後,我們在其上建立一個xfs檔案系統,並授予對我們的主動/被動客戶端(dbclient1.dc1,dbclient2.dc2)的訪問許可權。然後將此iSCSI卷安裝在mysql目標目錄中,以使與MySQL資料庫對應的所有資料都駐留在此Hedvig卷中。corosync程序確保只有活動客戶端已啟動資料庫例項。資料庫開始執行後,我們在資料庫中插入一些條目並停止活動客戶端。一旦corosync程序意識到活動客戶端發生故障,它就會使用相同的Hedvig卷在被動客戶端上啟動MySQL資料庫。我們可以通過查詢活動客戶端插入的條目來確認我們的資料庫已成功故障轉移。

測試/開發資料庫

在前面的場景中,我們建立了一個正在生產中由MySQL資料庫使用的Hedvig卷。我們將拍攝該卷的快照,克隆它並更改資料駐留引數,以便現在其中一個副本駐留在雲(Azure)中。我們將提供對Azure客戶端的克隆卷訪問,並查詢生產資料庫插入的條目。此外,將在此克隆資料庫中插入新條目,確認生產和克隆資料庫並行獨立執行。