10.4. 配置 iSCSI 目标
作为存储管理员,您可以使用 gwcli
命令行实用程序 配置 目标、LUN 和客户端。您还可以使用 gwcli reconfigure
子命令来优化 iSCSI 目标的性能。
红帽不支持管理 Ceph iSCSI 网关工具(如 gwcli
)导出的 Ceph 块设备镜像。此外,使用 rbd
命令重命名或删除 Ceph iSCSI 网关导出的 RBD 镜像可能会导致存储集群不稳定。
10.4.1. 先决条件
- 安装 Ceph iSCSI 网关软件。
10.4.2. 使用命令行界面配置 iSCSI 目标
Ceph iSCSI 网关是 iSCSI 目标节点,也是 Ceph 客户端节点。在独立节点上配置 Ceph iSCSI 网关,或者将它与 Ceph 对象存储设备 (OSD) 节点共存。
除非在本文档中指定,或者红帽支持指示您这样做,否则不要使用 gwcli reconfigure
子命令来调整其他选项。
先决条件
- 安装 Ceph iSCSI 网关软件。
流程
检索主机上运行的 iSCSI 容器的信息:
示例
[root@iscsigw ~]# podman ps [root@iscsigw ~]# podman exec -it 4b5ffb814409 /bin/bash
启动 iSCSI 网关命令行界面:
[root@iscsigw ~]# gwcli
进入
iscsi-targets
目录:示例
/>cd /iscsi-targets
使用 IPv4 或 IPv6 地址创建 iSCSI 网关:
语法
/>iscsi-targets create iqn.2003-01.com.redhat.iscsi-gw:_TARGET_NAME_ > goto gateways > create ISCSI_GW_NAME IP_ADDR_OF_GW > create ISCSI_GW_NAME IP_ADDR_OF_GW
示例
/>iscsi-targets 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
添加 Ceph 块设备:
语法
> cd /disks />disks/ create POOL_NAME image=IMAGE_NAME size=IMAGE_SIZE_m|g|t
示例
> cd /disks />disks/ create rbd image=disk_1 size=50g
注意不要在池或镜像名称中使用任何句点(
.
)。创建客户端:
语法
> goto hosts > create iqn.1994-05.com.redhat:_client_name_ > auth username=USER_NAME password=PASSWORD
示例
> goto hosts > create iqn.1994-05.com.redhat:rh7-client > auth username=iscsiuser1 password=temp12345678
重要红帽不支持混合客户端,如有些启用了 Challenge Handshake Authentication Protocol (CHAP),另外一些禁用了一些 CHAP。所有客户端都必须启用 CHAP,或者禁用 CHAP。默认的行为是仅通过其启动器名称验证启动器。
如果启动器无法登录到目标,某些启动器可能无法正确配置 CHAP 身份验证,例如:
o- hosts ................................ [Hosts: 2: Auth: MISCONFIG]
在
主机
级别使用以下命令重置所有 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)]
向客户端添加磁盘:
语法
/>iscsi-target..eph-igw/hosts > cd iqn.1994-05.com.redhat:_CLIENT_NAME_ > disk add POOL_NAME/IMAGE_NAME
示例
/>iscsi-target..eph-igw/hosts > cd iqn.1994-05.com.redhat:rh7-client > disk add rbd/disk_1
验证 Ceph ISCSI 网关是否正常工作:
/> goto gateways /iscsi-target...-igw/gateways> ls o- gateways ............................ [Up: 2/2, Portals: 2] o- ceph-gw-1 ........................ [ 10.172.19.21 (UP)] o- ceph-gw-2 ........................ [ 10.172.19.22 (UP)]
如果状态为
UNKNOWN
,请检查网络问题和任何错误配置。如果使用防火墙,请验证是否打开适当的 TCP 端口。验证 iSCSI 网关是否列在trusted_ip_list
选项中。验证rbd-target-api
服务是否在 iSCSI 网关节点上运行。另外,还可重新配置
max_data_area_mb
选项:语法
/>disks/ reconfigure POOL_NAME/IMAGE_NAME max_data_area_mb NEW_BUFFER_SIZE
示例
/>disks/ reconfigure rbd/disk_1 max_data_area_mb 64
注意max_data_area_mb
选项控制每个镜像可用于在 iSCSI 目标和 Ceph 集群之间传递 SCSI 命令数据的内存量(以兆字节为单位)。如果这个值太小,可能会导致过量队列完全重试,这将影响性能。如果该值太大,则可能会导致一个磁盘使用过多的系统内存,这可能会导致其他子系统的分配失败。max_data_area_mb
选项的默认值为8
。- 配置 iSCSI 启动器.
其它资源
- 详情请参阅安装 iSCSI 网关。
- 如需更多信息,请参阅配置 iSCSI initiator 部分。
10.4.3. 优化 iSCSI 目标的性能
有许多设置控制 iSCSI 目标如何通过网络传输数据。这些设置可用于优化 iSCSI 网关的性能。
只有在由红帽支持团队指示或根据本文档中指定的要求时才更改这些设置。
gwcli reconfigure
子命令可控制用于优化 iSCSI 网关性能的设置。
影响 iSCSI 目标性能的设置
max_data_area_mb
- 描述
- 以 MB 为单位的内核数据环缓冲的大小。
- 类型
- 整数
- 默认
-
8
cmdsn_depth
- 描述
- 表示控制最大 I/O 的队列的深度。
- 类型
- 整数
- 默认
-
128
immediate_data
- 描述
-
指明启动器从目标请求权限,以在建立新会话时传输即时数据。如果这个值是
Yes
,则启动器从目标请求权限以在建立新会话时传输即时数据。 - 类型
- 布尔值
- 默认
-
是
initial_r2t
- 描述
-
指明主机总线适配器(HBA)发起方请求权限是否从目标请求权限,以便在其建立新会话时传输未验证的 SCSI 数据。如果这个成员是
Yes
,则 HBA 发起方从目标请求权限,以便在其建立新会话时传输未请求的 SCSI 数据。 - 类型
- 布尔值
- 默认
-
是
max_outstanding_r2t
- 描述
- 为每个任务传输(R2T)请求的最大未准备(R2T)请求,不包括启动该任务的第一个 R2T。
- 类型
- 整数
- 默认
-
1
first_burst_length
- 描述
- iSCSI 启动器在执行单个 SCSI 命令期间可以向目标发送的最大未请求数据量。
- 类型
- 整数(以字节为单位)
- 默认
-
262144
max_burst_length
- 描述
- 输入 PDU 序列或请求输出 PDU 序列中的最大 SCSI 数据有效负载。
- 类型
- 整数(以字节为单位)
- 默认
-
524288
max_recv_data_segment_length
- 描述
- 启动器可以从目标接收 iSCSI PDU 中的最大数据字节数。
- 类型
- 整数(以字节为单位)
- 默认
-
262144
max_xmit_data_segment_length
- 描述
- 启动器在 iSCSI PDU 中向目标发送的最大数据字节数。
- 类型
- 整数(以字节为单位)
- 默认
-
0
其它资源
-
有关
max_data_area_mb
的信息,包括演示如何使用gwcli reconfigure
的示例,位于使用命令行接口配置 iSCSI 目标一节中。
10.4.4. 使用命令行界面配置 iSCSI 主机组
Ceph iSCSI 网关可以配置主机组,以管理共享同一磁盘配置的多个服务器。iSCSI 主机组创建主机以及该组中每一主机有权访问的磁盘的逻辑分组。
将磁盘设备共享到多个主机必须使用群集感知型文件系统。
先决条件
- 安装 Ceph iSCSI 网关软件。
- 对 Ceph iSCSI 网关节点的 root 级别访问权限。
流程
检索主机上运行的 iSCSI 容器的信息:
示例
[root@iscsigw ~] podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4b5ffb814409 registry.redhat.io/rhceph-alpha/rhceph-5-rhel8:latest 2 hours ago Up 2 hours ago ceph-f838eb7a-597c-11eb-b0a9-525400e2439c-iscsi.iscsi.cephLab2-node-01.anaahg
使用 iSCSI 容器 ID 进入容器:
示例
[root@iscsigw ~]# podman exec -it 4b5ffb814409 /bin/bash
运行
gwcli
命令:[ceph: root@iscsigw /]# gwcli
创建新主机组:
语法
cd iscsi-targets/ cd IQN/host-groups create group_name=GROUP_NAME
示例
/> cd iscsi-targets/ /iscsi-targets> cd iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/ /iscsi-target.../host-groups> create group_name=igw_grp01
在主机组中添加主机:
重要在将主机添加到主机组之前,请确保移除添加到主机中的所有磁盘,否则无法将主机添加到主机组。
语法
cd GROUP_NAME host add client_iqn=CLIENT_IQN
示例
> cd igw_grp01 /iscsi-target.../host-groups/igw_grp01> host add client_iqn=iqn.1994-05.com.redhat:rh8-client
重复此步骤,将其他主机添加到组中。
在主机组中添加磁盘:
语法
cd /disks/ /disks> create pool=POOL image=IMAGE_NAME size=SIZE cd /IQN/host-groups/GROUP_NAME disk add POOL/IMAGE_NAME
示例
> cd /disks/ /disks> create pool=rbd image=rbdimage size=1G /> cd iscsi-targets/iqn.2003-01.com.redhat.iscsi-gw:ceph-igw/host-groups/igw_grp01/ /iscsi-target...s/igw_grp01> disk add rbd/rbdimage
重复此步骤,向该组添加其他磁盘。
10.4.5. 其它资源
- 有关使用 Red Hat Ceph Storage 仪表板配置 iSCSI 目标的详情,请参阅 Red Hat Ceph Storage 仪表板指南中的创建 iSCSI 目标部分。