|
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; 确认内核选项启用,如下: * e$ b* \5 V7 O W; u, Y$ d% \. H( F
3.2. ceph集群版本:注:官方建议 Ceph Luminous (12.2.x) release or newer 实际采用:Ceph Kraken (11.1.0) 3.3. ceph集群配置:通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。 建议如下配置: % |, C" [' a, E7 A
确认配置: 确认名称为”rbd”的pool存在,如下: 5 N0 y! ?0 O9 T6 A: e0 y: U$ I: S
确认支持5个features,如下:
8 _" u" T$ @) W! R3 C% W: y4 ]! c" \
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)
( K! e- h; {+ P8 }, N4、安 装 参照: 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' q& A/ X; J1 n$ T5 o/ e
即: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
% M9 @. V& q1 i' ?4 ?
注:rtslib-fb依赖pyudev>=0.16.1 - M6 u& `9 d$ p; ^" ^# j+ v
4.2. iSCSI gateway节点部署相关服务6 _, j) U% H G5 `
4.2.1. 部署tcmu-runner
7 h. z, }- E8 \3 s4.2.2. 部署rtslib-fb
/ C0 s3 o$ K# D, @
5 n. n1 X; O& n4.2.3. 部署configshell-fb
& Q4 @: V2 F# N' p+ i) S3 s
+ u1 }, x; d$ J. h4.2.4. 部署targetcli-fb
9 z+ ?5 \( ^; V0 T y
- z6 Y$ M4 c! @% E4.2.5. 创建配置文件
: P& O6 f/ i8 h4 R
|; m- y2 Q. D9 ?0 t" i! i# b4.2.6. 部署ceph-iscsi-config+ n! g9 l# j8 |; [2 f! K
' ~; H8 {1 d, |4 R: t5 m- z5 k
4.2.7. 部署ceph-iscsi-cli
3 @8 ]: x6 X: M2 `+ ^4.2.8. 检查各个服务状态正常8 Y' W; c* b6 J$ H) |) _0 }0 V
首先,检查相关服务状态正常:
/ F' R: Y8 o# u) ` d5、创建&配置iSCSI gateway5.1. 创建iSCSI target例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。 ! w0 ^. D$ v9 t, c0 ?* L
5.2. 创建iSCSI gateways) Y. D9 }1 n Q' C
配置地址解析,如下: 其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。 例如,要配置2个gateway。 4 S. [) V7 g1 E. @# S- p
注意:配置/etc/hosts后,需要重启 这3个服务: 2 }* i, i1 U, B g( Z, }
注意:在2个gateway节点上,要分别确认这3个服务正常运行。 如下创建2个gateway,提供HA方案: % {" {0 e# H- ~% X, }5 [( v" T
然后,检查3260端口监听正常:
8 c$ X( U# ^8 q! d % Q1 m% m+ E% s5 O
5.3. 创建iSCSI disk
& u$ y# w- o" y* W. S# q$ e 如下创建RBD Image作为iSCSI 后端disk: 1 J! U6 a' @, O+ u) \5 ]" ~
5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
/ m- @0 f& J7 y: w' s然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。0 {8 c1 I1 k9 _' Y) x
; T2 V. E5 _: t5 S% A, f E f( r4 {$ }$ w/ V, Z
5.5. 为iSCSI client配置iSCSI CHAP认证信息注:建议略过该步骤。0 S* p5 Z- M6 h
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。 例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”
4 L8 M' Q' z e5 @1 O* H, ]5.6. 为iSCSI client添加disk例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。 5 G" ^9 k1 t% W( m; i
6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具
# n% a, ?9 @: n* Y. n6.2. 配置multipath服务+ {, r$ G z9 W, }6 r4 w
创建默认配置/etc/multipath.conf,并enable multipathd service。 ' k" e- E" ?8 ^
" T- \3 H! m0 K: v修改配置/etc/multipath.conf,内容如下:( I& M4 h: z+ T% {" {7 S
+ J5 u2 t: `% {8 P注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。 重启multipath服务。 [td]命令: systemctl reload multipathd
$ M% G' G! R A! f) V9 P# ] |
t1 Y) t; y7 e+ `! U0 ?# @0 d6.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 , R; v, \8 H S% B7 E5 s
|
* x, M5 V* ?+ i- i- F; g p/ v9 d* q+ I
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
( Z7 {0 H& L4 d+ L q |
) e& r- X5 g* W% o6.6. 查看扫描出的iSCSI盘如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb
( |/ `4 S6 K8 C9 }( ?, y2 X' D% `6.7. 查看multipath的iSCSI disk(由RBD image映射)
; N% H/ }1 V& {7 b6 j; h9 k- x7、附录一Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。 【解决方法一】
1 P8 [+ I, H/ e$ i% r# ~3 |1 v( F, l- s 说明:lun.py中不设置qfull_time_out。 影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。 修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py
% S* Q( _( g2 b1 m7 C6 K注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。 【解决方法二】 说明:系统中struct tcmu_dev增加qfull_time_out成员。 影响:存储异常时,业务由于iSCSI设备被设置SAM_STAT_TASK_SET_FULL,及时返回失败,不阻塞。 8、附录二( T/ D; g0 o x( `9 |7 u3 }& Y
设置成不支持ALUA。 修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py 5 d- G; U( t! ~& I# d
& @( O- t1 X/ C0 Q. m1 M! j4 a注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。
% i3 N) ^, j$ R8 @% }& \" S! E" D
$ Q8 Q. c: ?* N |