如何使用root用戶運行J版Ceph

OS版本: Centos 7 ,Ceph版本: 10.2.3


一直在使用Ceph的H版本,最近切換到了J版,在部署完J版Ceph後啓動OSD竟然報失敗,部署過N^N次Ceph集羣怎麼能容忍部署失敗呢!遂慢慢尋找問題。尋找問題的過程不表,最後原因確定爲集羣使用了一些SSD做了Journal,但是這些SSD的用戶和用戶組都是root,所以在默認使用ceph用戶運行的OSD進程對這些盤沒有讀寫權限,導致open journal失敗,然後OSD自然就起不來了。正常情況下應該更改一下SSDs的歸屬組什麼的就好了(比如chown ceph:ceph /dev/sdx)。但是我就喜歡root(不是個好習慣不推薦)玩一下該怎麼辦呢,J版Ceph服務使用systemctl進行起停,所以我們只需要在這裏動點手腳就萬事大吉了。具體做法就是修改一下文件

/usr/lib/systemd/system/[email protected]

將第12行中的

–setuser ceph –setgroup ceph

修改爲

–setuser root –setgroup root.

修改後的該文件如下

    1 [Unit]
      2 Description=Ceph object storage daemon
      3 After=network-online.target local-fs.target time-sync.target
      4 Wants=network-online.target local-fs.target time-sync.target
      5 PartOf=ceph-osd.target
      6 
      7 [Service]
      8 LimitNOFILE=1048576
      9 LimitNPROC=1048576
     10 EnvironmentFile=-/etc/sysconfig/ceph
     11 Environment=CLUSTER=ceph
     12 ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser root --setgroup root
     13 ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
     14 ExecReload=/bin/kill -HUP $MAINPID
     15 ProtectHome=true
     16 ProtectSystem=full
     17 PrivateTmp=true
     18 TasksMax=infinity
     19 Restart=on-failure
     20 StartLimitInterval=30min
     21 StartLimitBurst=3
     22 
     23 [Install]
     24 WantedBy=ceph-osd.target

如此重新啓動ceph-osd (systemctl restart ceph-osd@*)就會發現osd進程是使用root用戶在運行了。


歡迎關注微信號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章