7.3. 安装 iSCSI 网关

作为存储管理员,您必须先安装必要的软件包,然后才能利用 Ceph iSCSI 网关的优势。您可以使用 Ansible 部署工具或 命令行界面 来安装 Ceph iSCSI 网关。

每个 iSCSI 网关运行 Linux I/O 目标内核子系统 (LIO) 以提供 iSCSI 协议支持。LIO 利用用户空间透传 (TCMU) 与 Ceph librbd 库交互,将 RBD 镜像公开给 iSCSI 客户端。利用 Ceph iSCSI 网关,您可以有效地运行完全集成的块存储基础架构,其具备传统存储区域网络 (SAN) 的所有功能和好处。

7.3.1. 先决条件

  • Red Hat Enterprise Linux 8 或 7.7 或更高版本。
  • 正在运行的 Red Hat Ceph Storage 4 或更高版本集群。

7.3.2. 使用 Ansible 安装 Ceph iSCSI 网关

使用 Ansible 实用程序安装软件包,并为 Ceph iSCSI 网关设置守护进程。

先决条件

  • 安装了 ceph-ansible 软件包的 Ansible 管理节点。

流程

  1. 在 iSCSI 网关节点上,启用 Red Hat Ceph Storage 4 工具存储库。详情请参阅 Red Hat Ceph Storage 安装指南中的启用 Red Hat Ceph Storage 存储库一节。
  2. 在 Ansible 管理节点上,在 /etc/ansible/hosts 文件中为 gateway 组添加一个条目。如果您将 iSCSI 网关与 OSD 节点并置,请将 OSD 节点添加到 [iscsigws] 部分中。

    [iscsigws]
    ceph-igw-1
    ceph-igw-2
  3. Ansible 将文件放置在 /usr/share/ceph-ansible/group_vars/ 目录中,名为 iscsigws.yml.sample。创建 iscsigws.yml.sample 文件的副本,名为 iscsigws.yml
  4. 打开 iscsigws.yml 文件进行编辑。
  5. 取消注释 trusted_ip_list 选项,并使用 IPv4 或 IPv6 地址相应地更新值。

    示例

    使用 IPv4 地址 10.172.19.21 和 10.172.19.22 添加两个网关,以配置 trusted_ip_list

    trusted_ip_list: 10.172.19.21,10.172.19.22
  6. (可选)查看 iSCSI 网关变量部分中的 Ansible 变量和描述,并根据需要更新 iscsigws.yml

    警告

    网关配置更改一次仅受一个网关的支持。尝试通过多个网关同时运行更改可能会导致配置不稳定和不一致。

    警告

    在使用 ansible-playbook 命令时,Ansible 安装 ceph-iscsi 软件包,创建和更新 /etc/ceph/iscsi-gateway.cfg 文件,具体取决于 group_vars/iscsigws.yml 文件中的设置。如果您之前已经使用命令行界面安装了 ceph-iscsi 软件包(如 Installing the iSCSI gateway using the command-line interface 所述),请将现存的设置从 iscsi-gateway.cfg 文件复制到 group_vars/iscsigws.yml 文件。

  7. 在 Ansible 管理节点上,执行 Ansible playbook。

    • 裸机部署:

      [admin@ansible ~]$ cd /usr/share/ceph-ansible
      [admin@ansible ceph-ansible]$ ansible-playbook site.yml -i hosts
    • 容器部署:

      [admin@ansible ~]$ cd /usr/share/ceph-ansible
      [admin@ansible ceph-ansible]$ ansible-playbook site-container.yml -i hosts
      警告

      在独立 iSCSI 网关节点上,验证是否已启用正确的 Red Hat Ceph Storage 4 软件存储库。如果它们不可用,Ansible 可能会安装不正确的软件包。

  8. 若要创建目标、LUN 和客户端,可使用 gwcli 实用程序或 Red Hat Ceph Storage 仪表板。

    重要

    不要使用 targetcli 实用程序来更改配置,这会导致以下问题: ALUA 配置错误和路径故障转移问题。可能会导致数据损坏,跨 iSCSI 网关进行不匹配的配置,并且 WWN 信息不匹配,从而导致客户端路径问题。

其它资源

7.3.3. 使用命令行界面安装 Ceph iSCSI 网关

Ceph iSCSI 网关是 iSCSI 目标节点,也是 Ceph 客户端节点。Ceph iSCSI 网关可以是单机节点,也可以并置在 Ceph 对象存储磁盘(OSD)节点上。完成以下步骤,安装 Ceph iSCSI 网关。

