2.3.2. OSD の CRUSH への追加
OSD を CRUSH 階層に追加することは、OSD を起動する前の最後のステップ (up
および in
を編集する) であり、Ceph は配置グループを OSD に割り当てます。
RHCS 3 では、デバイスクラスも追加できます。
OSD を準備してから、CRUSH 階層を追加する必要があります。Ansible 自動化アプリケーションなどのデプロイメントユーティリティーで、このステップを実行します。詳細は、「OSD の追加/削除」を参照してください。
CRUSH 階層は概念であるため、ceph osd crush add
コマンドを使用すると、希望する場所の CRUSH 階層に OSD を追加できます。指定する場所は、実際の場所を反映している はず です。少なくとも 1 つのバケットを指定すると、コマンドにより OSD を指定する最も具体的なバケットに配置され、かつ そのバケットは指定した他のバケットの下に移動します。
OSD を CRUSH 階層に追加するには、以下を実行します。
ceph osd crush add {id-or-name} {weight} [{bucket-type}={bucket-name} ...]
root バケットのみを指定した場合、このコマンドは OSD を直接ルートに割り当てます。ただし、CRUSH ルールは OSD がホストまたはシャーシの内部にあり、ホストまたはシャーシはクラスタートポロジーを反映する他のバケットの内部にある 必要 があります。
以下の例では、osd.0
を階層に追加します。
ceph osd crush add osd.0 1.0 root=default datacenter=dc1 room=room1 row=foo rack=bar host=foo-bar-1
ceph osd crush set
または ceph osd crush create-or-move
を使用して、OSD を CRUSH 階層に追加することもできます。