cephadm - SSHネットワークを監視ネットワークから分離する方法

cephadm - SSHネットワークを監視ネットワークから分離する方法

私たちの会社では、Ceph-ansibleをディストリビュータ(アップグレード、拡張タスクなど)として使用し、長年Cephを使用してきました。最近では、インストールと2日目の作業のために「cephadm」に移行するという任務を受けました。

POCの実行中に2つの問題に直面しましたが、そのうちの1つが他のものよりも正確でした。

  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>
  1. 「同じ名前の元のcephサービスを使用しました。[Eメール保護]'。 cephadmを使用すると、すべてのサービスとすべてのコンテナ名には、名前の一部としてfsidが必要です。どこで変更できるか探してみましたが、何も見つかりませんでした。

ベストアンサー1

  1. これがcephadmの仕組みです。すべてのチェックとリモートコマンドを実行するには、すべてのノードへのSSHアクセスが必要です。クラスタをリモートで管理するためのコーディネータを提供するため、これを解決する方法はありません。
  2. サービス名に関して cephadm を使用すると、コンテナで Ceph クラスタを実行できるため、同じハードウェア サーバーで複数のクラスタを実行できます。サービスにfsidがないと、クラスターを区別できません。サービス名にfsidを含めたくない特別な理由はありますか?実際には病気ではありません。既存のクラスタ変換cephadmは自動的にサービスを設定します。

おすすめ記事