rbd mirrorサービスではPOSTができません

9845 ワード

文書ディレクトリ
  • 現象
  • 原因
  • げんしょう
    cephクラスタマシンが再起動するとrbd-mirrorサービスは自動的に再起動されません.
    [root@node-1-clz-1 ~]# systemctl enable ceph-rbd-mirror@admin
    Created symlink from /etc/systemd/system/ceph-rbd-mirror.target.wants/[email protected] to /usr/lib/systemd/system/[email protected].
    

    systemctl enable ceph-rbd-mirror@admin/etc/systemd/system/ceph-rbd-mirror.target.wantsディレクトリの下にソフトリンクが作成されました.
    [root@node-1-clz-1 ~]# ls -l /etc/systemd/system/ceph-rbd-mirror.target.wants/[email protected]
    lrwxrwxrwx 1 root root 48 Jun 14 15:50 /etc/systemd/system/ceph-rbd-mirror.target.wants/[email protected] -> /usr/lib/systemd/system/[email protected]
    

    再起動後もrbd mirrorサービスは自動的に起きません.
    [root@node-1-clz-1 ~]# systemctl status ceph-rbd-mirror@admin
    ● [email protected] - Ceph rbd mirror daemon
       Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
       Active: inactive (dead)
    

    osd monと比較して、/etc/systemd/system/ceph.target.wants/および/etc/systemd/system/multi-user.target.wants/ディレクトリにもソフトリンクがあります.
    [root@node-1-clz-1 ~]# ls -l /etc/systemd/system/ceph.target.wants/
    total 0
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-mds.target -> /usr/lib/systemd/system/ceph-mds.target
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-mgr.target -> /usr/lib/systemd/system/ceph-mgr.target
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-mon.target -> /usr/lib/systemd/system/ceph-mon.target
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-osd.target -> /usr/lib/systemd/system/ceph-osd.target
    
    [root@node-1-clz-1 ~]# ls -l /etc/systemd/system/multi-user.target.wants/
    total 0
    lrwxrwxrwx. 1 root root 38 Apr 28  2017 auditd.service -> /usr/lib/systemd/system/auditd.service
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-mds.target -> /usr/lib/systemd/system/ceph-mds.target
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-mgr.target -> /usr/lib/systemd/system/ceph-mgr.target
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-mon.target -> /usr/lib/systemd/system/ceph-mon.target
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-osd.target -> /usr/lib/systemd/system/ceph-osd.target
    lrwxrwxrwx  1 root root 35 Apr 17 13:24 ceph.target -> /usr/lib/systemd/system/ceph.target
    lrwxrwxrwx. 1 root root 44 Apr 28  2017 cloud-config.service -> /usr/lib/systemd/system/cloud-config.service
    lrwxrwxrwx. 1 root root 43 Apr 28  2017 cloud-final.service -> /usr/lib/systemd/system/cloud-final.service
    lrwxrwxrwx. 1 root root 48 Apr 28  2017 cloud-init-local.service -> /usr/lib/systemd/system/cloud-init-local.service
    lrwxrwxrwx. 1 root root 42 Apr 28  2017 cloud-init.service -> /usr/lib/systemd/system/cloud-init.service
    lrwxrwxrwx. 1 root root 37 Apr 28  2017 crond.service -> /usr/lib/systemd/system/crond.service
    lrwxrwxrwx. 1 root root 42 Apr 28  2017 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service
    lrwxrwxrwx. 1 root root 37 Apr 28  2017 kdump.service -> /usr/lib/systemd/system/kdump.service
    lrwxrwxrwx. 1 root root 46 Apr 28  2017 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
    lrwxrwxrwx. 1 root root 39 Apr 28  2017 postfix.service -> /usr/lib/systemd/system/postfix.service
    lrwxrwxrwx. 1 root root 40 Apr 28  2017 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
    lrwxrwxrwx. 1 root root 39 Apr 28  2017 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
    lrwxrwxrwx. 1 root root 36 Apr 28  2017 sshd.service -> /usr/lib/systemd/system/sshd.service
    lrwxrwxrwx. 1 root root 37 Apr 28  2017 tuned.service -> /usr/lib/systemd/system/tuned.service
    

    systemctl enable ceph-rbd-mirrorを使用する.targetコマンドは/etc/systemd/system/multi-user.target.wants/ディレクトリの下にリンクを追加
    [root@node-1-clz-1 ~]# ls -l /etc/systemd/system/ceph.target.wants/
    total 0
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-mds.target -> /usr/lib/systemd/system/ceph-mds.target
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-mgr.target -> /usr/lib/systemd/system/ceph-mgr.target
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-mon.target -> /usr/lib/systemd/system/ceph-mon.target
    lrwxrwxrwx 1 root root 39 Apr 17 13:24 ceph-osd.target -> /usr/lib/systemd/system/ceph-osd.target
    lrwxrwxrwx 1 root root 46 Jun 14 16:34 ceph-rbd-mirror.target -> /usr/lib/systemd/system/ceph-rbd-mirror.target
    
    [root@node-1-clz-1 ~]# ls -l /etc/systemd/system/multi-user.target.wants/
    total 0
    lrwxrwxrwx. 1 root root 38 Apr 28  2017 auditd.service -> /usr/lib/systemd/system/auditd.service
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-mds.target -> /usr/lib/systemd/system/ceph-mds.target
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-mgr.target -> /usr/lib/systemd/system/ceph-mgr.target
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-mon.target -> /usr/lib/systemd/system/ceph-mon.target
    lrwxrwxrwx  1 root root 39 Apr 17 13:24 ceph-osd.target -> /usr/lib/systemd/system/ceph-osd.target
    lrwxrwxrwx  1 root root 46 Jun 14 16:34 ceph-rbd-mirror.target -> /usr/lib/systemd/system/ceph-rbd-mirror.target
    lrwxrwxrwx  1 root root 35 Apr 17 13:24 ceph.target -> /usr/lib/systemd/system/ceph.target
    lrwxrwxrwx. 1 root root 44 Apr 28  2017 cloud-config.service -> /usr/lib/systemd/system/cloud-config.service
    lrwxrwxrwx. 1 root root 43 Apr 28  2017 cloud-final.service -> /usr/lib/systemd/system/cloud-final.service
    lrwxrwxrwx. 1 root root 48 Apr 28  2017 cloud-init-local.service -> /usr/lib/systemd/system/cloud-init-local.service
    lrwxrwxrwx. 1 root root 42 Apr 28  2017 cloud-init.service -> /usr/lib/systemd/system/cloud-init.service
    lrwxrwxrwx. 1 root root 37 Apr 28  2017 crond.service -> /usr/lib/systemd/system/crond.service
    lrwxrwxrwx. 1 root root 42 Apr 28  2017 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service
    lrwxrwxrwx. 1 root root 37 Apr 28  2017 kdump.service -> /usr/lib/systemd/system/kdump.service
    lrwxrwxrwx. 1 root root 46 Apr 28  2017 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
    lrwxrwxrwx. 1 root root 39 Apr 28  2017 postfix.service -> /usr/lib/systemd/system/postfix.service
    lrwxrwxrwx. 1 root root 40 Apr 28  2017 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
    lrwxrwxrwx. 1 root root 39 Apr 28  2017 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
    lrwxrwxrwx. 1 root root 36 Apr 28  2017 sshd.service -> /usr/lib/systemd/system/sshd.service
    lrwxrwxrwx. 1 root root 37 Apr 28  2017 tuned.service -> /usr/lib/systemd/system/tuned.service
    

    ノードを再起動し、POSTします.
    [root@node-1-clz-1 ~]# systemctl status ceph-rbd-mirror@admin
    ● [email protected] - Ceph rbd mirror daemon
       Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
       Active: active (running) since Thu 2018-06-14 16:39:51 CST; 50s ago
     Main PID: 949 (rbd-mirror)
       CGroup: /system.slice/system-ceph\x2drbd\x2dmirror.slice/[email protected]
               └─949 /usr/bin/rbd-mirror -f --cluster ceph --id admin --setuser ceph --setgroup ceph
    
    Jun 14 16:39:51 node-1-clz-1.novalocal systemd[1]: Started Ceph rbd mirror daemon.
    Jun 14 16:39:51 node-1-clz-1.novalocal systemd[1]: Starting Ceph rbd mirror daemon...
    

    の原因となる
    同じノードに複数のceph-osdのサービスがあるため、ceph-osdのサービスを統一的に起動して閉じることができるため、cephのすべてのサービスは*に統一する.サービスと*.target、*.サービスにおける構成partofは*となる.targetグループのサービスです.WantedBy=multi-user.targetはすべて*.targetでは、osdの起動を一緒に設定できます.WantedBy=multi-user.targetはsystemctl enable*.targetは/etc/systemd/system/multi-user.target.wants/ディレクトリの下で対応するソフト接続を生成し、起動時に自動的に起動します.すべてのcephサービスには、ceph−rbd−mirrorがフォーマットを統一するために使用するこの方法によって対応するsystemdサービスを構成することが含まれる.Ceph-mon,ceph-osd,ceph-mgrはspecでインストールを定義systemctl enable ceph-monを実行した.target,systemctl enable ceph-osd.targetはPOSTを実現します.rbd-mirrorサービスはすべてのクラスタが起動する必要はないので、手動systemctl enable ceph-rbd-mirrorが必要です.target、POSTを設定します.####2、muli-usr.targetディレクトリの下にソフトリンクWantedBy=multi-userを追加target ceph.targetはenableの時/etc/systemd/system/multi-userにtarget.wants/ディレクトリの下でソフトリンクを生成し、cephのすべてのサービスwantedbyはvim/usr/lib/systemd/systemm/ceph-rbd-mirrorに書かれている./usr/lib/systemd/system/ceph-rbd-ではなく[email protected]で行ないます.だからsystemctl enable ceph-rbd-mirror@admin起動を設定できません.
    #vim /usr/lib/systemd/system/ceph-rbd-mirror.target
    [Unit]
    Description=ceph target allowing to start/stop all [email protected] instances at once
    PartOf=ceph.target
    Before=ceph.target
    [Install]
    WantedBy=multi-user.target ceph.target
    

    なぜceph-rbd-に書かないのですか[email protected]:一般的にhostは1つのサービスしかありませんが、cephは違います.Ceph-osdのサービスは同じhostに複数あり、*@.サービスプラスWantedBy=multi-user.target ceph.targetは、電源を入れる起動を設定する必要がある場合、*に置くと、osdサービスを1つずつenableする必要があります.targetでは、systemctl enabled ceph-osdというコマンドを使用できます.targetでいいし、他のサービスも標準を統一しています.のtargetはどのように起動時にすべてを起動しますか.サービスでPartOf=ceph-rbd-mirror.targetが示す場合ceph-rbd-mirror.targetグループのメンバーの1人は、targetを起動/閉じると起動/閉じる.この点はosdに便利です.
    [root@node-1 multi-user.target.wants]# cat /usr/lib/systemd/system/[email protected]
    [Unit]
    Description=Ceph rbd mirror daemon
    After=network-online.target local-fs.target
    Wants=network-online.target local-fs.target
    PartOf=ceph-rbd-mirror.target
    
    [Service]
    LimitNOFILE=1048576
    LimitNPROC=1048576
    EnvironmentFile=-/etc/sysconfig/ceph
    Environment=CLUSTER=ceph
    ExecStart=/usr/bin/rbd-mirror -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph -c /etc/ceph/rbdmirror/remote.conf
    ExecReload=/bin/kill -HUP $MAINPID
    PrivateDevices=yes
    ProtectHome=true
    ProtectSystem=full
    PrivateTmp=true
    Restart=on-failure
    StartLimitInterval=30min
    StartLimitBurst=3
    TasksMax=infinity
    
    [Install]
    WantedBy=multi-user.target