先决条件

  • Red Hat Enterprise Linux 8 或 7.7 及更新的版本
  • Red Hat Ceph Storage 4 集群或更新版本
  • 在存储集群的所有 Ceph 监控节点上,以 root 用户身份重启 ceph-mon 服务:

    语法

    systemctl restart ceph-mon@MONITOR_HOST_NAME

    示例

    [root@mon ~]# systemctl restart ceph-mon@monitor1

  • 如果 Ceph iSCSI 网关不在 OSD 节点上并置,请将位于 /etc/ceph/ 目录下的 Ceph 配置文件从存储集群中正在运行的 Ceph 节点复制到所有 iSCSI 网关节点。Ceph 配置文件必须存在于 /etc/ceph/ 的 iSCSI 网关节点上。
  • 在所有 Ceph iSCSI 网关节点上,启用 Ceph Tools 存储库。详情请参阅安装指南中的启用 Red Hat Ceph Storage 存储库一节。
  • 在所有 Ceph iSCSI 网关节点上,安装和配置 Ceph 命令行界面。详情请参阅 Red Hat Ceph Storage 4 安装指南中的安装 Ceph 命令行界面一章。
  • 如果需要,在所有 Ceph iSCSI 节点上的防火墙上打开 TCP 端口 3260 和 5000。
  • 新建或使用现有的 RADOS 块设备 (RBD)。

流程

  1. 在所有 Ceph iSCSI 网关节点上,安装 ceph-iscsitcmu-runner 软件包:

    [root@iscsigw ~]# yum install ceph-iscsi tcmu-runner
    重要

    如果这些软件包以前的版本存在,请在安装更新的版本前将其删除。您必须从 Red Hat Ceph Storage 存储库安装这些较新版本。

  2. (可选)在所有 Ceph iSCSI 网关节点上,根据需要安装和配置 OpenSSL 实用程序。

    1. 安装 openssl 软件包:

      [root@iscsigw ~]# yum install openssl
    2. 在主 iSCSI 网关节点上,创建一个目录来存放 SSL 密钥:

      [root@iscsigw ~]# mkdir ~/ssl-keys
      [root@iscsigw ~]# cd ~/ssl-keys
    3. 在主 iSCSI 网关节点上,创建证书和密钥文件。出现提示时,输入环境信息。

      [root@iscsigw ~]# openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
    4. 在主 iSCSI 网关节点上,创建一个 PEM 文件:

      [root@iscsigw ~]# cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
    5. 在主 iSCSI 网关节点上,创建一个公钥:

      [root@iscsigw ~]# openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.key
    6. 从主 iSCSI 网关节点,将 iscsi-gateway.crtiscsi-gateway.pemiscsi-gateway-pub.keyiscsi-gateway.key 文件复制到其他 iSCSI 网关节点上的 /etc/ceph/ 目录中。
  3. 在 Ceph iSCSI 网关节点上创建配置文件,然后将它复制到所有 iSCSI 网关节点。

    1. /etc/ceph/ 目录中创建一个名为 iscsi-gateway.cfg 的文件:

      [root@iscsigw ~]# touch /etc/ceph/iscsi-gateway.cfg
    2. 编辑 iscsi-gateway.cfg 文件并添加以下几行:

      语法

      [config]
      cluster_name = CLUSTER_NAME
      gateway_keyring = CLIENT_KEYRING
      api_secure = false
      trusted_ip_list = IP_ADDR,IP_ADDR

      示例

      [config]
      cluster_name = ceph
      gateway_keyring = ceph.client.admin.keyring
      api_secure = false
      trusted_ip_list = 192.168.0.10,192.168.0.11

    3. iscsi-gateway.cfg 文件复制到所有 iSCSI 网关节点。请注意,该文件在所有 iSCSI 网关节点上必须相同。
  4. 在所有 Ceph iSCSI 网关节点上,启用并启动 API 服务:

    [root@iscsigw ~]# systemctl enable rbd-target-api
    [root@iscsigw ~]# systemctl start rbd-target-api
    [root@iscsigw ~]# systemctl enable rbd-target-gw
    [root@iscsigw ~]# systemctl start rbd-target-gw
  5. 接下来,配置目标、LUN 和客户端。详情请参阅使用命令行界面配置 iSCSI 目标 部分。

其它资源

7.3.4. 其它资源