1.7. 在容器中安装 Ceph iSCSI 网关


Ansible 部署应用安装所需的守护进程和工具,以在容器中配置 Ceph iSCSI 网关。

先决条件

  • 正常运行的红帽 Ceph 存储集群。

步骤

  1. 以 root 用户身份,打开 并编辑 /etc/ansible/hosts 文件。在 iSCSI 网关组中添加节点名称条目:

    示例

    [iscsigws]
    ceph-igw-1
    ceph-igw-2
    Copy to Clipboard Toggle word wrap

  2. 进入 /usr/share/ceph-ansible 目录:

    [root@admin ~]# cd /usr/share/ceph-ansible/
    Copy to Clipboard Toggle word wrap
  3. 创建 iscsigws.yml.sample 文件的副本,并将其命名为 iscsigws.yml

    [root@admin ceph-ansible]# cp group_vars/iscsigws.yml.sample group_vars/iscsigws.yml
    Copy to Clipboard Toggle word wrap
    重要

    新文件名(iscsigws.yml)和新部分标题([iscsigws]仅适用于 Red Hat Ceph Storage 3.1 或更高版本。从以前的 Red Hat Ceph Storage 版本升级到 3.1,仍将使用旧文件名(iscsi-gws.yml)和旧部分标题([iscsi-gws])。

    重要

    目前,红帽不支持对基于容器的部署使用 ceph-ansible 安装以下选项:

    • gateway_iqn
    • rbd_devices
    • client_connections

    有关手动配置这些选项的说明,请参阅 在容器中配置 Ceph iSCSI 网关

  4. 打开 iscsigws.yml 文件进行编辑。
  5. 使用 IPv4 或 IPv6 地址添加 iSCSI 网关 IP 地址来配置 gateway_ip_list 选项:

    示例

    gateway_ip_list: 192.168.1.1,192.168.1.2
    Copy to Clipboard Toggle word wrap

    重要

    您不能混合使用 IPv4 和 IPv6 地址。

  6. (可选)取消注释 trusted_ip_list 选项,如果您想要使用 SSL,则需要相应地添加 IPv4 或 IPv6 地址。您需要 root 访问 iSCSI 网关容器以配置 SSL。要配置 SSL,请执行以下步骤:

    1. 如果需要,在所有 iSCSI 网关容器中安装 openssl 软件包。
    2. 在主 iSCSI 网关容器中,创建一个存放 SSL 密钥的目录:

      # mkdir ~/ssl-keys
      # cd ~/ssl-keys
      Copy to Clipboard Toggle word wrap
    3. 在主 iSCSI 网关容器中,创建证书和密钥文件:

      # openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
      Copy to Clipboard Toggle word wrap
      注意

      系统将提示您输入环境信息。

    4. 在主 iSCSI 网关容器中,创建一个 PEM 文件:

      # cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
      Copy to Clipboard Toggle word wrap
    5. 在主 iSCSI 网关容器中,创建一个公钥:

      # openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.key
      Copy to Clipboard Toggle word wrap
    6. 在主 iSCSI 网关容器中,将 iscsi-gateway.crtiscsi-gateway.pemiscsi-gateway-pub.keyiscsi-gateway.key 文件复制到其他 iSCSI 网关容器上的 /etc/ceph/ 目录。
  7. 另外,还可相应地查看并取消注释以下 iSCSI 目标 API 服务选项:

    #api_user: admin
    #api_password: admin
    #api_port: 5000
    #api_secure: false
    #loop_delay: 1
    #trusted_ip_list: 192.168.122.1,192.168.122.2
    Copy to Clipboard Toggle word wrap
  8. 另外,还可查看并取消注释以下任何资源选项,根据工作负载需求更新它们:

    # TCMU_RUNNER resource limitation
    #ceph_tcmu_runner_docker_memory_limit: 1g
    #ceph_tcmu_runner_docker_cpu_limit: 1
    
    # RBD_TARGET_GW resource limitation
    #ceph_rbd_target_gw_docker_memory_limit: 1g
    #ceph_rbd_target_gw_docker_cpu_limit: 1
    
    # RBD_TARGET_API resource limitation
    #ceph_rbd_target_api_docker_memory_limit: 1g
    #ceph_rbd_target_api_docker_cpu_limit: 1
    Copy to Clipboard Toggle word wrap
  9. 以 Ansible 用户身份,运行 Ansible playbook:

    [user@admin ceph-ansible]$ ansible-playbook site-docker.yml --limit iscsigws
    Copy to Clipboard Toggle word wrap

    对于 Red Hat Enterprise Linux Atomic,添加 --skip-tags=with_pkg 选项:

    [user@admin ceph-ansible]$ ansible-playbook site-docker.yml --limit iscsigws --skip-tags=with_pkg
    Copy to Clipboard Toggle word wrap
  10. Ansible playbook 完成后,打开 iscsigws.yml 文件中指定的 TCP 端口 3260api _ port

    注意

    如果没有指定 api_port 选项,则默认端口为 5000

其它资源

  • 有关在容器中安装 Red Hat Ceph Storage 的更多信息,请参阅容器中安装 Red Hat Ceph Storage 集群 部分。
  • 有关 Ceph iSCSI 网关选项的更多信息,请参阅 Red Hat Ceph Storage Block Device Guide 中的 表 8.1
  • 有关 iSCSI 目标 API 选项的更多信息,请参阅 Red Hat Ceph Storage Block Device Guide 中的 表 8.2
  • 有关 iscsigws.yml 文件示例,请参阅附录 A Red Hat Ceph Storage Block Device Guide。

1.7.1. 在容器中配置 Ceph iSCSI 网关

Ceph iSCSI 网关配置通过 gwcli 命令行实用程序来完成,用于创建和管理 iSCSI 目标、逻辑单元号(LUN)和访问控制列表(ACL)。

先决条件

  • 正常运行的红帽 Ceph 存储集群。
  • 安装 iSCSI 网关软件。

步骤

  1. 作为 root 用户,启动 iSCSI 网关命令行界面:

    # docker exec -it rbd-target-api gwcli
    Copy to Clipboard Toggle word wrap
  2. 使用 IPv4 或 IPv6 地址创建 iSCSI 网关:

    Syntax

    >/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:$TARGET_NAME
    > goto gateways
    > create $ISCSI_GW_NAME $ISCSI_GW_IP_ADDR
    > create $ISCSI_GW_NAME $ISCSI_GW_IP_ADDR
    Copy to Clipboard Toggle word wrap

    示例

    >/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:ceph-igw
    > goto gateways
    > create ceph-gw-1 10.172.19.21
    > create ceph-gw-2 10.172.19.22
    Copy to Clipboard Toggle word wrap

    重要

    您不能混合使用 IPv4 和 IPv6 地址。

  3. 添加 RADOS 块设备(RBD):

    Syntax

    > cd /disks
    >/disks/ create $POOL_NAME image=$IMAGE_NAME size=$IMAGE_SIZE[m|g|t] max_data_area_mb=$BUFFER_SIZE
    Copy to Clipboard Toggle word wrap

    示例

    > cd /disks
    >/disks/ create rbd image=disk_1 size=50g max_data_area_mb=32
    Copy to Clipboard Toggle word wrap

    重要

    池名称或镜像名称中没有任何句点(.)。

    警告

    不要调整 max_data_area_mb 选项,除非红帽支持已指示您这样做。

    max_data_area_mb 选项控制每个镜像可用于在 iSCSI 目标和 Ceph 集群之间传递 SCSI 命令数据的内存量(以兆字节为单位)。如果这个值太小,可能会导致过量队列完全重试,这会影响性能。如果值太大,则可能会导致一个磁盘使用系统内存过多,这可能导致其他子系统的分配失败。默认值为 8。

    可以使用 reconfigure 命令来更改此值。镜像不得由 iSCSI 启动器使用,以便此命令生效。

    Syntax

    >/disks/ reconfigure max_data_area_mb $NEW_BUFFER_SIZE
    Copy to Clipboard Toggle word wrap

    示例

    >/disks/ reconfigure max_data_area_mb 64
    Copy to Clipboard Toggle word wrap

  4. 创建客户端:

    Syntax

    > goto hosts
    > create iqn.1994-05.com.redhat:$CLIENT_NAME
    > auth chap=$USER_NAME/$PASSWORD
    Copy to Clipboard Toggle word wrap

    示例

    > goto hosts
    > create iqn.1994-05.com.redhat:rh7-client
    > auth chap=iscsiuser1/temp12345678
    Copy to Clipboard Toggle word wrap

    重要

    禁用 CHAP 仅在 Red Hat Ceph Storage 3.1 或更高版本上被支持。红帽不支持混合客户端,有些情况下启用了 CHAP,一些 CHAP 被禁用。所有客户端都必须启用 CHAP,或者禁用 CHAP。默认的行为是仅通过其启动器名称验证启动器。

    如果启动器无法登录目标,则 CHAP 身份验证可能为某些启动器配置错误。

    示例

    o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]
    Copy to Clipboard Toggle word wrap

    hosts 级别上执行以下命令重置所有 CHAP 验证:

    /> goto hosts
    /iscsi-target...csi-igw/hosts> auth nochap
    ok
    ok
    /iscsi-target...csi-igw/hosts> ls
    o- hosts ................................ [Hosts: 2: Auth: None]
      o- iqn.2005-03.com.ceph:esx ........... [Auth: None, Disks: 4(310G)]
      o- iqn.1994-05.com.redhat:rh7-client .. [Auth: None, Disks: 0(0.00Y)]
    Copy to Clipboard Toggle word wrap
  5. 向客户端添加磁盘:

    Syntax

    >/iscsi-target..eph-igw/hosts> cd iqn.1994-05.com.redhat:$CLIENT_NAME
    > disk add $POOL_NAME.$IMAGE_NAME
    Copy to Clipboard Toggle word wrap

    示例

    >/iscsi-target..eph-igw/hosts> cd iqn.1994-05.com.redhat:rh7-client
    > disk add rbd.disk_1
    Copy to Clipboard Toggle word wrap

  6. 运行以下命令来验证 iSCSI 网关配置:

    > ls
    Copy to Clipboard Toggle word wrap
  7. (可选)确认 API 正确使用 SSL,在 https/var/log/rbd-target-api.log 文件中查找,例如:

    Aug 01 17:27:42 test-node.example.com python[1879]:  * Running on https://0.0.0.0:5000/
    Copy to Clipboard Toggle word wrap
  8. 下一步是配置 iSCSI 启动器。

其它资源

  • 有关在容器中安装 Red Hat Ceph Storage 的更多信息,请参阅容器中安装 Red Hat Ceph Storage 集群 部分。
  • 有关在容器中安装 iSCSI 网关软件的更多信息,请参阅 容器中安装 Ceph iSCSI 网关 部分。
  • 有关连接 iSCSI 启动器的更多信息,请参阅 Red Hat Ceph Storage Block Device Guide 中的配置 iSCSI Initiator 部分。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat