「巨鴻雲服務」熟悉vCenter Appliance的vPostgresSQL資料庫(1)

譯by rockguo

本博客是一系列使用戶更好理解vcenter Server Appliance(VCSA)以及VCSA的內置vPostgres 資料庫的文章所組成。我們認為vCSA應該作為我們一種vcenter的部署選項,但很多人對此存在誤解和謬見。在本文,我們聚焦於vCSA的內置資料庫技術-vPostgres。希望在讀了這篇博文之後,我們能對vCSA的資料庫有更好的理解以及它區別於傳統部署MSSQL和oracle的操作模型的獨特之處。

vSphere 6.0版本發布所帶來的vCSA的許多增強特性包括擴展性以及與基於Windows的vcentser的等同功能。在vSphere 6.0之前,用戶只能用vCSA和它的內置資料庫管理100台物理主機和3000個VM,而同版本的基於windows部署的vcenter能管理1000台物理主機和10000個VM。雖然通過利用外置的oracle DB結合vCSA可以達到像windows vcenter一樣的管理數量規模,但使用appliance的首要目標是降低部署難度和操作複雜性。所以從另外一方面講,我們希望appliance可以自包含資料庫而不依賴於外置資料庫。 從 vSphere 6.0 開始,我們可以通過內置的vPostgres資料庫來實現等同的擴展性。

Advertisements

資料庫

資料庫絕對是vcenter的一個關鍵部分。事實上,我們的很多客戶都有自己的DBA團隊去專門關注於架構和管理優化資料庫。保持應用後端運行的平穩,通過更高的性能目標去實現各自業務的最大價值。當我們去審視appliance模型特別是vCSA以及它的內置vPostgres資料庫,我們發現一些客戶對於把資料庫管理職責從DBA轉交給虛擬化基礎設施管理團隊是有猶豫的,這是可以理解的。我們想說明的一個關鍵理念是我們正在極大的簡化部署、配置和管理vcenter 資料庫。

一個要考慮的事情就是通過appliance模型,我們可以構建最大的效率和性能。我們可以掌控OS、vcenter APP以及vcenter 資料庫。我們了解工作負載特徵,可以根據我們了解的質量目標來設計整個堆棧環境 。在通常模式下,比如在windows下部署vcenter,並使用外置的資料庫,我們只掌握vCenter應用層,很難達到這樣的目標。擁有對應用和庫的完整透視能力有很多好處, 相比較與其他其他需要涉及第三方外置資料庫的部署模式,這種模式使我們花費更少,投入更少 就可以配置一個應用appliance。

Advertisements

vPostgres特性

我們好好看一看vPostgres,這樣我們就可以更好理解為什麼這種內置的資料庫是一種最優的模式。首先,vPost是基於開源Postgres。針對 vCenter Server 6.0 ,我們使用 PostgreSQL 9.3 ,而且我們將持續更新vCenter Server的 PostgreSQL 版本。從技術角度考慮,我們認為 PostgreSQL是最強大的開源關係資料庫。 PostgreSQL支持包括Linux (SLES and Red hat), Windows, HPUX, and UNIX 等多種平台。我們的 vCenter Server 目前運行在SLES Linux and Windows上。針對 vCenter Server的vPostgres的一些最好的特性如下:

  • 調優 – VMware針對標準PostgresSQL的一些關鍵設置定義了一些更高的默認值 比如,shared_buffers, checkpoint_segments, and wal_buffers. 在磁碟空間和內存使用率上權衡,這帶來了一個更好的性能體現。

  • 自動清理 – PostgreSQL 資料庫要求定期維護,我們稱為清理。 周期性的清理因為如下幾個原因:

  • 恢復或者重利用被updated or deleted rows所佔用的空間。

  • 更新PostgreSQL查詢計劃的統計數據。

  • 更新可視化圖,加速index-only scans.

  • 保護數據,防止因為transaction ID覆蓋和multixact ID覆蓋導致的較老數據丟失。

有一個可配置的自動清理進程,VMware配置了一些參數來更好的適配 vCenter Server。

  • 備份恢復 – The Write Ahead Log (WAL) 確保可以在不靜默資料庫數據文件和vcenter應用的情況下進行數據備份。The WAL記錄對資料庫數據文件的每一筆變更操作,可以通過回放來恢復資料庫一致性。這個機制可以確保在image層面完成備份而不用擔心數據衝突和停止服務。這也促使沒必要去手動備份 vCSA 的vPostgres資料庫。

備份恢復

現在我們理解了更多關於vPostgres ,下面我們摘要的討論下針對vcenter appliance和它的內置資料庫的一些支持的備份方法。從文檔裡面我們可以清楚我們完全支持我們自己的VDP產品(這是一個基於EMC』s Avamar的技術)。但是我們也有必要講出來,我們也支持很多第三方使用VMware vSphere Storage APIs的備份產品, Data Protection (我們稱之為 vSphere APIs for Data Protection。所有這些產品的一個關鍵點是都支持 image的備份,這是必須的。 file層面的備份或者只是資料庫是不被支持的,這樣將會導致恢復時候出問題。 因此,如果你正好仍在物理機上運行vcenter的話(雖然這也可行,但我們推薦使用虛擬化的vcenter),那麼這種情況你將需要一個備份工具能夠創建物理機的image備份鏡像。這是在 vCenter Server 5.1 之後對vCenter Server的一個備份要求,備份要包含針對 vCenter Server的架構改變,資料庫數據,以及SSO配置信息。特別是如下存在於 vCenter Server 6.0資料庫之外 的數據:

  • VM存儲策略

  • Tags & Tag 目錄

  • SSO 配置

  • 角色和許可權

  • 授權

因此,這裡的關鍵點是在vSphere 6.0下,僅僅恢復vCenter Server資料庫到一個新的Vcenter server下是遠遠不夠的,即使這在以前版本可行。image層面的備份是唯一可行的辦法去抓取恢復一個vcenter Server 和Platform Services Controller(PSC)所需要的所有信息。

提到PSC,我們順帶快速提一下針對於它所支持的備份選項。一個 基於應用的PSC更像一個同vCSA一樣的一個機器(它裡面只是運行不同的應用)。 而且PSC不要求有資料庫。簡單來說,我們支持同樣的基於image層面的備份(使用VDP或者vSphere Storage APIs 的其他產品)。在vSphere 6.0 U1有一些增強,可以使客戶不再需要同時備份一個SSO域裡面的所有PSC。 在 6.0 U1 後續版本中, 一個恢復的PSC 將可以用它的複製夥伴(replication partner)去恢復它自己。

總結

本博文涵蓋了vCSA和一些通常的vPostgres的知識。希望關於為什麼我們選擇vPostgres作為vCSA的後端資料庫這點我們講清楚了。vmware堅信appliance模式,我們認為vCenter以這種形式是最佳的。下篇博文我們將討論如何具體操作vPostgres去幫助增強體驗水平,促使更多客戶接納vCSA的模式。

(江蘇巨鴻)是蘇皖區域的專業IT服務商,擁有豐富的行業經驗和專業的技術服務人員,可以為用戶提供傳統數據中心整體架構解決方案,以及專業的運維服務。同時可以提供華為oracle等公有雲和私有雲架構設計和實施,擁有蘇皖區域最多的容災備份實施案例,可以為用戶提供傳統數據中心、私有雲到公有雲的雲遷移和混合雲容災服務,實現企業快速上雲,輕鬆運維。

Advertisements

你可能會喜歡