|
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; 确认内核选项启用,如下:
1 A# }$ M( V( x5 [) [3.2. ceph集群版本:注:官方建议 Ceph Luminous (12.2.x) release or newer 实际采用:Ceph Kraken (11.1.0) 3.3. ceph集群配置:通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。 建议如下配置:
: s, T) W5 A. R确认配置: 确认名称为”rbd”的pool存在,如下: ; ` [9 Y. _! u/ W) l2 N
确认支持5个features,如下:
% I( J% x1 q: O& h& N
. @, d# {1 p3 q9 t. t确认支持VAAI性能加速,如下:(如果不支持功能升也能使用) & W) R9 U, f1 m' O7 k# i
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
- pyOpenSSL2 @5 p# K3 k: s
即: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
4 Q4 Y+ r4 M+ y
注:rtslib-fb依赖pyudev>=0.16.1
3 Y2 G( i+ n h. X7 b4.2. iSCSI gateway节点部署相关服务
! y. U# [& x* v6 M: O& b 4.2.1. 部署tcmu-runner/ n9 Y' j, m' m1 d% R' W( u( {
4.2.2. 部署rtslib-fb2 B: l/ L# }3 @" t+ D
! P4 B; b" m6 N" T' I
4.2.3. 部署configshell-fb; z/ O6 X! n. N; p( w6 G' s
3 \/ a+ w& x0 a; s/ @6 O
4.2.4. 部署targetcli-fb; X& ^; k# D* v- |( l& f9 M" o
( T+ f- E* X7 I! d" z T; ~4.2.5. 创建配置文件
2 D6 C! _- H( D1 _; l % d" U4 T( {3 ^( [4 a$ m
4.2.6. 部署ceph-iscsi-config2 Y1 w! f( g& x4 s* ~1 U: S
6 @7 p! y4 b8 J, t9 ?4 l
4.2.7. 部署ceph-iscsi-cli& g" q! H6 z7 @1 n1 x" j
4.2.8. 检查各个服务状态正常
4 x* k' l* ?) X" ^" L8 w 首先,检查相关服务状态正常: 1 v4 Y/ R( {2 [
5、创建&配置iSCSI gateway5.1. 创建iSCSI target例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
. n! `7 [* I( y! ^5 y/ Q/ `5.2. 创建iSCSI gateways
- W, c, f7 D! t" F 配置地址解析,如下: 其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。 例如,要配置2个gateway。 7 E3 j' K3 }# V3 Q6 ^1 k% |5 k( e
注意:配置/etc/hosts后,需要重启 这3个服务: % Z4 u; g1 Z' C
注意:在2个gateway节点上,要分别确认这3个服务正常运行。 如下创建2个gateway,提供HA方案:
. B/ t; ^9 v# n1 }( D然后,检查3260端口监听正常:( |; f& e# f; o8 {5 m
3 \0 @8 m* M2 }# k" b
5.3. 创建iSCSI disk: Z$ L: |% |' |) D: v( U
如下创建RBD Image作为iSCSI 后端disk:
$ `, e% o( ~0 s3 H4 Z8 `5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
/ t: s7 K3 W; c; w9 {然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。# p7 @0 h* O2 d4 w
. C4 B: y' f; C/ U" X" m
8 J! F5 t7 o# j0 _2 V# V* @, p8 K5.5. 为iSCSI client配置iSCSI CHAP认证信息注:建议略过该步骤。( x4 {) o0 a8 ?% H$ z
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。 例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword” / c* M1 ? P1 D% T; F$ e
5.6. 为iSCSI client添加disk例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。
) S( z' A5 a& s7 E9 d+ r' T' Q6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具. [3 X, K. }5 @: c/ {0 N
6.2. 配置multipath服务' y/ c% u! X5 V" ?2 r* y4 v! \
创建默认配置/etc/multipath.conf,并enable multipathd service。
H; z# E ?5 @9 d/ C; |, M: |. W: @2 h" {+ B$ [- n
修改配置/etc/multipath.conf,内容如下:8 X6 R) F" o. d6 O8 j
( x' m' G. Z( J6 t注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。 重启multipath服务。 [td]命令: systemctl reload multipathd / h, f) v- D8 t# a; k5 v3 M
| ! S( q; ^8 y( J, H! N* ]
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 6 D1 | m7 S' r1 J4 ^# N) e
|
0 P7 U, q+ [. `) w2 \6 y% X7 ~! d6 K5 f2 L) z) u* R
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
H% M1 ~1 Z' ~# s; R( P6 u |
" H: K0 }& x& l5 P! A$ A6.6. 查看扫描出的iSCSI盘如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb 8 m0 V3 w, V! p. E# a1 p
6.7. 查看multipath的iSCSI disk(由RBD image映射). X8 b, m+ ~! p9 u( e; _5 |1 g
7、附录一Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。 【解决方法一】" s& u" S- f% q0 Q+ {
说明:lun.py中不设置qfull_time_out。 影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。 修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py # t" e. [% g7 V
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。 【解决方法二】 说明:系统中struct tcmu_dev增加qfull_time_out成员。 影响:存储异常时,业务由于iSCSI设备被设置SAM_STAT_TASK_SET_FULL,及时返回失败,不阻塞。 8、附录二
K+ I8 }* G' O* n3 J( S6 a设置成不支持ALUA。 修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py 5 ]2 M1 f# O0 b* R, K
- a2 y4 L# b! d. k% ]注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。
! b: N$ T' X) ~& w/ `5 s! X. f ]: j5 u5 A9 U( v
|