将设为首页浏览此站
开启辅助访问 天气与日历 收藏本站联系我们切换到窄版

易陆发现论坛

 找回密码
 开始注册
查看: 4102|回复: 2
收起左侧

Ceph iSCSI gateway 安装和配置

[复制链接]
发表于 2021-7-9 18:18:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?开始注册

x
使用ANSI配置ISCSI TARGET
4 R% m8 y  I: e. J5 Y1 v# uCeph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
) W, Y' }1 Q0 I( t' C1 R% d3 M要求:
2 M2 V7 A2 B6 b9 `正在运行的Ceph Luminous(12.2.x)集群或更高版本
# f2 v: |8 ^( DRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
! V1 \* a" C3 h0 k: o1 i在所有iSCSI gateway节点上安装ceph-iscsi package) A$ f+ c: J* l4 S
安装:
. @# F" I* J6 ]& T8 O+ i. i在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:
3 I7 S$ p( x0 n( e1、以root用户身份安装ceph-ansible package:
* R$ [1 P6 Z/ F4 n! [# R# yum install ceph-ansible! Q- e! N% A% O; V) ~. |/ P/ c; t
2、在/etc/ansible/hosts文件中为gateway group添加一个entry:8 [" _. U: _% E' m5 D/ V& j9 Z
[iscsigws]
* w0 J- h# |0 g: Kceph-igw-12 N" p7 U( q& Z0 b; Y* b4 Q
ceph-igw-29 I) g3 C$ ]' |4 B/ E' `
注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。
; H5 d  ~: o, N, c' [: J  R* M配置:
+ r( ?% r3 k" N; xceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。$ n* }6 [. g, ~! z' P% M
Variable(变量) Meaning/Purpose(含义/目的)
6 a2 @$ ^  o& f* |. Cseed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。
! h: b  k9 J* F$ {cluster_name 自定义存储集群名称(默认为ceph)
0 j( e6 Z8 |2 q/ V& T6 wgateway_keyring Define a custom keyring name.! N, }% g  `, _; A- F% e. q8 r
deploy_settings 如果设置为true,则在运行playbook时deploy the settings。: J  u" ?% |3 m( f
perform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。
8 G4 H6 C0 ?, S& n: i1 y* Papi_user API的用户名。 默认值为admin。2 C3 {, |8 f4 X! q" M! w
api_password 使用API的密码。 默认值为admin。
: A0 ?! K. |/ C0 Q3 t8 v8 Iapi_port 使用API的TCP端口号。 默认值为5000。
5 `. v. `4 p6 v4 P- @; Zapi_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。+ p6 o9 L, i" Z* g( q! v- P
trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。
# C' Q, ]+ r* HDeploying:' p( ?" l# e8 r7 i
在Ansible installer节点上,执行以下步骤。) n3 K: H* ]* b; y1 a& h/ ^
1、以root用户身份执行Ansible playbook:4 H4 v* S# ^* ~* m3 C- t% e
# cd /usr/share/ceph-ansible
% o4 V8 c" r9 q* Q  g# ansible-playbook site.yml --limit iscsigws5 D1 {4 u2 F$ q& W( [, e
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。& i& A  q0 U- f4 I1 a. o
2、从iSCSI gateway节点验证配置:
& B- g, W+ c6 n( }0 x; I& n  a& j# gwcli ls
. K: x( q8 L; H4 g, F, f请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。
' I( t( {$ L; q# w6 Z重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。/ [8 `, n" u, A& u7 M& ?
Service Management:
7 i4 E; @4 E& G7 N) z9 H1 |ceph-iscsi package安装configuration management logic和一个名为rbd-target-api的Systemd service。启用Systemd service后,rbd-target-api将在引导时启动,并将恢复Linux IO状态。Ansible playbook会在部署期间禁用target service。以下是与rbd-target-api Systemd服务交互命令。9 L4 x7 M0 ~, `, P1 ^
# systemctl <start|stop|restart|reload> rbd-target-api
7 _* K1 m7 u; m5 o8 c& Wreload
0 F% R& J) @$ kreload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。
7 T3 z* s6 W+ a0 Mstop
; t- h1 _1 {" s' {3 bstop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。% f+ z+ B: F& U$ R
Removing the Configuration:$ x% A0 D  w+ Y  r  T# ]6 \
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:% W; r# v% q8 b& O" b4 c) h, W
lio :/ p1 t5 t. R9 E
在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。
+ H1 p* y% E! s6 iall :
* y4 M) B$ \. x( G选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。  b. }9 t% `9 j1 Z, G1 \6 e
警告清除操作是对iSCSI gateway环境的破坏性操作。
9 v: B. m8 k* F7 a+ U" [$ w警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。0 h% W! o) r0 C; R' S' H
[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml
  C7 u! J8 m  w! C- r. fWhich configuration elements should be purged? (all, lio or abort) [abort]: all
7 N4 r: _% ~( L2 k& d9 w8 h" L; R. H; J8 ^9 V0 b4 _2 J3 l
PLAY [Confirm removal of the iSCSI gateway configuration] *********************+ N% k3 O8 J1 g, P. H! q" g
4 `7 `$ |3 K* E# ]( I
GATHERING FACTS ***************************************************************1 ]( i! u, D% h* S
ok: [localhost]0 U, C, z6 L( i' W* D5 n
8 Q1 r$ u: U( {" |; `' h
TASK: [Exit playbook if user aborted the purge] ******************************** S4 I% [7 C6 d7 J
skipping: [localhost]
( q' l& a* {! L' [& `  J# @$ r2 U- R! `
TASK: [set_fact ] *************************************************************
  U: D9 Z; W5 r7 q; ?8 _1 {1 Dok: [localhost]; n4 Y# R4 Y. K4 w* S8 }3 P
9 l3 ]5 s* f: i2 Z* G
PLAY [Removing the gateway configuration] *************************************
3 H  |" T& f" i" C5 M
2 N! x+ A7 T$ F. Z3 G# B" U- bGATHERING FACTS ***************************************************************
' O' Y9 `; j8 G0 @7 Uok: [ceph-igw-1]
# t2 E" V4 v0 l7 \9 M0 Pok: [ceph-igw-2]
, p# n$ a5 V9 F; ^& R* `) D0 }
% @, d/ E; k* C/ j5 \! O  rTASK: [igw_purge | purging the gateway configuration] *************************$ ?4 v7 ]/ a* r# A% ?0 j
changed: [ceph-igw-1]
* k1 _2 E" N+ }7 j7 lchanged: [ceph-igw-2]+ u/ u& j, r4 q4 S* @$ ^1 h, G
* W8 T# H/ Z8 R0 i0 L$ n6 ^
TASK: [igw_purge | deleting configured rbd devices] ***************************
! v1 O! S* [( _# }# U  Bchanged: [ceph-igw-1]
( v3 ~9 f. D( ^4 _/ U9 Nchanged: [ceph-igw-2]  b' j4 ^! |2 w; E4 x. q  B2 y

+ r) ]& O; f0 `7 hPLAY RECAP ********************************************************************% Q. @! ^& D: ^4 `" d3 u
ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
  w' y3 l  \* N% H. ], t9 Y( Wceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0
2 ~6 P, X' n' C: L5 U! ilocalhost                  : ok=2    changed=0    unreachable=0    failed=04 l* n+ _0 @, Y
使用COMMAND LINE INTERFACE配置ISCSI TARGET$ V1 @( W3 S8 n, K1 v' d$ ^, i
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。3 m4 x8 Q* W- u- p
Requirements:) ?9 A% r& d2 y$ H
正在运行的Ceph Luminous(12.2.x)集群或更高版本
/ B+ P8 i" F& ^$ y1 L# WRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)# `+ _, |; N* C5 N1 H# Q' L
必须从Linux发行版的软件repository中安装以下软件包:
6 o# F6 X1 y4 _! ]  e" atargetcli-2.1.fb47 or newer package
, g' s1 p! D: kpython-rtslib-2.1.fb68 or newer package
  p+ K0 S7 D' i% _( H2 Z9 `" Wtcmu-runner-1.4.0 or newer package
+ w# J8 Q& e7 R8 Eceph-iscsi-3.2 or newer package
0 ^) J9 h* @) x4 b1 t9 D, U6 k重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。" B6 Y7 B4 D* ~7 a' P0 {
在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:/ y* S  S7 m& q+ }7 f  d3 F
1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。  |/ a, |$ q9 b* }
2、安装和配置Ceph Command-line Interface8 }3 B! R9 D+ Q9 Y+ v) M
3、请在防火墙上打开TCP端口3260和5000。) h! F: d0 h1 A; c8 N4 E
注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。& q3 [$ @" A9 n% [4 T6 e9 N
4、创建一个新的或使用现有的RADOS Block Device (RBD)。
& ?7 T" H; a* g' CInstalling:
9 W! W" }+ i, v. @4 [如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。( `$ V2 I, i9 J9 `" W9 E
对于基于rpm的指令,请执行以下命令:
, T6 _/ c  c2 f% R9 e5 A9 |( u1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:8 q6 f- z( }- H/ I$ u* {
# yum install ceph-iscsi
2 }2 g7 S1 A5 k3 x. ]. o, n2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:& j9 B0 h: B3 C0 D6 ~
# yum install tcmu-runner
6 c% ]* Y  r! ?+ H: Q' {Setup:
  T: R+ |& [; Q1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:) C1 K* W) K( ]$ W. `% a
# ceph osd lspools' ~0 W2 i1 G/ D0 w  x2 n' t( g
如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。
# I4 f# ~$ d/ `+ }$ j% L0 J2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:
& R3 r% {- p- ]8 K# touch /etc/ceph/iscsi-gateway.cfg
8 S  x7 j2 i) C, ]& [1 l8 w2.1、编辑iscsi-gateway.cfg文件并添加以下行:
0 P& d+ `. x7 r& P1 m" p4 j( u+ L[config]0 H/ Z4 Z$ s/ `' K& E
# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing: F2 I* l3 v. U
# access to the Ceph storage cluster from the gateway node is required, if not
5 r& h. u( U+ i; S9 g# colocated on an OSD node.5 J- _) r# ~( N5 J& K
cluster_name = ceph
! ^, z, Q1 n( r# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph% t& I. O8 O1 [& m" c! Y+ O+ Y
# drectory and reference the filename here% n- a  [, I( r( R
gateway_keyring = ceph.client.admin.keyring
* k4 r& n0 ?# ?1 u" U
5 ?2 L9 n5 b3 E: K. U2 b# API settings.* g& n  O4 ]# W/ K2 r
# The API supports a number of options that allow you to tailor it to your
. K% m8 h, S( k0 ?8 J1 \' H# local environment. If you want to run the API under https, you will need to
1 I4 N; B4 I" N* v# create cert/key files that are compatible for each iSCSI gateway node, that is( ]) l0 E5 r4 e9 j- C7 K. T
# not locked to a specific node. SSL cert and key files *must* be called
7 Y% a$ Z1 h4 m, u" E8 c# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory8 q9 R; U# b' b! Q2 u, j3 S
# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'
6 w, f6 s5 T# E8 k% L7 m# to switch to https mode.  x& E8 q- v* F1 D. ^
# To support the API, the bear minimum settings are:2 y; c% Q4 F) C4 A, h
api_secure = false
# G7 q8 R0 n6 p' T3 ^# Additional API configuration options are as follows, defaults shown.
3 T2 ]8 }7 S6 [2 x% {9 A# api_user = admin2 M7 T' F- D* Q/ S0 S/ q3 F1 D& V+ s
# api_password = admin! C* k7 ~7 O+ I3 j: [) S! [/ a  }3 C
# api_port = 5001
; [6 s. r) y! b1 R6 z6 J0 M# trusted_ip_list = 192.168.0.10,192.168.0.11; A/ u! K( e" n6 ^

" u7 K" G+ G' ~' {# ------------------------------------------------------
, k- G6 J. T) v5 ?# 翻译如下
& z& z9 M, y& p4 ^' E- D[config]
4 C  \' k3 F% J6 f# A#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。+ M' r' E( Q0 I# y
cluster_name = ceph
8 Y  ?+ B" Y0 b#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename% U: m( u3 f( M- B( e0 O$ O
gateway_keyring = ceph.client.admin.keyring
& I$ ^. n4 S/ T; _$ u- U4 h# K- ~, _, J3 G; Z  W6 I
#API设置。
7 J$ F( k* I. i! e5 @% C$ Z4 m#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。- H1 ?4 e& ^+ ^0 H
#为了支持API,至少需要配置如下:; {9 q4 ~& |4 z( t+ K' T' y
api_secure = false
" k7 ?, G! o8 G  D- v$ J/ W1 b#其他API配置选项如下,显示的默认值。(trusted翻译为信任), A$ q- @8 d6 f* Z3 ]% p" k* O
# api_user = admin8 A. F) C, M% c6 Y/ U+ T
# api_password = admin
7 {$ O/ H1 N# w- k0 \7 O# api_port = 5001
9 @0 k; S( S" o! g6 X) d4 \( P1 O# trusted_ip_list = 192.168.0.10,192.168.0.11
  d# x! t$ o3 }注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。
* i  j) l# K0 k重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。
2 Q8 f9 j7 \0 f' f2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。( T( T+ K/ D# U; a$ m* l+ e9 f
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:
+ v) H  Q( V4 W# W# systemctl daemon-reload$ h9 S( b' e# k9 T
# systemctl enable rbd-target-api' F* Y  k  K6 i* r) t0 s
# systemctl start rbd-target-api4 j% f) j* L, H0 E) d
Configuring:
- i% g/ w; f9 P: w, S+ v0 Ngwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。# Z  V7 q( V: J4 s
1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:
" r$ Y' X3 R/ R/ j/ `# gwcli
" m: T6 j9 h7 t0 f/ V! s2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:
- a2 T; r1 [4 o* E1 z# J> /> cd /iscsi-target
9 `( |; c; l$ E) |" W8 `- S> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
7 G  Y8 g% A, A4 S3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。; Z! I6 r* y) T
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways6 a+ u: t/ U' l( t. Y5 t7 L
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21
5 U- z0 I) C8 u6 _> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.229 s% [7 q) F2 ?; Z
如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:' L; t; m$ S+ K# Y& B5 n/ ?* X5 O
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways: F) n5 s: W, A3 M9 V* W0 E
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true
5 M; g: g* H5 f, w> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true/ x0 ?/ ]; z5 P6 t. g
4、在rbd pool中添加名称为disk_1的RBD image:
) S" }. T) e& @2 J) U% t6 \6 ]5 m, _' I> /iscsi-target...-igw/gateways> cd /disks# e+ G1 ]7 j/ U9 ]& T+ b# @
> /disks> create pool=rbd image=disk_1 size=90G
1 t) }# S& u/ d4 A# ]  j+ I5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:
& C0 A9 s6 R' c> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts
! S( |. N2 v: C: @( @3 j> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client
+ A# y3 H1 D, A0 c& y) I; m6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:
, S5 `" c+ W& q: Z6 c; q0 E> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword
! n# m& b. r3 O- s" |警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。
+ ^- s7 @+ ]' O" U) V8 _& b, w3 q7 R7、将disk添加到客户端:
7 d) v& o8 o2 D/ j" t: w4 @> /iscsi-target...at:rh7-client> disk add rbd/disk_1+ G- e, q; y6 x) C2 z/ [
下一步是配置iSCSI initiators。: d5 @, P+ e9 ?9 m) V5 y" S
手动安装CEPH-ISCSI  E' h/ ~/ e2 M2 K& s! ?2 z
Requirements
3 j5 F1 h* e/ m& m要完成ceph-iscsi的安装,有4个步骤:
% {- c/ y% r0 }* H' y! H; a: g1、从Linux发行版的软件repository安装common packages
! X- |9 M& v: `+ k2 P) R1 ^2、安装Git以直接从其Git repositories中获取其余packages) e$ {* h. s6 [( z
3、确保使用兼容的kernel
1 l4 E/ z( d) t3 R4、安装ceph-iscsi的所有组件并启动相关的daemons:
0 L: p/ l6 x9 ltcmu-runner" ^) ]) L' M2 b- S- h
rtslib-fb, v- j; ^; @- t6 }# ?7 {6 Y9 {
configshell-fb" R/ q2 @8 ]" S( P; O+ L  C) l
targetcli-fb6 Z4 X' o" [( o2 i! y' |
ceph-iscsi- D0 l! E( g8 ]3 f" B3 y9 f+ `
1、安装COMMON PACKAGES. W* q% O2 Q. c2 ]
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:8 c  [; ]: l6 V* k- Z# l4 O3 _
libnl3
9 X: {/ Q* ]! s5 z: u( ulibkmod; f: v9 I- g2 s3 A2 |# }
librbd13 Y9 T& n* f( j" `$ }
pyparsing
4 ]' {6 ^  i/ @2 h0 l7 f# M7 g! z# epython kmod- R* j: ^  h3 D9 _2 z5 C
python pyudev
( T8 `  x& ~& w, Apython gobject  d, |  H) C/ ^7 Y! |' F+ c
python urwid7 [1 g: A" Y% y; c% N  \
python pyparsing
6 D, ]! `# Z) u/ opython rados
* U% F4 x, b: ~python rbd/ \* N5 C1 Z1 r( ^1 ]' A9 @7 s
python netifaces$ L- A7 a6 ]  s3 t% l5 k
python crypto# e4 [+ I' m0 Y- u8 q9 F1 ^  b7 U; E
python requests
: ~3 R# W+ \2 `# ~6 b& Gpython flask9 X( O7 w/ z- M* m! _& F$ y
pyOpenSSL
8 U+ D; x/ M) ?7 x/ Z2、安装GIT. {1 I1 L$ L/ S+ v& A: }+ Y
为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:+ h: i( j2 ~5 V4 B7 _9 x2 Z3 k
> sudo yum install git
# k8 L8 U4 m0 ?/ z5 U在Debian/Ubuntu上执行:
0 F1 r8 D0 |1 q9 }1 E> sudo apt install git% F+ S9 `& x/ X) \; W
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com
& d$ C* c/ h) V; ~# _8 i0 j3、确保使用了兼容的KERNEL
' m% K4 j6 W% w( [确保使用支持Ceph iSCSI patches的kernel:% V3 s3 D% I/ A" ^  G4 }
具有内核v4.16或更高版本的所有Linux发行版
1 G. X6 L$ `+ }  r% {. W) ]Red Hat Enterprise Linux或CentOS 7.5更高版本
" k2 g3 I4 _3 d如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:* I9 {& q4 _9 Q: l6 I4 s0 L/ t  @
CONFIG_TARGET_CORE=m( }( w# C8 [3 I+ e+ Q9 H/ W
CONFIG_TCM_USER2=m  d6 x" Q1 U% d8 s9 t; y
CONFIG_ISCSI_TARGET=m% _+ {4 M0 E( k! M! r$ k0 g
4、安装CEPH-ISCSI. R( y0 ?" m; \* [) w
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务. S. H* M  G5 V0 Y4 _
TCMU-RUNNER& u" L) @" M& [* |; g
Installation:
- f. s* m% L6 k% @4 E> git clone https://github.com/open-iscsi/tcmu-runner
, F: g. I& W* t, ^  d  r4 }2 a/ C> cd tcmu-runner% M& u( R% ?" C) A
运行以下命令以安装所有必需的依赖项:1 y" s6 E. a1 L9 S; o9 g
> ./extra/install_dep.sh
( _/ r) L; A) c3 M$ h现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:) @- X7 Z5 B: e
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr# u2 [! K$ _$ R( L' w! {
> make install
/ b/ j$ D6 C/ j5 k2 _启用并启动守护程序:
3 T$ ]) B8 F# O# f* j7 d> systemctl daemon-reload: Z1 [2 ^- N0 N# ]5 t
> systemctl enable tcmu-runner
) x( i: c7 q$ }' U0 R6 U> systemctl start tcmu-runner
. g' B  N/ P) |, n: HRTSLIB-FB
& U! G( x* \* {Installation:
8 e4 K5 ]8 J* X> git clone https://github.com/open-iscsi/rtslib-fb.git
  M  q/ c* F, U$ H( F> cd rtslib-fb
; a; a! D, L" Q& Q# n> python setup.py install1 }9 g6 P9 r) g3 @/ [( L
CONFIGSHELL-FB
$ n9 c. X: ~" u1 J! I, RInstallation:7 T3 C1 @! B! @* s. O' \9 T7 S+ F8 T
> git clone https://github.com/open-iscsi/configshell-fb.git3 a2 _4 K4 C/ l/ h& q2 Y
> cd configshell-fb* _. F- W# W2 O2 P
> python setup.py install
+ y) L; h8 i/ \7 W( iTARGETCLI-FB+ q% R" R# C5 i) J1 K
Installation:
9 k0 y4 D. h9 `> git clone https://github.com/open-iscsi/targetcli-fb.git
! M$ X0 w# W1 U2 k> cd targetcli-fb
/ {5 Q. s9 J5 k% ?+ j( P  j/ Q0 t> python setup.py install! ?- t* c$ Z9 \1 F3 A7 \1 N
> mkdir /etc/target
8 i5 l' ~2 y4 V& t2 X> mkdir /var/target) H: F7 R7 b2 c; |! `, ?" K3 ^
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
6 q6 w7 Q. o* }- s9 \3 JCEPH-ISCSI
% ~; a. X" u% w1 E. MInstallation:* X4 R  P' F& ^& H5 z# _# |% {
> git clone https://github.com/ceph/ceph-iscsi.git
$ z  Y" ^! l" {0 t> cd ceph-iscsi( S7 }; K! ^0 G7 u/ L+ Q
> python setup.py install --install-scripts=/usr/bin8 H8 u- s5 H1 N1 B7 T0 g
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
0 v4 ]) B% c: ~" i' U$ u0 |> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
% e4 u" }' d! X6 j启用并启动daemon:
; s1 `$ x' p" N> systemctl daemon-reload/ r2 @7 n2 N6 f/ ~5 ]" P
> systemctl enable rbd-target-gw+ S) G+ D& t3 i# ?8 _: x
> systemctl start rbd-target-gw
+ r. G! ~5 _- g( J> systemctl enable rbd-target-api; @  B7 }  v! k, h4 o6 |9 w5 Z
> systemctl start rbd-target-api# k' L/ v! p2 u+ \" _0 r% v
安装完成。 进入main ceph-iscsi CLI page上的setup部分。
1 m% `2 r& C6 R( p' e) s5 t
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI4 v/ Q! k: c( B% K* e
Requirements
* z9 l% l& R7 U4 W  a6 ^3 n+ S; v% T$ g5 ~1 z' r& ]) u! e
要完成ceph-iscsi的安装,有4个步骤:! S/ N0 A, f! O& f

1 j$ f) ~1 {4 \4 Z7 f2 ^& ^" \# s) g+ b1、从Linux发行版的软件repository安装common packages6 J0 S& Q& |9 H% B. O, T2 ^4 _3 {

! w! M0 h  v0 @: J9 `# t1 Y2、安装Git以直接从其Git repositories中获取其余packages; w/ U' c' ^3 u, ^# ^" u$ }# o% c" I" {
7 b# j" y3 e  ^( i
3、确保使用兼容的kernel+ [8 _5 O  Q1 ?
7 W: n/ q6 J+ X8 {* ?9 N
4、安装ceph-iscsi的所有组件并启动相关的daemons:- K. V; ]0 u3 a# u; e; ~0 _; g  M
  U3 [, o9 e. b$ a6 p
tcmu-runner2 o2 e* E$ V5 \( j7 O
rtslib-fb
, w1 a" K9 U6 J/ ^6 H9 r0 B" \3 Bconfigshell-fb9 v& a; ?* t& h# w  ^! S( ^8 W
targetcli-fb
, d$ \1 E* Y$ ]1 r! Hceph-iscsi
6 Y" D" B6 q' V- w1、安装COMMON PACKAGES8 y0 w+ E* w, U9 y- b5 j  N6 E
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
2 R1 a  O, m% ?; ?8 a
' F5 A4 k4 U0 K8 M  j+ Q) Dlibnl33 c( @, k% U4 Z  z3 c0 N
libkmod
4 k" C. p9 y: c( E# ilibrbd1% c1 Y7 B* J: V1 z1 x& G( `  H
pyparsing
: \. H0 U( I- r/ R. `python kmod
+ j% L) H& I1 X0 ppython pyudev
# C/ ~: J5 U" j* L9 W  s. Rpython gobject9 H6 [) v9 C& X
python urwid
( E5 \; N5 d! o( upython pyparsing
7 x2 ?' ?& X- N5 j6 t& U9 Wpython rados
1 |% ?+ C" x: t1 opython rbd# ~  X4 |8 ^* s, {) v' R4 ?
python netifaces
; z* p9 |* c( {( u) Rpython crypto4 L% P4 s6 G# ]5 `0 R/ J
python requests# D! _/ C! y. w$ c, F, ^2 _, Y; b4 d
python flask
0 h: k' U$ c, b$ y1 H  y$ d, zpyOpenSSL5 L& ]! O0 Y2 W9 k7 a" l
2、安装GIT
# U7 X2 [6 H9 F  s6 o! B为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:" P! l* @& e( g; N

" ^& K" D. p" V4 a. Z> sudo yum install git
) d8 L4 @! d8 y5 _6 N在Debian/Ubuntu上执行:
+ o% t5 `' Y3 I: c8 U0 o
( E" T4 c9 H2 z0 L. o' w/ d! U> sudo apt install git
7 P( x: X( u  y4 i. }+ H要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com+ e8 C$ e) u: Y3 t7 t

# J$ l" a7 g: i! r$ C: k2 G, z* k1 L3、确保使用了兼容的KERNEL
. a" a; O3 Z8 R% ?1 F; ]# n2 u确保使用支持Ceph iSCSI patches的kernel:
  f/ x0 k! j- j
. O) `0 X' i) p0 L8 c具有内核v4.16或更高版本的所有Linux发行版
6 d3 |- x, r1 DRed Hat Enterprise Linux或CentOS 7.5更高版本
+ @/ k) v2 E+ V& W* w4 J. O如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
$ x& p( E$ L, i  \4 m' h/ n3 H' A% Z4 ]
CONFIG_TARGET_CORE=m$ p$ D. ^) {! p8 R1 k
CONFIG_TCM_USER2=m
+ A$ P: i# |' r8 R% ~CONFIG_ISCSI_TARGET=m
8 p" X( _( Y6 P  k' g4、安装CEPH-ISCSI( i* [5 z5 S3 C: D0 g9 C
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务5 q; c# ^/ k' D9 }3 _* f

2 Y# Z! X6 [; y" O1 O8 }- w' S0 O* OTCMU-RUNNER
6 f, E% g: G* `& u8 \# [$ N9 U5 a& E( Q6 D
Installation:' x$ J0 r' ^0 k5 J2 q' R
8 A0 J6 x0 ^7 ]
> git clone https://github.com/open-iscsi/tcmu-runner
* V  E: U( m* z* i& s+ z> cd tcmu-runner! A5 X$ s6 z" H
运行以下命令以安装所有必需的依赖项:
4 Y* m+ ]+ z, f/ j8 j
  k* C; b7 v, |( [. g> ./extra/install_dep.sh# W( G1 D, M1 s8 G$ c1 ^& R
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:6 e# I) x. y- T$ ]: ?8 K2 ?9 t

/ \- f$ S: D# k( @2 z. j2 d> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr
9 w" m  b: Y  ~> make install
" t0 ^- g+ ]/ {3 ]- a启用并启动守护程序:2 t% l& d( V6 ?" r5 n. E

5 c) p# H4 f+ N9 f' {> systemctl daemon-reload
! a1 ^6 }! e% l5 F* W  f> systemctl enable tcmu-runner( c) {( ]6 ^5 a, P$ [2 e/ P5 c
> systemctl start tcmu-runner3 q( @  a' v8 W- I5 F$ U. o
RTSLIB-FB2 t9 Z. A6 u: p' K& y, l) i- l

+ T6 m' Y6 X1 }2 `1 i. N" [Installation:
7 m/ k& w1 S' U1 S$ F! c7 L( ^! x$ W/ X# ?% O0 G6 j
> git clone https://github.com/open-iscsi/rtslib-fb.git0 Q9 i7 F7 Z- z4 |* h* T9 z! U
> cd rtslib-fb* f  h0 g$ x& H" H% m9 q, h$ j
> python setup.py install
- ~0 g# D) A+ y3 i( j$ g+ }CONFIGSHELL-FB
. Q* Z7 t) o; l' ]. n2 ]; [% t
$ u$ J) w/ N$ L$ mInstallation:- w2 ]8 L9 c5 _7 l1 s

