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 管理节点。
流程
- 在 iSCSI 网关节点上,启用 Red Hat Ceph Storage 4 工具存储库。详情请参阅 Red Hat Ceph Storage 安装指南中的启用 Red Hat Ceph Storage 存储库一节。
在 Ansible 管理节点上,在
/etc/ansible/hosts
文件中为 gateway 组添加一个条目。如果您将 iSCSI 网关与 OSD 节点并置,请将 OSD 节点添加到[iscsigws]
部分中。[iscsigws] ceph-igw-1 ceph-igw-2
-
Ansible 将文件放置在
/usr/share/ceph-ansible/group_vars/
目录中,名为iscsigws.yml.sample
。创建iscsigws.yml.sample
文件的副本,名为iscsigws.yml
。 -
打开
iscsigws.yml
文件进行编辑。 取消注释
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
(可选)查看 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
文件。在 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 可能会安装不正确的软件包。
若要创建目标、LUN 和客户端,可使用
gwcli
实用程序或 Red Hat Ceph Storage 仪表板。重要不要使用
targetcli
实用程序来更改配置,这会导致以下问题: ALUA 配置错误和路径故障转移问题。可能会导致数据损坏,跨 iSCSI 网关进行不匹配的配置,并且 WWN 信息不匹配,从而导致客户端路径问题。
其它资源
-
请参阅 Sample
iscsigws.yml
文件 来查看完整的示例文件。 - 使用命令行界面配置 iSCSI 目标
- 创建 iSCSI 目标
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)。
流程
在所有 Ceph iSCSI 网关节点上,安装
ceph-iscsi
和tcmu-runner
软件包:[root@iscsigw ~]# yum install ceph-iscsi tcmu-runner
重要如果这些软件包以前的版本存在,请在安装更新的版本前将其删除。您必须从 Red Hat Ceph Storage 存储库安装这些较新版本。
(可选)在所有 Ceph iSCSI 网关节点上,根据需要安装和配置 OpenSSL 实用程序。
安装
openssl
软件包:[root@iscsigw ~]# yum install openssl
在主 iSCSI 网关节点上,创建一个目录来存放 SSL 密钥:
[root@iscsigw ~]# mkdir ~/ssl-keys [root@iscsigw ~]# cd ~/ssl-keys
在主 iSCSI 网关节点上,创建证书和密钥文件。出现提示时,输入环境信息。
[root@iscsigw ~]# openssl req -newkey rsa:2048 -nodes -keyout iscsi-gateway.key -x509 -days 365 -out iscsi-gateway.crt
在主 iSCSI 网关节点上,创建一个 PEM 文件:
[root@iscsigw ~]# cat iscsi-gateway.crt iscsi-gateway.key > iscsi-gateway.pem
在主 iSCSI 网关节点上,创建一个公钥:
[root@iscsigw ~]# openssl x509 -inform pem -in iscsi-gateway.pem -pubkey -noout > iscsi-gateway-pub.key
-
从主 iSCSI 网关节点,将
iscsi-gateway.crt
、iscsi-gateway.pem
、iscsi-gateway-pub.key
和iscsi-gateway.key
文件复制到其他 iSCSI 网关节点上的/etc/ceph/
目录中。
在 Ceph iSCSI 网关节点上创建配置文件,然后将它复制到所有 iSCSI 网关节点。
在
/etc/ceph/
目录中创建一个名为iscsi-gateway.cfg
的文件:[root@iscsigw ~]# touch /etc/ceph/iscsi-gateway.cfg
编辑
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
-
将
iscsi-gateway.cfg
文件复制到所有 iSCSI 网关节点。请注意,该文件在所有 iSCSI 网关节点上必须相同。
在所有 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
- 接下来,配置目标、LUN 和客户端。详情请参阅使用命令行界面配置 iSCSI 目标 部分。
其它资源
- 有关选项的更多详细信息,请参阅 iSCSI 网关变量 部分。
- 创建 iSCSI 目标
7.3.4. 其它资源
- 有关 Ceph iSCSI 网关 Anisble 变量的更多信息,请参阅 附录 B, iSCSI 网关变量。