|
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; 确认内核选项启用,如下:
' G, {/ w6 ~* R* H% @7 h) b+ b3.2. ceph集群版本:注:官方建议 Ceph Luminous (12.2.x) release or newer 实际采用:Ceph Kraken (11.1.0) 3.3. ceph集群配置:通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。 建议如下配置:
5 g- G6 r1 C. Q& n& W" i5 X8 [9 z确认配置: 确认名称为”rbd”的pool存在,如下:
7 M, f& v7 a( m* q9 @ Q' {确认支持5个features,如下: ( y& }( a8 p/ `# u Z
9 q7 j2 J" ]! F2 C. W% F确认支持VAAI性能加速,如下:(如果不支持功能升也能使用) ) Q; A0 q& e, X1 D
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
6 n Q2 l- W$ G( q* s2 b- M即: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
3 h! D& O# t! _3 A9 W/ {
注:rtslib-fb依赖pyudev>=0.16.1 9 J, v6 `4 v- M* V7 D
4.2. iSCSI gateway节点部署相关服务0 D" A! _5 d# h/ k2 M. l
4.2.1. 部署tcmu-runner
+ G) |7 C3 F" s& d: b* A- i4.2.2. 部署rtslib-fb
4 J) F! e2 C; |# q8 p
8 y R) j' f* n( E( }5 ~4.2.3. 部署configshell-fb
1 r7 w" ^2 e! v7 l
/ a7 E2 U" D% E/ j4 B" r- H9 m4.2.4. 部署targetcli-fb6 w8 x# I# Y" A. z
8 Y1 X+ V, K6 W' g* ~ N% `4.2.5. 创建配置文件
. @1 ^) ]& L: Q5 k1 Z# n
y1 H" g# f: l n9 X4.2.6. 部署ceph-iscsi-config
g2 \8 x: w; ]9 M$ |" k
! b0 @# C- U# n, `3 v, A4.2.7. 部署ceph-iscsi-cli
6 ^! y, F2 L; K; b( Y2 L: F# G! N4.2.8. 检查各个服务状态正常
/ l: w- j9 A( S5 y8 i 首先,检查相关服务状态正常: % O+ R/ w! @! f+ Z# N& p1 `
5、创建&配置iSCSI gateway5.1. 创建iSCSI target例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
) S. k, H3 e% l6 D5.2. 创建iSCSI gateways- F0 C& ]" j1 Q* S i! {
配置地址解析,如下: 其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。 例如,要配置2个gateway。
; t' C0 L8 F$ r注意:配置/etc/hosts后,需要重启 这3个服务:
3 y& U/ e& }1 h, P6 G8 V! G2 F注意:在2个gateway节点上,要分别确认这3个服务正常运行。 如下创建2个gateway,提供HA方案:
. q( z1 _2 k8 ~8 N& `/ Z然后,检查3260端口监听正常:
, |) `- C; w* p' W6 H
% ]: ~5 [3 Y! c3 G. F3 }5.3. 创建iSCSI disk, g1 a8 ]- [4 O* V( T$ ]
如下创建RBD Image作为iSCSI 后端disk:
4 I3 n0 W1 a: n# g5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。 # r3 I- m* {: a- n( i: Q5 ]/ t
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。
, f/ D# x. N3 [
8 }/ @% n8 e: ^4 {* e; L& `9 b; T/ A5 h# P" `$ S8 I# R
5.5. 为iSCSI client配置iSCSI CHAP认证信息注:建议略过该步骤。( K3 }/ n: ?0 Y
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。 例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword” 7 L7 p/ i4 o. d, e: r- i( h
5.6. 为iSCSI client添加disk例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。
2 a8 f2 Q7 e8 A9 y, u% O6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具
7 d2 r6 w1 p1 `$ x6 q8 y6 l6.2. 配置multipath服务3 ?# G9 M5 o+ o1 P& M0 {! O
创建默认配置/etc/multipath.conf,并enable multipathd service。
8 O9 t) ?- @- W
) u% q% k( i' Q" x( G6 a修改配置/etc/multipath.conf,内容如下:2 J1 Z+ a3 V P' }: S; G
9 L% U4 ^+ f& W$ q9 l注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。 重启multipath服务。 [td]命令: systemctl reload multipathd & J5 `" l- c' N
| ! U, `) B% A9 E2 R
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端节点,然后执行命令: [td]命令iscsiadm -m discovery -t st -p 10.10.10.121 " x) Q7 e5 S8 J* m5 z, b$ d5 b
|
& v6 n, I4 s' @# v" j {4 i$ r! \- @ k3 Z/ ~
6.5. Login iSCSI target例如target的iqn为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwww [td]命令iscsiadm -m node -T iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwww --login
9 J% s; w" S! s1 k- ?# ]8 }7 h |
& g6 L5 e0 Z( g. m& M! u6.6. 查看扫描出的iSCSI盘如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb / [/ r+ s5 z+ ]+ Z0 o0 r
6.7. 查看multipath的iSCSI disk(由RBD image映射)
' T8 |$ t; J, r/ i# ^% L; F" |7、附录一Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。 【解决方法一】
; J, G2 P$ l3 z- C$ r3 K 说明:lun.py中不设置qfull_time_out。 影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。 修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py & N7 F% m7 {( h+ [' `; M' ^
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。 【解决方法二】 说明:系统中struct tcmu_dev增加qfull_time_out成员。 影响:存储异常时,业务由于iSCSI设备被设置SAM_STAT_TASK_SET_FULL,及时返回失败,不阻塞。 8、附录二
# d% x$ S* O/ g2 A/ j设置成不支持ALUA。 修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
8 Z5 u! v) z% k3 e8 n$ m
# |9 D( c6 h! t. {注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。 ! e" P& }1 ?$ x: i3 q& n
) E$ c" `) G7 i: z; r |