cephfs如何配置多主(多活)MDS


cephfs如何配置多主(多活)MDS

 

title: cephfs如何配置多主(多活)MDS

2019/03/29 ypdai

配置多主MDS

MDS配置模式分為以下三種:

  • 冷備模式:同一時間,只有一個mds工作,單純的進程備份。
  • 熱備模式:同一時間,只有一個mds工作,但除了進程備份,也實時備份元數據,這樣可以加快MDS故障切換時間。
  • 多主模式:多個MDS同時工作,各自管理自己負責的元數據。

默認情況下,每個cephfs文件系統的MDS都是以冷備模式配置的。有時候為了獲取更高的性能,可以啟用多個活動的MDS守護進程,也就是多主模式,它們將彼此分擔元數據的工作負載。

下面主要介紹如何配置MDS多主模式。

1、什么時候需要配置多主MDS?

當cephfs的性能出現在MDS上時,就應該配置多個活動的MDS。通常是多個客戶機應用程序並行的執行大量元數據操作,並且它們分別有自己單獨的工作目錄。這種情況下很適合使用多主MDS模式。

2、開始配置MDS多主模式

2.1、增加max_mds

每個cephfs文件系統都有一個max_mds設置,可以理解為它將控制創建多少個主MDS。注意只有當實際的MDS個數大於或等於max_mds設置的值時,mdx_mds設置才會生效。例如,如果只有一個MDS守護進程在運行,並且max_mds被設置為兩個,則不會創建第二個主MDS。

將max_mds設置為所需的個數:

$ ceph fs set max_mds 2

2.2、配置備用MDS

即使有多個活動的MDS,如果其中一個MDS出現故障,仍然需要備用守護進程來接管。因此,對於高可用性系統,實際配置max_mds時,最好比系統中MDS的總數少一個。

但如果你確信你的MDS不會出現故障,可以通過以下設置來通知ceph不需要備用MDS,否則會出現insufficient standby daemons available告警信息:

$ ceph fs set <fs> standby_count_wanted 0 

2.3、綁定集群目錄到指定的MDS上

在多主MDS配置中,這些MDS可以在集群中均勻的動態的分配元數據負載。但還有一種情況就是我們需要把某個集群目錄綁定到一個指定MDS上,只讓這個MDS來負責這個目錄的元數據處理,比如我有兩個集群目錄dir01、dir02,然后我配置MDS01、MDS02為雙主模式同時工作,這樣我就可以讓MDS01負責dir01的元數據,MDS02負責dir02的元數據。這樣配置好處顯而易見。

配置方式:

$ setfattr -n ceph.dir.pin -v {mds-rank} {path-to-dir} 

{mds-rank}從0開始,ceph -s命令輸出里面可以看到:

# node01節點上mds-rank為0,node02節點上的mds-rank為1
mds: ceph-2/2/2 up  {0=node01=up:active,1=node02=up:active}

{path-to-dir}表示需要綁定到指定mds-rank上的集群目錄。

這樣就配置好了,步驟比較簡單。

2.4、還原為單主MDS

恢復也就兩步:

# 設置max_mds $ ceph fs set max_mds 1 # 刪除不需要的rank $ ceph mds deactivate {cephfs-name}:{mds-rank} 

注意所有的rank,包括要被移除的rank,必須先激活。這意味着必須至少有max_mds個MDS守護進程可用。

在一段時間內,停用的rank將首先進入停止狀態,同時將其負責的元數據傳遞給剩余的活動的MDS。這個階段可能需要幾秒鍾到幾分鍾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM