专栏首页腾讯云TStack专栏CentOS7.4安装ceph lio iSCSI gateway操作指导

CentOS7.4安装ceph lio iSCSI gateway操作指导

本文作者 / Wenda

关注存储以及周边生态,独立的存储系统生存太艰难,融入生态才体现价值。

1、背 景

我们Ceph作为后端存储时,这里只针对块存储空间的使用进行讨论。

对于块存储空间,Linux用户的使用方法有多种,如:rbd map方式、rbd-nbd map方式、 rbd-fuse方式, 但是对于Windows用户,如何使用呢?--- 答案:通过ISCSI访问。

2、说 明

针对块存储场景,iSCSI gateway的作用:

1) 采用ceph作为后端存储时,通过iSCSI协议为Windows/VMWare/database提供数据存储服务。

2) 采用2个/多个iSCSI gateway,通过iSCSI协议提供HA高可用方案。

如图,这是各种操作系统通过ISCSI访问Ceph块存储空间的架构图。

3、iSCSI gateway节点检查&确认

3.1. 系统需求如下:

iSCSI gateways服务可以与OSD节点融合部署,也可以部署在独立的节点上。

注:官方建议 RHEL/CentOS 7.5; Linux kernel v4.17 or newer

实际采用:

操作系统:CentOS Linux release 7.4.1708 (Core);

内核版本:3.10.0-693.el7.x86_64;

确认内核选项启用,如下:

3.2. ceph集群版本:

注:官方建议 Ceph Luminous (12.2.x) release or newer

实际采用:Ceph Kraken (11.1.0)

3.3. ceph集群配置:

通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。

建议如下配置:

确认配置:

确认名称为”rbd”的pool存在,如下:

确认支持5个features,如下:

确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)

4、安 装

参照:

http://docs.ceph.com/docs/master/rbd/iscsi-target-cli-manual-install/

4.1. iSCSI gateway节点安装依赖包

注:ceph-iscsi-cli 和target tools依赖以下packages:

  • libnl3
  • kmod-libs
  • librbd1
  • pyparsing
  • python-kmod
  • python-pyudev
  • python-gobject
  • python-urwid
  • python-rados
  • python-rbd
  • python-netaddr
  • python-netifaces
  • python2-crypto
  • python-requests
  • python-flask
  • pyOpenSSL 即:yum install -y libnl3  kmod-libs librbd1 pyparsing  python-kmod python-pyudev python-gobject python-urwid python-rados python-rbd python-netaddr python-netifaces python2-crypto python-requests python-flask pyOpenSSL

  注:rtslib-fb依赖pyudev>=0.16.1

4.2. iSCSI gateway节点部署相关服务

4.2.1. 部署tcmu-runner

4.2.2. 部署rtslib-fb

4.2.3. 部署configshell-fb

4.2.4. 部署targetcli-fb

4.2.5. 创建配置文件

4.2.6. 部署ceph-iscsi-config

4.2.7. 部署ceph-iscsi-cli

4.2.8. 检查各个服务状态正常

首先,检查相关服务状态正常:

5、创建&配置iSCSI gateway

5.1. 创建iSCSI target

例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。

5.2. 创建iSCSI gateways

配置地址解析,如下:

其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。

例如,要配置2个gateway。

注意:配置/etc/hosts后,需要重启 这3个服务:

注意:在2个gateway节点上,要分别确认这3个服务正常运行。

如下创建2个gateway,提供HA方案:

然后,检查3260端口监听正常:

5.3. 创建iSCSI disk

如下创建RBD Image作为iSCSI 后端disk:

5.4. 创建iSCSI client

创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。

首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。

然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。

5.5. 为iSCSI client配置iSCSI CHAP认证信息

注:建议略过该步骤。

一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。

例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”

5.6. 为iSCSI client添加disk

例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。

6、配置iSCSI initiator访问disk

以Linux为例——

6.1. 安装iSCSI initiator工具和multipath工具

6.2. 配置multipath服务

创建默认配置/etc/multipath.conf,并enable multipathd service。

修改配置/etc/multipath.conf,内容如下:

注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。

重启multipath服务。

命令:    systemctl reload multipathd

6.3. 为iSCSI initiator配置CHAP信息

如果iSCSI client没有配置CHAP认证信息,则iSCSI initiator端也无需配置CHAP信息。

6.4. Discovery iSCSI target

例如 iSCSI gateway的IP是10.10.10.121

登陆iSCSI initiator端节点,然后执行命令:

命令iscsiadm -m discovery -t st    -p 10.10.10.121

6.5. Login iSCSI target

例如target的iqn为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwww

命令iscsiadm -m node -T   iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwww --login

6.6. 查看扫描出的iSCSI盘

如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb 

6.7. 查看multipath的iSCSI disk(由RBD image映射)

7、附录一

Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。

【解决方法一】

说明:lun.py中不设置qfull_time_out。

影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。

修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py

注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

【解决方法二】

说明:系统中struct tcmu_dev增加qfull_time_out成员。

影响:存储异常时,业务由于iSCSI设备被设置SAM_STAT_TASK_SET_FULL,及时返回失败,不阻塞。

内核patch:qfull_timeout : 参照http://www.oscube.cn/blog/page-11/

8、附录二

设置成不支持ALUA。

修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py

注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

猜你还想看这些内容

● 分分钟get腾讯云TStack技术汇总!

 小甲陪你一起看Ceph (OSDC | 上篇)

●“你感受过被监控的恐惧吗?”

●OVS BUG撸码回忆录 •上篇

· END ·


点它!

本文分享自微信公众号 - 腾讯云TStack(gh_035269c8aa5f)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微服务架构之「 容器技术 」

    因为传统的PaaS技术虽然也可以一键将本地应用部署到云上,并且也是采用隔离环境(容器)的形式去部署,但是其兼容性非常的不好。因为其主要原理就是将本地应用程序和启...

    黄泽杰
  • dedecms总是被黑怎么办

    阿里云ECS服务器是目前很多网站客户在使用的,可以使用不同系统在服务器中,windows2008 windows2012,linux系统都可以在阿里云服务器中使...

    网站安全专家
  • Centos7安装python3以及Scapy3介绍

    Redhat:主要是服务器型Linux,商用收费;RHEL是Red Hat Enterprise Linux的缩写。

    刘銮奕
  • Linux 磁盘划分和分区介绍

    在Linux系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件...

    刘銮奕
  • go 读写文件方式

    Open() 底层调用的是 OpenFile(name, O_RDONLY, 0)

    solate
  • go语言学习-文件操作 path path/filepath

    在 Linux 中,路径的格式为/user/bin 路径中的分隔符是/; Windos 中的路径格式 为C:\Windows路径中的分隔符是\。 而**在Go中...

    solate
  • 工作日记

    (Perf -- Linux下的系统性能调优工具,第 1 部分)[http://www.ibm.com/developerworks/cn/linux/l-cn...

    solate
  • pdf转word/图片转word

    通常情况下,我们需要将pdf格式的文件或者图片格式的文件转换为可编辑的word格式,之前多数人都使用OCR识别软件来进行转换,现在教大家一种方法,百试不爽。

    椰果笔记
  • 单服100w长连接报告笔记

    建议直接看参考的原版报告,这篇为我大致记录的一些配置,部分还为理解,后续进行修改补充。

    solate
  • mac 工作中命令总结

    前面可以加nohup 后面加 &,(只加& 有时候不行,可以先用只加&的测试一下可以不)

    solate

扫码关注云+社区

领取腾讯云代金券