yepp13 2023-08-09 13:57 采纳率: 0%
浏览 8

ceph osd没有生成配置文件

docker run -d --restart=always --name=osd1 --net=host --privileged=true --pid=host -v /etc/localtime:/etc/localtime -v /usr/local/ceph/etc:/etc/ceph -v /usr/local/ceph/lib:/var/lib/ceph -v /usr/local/ceph/logs:/var/log/ceph -v /osd/osd1:/var/lib/ceph/osd/ceph-1 ceph/daemon:latest-nautilus  osd_directory

添加第一个osd时ok的,当添加第二个osd时,把上面命令中的1换成2,添加不了,报错提示“auth: unable to find a keyring on /var/lib/ceph/osd/ceph-2//keyring: (2) No such file or directory”
这个配置文件要怎么生成?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-09 16:13
    关注

    【以下回答由 GPT 生成】

    解决方案

    根据报错信息,我们可以看到在/var/lib/ceph/osd/ceph-2/目录下找不到keyring文件。为了解决这个问题,我们需要生成配置文件。

    首先,我们需要在/usr/local/ceph/etc目录下创建ceph.conf文件。可以使用以下命令来生成文件内容:

    mkdir /usr/local/ceph/etc
    nano /usr/local/ceph/etc/ceph.conf
    

    在打开的文件中,将以下示例配置粘贴到文件中:

    [global]
    fsid = <fsid>
    mon_initial_members = <mon-node1>, <mon-node2>, <mon-node3>
    mon_host = <mon-node1-IP>, <mon-node1-IP>, <mon-node1-IP>
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    osd_journal_size = 1000
    public_network = <public-network>
    
    [osd]
    osd_journal_size = 1000
    osd_pool_default_size = 2
    osd_pool_default_min_size = 1
    osd_pool_default_pg_num = 128
    osd_pool_default_pgp_num = 128
    

    请根据您的环境配置进行适当修改。确保使用<fsid>替换为您的集群FSID,<mon-node1>, <mon-node2>, <mon-node3>替换为您的监视器节点名称,<mon-node1-IP>, <mon-node1-IP>, <mon-node1-IP>替换为相应的监视器节点IP地址,<public-network>替换为您的公共网络。

    保存并关闭文件。

    接下来,我们需要生成keyring文件。可以使用以下命令生成keyring文件:

    ceph-authtool --create-keyring /usr/local/ceph/etc/keyring -n client.admin --gen-key -o /usr/local/ceph/etc/keyring
    

    然后,我们需要将调试mon主机密钥添加到keyring文件中:

    ceph-authtool -n mon. --cap mon 'allow *' -o /usr/local/ceph/etc/keyring
    

    最后,为每个osd生成keyring文件:

    ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-2/keyring --gen-key -n client.osd-lockbox --cap mon 'allow profile osd' --cap mgr 'allow *' --cap osd 'allow *'
    

    这样,我们就成功生成了配置文件和keyring文件。

    请确保在运行docker命令时正确挂载配置文件和keyring文件所在的目录,命令示例:

    docker run -d --restart=always --name=osd1 --net=host --privileged=true --pid=host \
    -v /etc/localtime:/etc/localtime \
    -v /usr/local/ceph/etc:/etc/ceph \
    -v /usr/local/ceph/lib:/var/lib/ceph \
    -v /usr/local/ceph/logs:/var/log/ceph \
    -v /osd/osd1:/var/lib/ceph/osd/ceph-1 ceph/daemon:latest-nautilus osd_directory
    

    请注意,上述命令中的-v参数应根据您的实际情况进行修改。

    希望这能帮助到您。如果您有任何其他问题,请随时问我。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月9日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