3 M+ `; `4 K! S" Z: Y0 B7 }/ C# `3 q> git clone https://github.com/open-iscsi/configshell-fb.git
, i* q# g2 P4 c. d9 ~> cd configshell-fb' k5 Z& D/ ], J7 B8 l) s
> python setup.py install
! E* e, |7 J* b5 X% x5 k1 \TARGETCLI-FB
: T( |$ v! M3 W
  w& ]& N& O, |6 P: F& z" CInstallation:, Z4 _% P" ?# n4 z! f* A- @. A

5 A* N( T. x& y) T- u" R/ v! l" l2 Y> git clone https://github.com/open-iscsi/targetcli-fb.git8 h3 C  ^- V8 e9 L& }' y- B
> cd targetcli-fb
% ^9 f1 a. w- |4 d4 i3 G( ~> python setup.py install
! p, g+ c2 K! E> mkdir /etc/target
$ l) B1 ^8 ]$ }6 t, l> mkdir /var/target
8 w" u/ b+ f( E4 C' h$ q( j' S4 A4 N警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
7 h; z' h" }& D% Q
" \, v/ \9 Z7 e7 K1 y, X0 ICEPH-ISCSI  N: J9 y1 m, p
Installation:
8 X. Z: `4 _3 w' K7 F3 G$ B8 J7 D7 H$ a& \' s2 I) I* f0 }
> git clone https://github.com/ceph/ceph-iscsi.git% N6 y* ]* R7 A& A1 _6 @
> cd ceph-iscsi
" L% F0 b* T. R& D& M> python setup.py install --install-scripts=/usr/bin+ ~9 |9 L! }  G+ P4 C: D
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system: i$ c- M+ D$ s* n
> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system7 ~# M5 q, g( ]8 i8 v" q
启用并启动daemon:; C+ H4 U1 n$ i1 |  i

/ \! q% \  C' s  `> systemctl daemon-reload+ P. ^; U8 L1 @* G; U9 y
> systemctl enable rbd-target-gw" o+ p7 |' J1 I0 v( o" G
> systemctl start rbd-target-gw
, C- E4 g; \" r$ d- [" ]* k# C> systemctl enable rbd-target-api
! _7 c& q5 T' f8 z; ?8 o  k> systemctl start rbd-target-api% _5 }, @, G: @* H* K3 Q/ L7 \
安装完成。 进入main ceph-iscsi CLI page上的setup部分。
 楼主| 发表于 2021-12-13 10:48:08 | 显示全部楼层
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" 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
  • 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 j
4.2. iSCSI gateway节点部署相关服务
/ N( i* s; n( Y2 ~2 R- |/ }
4.2.1. 部署tcmu-runner
( S) z0 \! I3 f+ O- c
4.2.2. 部署rtslib-fb9 v0 F5 Q! l/ g! K# Z$ R

  J$ c; T' y0 y& h! z) f
4.2.3. 部署configshell-fb/ g! V/ F9 L+ h! ^! P" c

  m! g. E% a% o7 S( X/ C+ U
4.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- a
5.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,及时返回失败,不阻塞。
内核patch:qfull_timeout : 参照http://www.oscube.cn/blog/page-11/
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
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

如有购买积分卡请联系497906712

QQ|返回首页|Archiver|手机版|小黑屋|易陆发现 点击这里给我发消息

GMT+8, 2023-2-1 00:26 , Processed in 0.053413 second(s), 22 queries .

Powered by LR.LINUX.cloud bbs168x X3.2 Licensed

© 2012-2022 Comsenz Inc.

快速回复 返回顶部 返回列表