Cephのオブジェクトのレプリケーションサイズ(レプリカ数)を変更する
Pocket

Cephでは、データの冗長性を保つためにオブジェクトのレプリカを各ノードに作成するようになっている。
作成するレプリカ数はPoolごとに定義されていて、デフォルトではオリジナル含め3OSDにオブジェクトを配置するようになっている。

なお、現在のPoolのレプリカ数は以下のコマンドで確認出来る。

ceph osd pool get Pool名 size
[root@BS-PUB-CEPHADM ~]# ceph osd pool get .rgw size
size: 3

 

※CephのPool名がわからない場合は、以下のコマンドでPoolの一覧を取得出来る。

ceph osd lspools | tr ',' '\n'
[root@BS-PUB-CEPHADM ~]# ceph osd lspools | tr ',' '\n'
0 rbd
1 .rgw.root
2 .rgw.control
3 .rgw
4 .rgw.gc
5 .log
6 .users.uid
7 .users
8 .rgw.buckets.index
9 .rgw.buckets
Sponsored Links

で、このサイズを変更する場合、以下のようにコマンドを実行することでPoolごとのサイズを変更出来る。

ceph osd pool set Pool名 size セットする値
[root@BS-PUB-CEPHADM ~]# ceph osd pool get .rgw size
size: 3
[root@BS-PUB-CEPHADM ~]# ceph osd pool set .rgw size 5
set pool 3 size to 5
[root@BS-PUB-CEPHADM ~]# ceph osd pool get .rgw size
size: 5

 

これでレプリケーションサイズの変更が出来た。もしmin_size(Cephが動作停止しない最小限のレプリカ数)を設定する場合は、同様にコマンドを実行してやればよい。
なお、既存のPoolではなく、以後作成されるPoolのレプリケーションサイズを変更する場合は、設定ファイル(/etc/ceph/ceph.conf)の「[global]」内に、以下の内容を追記する。

osd pool default size = レプリケーションサイズ
osd pool default min size = Cephを動作させる最小限のレプリカ数

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。