修改集群配置
啟動 ceph 存儲集群時,各守護進程都從同一個配置文件(默認的 ceph.conf
)里查找它自己的配置。ceph.conf 中可配置參數很多,有時我們需要根據實際環境對某些參數進行修改。
修改的方式分為兩種:直接修改 ceph.conf
配置文件中的參數值,修改完后需要重啟 Ceph 進程才能生效。或在運行中動態地進行參數調整,無需重啟進程。
1. 查看運行時配置
如果你的 Ceph 存儲集群在運行,而你想看一個在運行進程的配置,用下面的命令:
ceph daemon {daemon-type}.{id} config show | less
如果你現在位於 osd.0 所在的主機,命令將是:
ceph daemon osd.0 config show | less
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]
。
覆蓋全局設置會影響所有子進程,明確剔除的例外。
運行時動態調整
Ceph 可以在運行時更改 ceph-osd
、 ceph-mon
、 ceph-mds
守護進程的配置,此功能在增加/降低日志輸出、啟用/禁用調試設置、甚至是運行時優化的時候非常有用。Ceph 集群提供兩種方式的調整,使用 tell
的方式和 daemon
設置的方式。
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
3. 獲取 client id。
ceph tell mds.node01 session ls
在 ceph.conf
文件里配置時用空格分隔關鍵詞;但在命令行使用的時候要用下划線或連字符( _
或 -
)分隔,例如 debug osd
變成 debug-osd
。
2. daemon 方式設置
除了上面的 tell 的方式調整,還可以使用 daemon 的方式進行設置。
1、獲取當前的參數
[root@node01 sa1]# ceph daemon mds.node01 config get log_file
{
"log_file": "/var/log/ceph/ceph-mds.node01.log"
}
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 進行設置的方式就是一個個的去設置,這樣可以比較好的反饋,此方法是需要在設置的角色所在的主機上進行設置。