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 T0 c# r' j% H+ l& f/ |" D! w5 @3.2. ceph集群版本:注:官方建议 Ceph Luminous (12.2.x) release or newer 实际采用:Ceph Kraken (11.1.0) 3.3. ceph集群配置:通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。 建议如下配置:
) V. R& {3 z4 d( J! E6 F确认配置: 确认名称为”rbd”的pool存在,如下: 0 G* V+ }3 K0 H1 |4 _
确认支持5个features,如下: . j" I5 X v$ ~2 O3 }8 H* P' B
/ Q# Z- Q7 u$ w; o3 L6 o5 T0 T& k, r
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)
1 U' \3 x. |" z" D4、安 装 参照: 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
- pyOpenSSL2 M+ l( a7 V! L; J7 E5 @
即: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# v1 E L" R5 N2 d& H! |
注:rtslib-fb依赖pyudev>=0.16.1
6 l5 y5 B8 l* ^# i- R: r5 A; f( `1 j4.2. iSCSI gateway节点部署相关服务
/ N( i* s; n( Y2 ~2 R- |/ } 4.2.1. 部署tcmu-runner
( S) z0 \! I3 f+ O- c4.2.2. 部署rtslib-fb9 v0 F5 Q! l/ g! K# Z$ R
J$ c; T' y0 y& h! z) f4.2.3. 部署configshell-fb/ g! V/ F9 L+ h! ^! P" c
m! g. E% a% o7 S( X/ C+ U4.2.4. 部署targetcli-fb# }+ b( ]2 o9 |9 @* y4 i' f* m C
% B5 S" Y$ @/ n7 ]9 E! ?) K5 ?4.2.5. 创建配置文件
& @, l* k; X& }5 o . {2 a& n+ H9 [- y
4.2.6. 部署ceph-iscsi-config$ s4 d- r v2 L9 t
0 S3 [/ N# Q" q1 x, \" D4.2.7. 部署ceph-iscsi-cli/ l* r& l# S9 v* `( L
4.2.8. 检查各个服务状态正常
: D' ^( y, f) y3 a2 w 首先,检查相关服务状态正常: H& K- W: f6 D4 t
5、创建&配置iSCSI gateway5.1. 创建iSCSI target例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
1 E: P9 O$ Y A/ W- a5.2. 创建iSCSI gateways `! Q8 ~3 @& Z& U& Y% \( z
配置地址解析,如下: 其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。 例如,要配置2个gateway。 , Y1 R& |9 V; J
注意:配置/etc/hosts后,需要重启 这3个服务: ' l5 |) [) T, {2 D6 U7 d4 ^2 T
注意:在2个gateway节点上,要分别确认这3个服务正常运行。 如下创建2个gateway,提供HA方案:
# a/ Y) `- B* H' ]0 y5 \6 P/ s然后,检查3260端口监听正常:
% Z& I2 P+ }. X$ m
& n+ V6 W" i: B8 \5.3. 创建iSCSI disk9 k, b, g( \+ L* H" j7 ]
如下创建RBD Image作为iSCSI 后端disk:
% W0 ]& Y& x' L, f' q3 e& {$ D5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
, O) n7 b; g7 l2 b) r' i+ p然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。
4 ^ t! r& X5 e1 k4 K2 w9 c$ K4 J 3 a- m# C/ A5 Q2 |
% `1 T1 R; c$ ?, [5.5. 为iSCSI client配置iSCSI CHAP认证信息注:建议略过该步骤。: o& _# B: `" q2 d/ S# i2 O) r( U: Q
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。 例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword” . O# j+ S8 d P7 X8 p1 W
5.6. 为iSCSI client添加disk例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。
3 ]. V `2 y& {/ _, s/ T( ?6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具/ Z! i1 b9 B# c; ^# v# W3 ?
6.2. 配置multipath服务' B8 q6 {3 W. t; ?+ k, [0 L, y
创建默认配置/etc/multipath.conf,并enable multipathd service。
5 a+ F. p8 S# ^
! c9 R/ D' u- e* q1 \( ?* [修改配置/etc/multipath.conf,内容如下:! }6 O% z5 s$ b! @6 s
7 q+ L# v4 E8 h! G
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。 重启multipath服务。 [td]命令: systemctl reload multipathd
7 J7 M6 }+ M! [6 q3 j |
" l( ^: H1 F+ V, @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 & v& }! V! H K: a& R9 N& i# g
|
0 ^" A8 [, T' {# h6 J
/ E# K( S7 S3 C6.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 1 d/ c' S N. v4 ]
|
! m p" p. z: u+ h8 \6.6. 查看扫描出的iSCSI盘如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb
: Z" ~' R- `0 o; d" Y6.7. 查看multipath的iSCSI disk(由RBD image映射)
' C. T M# v& H5 m L( m# ]7、附录一Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。 【解决方法一】7 |$ n' u& n" T1 B6 v) n; C+ N
说明:lun.py中不设置qfull_time_out。 影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。 修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py
: ]; s$ u/ d8 I/ j- [6 s* I注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。 【解决方法二】 说明:系统中struct tcmu_dev增加qfull_time_out成员。 影响:存储异常时,业务由于iSCSI设备被设置SAM_STAT_TASK_SET_FULL,及时返回失败,不阻塞。 8、附录二1 [# b4 ?7 s0 \0 K8 \# P5 s8 c
设置成不支持ALUA。 修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
% z3 g1 Y/ f# S3 p8 o/ f
3 }7 d$ ]4 F W( w' x8 }4 E" E注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。
_& _7 D$ \* s3 ~/ s# m- I) ]5 W4 G5 w: F5 J! i4 }- s
|