如何使用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/ceph-osd@.service

将第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用户在运行了。


欢迎关注微信号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值