修改叢集配置
啟動 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]
設定:
- 在
、[osd]
[mon]
下更改某一類程序的配置。[mds]
- 更改特定程序的設定,如
。[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. 修改叢集配置