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

易陆发现论坛

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

Ceph iSCSI gateway 安装和配置

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

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

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

x
使用ANSI配置ISCSI TARGET8 ~* T4 x* S  j# L* i) p3 Y
Ceph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
4 y' o; Y( `% o; h; k8 Z1 C要求:" u) Z4 I( e  `: e; V5 E
正在运行的Ceph Luminous(12.2.x)集群或更高版本
( y1 `% \4 R% S- d: K1 Z- {Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
0 ^7 @8 B* }* K3 h* |在所有iSCSI gateway节点上安装ceph-iscsi package  Z3 T+ ?. L/ G" |: m
安装:% ~' @8 k2 x. @# n1 U
在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:' l: q. U$ p, f* E, Q
1、以root用户身份安装ceph-ansible package:# t$ J0 U1 a- P5 c9 c' e2 I+ R
# yum install ceph-ansible
9 x* c) f& |; t0 C  {2、在/etc/ansible/hosts文件中为gateway group添加一个entry:
9 B! |: f) ^/ V: d- V[iscsigws]
* O, z; `  q2 D- v- _ceph-igw-15 W! f$ n, e& f' `* V& y4 z( A# b
ceph-igw-2& V4 \- Q/ f7 u, A; Y: h
注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。8 }4 J6 Y% X' ?( i& e7 v3 D
配置:
, _% X/ M! V% W; \% E) m7 D5 Tceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。: V) ], z3 |6 Y9 P2 h7 \
Variable(变量) Meaning/Purpose(含义/目的)2 X! L8 D0 U* m
seed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。% _5 r* f4 }$ o7 ?3 u7 |( B3 M
cluster_name 自定义存储集群名称(默认为ceph)
( l5 {! R) J2 Z( X" }5 |gateway_keyring Define a custom keyring name.0 A* \  ^) e3 f$ U! z
deploy_settings 如果设置为true,则在运行playbook时deploy the settings。
- l: v; d0 e+ R  _$ p$ C8 T8 \perform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。& D, z2 v# N( G3 D: L
api_user API的用户名。 默认值为admin。! j9 C  {) o6 O" G4 }, U: j
api_password 使用API的密码。 默认值为admin。
2 b3 e0 u3 G+ H4 L6 O4 g4 dapi_port 使用API的TCP端口号。 默认值为5000。2 [! v) K9 A2 ^! _, m2 n/ H& i
api_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。* P/ d, U0 B5 K' @4 Q1 g- ~
trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。" y$ `7 _7 W8 R$ d, u! r, d
Deploying:
# w" Z: ~" }2 |% _3 c  j在Ansible installer节点上,执行以下步骤。
: W8 S3 Y  `( p" z1、以root用户身份执行Ansible playbook:
' A0 n( ]1 e7 g/ z2 i# cd /usr/share/ceph-ansible, u4 s5 Y: O# i0 j3 @* z. p. V
# ansible-playbook site.yml --limit iscsigws  N! T/ J5 O# b4 x
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。
2 P6 @+ v/ M2 y) i4 ^2、从iSCSI gateway节点验证配置:: c7 \# [# U" a+ v' ^- K) D" C
# gwcli ls: _* c, L/ Y7 M: q' k( x0 [
请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。' }# }: e" c  F/ Q7 Q
重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。% J1 D5 |) y: J# X$ l  h' K5 M
Service Management:: |. K; K6 |. F. q
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服务交互命令。
* h) f6 v( p: d2 z, N. o# systemctl <start|stop|restart|reload> rbd-target-api) `2 B) B) o* ?$ a
reload
# |, y9 O  @, z; _' greload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。
# K3 B* R2 R, \. fstop
4 K6 B" D2 N0 E8 R2 G0 m* m+ W0 Vstop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。6 c$ ?4 Y5 n; y- ^4 y2 Z
Removing the Configuration:3 v3 \2 g; j( F9 W
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:
. y' m  b& k( `+ wlio :7 M( _1 |6 A! n1 B3 z  _8 L) p6 m! p
在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。5 P, v" d4 F: J! m3 y
all :
0 |( r0 l  `- U6 R- I; Y7 L8 }选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。! Y1 q3 z/ C! {0 I2 |  T
警告清除操作是对iSCSI gateway环境的破坏性操作。
0 @- v2 |6 Y3 R1 e警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。1 B( Z( c7 r8 Y3 \; R
[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml
+ s+ }7 n# q* K* @5 @3 j* }Which configuration elements should be purged? (all, lio or abort) [abort]: all! H/ r) P. r+ R2 s$ `* g; I3 ?
( f. o! r. q7 S* k1 B2 x. ]# R) }& o
PLAY [Confirm removal of the iSCSI gateway configuration] *********************
% ^3 O8 _. K* f2 {" Z: a& N5 M- u( R2 s, ]7 T
GATHERING FACTS ***************************************************************
1 ~2 f( v  P* Z; qok: [localhost]
' i9 k. |: [4 a5 M) R
2 P& f( q( ^2 p8 e  }/ e/ ETASK: [Exit playbook if user aborted the purge] *******************************3 w4 L' C: ~3 G# F( B7 w
skipping: [localhost]
. \3 @: t, M; y* F( ^! G+ e6 F' O, @9 p+ N' @, i* l
TASK: [set_fact ] *************************************************************
  m8 ~/ k3 `6 J- [ok: [localhost]
9 Z+ n3 i0 y7 h0 J3 O7 M" ^8 u% I# i0 x) w9 x
PLAY [Removing the gateway configuration] *************************************5 X; t2 Q- L3 _7 y6 p6 r# z
. Y$ ]4 A- o+ @- N
GATHERING FACTS ***************************************************************$ d# _5 k# ]' f- m0 X& X
ok: [ceph-igw-1]8 ]; f) N# ~$ V: G5 S; k# A
ok: [ceph-igw-2]/ v' x) m( Y& ?# ]. K6 Z
0 y9 H8 x0 Z1 E
TASK: [igw_purge | purging the gateway configuration] *************************
2 b! [# p+ R; i' M3 d: lchanged: [ceph-igw-1]
6 y8 Z) K0 i  k1 e/ w; M3 u' Fchanged: [ceph-igw-2]
) s$ O3 R! m; |- x  a( m  V
2 p2 v+ Q8 [% h" rTASK: [igw_purge | deleting configured rbd devices] **************************** j+ g; d! g7 v  x
changed: [ceph-igw-1]+ H# _( V0 ]9 h* l( Z
changed: [ceph-igw-2]8 J' F/ x* ]( g  L# w. j( M9 v: a

1 @% M' m" Z# p) c0 r! z& i$ MPLAY RECAP ********************************************************************
& l8 E; o+ \8 Tceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
3 }2 E% X: {; b2 }ceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0/ `5 y4 v9 e; i$ a
localhost                  : ok=2    changed=0    unreachable=0    failed=0
$ w; C* v/ |$ {! C. J. B使用COMMAND LINE INTERFACE配置ISCSI TARGET# U+ x0 o8 I7 S" l) }1 n
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。7 ]. [1 M& [/ `
Requirements:; d0 t$ T6 P  O+ G6 l, d8 `
正在运行的Ceph Luminous(12.2.x)集群或更高版本) \" I: C! W: f
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本); P* x8 s+ J4 ?0 |% J! V( X0 W
必须从Linux发行版的软件repository中安装以下软件包:
. G' {/ t2 c7 T2 l! Otargetcli-2.1.fb47 or newer package
3 m6 e$ ]* D8 m3 ~* w! A' epython-rtslib-2.1.fb68 or newer package& ]8 D, o0 z, i6 J0 M6 G
tcmu-runner-1.4.0 or newer package/ c% P( ]  z# s2 g3 w1 }( y1 P
ceph-iscsi-3.2 or newer package, m6 z$ E. l1 {; }
重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。
/ p* s7 {+ {7 y8 D+ p5 g在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:5 \/ e; V% o# @) W* W
1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。
2 A9 |2 g6 m) `/ M. k4 v2、安装和配置Ceph Command-line Interface1 I' B) z+ W3 ^. |
3、请在防火墙上打开TCP端口3260和5000。
  [% f9 X0 t# s* ?注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。: u0 K% u6 D2 _- y3 h8 V, l! _* T
4、创建一个新的或使用现有的RADOS Block Device (RBD)。8 n% C8 ]+ L/ y" E8 ]( U
Installing:. ?  ~$ ]" _% O
如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。% A3 Z- ]. ]7 N  U
对于基于rpm的指令,请执行以下命令:
! j. K) H' P4 U4 K* L2 o1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:
0 c$ i* W+ l: J8 s8 L# yum install ceph-iscsi
( m. _/ v1 Z1 X7 C# _- b7 j2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:' q2 _! o" Q0 O- L" R0 X( r2 t' S6 Y2 _
# yum install tcmu-runner
$ c* R& t8 w8 F# eSetup:
4 ~& f3 d1 b9 P9 T- y( Q  q% c1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:
  R) [# `& a9 }3 J% I( r) m# ceph osd lspools
" l3 H. m1 R' ~$ m如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。3 @2 M3 R' G2 ^
2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:- f$ u+ ]  P! G. c8 z5 E
# touch /etc/ceph/iscsi-gateway.cfg1 s/ T- K' K( r6 P( M
2.1、编辑iscsi-gateway.cfg文件并添加以下行:
$ \) e9 h& G/ l/ C0 ], N[config]; x  J- D& E" n; Z
# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing
' `' U/ O: J) _1 w! `/ z/ ]' ^# access to the Ceph storage cluster from the gateway node is required, if not
" d+ ^7 M" L( w' A! ?! e# colocated on an OSD node.$ r: ^+ p. k+ L# H+ ]6 V8 n1 f
cluster_name = ceph
+ |- Z3 i% ]' q" _+ M2 _# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph0 n% \8 H. z* _, P! K* s4 u  |
# drectory and reference the filename here  }% K: E) r, L
gateway_keyring = ceph.client.admin.keyring
' M* }. |7 H. N6 g# j$ w  [+ b' u; P9 }4 c) P: `
# API settings.
/ J$ J* `: Q9 ]( u0 x- e# The API supports a number of options that allow you to tailor it to your5 [8 l6 j" q  I; a% k) [
# local environment. If you want to run the API under https, you will need to9 B$ R! p+ n. O2 X
# create cert/key files that are compatible for each iSCSI gateway node, that is
0 g2 t! b" W1 z, Q; _+ E( s# not locked to a specific node. SSL cert and key files *must* be called+ ?( ?7 w" b; K# W; L
# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory, D: Y; f$ g/ n& M
# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'6 n$ [6 N$ b/ n# W. p( V( X
# to switch to https mode., o% L- i+ J5 m+ D  J+ T
# To support the API, the bear minimum settings are:
; p* @# t4 h" F- Bapi_secure = false! w1 K1 i4 x3 V1 f9 m
# Additional API configuration options are as follows, defaults shown.+ C9 c6 `' `* F- f3 J
# api_user = admin$ K9 Q2 _1 S' K5 p# ^8 J( x
# api_password = admin
1 J; o7 r+ q- ^% s2 N# api_port = 5001; x0 O$ g+ Q- `6 V2 F
# trusted_ip_list = 192.168.0.10,192.168.0.11  W" k: x: N: O: _

) W+ q9 X& @+ F' ^3 {" y# ------------------------------------------------------) R. B9 M6 A$ t( E4 B4 G. w2 m0 ~- C
# 翻译如下
2 O9 r3 g+ p3 j' c[config]
% }$ b. Q% ^' m! d2 p' Z' K#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。
* K$ B% H9 ^0 Q+ `" ^+ Ocluster_name = ceph4 q0 U; l. m- e2 r, M9 }9 z' V: [2 \
#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename3 G: n: a$ W+ o% t4 U
gateway_keyring = ceph.client.admin.keyring
6 e7 d1 p6 `  ^) D6 h, p" Z+ R3 x2 I- q
#API设置。
# v. Z/ T* x# E+ s1 }- e0 u; x#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。
/ z/ y. s/ M/ c3 l#为了支持API,至少需要配置如下:
0 j0 y8 }) @$ H- Z$ E; ?- z* rapi_secure = false0 f, y& j' h( ?' t
#其他API配置选项如下,显示的默认值。(trusted翻译为信任)8 S/ F9 S4 v0 M; g: K
# api_user = admin5 P$ L+ }- J5 G3 d% f9 }, d' U/ ]
# api_password = admin
9 g* R8 p7 X" {0 F/ y- G3 H: f# api_port = 5001* F( L7 D0 K  @8 N; f7 W" p
# trusted_ip_list = 192.168.0.10,192.168.0.11
' E  {+ {) J9 F) U8 K注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。
" ^5 {; U# G0 R" H$ X- J  D重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。4 p4 Q% @( R" J1 F+ ?: \( Q
2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。2 B& Z! U) C: d, A7 l
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:
$ E+ ?+ i! z/ c/ r+ z- Y' R# systemctl daemon-reload
8 s( m6 w9 T% m8 ]- F) V# systemctl enable rbd-target-api; K" N/ l3 `' I* D" n4 L+ l
# systemctl start rbd-target-api
6 A  g, k+ ?7 D& jConfiguring:: M  C. [6 g5 e" ^% Y* M* Z$ t
gwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
' X- l2 C' e6 E  u5 ^1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:0 I4 f  S7 _5 x# ?0 x% [
# gwcli5 ]. V8 [" }! k- n8 I* M# Z
2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:0 g: w. x: t, U4 H1 A
> /> cd /iscsi-target
) R8 e9 y6 @. P& U> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw: B  N. w) @% l9 Q/ B
3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。
2 l$ B1 w, n/ e4 |' R& X> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
' ^) ~6 ]/ k( g, m  k6 \8 w! z> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.211 Q0 U/ H" v( N7 p: T0 j; }! d
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.224 f" d+ R, V; f7 `) a* h( l
如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:8 K; q& A+ x3 W7 L# n  F
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways5 R/ V: z. a; z. V" L  s. H/ {
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true; B1 ^1 r: o2 A! r
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true  @# z6 W+ p( S6 o
4、在rbd pool中添加名称为disk_1的RBD image:
; y) \" H5 n& j7 H# F5 [> /iscsi-target...-igw/gateways> cd /disks
: U" K$ \* g  N. g! P+ K2 g7 l> /disks> create pool=rbd image=disk_1 size=90G( z1 a# k1 T. k. u- u9 b3 K
5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:% }" [) H& `9 D4 ?: M' P
> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts1 b! F) k4 I8 W% }
> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client# b/ d! Y' _6 l+ |/ \
6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:; r1 k+ t) o, Y9 l- ?
> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword7 u' }) Y4 _3 N) ^' y
警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。0 w  _& {8 K9 S0 a
7、将disk添加到客户端:
7 \! j+ x  n( b& x6 C# A/ U* f% }9 Z> /iscsi-target...at:rh7-client> disk add rbd/disk_1* o; ?% m0 c1 L$ @
下一步是配置iSCSI initiators。
1 X1 A! f, M, \手动安装CEPH-ISCSI) i. J- R3 B) I% c9 W9 j; e( ~
Requirements3 ~( T4 p" `0 x" U/ @
要完成ceph-iscsi的安装,有4个步骤:
4 d' ]8 u& w: s6 ~1、从Linux发行版的软件repository安装common packages
: m+ v, t6 u% i5 x2、安装Git以直接从其Git repositories中获取其余packages
% u0 g/ o6 r& _) L, b3、确保使用兼容的kernel
( ]7 q$ u. A4 _" G4 F% V/ X- t4、安装ceph-iscsi的所有组件并启动相关的daemons:
1 ^4 n& [* e0 k5 r$ ]2 rtcmu-runner
" S# W, ?& @; Z+ Z/ {rtslib-fb
" ], |2 J. I" \7 Yconfigshell-fb
7 r8 X# P- ?2 {, ^. Ztargetcli-fb
% z- y& M* z9 t: Y8 J" `4 x6 z) ~) ?ceph-iscsi. K7 l- _$ T5 d' a: ~' v
1、安装COMMON PACKAGES
& U2 s% Z9 R7 K. _3 R) ]+ ~% Cceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
, |6 z9 d8 g0 Y( A& ?/ Qlibnl3$ H- I6 X& p2 Z) A- S
libkmod
4 M$ X1 c- m6 Dlibrbd1/ X8 }0 G% |9 ]
pyparsing) F* n0 {% E6 r! P
python kmod5 g8 l$ x! i5 m9 ^
python pyudev/ K) K4 w& @3 O& x
python gobject+ F! n) C* a! f7 x" ?  n: J+ l
python urwid. Y. a2 U5 Q. D. B8 p+ Y, `& B' x
python pyparsing
6 a  k! [0 N: w! B, ^  N- kpython rados
* g# @! }6 ]( I. N: cpython rbd
& W: n  ?# S% y9 Y4 Q( qpython netifaces) J4 e  e' B0 u6 x. S+ S$ C2 I
python crypto
3 }' _9 C4 Y& U: H4 B3 u! d1 b) Zpython requests; N  d- m" W$ X. t2 n( f: y
python flask# n/ i* y; a, k0 m. y6 Z- s4 y
pyOpenSSL6 P- L8 n, ]- g' P& y1 n
2、安装GIT
% `, u% R( L0 E1 H为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
2 t2 U6 p; N& s4 ~( r1 x> sudo yum install git: d5 w% i, D; c4 j3 T: L$ C6 s
在Debian/Ubuntu上执行:
9 Y. \, f; C" ~  w> sudo apt install git
6 i; x0 K" W6 o7 ?- u" Y/ O要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com) P3 U/ P4 r% N  C
3、确保使用了兼容的KERNEL
/ Y3 |6 u$ ]* B4 z确保使用支持Ceph iSCSI patches的kernel:
$ E3 }8 P* v5 q: D4 i' I具有内核v4.16或更高版本的所有Linux发行版
8 Z+ {. @2 x9 u& {6 x/ rRed Hat Enterprise Linux或CentOS 7.5更高版本
7 G. V7 Y5 e6 Z6 i  }4 Y如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
( l' v- B" O5 RCONFIG_TARGET_CORE=m
2 ^4 D% [. F0 |, d+ LCONFIG_TCM_USER2=m4 o: {' j- n$ K4 N/ l+ A
CONFIG_ISCSI_TARGET=m% M) _0 M0 y5 ]1 T- j( [, ?
4、安装CEPH-ISCSI  {3 k: N/ }/ T+ P6 Q
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务. {7 Y; y5 C0 F: `- Y4 x& K6 t) {) }
TCMU-RUNNER* Z( {! o) w7 S
Installation:! }. ], B" \5 U; c2 l
> git clone https://github.com/open-iscsi/tcmu-runner3 d" k+ u6 }( q
> cd tcmu-runner
4 G* e- G- k+ m5 d运行以下命令以安装所有必需的依赖项:/ K& @9 O$ I4 g0 a* {
> ./extra/install_dep.sh2 P( n% C  U$ I
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:0 ^; w  L1 Q1 ~) t9 u+ ]9 B
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr4 Z/ [" g/ f6 d' V. O2 I3 F
> make install
7 ]- g) |; s" b8 ~- o9 V启用并启动守护程序:1 s4 D' Z: @$ J+ K
> systemctl daemon-reload& e5 g+ _6 z% Y9 Y8 l2 ~
> systemctl enable tcmu-runner" k7 @9 Q2 n9 Q/ F8 X
> systemctl start tcmu-runner
2 R0 _" K, ]3 g  ~) vRTSLIB-FB
8 E* G- Y" l+ X4 D3 @0 \Installation:1 X' O, ^$ P$ t5 U* a. a
> git clone https://github.com/open-iscsi/rtslib-fb.git
' i- x0 d* R" ]) g> cd rtslib-fb3 I5 o3 D! Q. ]0 w6 d/ k3 Q
> python setup.py install" _! _$ E. [: P7 A3 |
CONFIGSHELL-FB+ N; Q. p! W; ~/ w! m9 H. ~
Installation:
6 r0 z2 ?  k" p$ k  [& ?> git clone https://github.com/open-iscsi/configshell-fb.git' g( H; F0 I$ C) E3 J
> cd configshell-fb
" d5 K) E- q5 l( p" s> python setup.py install
, p) y/ ^1 D+ o( C8 U' U& [! JTARGETCLI-FB
* c! Y, }; \6 Y( L! u* C$ |) hInstallation:
; d) b  e  s8 N3 ?$ r# m> git clone https://github.com/open-iscsi/targetcli-fb.git
( G2 j7 C$ L+ W% Q8 K$ Q0 ~0 d> cd targetcli-fb2 J! M- D. u& Z, W- D9 h
> python setup.py install
; i* d, S9 ]. E8 W9 q> mkdir /etc/target( k5 Z2 c7 ]: [) w% z0 d
> mkdir /var/target
# e: C3 z6 a- C# n, a( I2 D警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
* m8 h! R( l2 N$ |CEPH-ISCSI* w5 @- \# n6 L5 I
Installation:
  W5 K5 @% I9 a) P# m  I3 a> git clone https://github.com/ceph/ceph-iscsi.git  o# d  t7 b# o0 y0 s# G
> cd ceph-iscsi( T$ e9 a. v& U. u' C" C4 w. r/ N, a
> python setup.py install --install-scripts=/usr/bin8 N2 l- D9 `: ^1 U$ d1 w; N
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system: `, K. w4 L- s- f: q' ?
> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
% W/ y) J0 [( N) q) L, M6 A启用并启动daemon:* @! }: a# I7 s
> systemctl daemon-reload/ l7 q) c& M( a$ G  V
> systemctl enable rbd-target-gw
0 o" ~3 Y' E7 L# Q* |> systemctl start rbd-target-gw
% g9 z* i/ u# _> systemctl enable rbd-target-api
9 a6 f1 Z/ S9 e  U9 R> systemctl start rbd-target-api8 i1 X& b" F' O# |  x) ?, l% k3 [
安装完成。 进入main ceph-iscsi CLI page上的setup部分。6 e8 e. e2 m/ l0 ]" Y) {
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI: i8 }5 {  t8 i7 U( s9 ]/ F4 r5 s: M
Requirements
( I6 ^! t0 L$ {* A; c. K
& `$ X$ A# Q  F) J* i& t) c1 S2 {要完成ceph-iscsi的安装,有4个步骤:, Y( \3 i" y  Y8 Q( M* B' e, r
5 l2 a' g" x* L6 P* M
1、从Linux发行版的软件repository安装common packages, b  R+ K& B- ~3 s% w8 U, x1 B& {! L
: D% T. s) J( j; P2 \2 B
2、安装Git以直接从其Git repositories中获取其余packages2 }0 U! x. s3 C: g& \- b

- ?$ d' q! e( v2 P9 s6 G3、确保使用兼容的kernel
5 b( t! m, g7 s# ~4 U& P' `/ K1 ^5 P2 V& J
4、安装ceph-iscsi的所有组件并启动相关的daemons:
  `. k7 N0 i0 @8 w3 E# B) F+ K* X6 }% a, [. P% t
tcmu-runner
7 O7 a4 M2 ?; ^rtslib-fb
+ N4 y) T- }4 O# r; F7 V, q' Zconfigshell-fb
& c  x' y" g+ p; x1 B2 F( D1 [targetcli-fb+ Y1 J, N3 h- b/ L9 L
ceph-iscsi
0 v1 x1 S7 f. g5 z1、安装COMMON PACKAGES
; Q" ?5 i" ?7 r  p$ @ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:/ I8 B2 E5 K  _- b* ^& L5 Y3 i

3 ]6 [) L2 V% _$ Wlibnl34 x  A9 q  ?. ^$ U1 o$ X1 \( C3 C- R
libkmod
! J8 }. ^/ g) W7 glibrbd1: J+ r: l4 \  u2 {7 s6 N6 p
pyparsing
7 W2 ?1 E9 q8 q, w. M% _0 q" ~python kmod
, e8 U: D8 I* B- c$ W) D+ b8 Npython pyudev
+ [; |6 y& q6 `9 g' mpython gobject- x4 @2 w. ]3 J. z- f
python urwid: _6 {# c3 e8 C, ]# L
python pyparsing' T( B' B+ _% M8 z+ F
python rados
: A" N% y9 }& t7 D8 Wpython rbd) W3 E. P* `" _3 k( q
python netifaces
+ O1 W; H: M) w3 v! B( Apython crypto* y5 O1 ^3 u2 j& {2 I9 ?) U0 p
python requests2 f& d- P6 j' d4 r
python flask) _$ X8 f5 g1 j/ I' s$ Z
pyOpenSSL
! N+ z+ f3 o3 U7 Z2、安装GIT
: O2 t9 d6 u- b/ f6 K: }1 M为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
$ S0 n( P% U/ @$ G9 l# d
7 A2 A+ r0 G: N0 I+ p> sudo yum install git3 |* Q# F2 q5 d/ Q7 _
在Debian/Ubuntu上执行:
; ]  s. \" n1 }+ k1 I8 l8 z5 d& v+ u/ O" B/ T' a! p- ?
> sudo apt install git
4 s4 G5 Z& Q# l+ H. Q+ n8 w# H要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com+ A; S! r) Y/ J2 `0 q% D+ h

' B# i0 |: l- P7 I4 ^% Q3、确保使用了兼容的KERNEL
: x) k! p3 e; T+ \: _确保使用支持Ceph iSCSI patches的kernel:
; ?7 P' ~- \1 [" _
- Q) y0 ?! k4 `) R) e具有内核v4.16或更高版本的所有Linux发行版
7 }9 Z4 v1 d4 P' GRed Hat Enterprise Linux或CentOS 7.5更高版本8 m2 m. h& `- \3 ?9 E
如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
/ }) H- h2 H2 ~4 r$ p  X: v
$ e% {- H: m; F0 bCONFIG_TARGET_CORE=m
! r5 ?# F3 p- g: B8 `CONFIG_TCM_USER2=m
1 k2 w* c/ c- D: H. K% BCONFIG_ISCSI_TARGET=m4 a4 x# v8 T! H
4、安装CEPH-ISCSI( X7 K/ t! Y0 V3 X7 w0 D
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
( B0 n, a0 p% U
# @3 b* r2 c& `/ @TCMU-RUNNER
. q: A0 E* g, I% Z: d6 T$ o7 ~
5 x9 S$ F) B# {9 rInstallation:
# u9 `$ r$ g, f! ^' G
4 N' N1 v' p2 @) k> git clone https://github.com/open-iscsi/tcmu-runner
( P  R. {7 D8 H> cd tcmu-runner  W' n2 D5 z# L- f+ b% Q# o
运行以下命令以安装所有必需的依赖项:" k9 q# c6 `5 h1 U" a
6 Y( n' i3 B% s$ b7 G, W
> ./extra/install_dep.sh( g0 ~, T& f! R6 R7 A+ B1 m+ t  t
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
7 H4 C% L  [' e$ Q9 V" ]
5 P7 P0 [# E0 l/ U: ?" j> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr# |2 x1 x7 r4 U" x
> make install
/ o; g! r: U! X5 M启用并启动守护程序:" g& K$ z8 C" W5 F) ^6 Y

! b8 M: V" u; g2 S4 ~> systemctl daemon-reload* {/ [: t- l5 |
> systemctl enable tcmu-runner
* h) p0 U6 `9 b9 ]. n: l# k- T> systemctl start tcmu-runner/ _9 M: [$ S; W/ q0 `2 T+ Q, X
RTSLIB-FB
: b  r5 o. P$ k: o" U- v) N& T' n
. R( R# L! A$ I0 R& ]6 o5 EInstallation:
0 w( d! v3 i2 F7 y  V$ C
4 M3 U! F: |7 T2 D& m- F+ M7 F> git clone https://github.com/open-iscsi/rtslib-fb.git! G; P# e1 D0 N- W
> cd rtslib-fb
) R0 f3 M! D# b( ]$ K> python setup.py install
# a3 L% Y9 h$ ^( }CONFIGSHELL-FB
  G& S' ]7 Y9 w, y# O& X$ v, D
  i, d4 v7 {. L; u' aInstallation:
- R; b% Q: q4 ?& r! v, p" A
% W9 d; `# ^' a) z> git clone https://github.com/open-iscsi/configshell-fb.git
: Z5 z/ ]9 |' X0 g" X' ]> cd configshell-fb3 g1 d% T3 i  W. j( b
> python setup.py install" e) H4 V; z- o- e5 r$ U
TARGETCLI-FB, w" M. _: K' C; g4 G4 ]
& D( ~+ ~5 c5 l! d" ^
Installation:. P2 l* M5 ?; _6 e
' V& Q3 e5 L1 K- _2 @
> git clone https://github.com/open-iscsi/targetcli-fb.git5 [* j! ~; K6 z; ^9 f
> cd targetcli-fb
8 r0 [3 i2 A3 O1 x1 c, |> python setup.py install, x9 j5 ?( j8 y. v6 G6 v2 @, w
> mkdir /etc/target
( i0 m/ G' F$ T, c% ~! \- i> mkdir /var/target, K$ H& P. G. B* B- P( k/ X
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
' Y8 ~- K! O2 Q8 y/ `( i0 a
( \; {. ^  L! l, W  [3 P1 ~: [" nCEPH-ISCSI
+ Y' J% g& q1 Z. R0 |! |5 T  vInstallation:
: a3 u9 X' E5 E* R- ]1 J/ ~' `: A+ ~2 i
> git clone https://github.com/ceph/ceph-iscsi.git# l" W9 ^/ O5 T. B# P3 a& y" {, X6 h
> cd ceph-iscsi" }! r+ D$ K5 t3 V
> python setup.py install --install-scripts=/usr/bin& i1 v* u% h6 H* n$ o+ e. h5 J
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
' b& F* \1 d- v! j. S# ]( ?> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
$ b' P# m% w6 U1 H- S+ `启用并启动daemon:
( P2 q: h) e. m6 `: F9 ]  F1 q
+ i6 z8 V! }4 d3 k& o. {> systemctl daemon-reload
8 e0 i3 n6 Y: Y> systemctl enable rbd-target-gw
9 q. Z  F- c* D( m> systemctl start rbd-target-gw" c" z$ o' A6 G) J
> systemctl enable rbd-target-api
2 @9 r2 J) q' r9 V' b> systemctl start rbd-target-api
1 K. @+ D) T7 l0 I& j7 F3 y安装完成。 进入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;
确认内核选项启用,如下:
: D% t. I/ p. ^/ \% g3 T
3.2. ceph集群版本:
注:官方建议 Ceph Luminous (12.2.x) release or newer
实际采用:Ceph Kraken (11.1.0)
3.3. ceph集群配置:
通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。
建议如下配置:

" W7 Y6 I- C  l( Z5 X5 u" H  L
确认配置:
确认名称为”rbd”的pool存在,如下:

; r/ y+ W7 v/ M: i7 e
确认支持5个features,如下:

+ a4 G$ c& h. r1 I( o) W1 z; i1 b/ M6 t! y0 Z: H
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)

4 X. {5 J. h' p* i# V3 m3 v% Z, R
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
    2 e1 E" G8 T( A0 H6 `即: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+ o# d. T$ j: y3 n6 b
  注:rtslib-fb依赖pyudev>=0.16.1

# I, ^6 y0 p1 w  x
4.2. iSCSI gateway节点部署相关服务
, b5 L3 s% F: H
4.2.1. 部署tcmu-runner
, m1 H; c: D0 {9 j' J6 u. c( O
4.2.2. 部署rtslib-fb
# |% Y" e  O  B* b; p/ d
8 @/ G2 B" W4 B
4.2.3. 部署configshell-fb9 }3 Z6 I8 c8 L" j( v5 Z

& F! h: W' B& I5 l5 O9 n
4.2.4. 部署targetcli-fb
$ S$ P, l; r0 {

7 n2 `5 _; @0 x' l& M1 Y/ P
4.2.5. 创建配置文件# F% R6 m) U: @4 a5 Q0 d

4 V. i2 v4 }  g- [; {' G
4.2.6. 部署ceph-iscsi-config( W1 E2 T1 }+ L! G- E
: z1 J8 Q" ~+ V' b1 K/ w
4.2.7. 部署ceph-iscsi-cli7 W  C* R1 B: K
4.2.8. 检查各个服务状态正常
# P3 ?2 z: M* A  b1 f( M  S
首先,检查相关服务状态正常:

1 O4 Y- p- j* ^5、创建&配置iSCSI gateway5.1. 创建iSCSI target
例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
) r2 n- Q: t# _
5.2. 创建iSCSI gateways3 L1 j5 _% p. W3 E
配置地址解析,如下:
其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。
例如,要配置2个gateway。
- a/ X! U# {: }5 T6 q1 O- i( q. f6 o
注意:配置/etc/hosts后,需要重启 这3个服务:

; n$ M9 A$ ?. j! `' d1 t
注意:在2个gateway节点上,要分别确认这3个服务正常运行。
如下创建2个gateway,提供HA方案:

& `9 i0 r& Z+ e, G
然后,检查3260端口监听正常:9 V9 q$ |5 _8 h$ F+ ]2 l. w; F
' B2 O; ?2 h" Z; C2 b( l# P( b  V
5.3. 创建iSCSI disk
" U; x# N$ w" n# Q4 x
如下创建RBD Image作为iSCSI 后端disk:
5 q' _9 _' S# S# e2 x0 _" k0 N
5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。
首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
$ t3 U1 u% J; q, P2 k2 |# N* k3 i
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。
2 v. I" u/ Q+ n) a" g3 v7 s5 ?
0 ^, S5 ~2 }# o) y+ q+ {, v7 q# O8 Q
, Q7 B  ^+ y0 {/ W
5.5. 为iSCSI client配置iSCSI CHAP认证信息
注:建议略过该步骤。
: G) F. `  y0 I# N6 \( V
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。
例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”
3 h2 s, ~) a* @* j$ q2 C' F
5.6. 为iSCSI client添加disk
例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。

" Q2 ~$ y. G; D8 t6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具
0 K( @! X& |7 K% Y3 U" K
6.2. 配置multipath服务; b: t* D/ R( A' b5 s, b! o1 q! F
创建默认配置/etc/multipath.conf,并enable multipathd service。
% k% f6 D( f& {9 g* k# U0 n1 _

) J; I3 q1 {) t修改配置/etc/multipath.conf,内容如下:
- S  p2 V0 s9 F+ u  P5 V( [/ g

9 v- M/ w' H! r; y4 b
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。
重启multipath服务。
[td]
命令:    systemctl reload multipathd

5 ^3 ]( i6 d, a5 ~+ e* v
* g6 `2 t, L/ u: l0 U. [
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

$ }, K) z8 ?/ p, |* A) H/ Y+ I

$ K; s9 p# I% R
) c) x8 I5 V4 N6 q1 Y6.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
! \2 u% ]) z8 \7 [+ w, s

2 D5 i/ V3 x. c$ b0 I6.6. 查看扫描出的iSCSI盘
如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb
9 \% v/ o. j- j9 k8 ^6 P. s( u5 A
6.7. 查看multipath的iSCSI disk(由RBD image映射)
" N( K. ^& Z/ @' ]% q& X7 k7、附录一
Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。
【解决方法一】
# e- W2 `, Y1 }( b% g* g* {
说明:lun.py中不设置qfull_time_out。
影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。
修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py
8 X. o: \- e! U5 Y; l$ k
注意:修改后重启 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: Z6 f$ q( M. @6 r: |2 J  I
设置成不支持ALUA。
修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
; {& X( G  s/ U) b
# A4 E7 }& \4 _7 z, r8 Q" Y2 E
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。
: o( n0 x4 m& \+ E& |4 e' M
, P$ C. \& O. s
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2023-2-3 02:55 , Processed in 0.056867 second(s), 24 queries .

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

© 2012-2022 Comsenz Inc.

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