4.3. 启用 Cephx

启用 cephx 后,Ceph 将在默认搜索路径中查找密钥环,其中包括 /etc/ceph/$cluster.$name.keyring。您可以通过在 Ceph 配置文件的 [global] 部分添加 keyring 选项来覆盖该位置,但不建议这样做。

执行以下步骤,在禁用身份验证的集群中启用 cephx。如果您或部署实用程序生成了密钥,您可以跳过与生成密钥相关的步骤。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • Ceph 监控节点的根级别访问权限.

流程

  1. 创建 client.admin 密钥,并为您的客户端主机保存密钥副本:

    [root@mon ~]# ceph auth get-or-create client.admin mon 'allow *' osd 'allow *' -o /etc/ceph/ceph.client.admin.keyring
    警告

    这将擦除任何现有 /etc/ceph/client.admin.keyring 文件的内容。如果部署工具已为您完成,则不要执行此步骤。

  2. 为 monitor 集群创建密钥环,并生成监控器 secret 密钥:

    [root@mon ~]# ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
  3. 将 monitor keyring 复制到每个 monitor mon data 目录中的 ceph.mon.keyring 文件。例如,要将其复制到集群 ceph 中的 mon.a 中,请使用:

    [root@mon ~]# cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
  4. 为每个 OSD 生成 secret 密钥,其中 ID 是 OSD 号:

    ceph auth get-or-create osd.ID mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-ID/keyring
  5. 默认情况下启用 cephx 身份验证协议。

    注意

    如果在以前通过将身份验证选项设置为 none 禁用了 cephx 身份验证协议,那么删除 Ceph 配置文件 (/etc/ceph/ceph.conf) 中的 [global] 部分的以下行来重新启用 cephx 身份验证协议:

    auth_cluster_required = none
    auth_service_required = none
    auth_client_required = none
  6. 启动或重启 Ceph 存储集群。

    重要

    启用 cephx 需要停机,因为集群需要完全重启,或者在禁用客户端 I/O 时将其关闭并启动。

    这些标记需要在重启或关闭存储集群前设置:

    [root@mon ~]# ceph osd set noout
    [root@mon ~]# ceph osd set norecover
    [root@mon ~]# ceph osd set norebalance
    [root@mon ~]# ceph osd set nobackfill
    [root@mon ~]# ceph osd set nodown
    [root@mon ~]# ceph osd set pause

    启用 cephx 后,所有 PG 都活跃且干净,取消设置标记:

    [root@mon ~]# ceph osd unset noout
    [root@mon ~]# ceph osd unset norecover
    [root@mon ~]# ceph osd unset norebalance
    [root@mon ~]# ceph osd unset nobackfill
    [root@mon ~]# ceph osd unset nodown
    [root@mon ~]# ceph osd unset pause