注意

本文档适用于 Ceph 开发版本。

使用Ansible配置iSCSI目标

Ceph iSCSI网关是iSCSI目标节点,也是Ceph客户端节点。Ceph iSCSI网关可以部署在专用节点上,也可以与Ceph对象存储磁盘(OSD)节点共置。以下步骤将安装和配置Ceph iSCSI网关以进行基本操作。

要求:

  • 一个正在运行的Ceph Luminous(12.2.x)集群或更新版本

  • Red Hat Enterprise Linux/CentOS 7.5(或更新版本);Linux 内核 v4.16(或更新版本)

  • The ceph-iscsi在所有iSCSI网关节点上安装包

安装:

  1. 在Ansible安装节点上,该节点可以是管理节点或专用部署节点,执行以下步骤:

    1. Asroot,安装ceph-ansible软件包:

      # yum install ceph-ansible
      
    2. 在网关组的/etc/ansible/hosts文件中添加条目:

      [iscsigws]
      ceph-igw-1
      ceph-igw-2
      

Note

如果将iSCSI网关与OSD节点共置,则将OSD节点添加到[iscsigws]部分。

Configuration:

The ceph-ansible包将文件放置在/usr/share/ceph-ansible/group_vars/目录中,文件名为iscsigws.yml.sample。创建此示例文件的副本,命名为iscsigws.yml。查看以下Ansible变量和描述,并相应地进行更新。参见iscsigws.yml.sample获取高级变量的完整列表。

变量

含义/目的

seed_monitor

每个网关都需要访问/etc/ceph/目录。seed_monitor主机用于/etc/ceph/目录中运行此命令。

cluster_name

定义自定义存储集群名称。

gateway_keyring

定义自定义密钥环名称。

deploy_settings

如果设置为true,然后在运行playbook时部署设置。

perform_system_checks

这是一个布尔值,用于检查每个网关上的多路径和LVM配置设置。它必须至少在第一次运行时设置为true,以确保多路径d和LVM配置正确。

api_user

API的用户名。默认值是admin.

api_password

使用API的密码。默认值是admin.

api_port

使用API的TCP端口号。默认值是5000.

api_secure

如果必须使用TLS,则为true。默认值是false。如果为true,则用户必须创建必要的证书和密钥文件。参见

trusted_ip_list

具有API访问权限的IPv4或IPv6地址列表。默认情况下,只有iSCSI网关节点具有访问权限。

部署:

在Ansible安装节点上执行以下步骤。

  1. Asroot,执行Ansible playbook:

    cd /usr/share/ceph-ansible
    ansible-playbook site.yml --limit iscsigws
    

    Note

    Ansible playbook将处理RPM依赖项、设置守护进程,并安装gwcli,以便使用它创建iSCSI目标并作为LUN导出RBD镜像。在以前的版本中,iscsigws.yml可以定义iSCSI目标和其他对象,如客户端、镜像和LUN,但不再支持此功能。

  2. 从iSCSI网关节点验证配置:

    gwcli ls
    

    Note

    请参阅使用命令行界面配置 iSCSI 目标部分,使用gwcli工具收集。

    重要

    尝试使用targetcli工具更改配置会导致问题,包括ALUA配置错误和路径故障转移问题。存在数据损坏、iSCSI网关之间配置不匹配以及WWN信息不匹配,从而导致客户端多路径问题的可能性。

服务管理:

The ceph-iscsi包安装配置管理逻辑和名为rbd-target-api的Systemd服务。当Systemd服务启用时,rbd-target-api将在启动时启动并恢复Linux IO状态。Ansible playbook在部署期间禁用目标服务。以下是与rbd-target-apiSystemd服务交互的结果。

systemctl <start|stop|restart|reload> rbd-target-api
  • reload

    重载请求将强制rbd-target-api重新读取配置并将其应用于当前运行环境。通常不需要这样做,因为更改是从Ansible并行部署到所有iSCSI网关节点的。

  • stop

    停止请求将关闭网关的门户接口,断开与客户端的连接,并从内核中擦除当前LIO配置。这使iSCSI网关恢复到干净状态。当客户端断开连接时,客户端侧多路径层将主动I/O重新调度到其他iSCSI网关。

删除配置:

The ceph-ansible包提供了一个Ansible playbook来删除iSCSI网关配置和相关RBD镜像。Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。当运行此Ansible playbook时,会提示执行清除的类型:

lio :

在这种模式下,将在所有定义的iSCSI网关上清除LIO配置。创建的磁盘在Ceph存储集群中将保持不变。

all :

all如果选择,LIO配置将与all在iSCSI网关环境中定义的RBD镜像一起删除,其他无关的RBD镜像将不会被删除。确保选择正确的模式,此操作将删除数据。

警告

清除操作是对您的iSCSI网关环境的破坏性操作。

警告

如果RBD镜像具有快照或克隆并通过Ceph iSCSI网关导出,清除操作将失败。

[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml
Which configuration elements should be purged? (all, lio or abort) [abort]: all


PLAY [Confirm removal of the iSCSI gateway configuration] *********************


GATHERING FACTS ***************************************************************
ok: [localhost]


TASK: [Exit playbook if user aborted the purge] *******************************
skipping: [localhost]


TASK: [set_fact ] *************************************************************
ok: [localhost]


PLAY [Removing the gateway configuration] *************************************


GATHERING FACTS ***************************************************************
ok: [ceph-igw-1]
ok: [ceph-igw-2]


TASK: [igw_purge | purging the gateway configuration] *************************
changed: [ceph-igw-1]
changed: [ceph-igw-2]


TASK: [igw_purge | deleting configured rbd devices] ***************************
changed: [ceph-igw-1]
changed: [ceph-igw-2]


PLAY RECAP ********************************************************************
ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
ceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0
localhost                  : ok=2    changed=0    unreachable=0    failed=0

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.