找回密码
 注册
查看: 5220|回复: 2

Ceph iSCSI gateway 安装和配置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-7-9 18:18:14 | 显示全部楼层 |阅读模式
使用ANSI配置ISCSI TARGET5 B) }; E0 y( S, [/ ~
Ceph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
0 |) V7 X6 ~# P# E要求:
" a4 d3 e- L8 s1 p正在运行的Ceph Luminous(12.2.x)集群或更高版本
7 j0 b3 c7 Q% l( H# M- eRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
$ X/ V- T0 V1 r  C6 `" _# P在所有iSCSI gateway节点上安装ceph-iscsi package
$ \) a3 U2 g9 j! a: e  P! w安装:
" r6 ]0 u, ^/ @! p- s% Y7 Z3 e( j在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:. G% Q2 P3 }' G, d
1、以root用户身份安装ceph-ansible package:* G: v5 N8 W0 P
# yum install ceph-ansible7 K7 I: G* ^. z) Z, M
2、在/etc/ansible/hosts文件中为gateway group添加一个entry:! N  ]* P. C9 H- \/ G) V: H
[iscsigws]' s4 o8 z, m' m7 U/ g
ceph-igw-1
' z. \" U; S, xceph-igw-2. o" D2 u3 _  T' ]- e
注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。6 {6 P/ e! x- L0 s% R" X6 r( ]9 \
配置:& s" ^* U6 x7 k/ t0 [/ @4 h
ceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。) H! S' a) s- r7 z# {
Variable(变量) Meaning/Purpose(含义/目的)
0 S" ~8 J. ~! K; S( B  X2 useed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。
) D2 |4 H' W# g* |cluster_name 自定义存储集群名称(默认为ceph)
% u% \* z$ u$ O5 H6 C; Vgateway_keyring Define a custom keyring name.
) u" E# w: p3 w( L2 Hdeploy_settings 如果设置为true,则在运行playbook时deploy the settings。
1 I& _5 m) Y9 e: x& ?% \! Qperform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。
! v5 a7 `4 a2 g( `api_user API的用户名。 默认值为admin。) `% W. q7 D! a' ^2 ^3 Z  x
api_password 使用API的密码。 默认值为admin。
: W; C9 H+ m8 d% Q/ |8 w0 Wapi_port 使用API的TCP端口号。 默认值为5000。# e0 _: D5 m+ v6 W7 ^+ g
api_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。
! {  W% q& k: R1 Mtrusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。
# i' ~& `9 D6 H: u: t$ ^Deploying:
2 p, Z  _6 s  s. m5 W在Ansible installer节点上,执行以下步骤。7 ?& \& t" r$ c9 J
1、以root用户身份执行Ansible playbook:
& s- F* n: j/ A, C5 z+ ~# cd /usr/share/ceph-ansible
# b3 O1 h# J$ p% l4 y; w" Z9 O% C# ansible-playbook site.yml --limit iscsigws1 B' Y; M3 O# R5 x
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。7 k( ?& O8 W( h8 _
2、从iSCSI gateway节点验证配置:
/ y7 \+ g3 P- a: ]* {: ]3 c$ R# gwcli ls
9 O( ~8 |+ n' S4 o% ~$ `9 V: T) B/ P请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。( Z- k! E3 ~$ ]6 v
重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。
5 q8 Q( [, v5 LService Management:
/ A/ X; v! V$ F) ^4 K4 `" J% Fceph-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服务交互命令。; p- t" T( `* F2 ?* t( h& ^9 A! @9 u
# systemctl <start|stop|restart|reload> rbd-target-api
. w' \  P9 j, C- _7 }) i6 ereload
$ G: F$ d) u" m% t) breload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。, c7 t5 G" g: _9 O4 A" D
stop
6 N, x0 b, e/ B8 f5 [; V# K, tstop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。; Y& J5 m& x2 D8 b- F3 q0 U
Removing the Configuration:* u: C  G( |  G, Y  `
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:/ q4 \% D" H' g* D+ U  d
lio :4 r& y# i3 g( p) Q; w  R! O6 b6 i
在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。# |0 P& t/ ^- z# G6 w
all :% V$ i6 Z# @2 f8 k( I) K: e
选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。  m8 g# ~& E9 i+ K
警告清除操作是对iSCSI gateway环境的破坏性操作。3 f5 S" a6 T' R: ~" _
警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。
: U' @# {# k! p/ @" m0 y2 @[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml9 R! ]3 g; v6 J/ |& w5 w  X
Which configuration elements should be purged? (all, lio or abort) [abort]: all4 \. a' x8 ^$ M

; K6 u9 Q* y# A, q3 O% cPLAY [Confirm removal of the iSCSI gateway configuration] *********************
" d# T$ y; j( K# [, j
$ v, q" ?  u- x0 r0 C2 JGATHERING FACTS ***************************************************************% R, H" ^' I, C' Q2 [
ok: [localhost]
# d7 u( ]/ w' M; b9 L! w6 `2 _
+ r4 y9 a& Y, e5 ]) d9 c, ]" s4 xTASK: [Exit playbook if user aborted the purge] *******************************7 T8 N- h5 ?% T7 \; ~8 }
skipping: [localhost]
1 K+ t) ^; ?  [0 g8 x8 `% Q, O/ w9 x& M. E/ l% u$ J
TASK: [set_fact ] *************************************************************
- T! |3 Z  ?6 c. H$ f$ r: T$ gok: [localhost]
: Y. F6 ^) `4 w$ f, s% p  ]8 p! f0 j) \4 _
PLAY [Removing the gateway configuration] *************************************; ^. E) |3 z: c7 R$ y8 U% g/ c
+ K( M# C" _: h5 a6 n& n
GATHERING FACTS ***************************************************************' `! P5 y* Q5 G$ i% x: h' J
ok: [ceph-igw-1]+ y1 f1 {2 ^; O5 t
ok: [ceph-igw-2]' L# Z4 \9 C2 s6 A. q0 r
' u2 m6 h$ Q$ I3 s* v5 z# B5 d8 [; ]
TASK: [igw_purge | purging the gateway configuration] *************************& i5 a! {# s5 X3 B: B# Q
changed: [ceph-igw-1]
/ k0 e& B0 b3 Q- @' vchanged: [ceph-igw-2]
5 g, D7 {  c7 n& H9 y; z
9 E" s' ~0 M" x7 Q: G: R: ?TASK: [igw_purge | deleting configured rbd devices] ***************************
7 `/ b/ }5 Y* v$ X# n: Tchanged: [ceph-igw-1]7 Y: y- b& A8 J6 t' M7 O
changed: [ceph-igw-2]
* c8 C3 x+ v0 M! e+ l+ r5 E6 J, p. i& b
PLAY RECAP ********************************************************************
6 C! V7 r# \1 Lceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
+ {' O. T! ~4 x. J# g0 b; }ceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0' D( }- w9 ?. s4 \( D* B
localhost                  : ok=2    changed=0    unreachable=0    failed=0# W- h' V9 ~8 ^/ }
使用COMMAND LINE INTERFACE配置ISCSI TARGET. [, v& s& [9 A' X
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。! L7 I% e- G: U5 w) g! M
Requirements:
- X3 C6 s4 ^8 K9 \: U6 U正在运行的Ceph Luminous(12.2.x)集群或更高版本5 d! J& E+ J5 i
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)6 G) d( M9 W) e, ?/ F% u
必须从Linux发行版的软件repository中安装以下软件包:
4 W+ _' V% y. K  qtargetcli-2.1.fb47 or newer package
0 F# U; l6 |1 K( `* R2 rpython-rtslib-2.1.fb68 or newer package
% H0 `4 v  ]1 j( }/ Otcmu-runner-1.4.0 or newer package
! U" ^+ a3 r9 x1 g* yceph-iscsi-3.2 or newer package
5 ^1 V& J# u5 m8 B5 Y重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。
( f* A2 Q" m9 u在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:
; V$ T2 Y" |: U" V8 R& f; p1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。# }  R1 y- t/ d
2、安装和配置Ceph Command-line Interface0 e% L# A; a; Z6 ]% ~
3、请在防火墙上打开TCP端口3260和5000。
/ [4 ~9 Y$ u4 n5 o7 s注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。
, H3 J$ r! f, V1 F- y1 w, L& {4、创建一个新的或使用现有的RADOS Block Device (RBD)。0 K* ]! F: V$ x" @% i9 N
Installing:0 r: p8 z7 T) Z  o7 }
如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。9 L5 H+ _7 d+ J0 v
对于基于rpm的指令,请执行以下命令:
( _8 J7 N* w6 T; S3 W* \1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:5 @$ @6 q2 M* w; N
# yum install ceph-iscsi
+ J7 D: N' s& {1 o6 {1 i. ^2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:' A; U0 p0 M+ E+ G
# yum install tcmu-runner' Y/ F( m% A/ p+ c
Setup:
8 J. E$ I& t" [3 s* u1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:
7 f# o$ n  C" \) e' u# ceph osd lspools& E4 n! K. Q% d- P* Y/ v/ R
如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。
' \, F) q) Z& }9 C& u2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:
9 U: f, X& X) \5 O! k  u# touch /etc/ceph/iscsi-gateway.cfg( L& i; X- ^3 M
2.1、编辑iscsi-gateway.cfg文件并添加以下行:
, l4 a: X# i6 B/ J' w" m3 k[config]
  T0 }: Y+ ]/ A" t+ g" V! \# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing
- Q% e% n' x2 z/ e! k+ b# access to the Ceph storage cluster from the gateway node is required, if not
' o9 G) `  J) w& o6 F) N# colocated on an OSD node., X3 N% ~# h; m3 d% j
cluster_name = ceph
) x, ^. J7 ?# o- B) X' R  V4 ]3 [# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph
( N. C5 |6 [. S1 N& _# drectory and reference the filename here7 H/ j& G+ ?9 P% T- t3 g
gateway_keyring = ceph.client.admin.keyring
, a& s+ H: y8 _0 P% T
7 }  G$ v, S+ q/ B  ^9 \3 f& S# API settings.
" `% Z8 I3 E3 Z" e- y( S$ L# The API supports a number of options that allow you to tailor it to your- f) G9 x# k: q
# local environment. If you want to run the API under https, you will need to6 ^% q, B! V6 J3 V
# create cert/key files that are compatible for each iSCSI gateway node, that is
/ I, I" {% ~$ A( J) g& w# not locked to a specific node. SSL cert and key files *must* be called
6 p) w, W, M2 K( m' Q( c# H  I% I# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory
3 J( h5 D7 n  a: k( s2 @# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'3 L& t% Y* y4 x, G9 W* t
# to switch to https mode.3 v6 S1 q4 d! a' k
# To support the API, the bear minimum settings are:; ~/ T1 X  {  R) K3 s
api_secure = false
( D/ f7 L" A* p% v& m: g3 {# Additional API configuration options are as follows, defaults shown./ k3 M* F: ^- t: e2 A
# api_user = admin  K5 a# K0 n0 g$ j. k4 Y
# api_password = admin  X8 R7 p4 f7 ]- f- T, j- v
# api_port = 50013 S* p" B6 q+ N. I6 j+ K* r$ ]
# trusted_ip_list = 192.168.0.10,192.168.0.11
# j# D2 b& t4 X" |/ |" A% \
( {6 u4 o- K6 l; w6 H/ H# ------------------------------------------------------
: P$ _5 I* A7 Q# 翻译如下$ c" a! F+ O( m* v; b
[config]
; b2 `2 p+ l- q5 P#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。: ?6 f3 p: u% }$ R" ~, `# O& [
cluster_name = ceph& m% g: }9 c  d: H* ~7 P# X( f
#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename
/ ~7 x/ K. r9 p4 B! Q( T% J7 |gateway_keyring = ceph.client.admin.keyring5 q  G1 M8 Q# p( u. v& n* a2 U1 ^: ~

3 Y3 M9 e( b# X/ [#API设置。% U& x! c" w8 {; f8 i1 O
#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。
: P$ J( j( k( N! ~2 k" y% o#为了支持API,至少需要配置如下:; F1 b( M+ r0 d3 s$ T& n3 p' a. C% A
api_secure = false
7 b/ Q4 [+ ^. ?9 ?2 I2 \; E, T#其他API配置选项如下,显示的默认值。(trusted翻译为信任)
+ ?) B% a1 ?: z: B$ R3 {# d# api_user = admin
" Y4 ?  x; D- B6 _# api_password = admin5 Q, A% t/ W! @9 R9 U2 l2 R6 P4 f
# api_port = 5001) z( O, |* j" u# n' I
# trusted_ip_list = 192.168.0.10,192.168.0.11
3 I7 y# O6 P9 @5 V注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。
- y: Q! D1 ^: ~重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。  }# d$ P0 w7 Q/ W$ }
2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。+ M5 S, q' @5 O/ C# A
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:( R2 y% j6 d  S2 R0 k9 L
# systemctl daemon-reload
: i! S1 F" G8 y8 O: W# systemctl enable rbd-target-api
3 `  h+ ~" X1 i& ?" `! [# systemctl start rbd-target-api
! A; A  q# [2 H; y* {Configuring:
( f- G8 `  F% U, Hgwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
0 }) \* m4 w$ J* u0 Y' A1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:
2 f8 H! x# j1 j2 e8 z# gwcli- Z% x5 f% T. v6 i
2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:
& H" m3 \7 q$ c' ?3 v: a) u! i" G> /> cd /iscsi-target: C5 f  U; ^0 ~) G) d2 O
> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
' n1 o! U% S5 S/ m' A' W' O3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。9 T8 ^2 F7 ]5 U: p6 k4 N- _
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways: o' t+ c% b& p% Y
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21' x( y0 |$ o6 D, h
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22
/ |. ?$ i8 K0 O% a5 F/ u# s+ {如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:
. ], O, L8 O  i+ L0 a> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
5 j4 v: u; w9 f% A7 F8 R: P> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true8 M( y1 A$ |  J7 n1 q. s
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true: d" G8 j9 p( ~9 J: _( f0 D
4、在rbd pool中添加名称为disk_1的RBD image:3 a& s) J# X& e0 R
> /iscsi-target...-igw/gateways> cd /disks
3 B1 U) m  Z) f' V> /disks> create pool=rbd image=disk_1 size=90G3 X8 l' P7 E6 R  @; U, T( e
5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:6 ~  F7 ]: u# k9 q" j; ?
> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts7 `( H" N$ J- C( H5 r
> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client0 j- F: M0 c4 ]( K: u/ ?
6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:
( o) V) K/ A) A> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword
, \9 P% L9 s- B3 S" w( i2 J- N警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。3 s) L* c$ A) D4 O2 n1 }' o
7、将disk添加到客户端:
( Y. n9 i4 p' Q0 @" W> /iscsi-target...at:rh7-client> disk add rbd/disk_1
2 H: B1 ^5 Q. y2 `下一步是配置iSCSI initiators。) b3 b1 A+ [* i6 F
手动安装CEPH-ISCSI
. T  m5 r) w" _- t. g! A+ MRequirements
6 z0 _3 T: s9 t9 H* f% {要完成ceph-iscsi的安装,有4个步骤:. c) a; u' n: @+ k  p' M% @
1、从Linux发行版的软件repository安装common packages7 L  S# |) Q, G4 o
2、安装Git以直接从其Git repositories中获取其余packages
9 J3 J2 s! ~( E" J+ z" i. s( ~3、确保使用兼容的kernel
' V6 w1 @0 s4 L9 n9 J8 `8 ]+ ~4 M4、安装ceph-iscsi的所有组件并启动相关的daemons:1 w& |7 J- B! d% Q/ V' u7 i
tcmu-runner& N) m* W- C( I: \. D
rtslib-fb" L! j4 H" S. {6 q5 T+ O( R
configshell-fb
+ G5 Q0 }6 Z6 K  htargetcli-fb
. V/ }# S. [4 d" O0 ^ceph-iscsi
/ g. h  C& y% e, w$ P8 m3 ?1、安装COMMON PACKAGES. t/ D7 C3 K0 j0 P
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
8 e. Y: v% `, }4 b0 Flibnl3% }! O! s: V+ ^$ P; _( m
libkmod
1 Y+ z* _' N/ {" o6 `, vlibrbd1
/ G3 l" M8 D+ f5 n. Dpyparsing
8 D0 Q: _5 s% x! {python kmod
! d+ }# z$ }1 hpython pyudev
! C: e; }+ c$ ~python gobject. e8 Y+ v2 l3 t0 M
python urwid
* ]& x' E* f  L. q6 u) b; z* apython pyparsing
! [3 N0 ]% Y1 A8 q2 ~4 spython rados6 [6 [- o3 K7 w
python rbd
6 z- g2 x% L+ u. N' t! E: n, Rpython netifaces4 o7 {0 E- u5 _' V
python crypto) ?  f. H1 _  S+ u" G8 F* v* }
python requests  @, A. u. y7 t* i
python flask
0 U1 C3 T0 r# X: H3 Q! l' ~pyOpenSSL
( W# i3 A/ `; m, t  l4 c- K- _2、安装GIT
* v2 ~7 [" U' {! _; Z/ F/ r为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
' N2 s8 N9 T( A' c3 K> sudo yum install git; X! e: T" `) C* O0 N) s
在Debian/Ubuntu上执行:9 \$ C; E% i# m7 Z2 Q0 b) g$ \8 u! n. ?
> sudo apt install git( |: O' }# c! h$ y; P, S
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com( ^! M& M* X% D! o
3、确保使用了兼容的KERNEL- T" ~0 {5 @$ J$ C% {1 `
确保使用支持Ceph iSCSI patches的kernel:
% N9 J. `2 f$ A7 {: P% H& {5 M1 q3 b具有内核v4.16或更高版本的所有Linux发行版8 e- K! U$ f' K% o
Red Hat Enterprise Linux或CentOS 7.5更高版本
" G: R( E* D$ B, T2 D' e7 J9 M如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
( H, ?/ a! s4 bCONFIG_TARGET_CORE=m
& P/ }) T1 [" W3 A+ v) {! U% E4 j6 OCONFIG_TCM_USER2=m( {/ [: m' S: |; U' n. X% p# p
CONFIG_ISCSI_TARGET=m
6 e% n! ]! W7 h  k$ y0 r- [4、安装CEPH-ISCSI
' H7 Q, `4 U- W0 m0 c6 }最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
: t. n. q" ~) A9 ?( ]2 o5 HTCMU-RUNNER) d9 V8 u8 x( m8 o- t8 ?8 t
Installation:
8 S8 |0 R) [9 _5 j& i( {> git clone https://github.com/open-iscsi/tcmu-runner
. u: r3 ]% O4 _1 K> cd tcmu-runner- S! i+ I! U6 Z1 Q
运行以下命令以安装所有必需的依赖项:
8 o; u) z. c3 m8 U> ./extra/install_dep.sh0 g! s9 n- u; B
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:0 c3 @) A. E( K( K5 M
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr& n* G$ @# F; z/ d
> make install
, o8 @5 k3 h; K- U) e8 q启用并启动守护程序:
. h4 g" K. N5 N$ U> systemctl daemon-reload
# R$ }4 U6 G6 P& E) d> systemctl enable tcmu-runner
. X9 o# O5 u6 z7 |" U) v> systemctl start tcmu-runner
5 n8 [5 J' w/ }  ^RTSLIB-FB2 n) R1 a5 g, [; {1 v4 P% a% E
Installation:" S5 @, e2 {" Y3 z2 Y. A" X
> git clone https://github.com/open-iscsi/rtslib-fb.git, p" Z/ o9 M& U, y6 U! N
> cd rtslib-fb* q# F+ {4 o' h: a9 m+ A' i) G
> python setup.py install- X7 u' _4 r2 R( b1 v7 D
CONFIGSHELL-FB
3 j- b; V8 H/ m" W9 O5 L, uInstallation:
8 l' O/ C* H) `/ u> git clone https://github.com/open-iscsi/configshell-fb.git) H/ N- R; y$ K4 W: E0 r
> cd configshell-fb
. M: D+ t3 h% Q/ ~1 X> python setup.py install" O5 O3 {. ]) ]; R- M
TARGETCLI-FB
  w+ f8 C, a! D: R- Y6 ^5 cInstallation:
) A/ B2 u" k; A; j> git clone https://github.com/open-iscsi/targetcli-fb.git+ ?" |: N* e% L7 W
> cd targetcli-fb
* e' U! J8 d, s- `0 ~/ T" u> python setup.py install- N8 X3 H- s7 l5 L7 D, w( [- `
> mkdir /etc/target
1 p3 J9 F2 N. y> mkdir /var/target8 C4 H/ Y, |( N2 |0 I, t9 k; [
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。" w  W# x% Z( W& K/ C/ L( n
CEPH-ISCSI, m) t+ _  T, R6 H
Installation:
+ b- O! \. @9 z, V6 A> git clone https://github.com/ceph/ceph-iscsi.git
3 N/ E; F' y; I  N# I4 i> cd ceph-iscsi5 g" l$ F$ b: m
> python setup.py install --install-scripts=/usr/bin
" V8 \1 }- }7 g! K% B) U> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
5 y/ ^/ ]5 d1 w1 m6 l) v% u) W> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system/ V* X* q% D* {
启用并启动daemon:& k) k8 i5 g3 r: A  g' W& d6 J
> systemctl daemon-reload
2 k" l. j4 _( a> systemctl enable rbd-target-gw# y4 t2 G% S* k5 F2 B3 q5 Q1 z
> systemctl start rbd-target-gw8 C! d+ `; F( ]5 n6 K  Q
> systemctl enable rbd-target-api
; _) D) t5 z) _: f0 B( t7 H> systemctl start rbd-target-api3 ?3 F0 X* j6 h9 f, M: o9 X9 o
安装完成。 进入main ceph-iscsi CLI page上的setup部分。: F- `# J. ?& _( s5 K

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI
( w, |/ S: M, A, g1 YRequirements. n5 K- [& U( C! ~6 ~7 N
, S% c9 Y; \2 f6 w
要完成ceph-iscsi的安装,有4个步骤:
! a1 Z4 Y. x$ r8 ~" B$ `
# J- J8 w! e! ^6 a1、从Linux发行版的软件repository安装common packages. w; J1 U0 _( d0 s/ V
) S& _1 t* Z4 u' E6 G: W6 j# W' f
2、安装Git以直接从其Git repositories中获取其余packages
$ i. f5 u6 m" I- ~0 x! @! U# g7 X0 X; z8 {- \
3、确保使用兼容的kernel
( t2 S; I+ A' F; [
' T+ J8 M$ p, d/ i4 e4、安装ceph-iscsi的所有组件并启动相关的daemons:/ x- ?$ q+ N8 i$ n6 g

- m8 o% J) L8 e( D/ M( f# ftcmu-runner6 O& I, k' m" T7 x* n
rtslib-fb' z& H5 h  m+ ^% K4 e: K
configshell-fb0 x. Z$ H. z1 z& G: @4 \( Z4 \
targetcli-fb- T3 R; Q9 A1 d4 |, I- R5 J; X7 ^
ceph-iscsi
  C! }( l8 @. u' d1、安装COMMON PACKAGES3 [- v. K( W" ~& ]
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
( }9 E- T# a7 t9 U7 p* O# ~' w( B- r" C
libnl34 e  n1 I* Z7 M5 M% M4 j. X" n" V' i
libkmod& G' o! v* \, Q4 ~! o7 _
librbd1
6 g$ I" e/ g) l" h0 jpyparsing
" Z* ~: G$ y# r  ?4 f( t! o% {3 tpython kmod
  M2 k; @5 V9 u! M. k! H+ m' L$ Wpython pyudev- g& e1 }% c. ]( H; i
python gobject
/ x! U/ k) M+ y" P; u+ Bpython urwid
* i" e5 Y. Z2 wpython pyparsing2 d- W3 m% x# t
python rados
/ @' S& S' g, [8 tpython rbd
6 w( l; k- n) p' O$ [3 u$ epython netifaces
9 |2 ^1 B4 t, [) {" K0 N# \/ F0 u" g" X. Ipython crypto( m0 n# E# c4 W& p" h* l2 Y6 u* P
python requests
6 }% D0 W0 w; ?- K  ^' ]' tpython flask
/ I+ U. Q2 D2 x  ~0 ?pyOpenSSL
& u; T! y& }; o2、安装GIT7 h2 J( n; T) y7 o
为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
. f( L$ b8 ]0 M
; a8 m: a2 q8 [- T  O6 E> sudo yum install git
" |# ^/ p+ r( S5 w) Q7 V在Debian/Ubuntu上执行:
2 K; o5 O# y1 a" Z
, T. v7 e# Q7 z8 C* s: A# M> sudo apt install git2 m3 @  b) Y& T5 y9 j' S
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com
5 i8 |$ G, T; M$ p! O+ d' V$ c% }0 h4 S
3、确保使用了兼容的KERNEL
# L  w9 y: t9 X; t7 R# V确保使用支持Ceph iSCSI patches的kernel:
, \$ v1 V: F* P; z3 w) F- p* u1 K3 {$ @+ ?& g$ A1 Y9 N
具有内核v4.16或更高版本的所有Linux发行版3 E, \) r* J, U$ L- D1 i
Red Hat Enterprise Linux或CentOS 7.5更高版本
2 N, e7 {5 H6 h$ V3 u$ m: ^8 D如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:) w5 g9 t8 x% j" T" t' c

7 t3 |6 U5 f- @CONFIG_TARGET_CORE=m7 }  T' o' x/ ]3 {1 V9 H# x
CONFIG_TCM_USER2=m
. T" W- Z9 X; M/ Q2 RCONFIG_ISCSI_TARGET=m
  i9 I. v) G3 B3 r4、安装CEPH-ISCSI
, D( U# j9 K* k! ~+ G" p6 N  s最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务9 t3 R% o0 e4 U  R/ n, {: _

6 s5 R! S' I- g$ V7 J, C! C1 \0 pTCMU-RUNNER# K; _! W3 B, G3 v- g1 L/ @

& `0 o1 f' G* q3 h1 _" D* }1 [Installation:5 y  {  ^' C; z" h% y& c  i0 l

; ?6 |! U2 f8 D3 e4 D8 Z/ K. d> git clone https://github.com/open-iscsi/tcmu-runner9 r3 F. C" m& Q2 b
> cd tcmu-runner
( q' Q  j% z0 C+ e+ ~: F' W运行以下命令以安装所有必需的依赖项:) l: a* \2 f9 S" U2 X

% N, Q% P7 [4 w! l( @> ./extra/install_dep.sh7 Y3 G! C4 K  O' o: D
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
/ b2 f: o$ B$ J
4 A4 p$ `2 a8 Y> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr
, V: c/ Q# r- {2 J& s$ h! U: v> make install
* F# S' U( g1 ~6 \" Q$ a- j启用并启动守护程序:# [- V8 R# ^. g- L0 k0 r& O

/ Y" d' \: k. i1 H5 w( S! \> systemctl daemon-reload. r8 \- {6 h+ l3 D* ^  w* q
> systemctl enable tcmu-runner
, R( ^7 U/ K8 z> systemctl start tcmu-runner
; \) L0 H* b. ^% }  x6 w7 ZRTSLIB-FB
6 l3 c. B, B0 I- J! v  M" F! V3 i! u. @  ?) x2 f( f) c
Installation:0 Q& ?6 t1 K0 X% _

. w' u; }; L- m7 v> git clone https://github.com/open-iscsi/rtslib-fb.git
3 y1 v8 m, k( Y. I( d> cd rtslib-fb; u, W" }% b$ p1 e/ v& s
> python setup.py install
1 J. B' l. p+ G' F) C% {% KCONFIGSHELL-FB9 r4 E2 C$ }0 r" ^/ d) z
6 f" n+ Y! h. s) W* U7 O
Installation:6 S, S6 t' L. `0 R

$ u. R6 ]" u( O) ~8 c4 l3 A0 Q> git clone https://github.com/open-iscsi/configshell-fb.git# I9 G- K" Q% z6 ?+ \
> cd configshell-fb/ a+ v( ]" `5 v1 g
> python setup.py install1 O$ Z2 H; U  `: d
TARGETCLI-FB
4 J/ t6 x1 o( j; C+ n) Y0 u
* e$ O9 C' U+ e  n# EInstallation:. N# H+ u4 d4 C" I
9 X9 t* y1 F* V+ S
> git clone https://github.com/open-iscsi/targetcli-fb.git- R* o" V( S/ M, M$ x
> cd targetcli-fb
/ Q1 X  ^6 x4 `# D" H, g. _> python setup.py install
9 b& M' m1 y5 ~3 o> mkdir /etc/target
1 R& V3 Z: c% \0 i* _% d> mkdir /var/target
* T0 L; e* `" Q警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
9 h% H& y3 f9 W# n) X- A1 B0 H1 T) O% y. Z( ?, z
CEPH-ISCSI% B4 W* e+ C# _; V, u8 g7 J
Installation:
: D# {3 d# L( j1 B# T& S% n! w$ m
> git clone https://github.com/ceph/ceph-iscsi.git& E) f2 }# x8 @: }" A# r3 r
> cd ceph-iscsi5 L# e. V$ ?& D  G
> python setup.py install --install-scripts=/usr/bin
6 x4 P3 ^0 W$ W% K- @, H6 w> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
9 M* ]" F. q* ^> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system$ b. `. P" `- ]1 b- O- F
启用并启动daemon:5 r# K6 o/ B+ W

5 S( j0 ]. k% y2 }> systemctl daemon-reload
$ L( h2 N7 F& ?7 H" I> systemctl enable rbd-target-gw
! c+ V3 ^* a6 O* E) m- T> systemctl start rbd-target-gw, X8 ~" e' B5 x0 Q  l/ g1 F/ t
> systemctl enable rbd-target-api
; J6 _3 ~' P9 l7 O> systemctl start rbd-target-api1 q8 y/ h  v. q
安装完成。 进入main ceph-iscsi CLI page上的setup部分。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 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;
确认内核选项启用,如下:

' 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- i
4.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 m
4.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 X
4.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! N
4.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 D
5.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 l
6.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,及时返回失败,不阻塞。
内核patch:qfull_timeout : 参照http://www.oscube.cn/blog/page-11/
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:04 , Processed in 0.096826 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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