如何使用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用户在运行了。


如何使用root用户运行J版Ceph_第1张图片

你可能感兴趣的:(Ceph)