#author("2025-04-24T16:30:08+00:00","default:sysosa","sysosa") #author("2025-04-25T19:06:35+00:00","default:sysosa","sysosa") ''CephFS Manager'' [[https://ceph.readthedocs.io/en/latest/start/intro/>+https://ceph.readthedocs.io/en/latest/start/intro/]]によれば #code(nonumber){{ Managers: A Ceph Manager daemon (ceph-mgr) is responsible for keeping track of runtime metrics and the current state of the Ceph cluster, including storage utilization, current performance metrics, and system load. The Ceph Manager daemons also host python-based modules to manage and expose Ceph cluster information, including a web-based Ceph Dashboard and REST API. At least two managers are normally required for high availability. (deepL先生翻訳) マネージャ: Ceph Managerデーモン(ceph-mgr)は、ランタイムメトリクスとCephクラスタの現在の状態を追跡する責任を負います、 ストレージ使用率、現在のパフォーマンスメトリクス、システム負荷など。 Ceph Managerデーモンは、WebベースのCeph DashboardおよびREST APIなど、Cephクラスタ情報を管理および公開するpythonベースのモジュールもホストします。 通常、高可用性を実現するには少なくとも2つのマネージャが必要です。 }} ストレージの容量、パフォーマンス、負荷らの監視かな. こちらも「At least two managers are normally required for high availability.」とあり、運用時には複数台構成が望ましいみたい. 参照先[[https://docs.ceph.com/en/latest/mgr/administrator/>+https://docs.ceph.com/en/latest/mgr/administrator/]] ここでは CephFS Monitors を持つceph01とceph02に担当させます. ***Managerの構築(その1) [#g7aefe80] リポジトリの登録は既にMonitor構築で済んでいるので Manager のパッケージのみをインストールします #code(nonumber){{ [root@ceph01 ~]# dnf install ceph-mgr }} その後で構築を始めます #code(nonumber){{ [root@ceph01 ~]# sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-ceph01 [root@ceph01 ~]# sudo -u ceph ceph auth get-or-create mgr.ceph01 mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-ceph01/keyring (エラーの場合は「/etc/ceph/ceph.client.admin.keyring」の所有者がcephであることを確認) [root@ceph01 ~]# ls -l /var/lib/ceph/mgr/ceph-ceph01/ total 4 -rw-r--r--. 1 ceph ceph 61 Mar 3 01:54 keyring [root@ceph01 ~]# cat /var/lib/ceph/mgr/ceph-ceph01/keyring [mgr.ceph01] key = AQBcjcRntzIfDRAAzmmnE5L+HVw/cfKjmdz8zw== [root@ceph01 ~]# }} 次はManagerの起動デーモンを調整します. #code(nonumber){{ [root@ceph01 ~]# cat /usr/lib/systemd/system/ceph-mgr\@.service : ExecStart=/usr/bin/ceph-mgr -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph : [root@ceph01 ~]# }} とあるので、 #code(nonumber){{ [root@ceph01 ~]# systemctl enable ceph-mgr@ceph01.service Created symlink /etc/systemd/system/ceph-mgr.target.wants/ceph-mgr@ceph01.service → /usr/lib/systemd/system/ceph-mgr@.service. [root@ceph01 ~]# systemctl start ceph-mgr@ceph01.service }} firewallにManagerの穴をあけます #code(nonumber){{ [root@ceph01 ~]# firewall-cmd --add-service=ceph --permanent [root@ceph01 ~]# firewall-cmd --reload }} Managerの起動を確認します #code(nonumber){{ [root@ceph01 ~]# ceph -s cluster: id: c2d06c20-9197-40b4-a8c4-1a0604936ce8 health: HEALTH_OK services: mon: 3 daemons, quorum ceph01,ceph02,ceph-osd1 (age 12m) mgr: ceph01(active, since 4s) osd: 0 osds: 0 up, 0 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 0 B used, 0 B / 0 B avail pgs: [root@ceph01 ~]# }} mgrが追加されました ***Managerの構築(その2) [#le7d0817] っで ceph02 にも設けます #code(nonumber){{ ssh ceph02 dnf install ceph-mgr -y sudo -u ceph mkdir /var/lib/ceph/mgr/ceph-ceph02 sudo -u ceph ceph auth get-or-create mgr.ceph02 mon 'allow profile mgr' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mgr/ceph-ceph02/keyring systemctl start ceph-mgr@ceph02.service --now firewall-cmd --add-service=ceph --permanent firewall-cmd --reload }} そうすると ceph -s の値は下記のようになります #code(nonumber){{ [root@ceph01 ~]# ceph -s : services: mon: 3 daemons, quorum ceph01,ceph02,ceph-osd1 (age 18m) mgr: ceph01(active, since 12m), standbys: ceph02 osd: 0 osds: 0 up, 0 i : [root@ceph01 ~]# }} ***Dashboard [#s32386f2] webベースの管理ツールです dnfのパッケージからdashboardを入れるみたい. インストール後にそれを有効にします. #code(nonumber){{ [root@ceph01 ~]# dnf --enablerepo=devel install ceph-mgr-dashboard [root@ceph01 ~]# ceph mgr module ls MODULE : dashboard - <-- これ : [root@ceph01 ~]# [root@ceph01 ~]# ceph mgr module enable dashboard Error ENOENT: all mgr daemons do not support module 'dashboard', pass --force to force enablement [root@ceph01 ~]# ceph mgr module enable dashboard --force <-- 「--force」を入れないと無理みたい. (dashboardの設定) [root@ceph01 ~]# ceph config ls | grep mgr/dashboard <--設定項目一覧です [root@ceph01 ~]# ceph config get mgr mgr/dashboard/ssl true [root@ceph01 ~]# ceph config set mgr mgr/dashboard/ssl false <--https接続を無効にします [root@ceph01 ~]# ceph config get mgr mgr/dashboard/server_addr <-- dashboardのipアドレス :: [root@ceph01 ~]# ceph config get mgr mgr/dashboard/server_port <-- dashboardのport番号 8080 [root@ceph01 ~]# lsof -i -P | grep 8080 ceph-mgr 12581 ceph 44u IPv6 43943 0t0 TCP *:8080 (LISTEN) <-- 既にdashboardは8080で稼働中 [root@ceph01 ~]# [root@ceph01 ~]# ceph dashboard get-pwd-policy-enabled True [root@ceph01 ~]# ceph dashboard set-pwd-policy-enabled false <-- dashboard へのログインパスワードの複雑性を解除します [root@ceph01 ~]# [root@ceph01 ~]# ceph dashboard ac-user-show <-- 現在のdashboardにアクセスできるユーザ一覧 [] [root@ceph01 ~]# [root@ceph01 ~]# echo -n "adminpass" > password.txt <-- パスワード「adminpass」をファイルに書き込んで [root@ceph01 ~]# ceph dashboard ac-user-create admin -i password.txt administrator <-- そのファイルを使ってユーザadmin(administratorロール)を作成 (dashboard内の設定方法一覧) [root@ceph01 ~]# ceph dashboard -h (8080のportに穴をあけます) [root@ceph01 ~]# firewall-cmd --add-port=8080/tcp --zone=public --permanent && firewall-cmd --reload }} PCからceph01の8080を見ます &ref(2025y04m25d_012649834.png,nolink); 登録したアカウントとパスワードで認証を経ると下記画面になります &ref(2025y04m25d_012829018.png,nolink); 注目としては「Orchestrator」の値がないということ。これがcephadmで作ると「cephadm」になります。 ***クラッシュモジュール [#j99b7bc4] #code(nonumber){{ [root@ceph01 ~]# ceph -s cluster: id: c2d06c20-9197-40b4-a8c4-1a0604936ce8 health: HEALTH_WARN 3 mgr modules have recently crashed : [root@ceph01 ~]# }} と表示された際、この「3 mgr modules have recently crashed」の報告は #code(nonumber){{ [root@ceph01 ~]# ceph health detail HEALTH_WARN 3 mgr modules have recently crashed [WRN] RECENT_MGR_MODULE_CRASH: 3 mgr modules have recently crashed mgr module nfs crashed in daemon mgr.ceph01 on host ceph01 at 2025-04-25T17:35:28.260872Z mgr module nfs crashed in daemon mgr.ceph01 on host ceph01 at 2025-04-25T17:50:49.181477Z mgr module nfs crashed in daemon mgr.ceph01 on host ceph01 at 2025-04-25T17:50:54.661555Z [root@ceph01 ~]# }} で詳しく見れて、 #code(nonumber){{ [root@ceph01 ~]# ceph crash ls ID ENTITY NEW 2025-04-25T17:35:28.260872Z_cbcfe784-c3c9-4afd-81e6-bc090fb3b37f mgr.ceph01 * 2025-04-25T17:50:49.181477Z_a12c9575-22f4-4282-bdc2-2fccd24fc10a mgr.ceph01 * 2025-04-25T17:50:54.661555Z_52105f1a-ba86-4a29-9133-df02bf1f685f mgr.ceph01 * [root@ceph01 ~]# }} でも見れる. ここで「ceph crash info <ID>」で詳細が見れる. #code(nonumber){{ [root@ceph01 ~]# ceph crash info 2025-04-25T17:35:28.260872Z_cbcfe784-c3c9-4afd-81e6-bc090fb3b37f { "backtrace": [ " File \"/usr/share/ceph/mgr/nfs/module.py\", line 191, in cluster_ls\n return available_clusters(self)", " File \"/usr/share/ceph/mgr/nfs/utils.py\", line 70, in available_clusters\n completion = mgr.describe_service(service_type='nfs')", " File \"/usr/share/ceph/mgr/orchestrator/_interface.py\", line 1737, in inner\n completion = self._oremote(method_name, args, kwargs)", " File \"/usr/share/ceph/mgr/orchestrator/_interface.py\", line 1804, in _oremote\n raise NoOrchestrator()", "orchestrator._interface.NoOrchestrator: No orchestrator configured (try `ceph orch set backend`)" ], "ceph_version": "19.2.2", "crash_id": "2025-04-25T17:35:28.260872Z_cbcfe784-c3c9-4afd-81e6-bc090fb3b37f", "entity_name": "mgr.ceph01", "mgr_module": "nfs", "mgr_module_caller": "ActivePyModule::dispatch_remote cluster_ls", "mgr_python_exception": "NoOrchestrator", "os_id": "rocky", "os_name": "Rocky Linux", "os_version": "9.4 (Blue Onyx)", "os_version_id": "9.4", "process_name": "ceph-mgr", "stack_sig": "1199785675eabc11ce537d594914ffe3daad2e10b76077ca318bb600b92a7954", "timestamp": "2025-04-25T17:35:28.260872Z", "utsname_hostname": "ceph01", "utsname_machine": "x86_64", "utsname_release": "5.14.0-427.13.1.el9_4.x86_64", "utsname_sysname": "Linux", "utsname_version": "#1 SMP PREEMPT_DYNAMIC Wed May 1 19:11:28 UTC 2024" } [root@ceph01 ~]# }} また、削除するには「ceph crash rm <ID>」とする #code(nonumber){{ [root@ceph01 ~]# ceph crash rm 2025-04-25T17:35:28.260872Z_cbcfe784-c3c9-4afd-81e6-bc090fb3b37f [root@ceph01 ~]# ceph crash rm 2025-04-25T17:50:49.181477Z_a12c9575-22f4-4282-bdc2-2fccd24fc10a [root@ceph01 ~]# ceph crash rm 2025-04-25T17:50:54.661555Z_52105f1a-ba86-4a29-9133-df02bf1f685f [root@ceph01 ~]# ceph crash ls }} で消せる.