私たちの会社では、Ceph-ansibleをディストリビュータ(アップグレード、拡張タスクなど)として使用し、長年Cephを使用してきました。最近では、インストールと2日目の作業のために「cephadm」に移行するという任務を受けました。
POCの実行中に2つの問題に直面しましたが、そのうちの1つが他のものよりも正確でした。
- ceph-ansibleに関連するさまざまな独立したネットワークがあります。
ㅏ。 SSH 関連ネットワークを構成し、Ceph 関連ホスト (mons/osds/clients を持つノード) からリモートでジョブを実行します。
b。パブリックネットワーク - mons、mgrs、mdssをホストするために使用されるノード。この住所はSSHはサポートされていません。 Ceph クラスターはこのように完全に機能します。
氏。クラスタネットワーク - ハートビート、レプリケーションなどの内部セフトラフィックに使用されます。 SSHも使用できません。
したがって、cephadmの場合、起動時にパブリックネットワークと設定を「結合」する必要があります。つまり、このネットワークがsshをサポートすることを許可しない限り(セキュリティ上の理由からこれを望まない)、bootstrapコマンドは次のメッセージで失敗します。 SSHおよびcephの目的のために別々のネットワーク(モニター用のパブリックネットワーク)を使用してcephクラスターをインストールする方法はありません。
/usr/bin/ceph: stderr File "/usr/share/ceph/mgr/orchestrator/_interface.py", line 225, in raise_if_exception
/usr/bin/ceph: stderr e = pickle.loads(c.serialized_exception)
/usr/bin/ceph: stderr TypeError: __init__() missing 2 required positional arguments: 'hostname' and 'addr'
/usr/bin/ceph: stderr
ERROR: Failed to add host <HOSTNAME>: Failed command: /usr/bin/podman run --rm --ipc=host --stop-signal=SIGTERM --net=host --entrypoint /usr/bin/ceph --init -e CONTAINER_IMAGE=<registry:port>/ceph/daemon:quincy-rockylinux-8-x86_64 -e NODE_NAME=<hostname> -e CEPH_USE_RANDOM_NONCE=1 -v /var/log/ceph/a0a19cd2-44ec-11ee-a922-ec0d9a94e986:/var/log/ceph:z -v /tmp/ceph-tmpb0u6hlv7:/etc/ceph/ceph.client.admin.keyring:z -v /tmp/ceph-tmpooy56ocy:/etc/ceph/ceph.conf:z <registry:port>/ceph/daemon:quincy-rockylinux-8-x86_64 orch host add <HOSTNAME> <IP>
- 「同じ名前の元のcephサービスを使用しました。[Eメール保護]'。 cephadmを使用すると、すべてのサービスとすべてのコンテナ名には、名前の一部としてfsidが必要です。どこで変更できるか探してみましたが、何も見つかりませんでした。
ベストアンサー1
- これがcephadmの仕組みです。すべてのチェックとリモートコマンドを実行するには、すべてのノードへのSSHアクセスが必要です。クラスタをリモートで管理するためのコーディネータを提供するため、これを解決する方法はありません。
- サービス名に関して cephadm を使用すると、コンテナで Ceph クラスタを実行できるため、同じハードウェア サーバーで複数のクラスタを実行できます。サービスにfsidがないと、クラスターを区別できません。サービス名にfsidを含めたくない特別な理由はありますか?実際には病気ではありません。既存のクラスタ変換cephadmは自動的にサービスを設定します。