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
で、このサイズを変更する場合、以下のようにコマンドを実行することで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を動作させる最小限のレプリカ数