天天看點

【ceph | 運維】修改叢集配置

修改叢集配置

啟動 ceph 存儲叢集時,各守護程序都從同一個配置檔案(即預設的 

ceph.conf

 )裡查找它自己的配置。ceph.conf 中可配置參數很多,有時我們需要根據實際環境對某些參數進行修改。

修改的方式分為兩種:直接修改 

ceph.conf

 配置檔案中的參數值,修改完後需要重新開機 Ceph 程序才能生效。或在運作中動态地進行參數調整,無需重新開機程序。

1.1 檢視運作時配置

如果你的 Ceph 存儲叢集在運作,而你想看一個在運作程序的配置,用下面的指令:

ceph daemon {daemon-type}.{id} config show | less      

如果你現在位于 osd.0 所在的主機,指令将是:

ceph daemon osd.0 config show | less      

1.2 修改配置檔案

Ceph 配置檔案可用于配置存儲叢集内的所有守護程序、或者某一類型的所有守護程序。要配置一系列守護程序,這些配置必須位于能收到配置的段落之下,比如:

[global]

描述: 

[global]

 下的配置影響 Ceph 叢集裡的所有守護程序。

執行個體:  auth supported = cephx 

[osd]

[osd]

 下的配置影響存儲叢集裡的所有 

ceph-osd

 程序,并且會覆寫 

[global]

 下的同一選項。

執行個體:  osd journal size = 1000 

[mon]

[mon]

 下的配置影響叢集裡的所有 

ceph-mon

[global]

執行個體:  mon addr = 10.0.0.101:6789 

[mds]

[mds]

ceph-mds

[global]

執行個體:  host = myserver01 

[client]

[client]

 下的配置影響所有用戶端(如挂載的 Ceph 檔案系統、挂載的塊裝置等等)。

執行個體:  log file = /var/log/ceph/radosgw.log 

全局設定影響叢集内所有守護程序的例程,是以 

[global]

 可用于設定适用所有守護程序的選項。但可以用這些覆寫 

[global]

 設定:

  1. 在 

    [osd]

     、 

    [mon]

    [mds]

     下更改某一類程序的配置。
  2. 更改特定程序的設定,如 

    [osd.1]

     。

覆寫全局設定會影響所有子程序,明确剔除的例外。

1.3 運作中動态調整

Ceph 可以在運作時更改 

ceph-osd

ceph-mon

ceph-mds

 守護程序的配置,此功能在增加/降低日志輸出、啟用/禁用調試設定、甚至是運作時優化的時候非常有用。Ceph 叢集提供兩種方式的調整,使用 

tell

 的方式和 

daemon

 設定的方式。

1.3.1 tell 方式設定

下面是使用 tell 指令的修改方法:

ceph tell {daemon-type}.{id or *} injectargs --{name} {value} [--{name} {value}]      

用 

osd

mon

mds

 中的一個替代 

{daemon-type}

 ,你可以用星号( 

*

 )更改一類程序的所有執行個體配置、或者更改某一具體程序 ID (即數字或字母)的配置。

1. 例如提高名為 

osd.0

 的 

ceph-osd

 程序之調試級别的指令如下:

ceph tell osd.0 injectargs --debug-osd 20 --debug-ms 1      

2. 例如打開删除pool權限:

ceph tell mon.* injectargs --mon_allow_pool_delete=true      

ceph.conf

 檔案裡配置時用空格分隔關鍵詞;但在指令行使用的時候要用下劃線或連字元( 

_

 或 

-

 )分隔,例如 

debug osd

 變成 

debug-osd

1.3.2 daemon 方式設定

除了上面的 tell 的方式調整,還可以使用 daemon 的方式進行設定。

1、擷取目前的參數

ceph daemon osd.1 config get mon_osd_full_ratio
{
    "mon_osd_full_ratio": "0.98"
}      

2、修改配置

ceph daemon osd.1 config set mon_osd_full_ratio 0.97
{
    "success": "mon_osd_full_ratio = '0.97' "
}      

3、檢查配置

ceph daemon osd.1 config get mon_osd_full_ratio
{
    "mon_osd_full_ratio": "0.97"
}      

注意: 重新開機程序後配置會恢複到預設參數,在進行線上調整後,如果這個參數是後續是需要使用的,那麼就需要将相關的參數寫入到配置檔案 

ceph.conf

 當中。

1. 4 兩種設定方式的使用場景

使用 tell 的方式适合對整個叢集進行設定,使用 

*

 号進行比對,就可以對整個叢集的角色進行設定。而出現節點異常無法設定時候,隻會在指令行當中進行報錯,不太便于查找。

使用 daemon 進行設定的方式就是一個個的去設定,這樣可以比較好的回報,此方法是需要在設定的角色所在的主機上進行設定。

參考資料

 1. 修改叢集配置