1.8. アップマップ を使用した OSD データの手動でのリバランス
ストレージ管理者は、選択した配置グループ (PG) を特定の OSD に移動することで、OSD 上のデータを手動でリバランスできます。手動でリバランスを実行するには、Ceph Manager のバランサーモジュールをオフにし、upmap
モードを使用して PG を移動します。
前提条件
- 稼働中の Red Hat Storage クラスター
- ストレージクラスター内のすべてのノードへの root レベルのアクセス。
手順
バランサーモジュールがオンになっていることを確認します。
例
[root@mon ~]# ceph mgr module ls | more { "always_on_modules": [ "balancer", "crash", "devicehealth", "orchestrator_cli", "progress", "rbd_support", "status", "volumes" ], "enabled_modules": [ "dashboard", "pg_autoscaler", "prometheus" ],
バランサーモジュールが
always_on
またはenabled
モジュールに記載されていない場合は、それを有効にします。構文
ceph mgr module enable balancer
バランサーモードを
upmap
に設定します。構文
ceph balancer mode upmap
バランサーモジュールをオフにします。
構文
ceph balancer off
バランサーのステータスを確認します。
例
[root@mon ~]# ceph balancer status { "plans": [], "active": false, "last_optimize_started": "", "last_optimize_duration": "", "optimize_result": "", "mode": "upmap" }
OSD の
norebalance
フラグを設定します。構文
ceph osd set norebalance
ceph pg dump pgs_brief
コマンドを使用して、ストレージクラスター内のプールと各消費領域をリスト表示します。grep
を使用して、再マッピングされたプールを検索します。例
[root@mon ~]# ceph pg dump pgs_brief PG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY dumped pgs_brief 7.270 active+remapped+backfilling [8,48,61] 8 [46,48,61] 46 7.1e7 active+remapped+backfilling [73,64,74] 73 [18,64,74] 18 7.1c1 active+remapped+backfilling [29,14,8] 29 [29,14,24] 29 7.17f active+remapped+backfilling [73,71,50] 73 [50,71,69] 50 7.16c active+remapped+backfilling [66,8,4] 66 [66,4,57] 66 7.13d active+remapped+backfilling [73,27,56] 73 [27,56,35] 27 7.130 active+remapped+backfilling [53,47,73] 53 [53,47,72] 53 9.e0 active+remapped+backfilling [8,75,14] 8 [14,75,58] 14 7.db active+remapped+backfilling [10,57,60] 10 [10,60,50] 10 9.7 active+remapped+backfilling [26,69,38] 26 [26,38,41] 26 7.4a active+remapped+backfilling [73,10,76] 73 [10,76,29] 10 9.9a active+remapped+backfilling [20,15,73] 20 [20,15,29] 20 7.ac active+remapped+backfilling [8,74,3] 8 [3,74,37] 3 9.c2 active+remapped+backfilling [57,75,7] 57 [4,75,7] 4 7.34d active+remapped+backfilling [23,46,73] 23 [23,46,56] 23 7.36a active+remapped+backfilling [40,32,8] 40 [40,32,44] 40
PG を、配置先の OSD に移動します。たとえば、PG 7.ac を OSD 8 および 3 から OSD 3 および 37 に移動するには、以下を実行します。
例
PG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY dumped pgs_brief 7.ac active+remapped+backfilling [8,74,3] 8 [3,74,37] 3 [root@mon ~]# ceph osd pg-upmap-items 7.ac 8 3 3 37 7.ac active+clean [3,74,37] 8 [3,74,37] 3
注記この手順を繰り返して、再マッピングされた各 PG を一度に 1 つずつ移動します。
ceph pg dump pgs_brief
コマンドを再度使用して、PG がactive+clean
状態に移行することを確認します。例
[root@mon ~]# ceph pg dump pgs_brief PG_STAT STATE UP UP_PRIMARY ACTING ACTING_PRIMARY dumped pgs_brief 7.270 active+clean [8,48,61] 8 [46,48,61] 46 7.1e7 active+clean [73,64,74] 73 [18,64,74] 18 7.1c1 active+clean [29,14,8] 29 [29,14,24] 29 7.17f active+clean [73,71,50] 73 [50,71,69] 50 7.16c active+clean [66,8,4] 66 [66,4,57] 66 7.13d active+clean [73,27,56] 73 [27,56,35] 27 7.130 active+clean [53,47,73] 53 [53,47,72] 53 9.e0 active+clean [8,75,14] 8 [14,75,58] 14 7.db active+clean [10,57,60] 10 [10,60,50] 10 9.7 active+clean [26,69,38] 26 [26,38,41] 26 7.4a active+clean [73,10,76] 73 [10,76,29] 10 9.9a active+clean [20,15,73] 20 [20,15,29] 20 7.ac active+clean [3,74,37] 8 [3,74,37] 3 9.c2 active+clean [57,75,7] 57 [4,75,7] 4 7.34d active+clean [23,46,73] 23 [23,46,56] 23 7.36a active+clean [40,32,8] 40 [40,32,44] 40
PG が
active+clean
に移行するまでの時間は、PG および OSD の数によって異なります。さらに、不適切に配置されたオブジェクトの数は、mgr target_max_misplaced_ratio
に設定された値により異なります。target_max_misplaced_ratio
の値が大きいと、不適切に配置されたオブジェクトの数が多くなるため、すべての PG がactive+clean
になるまでの時間が長くなります。norebalance
フラグの設定を解除します。構文
ceph osd unset norebalance
バランサーモジュールをオンに戻します。
構文
ceph balancer on
バランサーモジュールを有効にすると、ストレージクラスターの CRUSH ルールに従って PG がゆっくりと目的の OSD に戻ります。バランシング処理には時間がかかる場合がありますが、そのうち完了します。