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

Ceph iSCSI gateway 安装和配置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-7-9 18:18:14 | 显示全部楼层 |阅读模式
使用ANSI配置ISCSI TARGET
8 \  ]/ C6 G( V( W7 D, NCeph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。1 Y; y) D3 \, ^* o  c) m
要求:6 m4 ?, Q& B9 z& A' O6 |( l/ @( k
正在运行的Ceph Luminous(12.2.x)集群或更高版本
$ O% g) e. M0 o4 ORed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)/ j  N' U6 M+ l9 K6 k
在所有iSCSI gateway节点上安装ceph-iscsi package
! d1 s/ i; M5 t. @+ N安装:
! n5 s* p. e2 j" \在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:" W* j1 r8 m% ^9 U( {' k# p% T: E
1、以root用户身份安装ceph-ansible package:9 q0 g+ f$ w/ Z) V' ^
# yum install ceph-ansible; v* E- n3 s; a; F1 G& x$ h3 p% I
2、在/etc/ansible/hosts文件中为gateway group添加一个entry:6 A! L2 s. R7 l+ ?2 d% R
[iscsigws]2 ^( |8 @; x9 k/ @: _" p4 z
ceph-igw-1
5 C( t5 o! O, n. W4 r: L1 [" Pceph-igw-21 Y6 J6 t. u% c
注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。
5 |8 \8 m( W" ]/ o) b2 w配置:8 q* W7 w( ~* c& I) ^
ceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。
- f- _2 }+ r' ?- K* h8 ~9 xVariable(变量) Meaning/Purpose(含义/目的)4 M6 Q3 v0 U4 k9 s
seed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。8 V) e& V: r; N  W% f3 _$ g
cluster_name 自定义存储集群名称(默认为ceph)1 B% H2 J) Z7 Y0 a
gateway_keyring Define a custom keyring name.) j/ w8 S. O7 c7 V5 l
deploy_settings 如果设置为true,则在运行playbook时deploy the settings。
3 j6 l' ^) @+ Uperform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。  b+ g% [6 G  @' ~* e' q
api_user API的用户名。 默认值为admin。
' d8 `0 X* S; zapi_password 使用API的密码。 默认值为admin。8 P* P% U/ q( P/ B. z1 P+ J2 y
api_port 使用API的TCP端口号。 默认值为5000。
+ |1 U9 M+ @5 Q7 B& yapi_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。+ c$ V- }7 F2 Z5 k- Y  r6 k) p
trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。
. F# l1 @3 g" S  PDeploying:% X- y' U2 L/ \. B/ V! I, b  H, E& m" v
在Ansible installer节点上,执行以下步骤。% f4 S4 J' b- b: i8 f' P
1、以root用户身份执行Ansible playbook:" }" }6 S- C% k; t8 |" h
# cd /usr/share/ceph-ansible
) K$ q+ t0 K( k; U) ~$ r( X# ansible-playbook site.yml --limit iscsigws3 Z5 Y+ e" c$ S* M# Z" b0 W
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。
) F( R* l9 ]1 Q' J  R. [2、从iSCSI gateway节点验证配置:8 p% o- R! P# `1 A* P% J% @
# gwcli ls! Z% k9 ?% n7 q9 |3 Y
请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。
0 U% p5 z) `1 R1 R1 R重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。
6 M) \% u* j5 k: }2 [0 o+ w. fService Management:
7 G, c6 X/ I# \& x3 uceph-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服务交互命令。6 |3 @' w/ e; m1 R. f- [+ H
# systemctl <start|stop|restart|reload> rbd-target-api
, i* s9 P- a8 Q) ~reload/ v$ A" F1 K/ |/ m' m+ k5 M
reload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。
* s( h" `  N$ j/ v& n: [$ Xstop0 {7 ]5 ]' _# Z/ Z9 p
stop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。1 l: I1 N# h) z$ ~
Removing the Configuration:4 l' j/ m& u) N" B
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:: R2 ~! `8 W0 r/ N; z
lio :
/ S2 @5 `$ [; W6 {- h% E* L9 H在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。
+ v+ o% [2 x8 m6 L) t  Hall :0 u) c8 Q! p5 c
选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。
" z; `# ~" ^: s( i5 O% h# m! Q$ _( G警告清除操作是对iSCSI gateway环境的破坏性操作。! [* V. ^* @  V, [; d4 E+ G: y
警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。, h. `. Z1 g7 k3 D( \+ V
[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml6 ?9 A0 L  n! P, N% \) I1 v; O  }1 R$ z
Which configuration elements should be purged? (all, lio or abort) [abort]: all
! M8 D# O9 }9 S
3 }2 l: a8 P+ p( \9 g9 ^8 rPLAY [Confirm removal of the iSCSI gateway configuration] *********************" k$ q. g. D6 v! N

9 L1 a- v6 A1 H$ `0 ZGATHERING FACTS ***************************************************************" z6 u7 i' L9 R3 a" x
ok: [localhost]
9 |% U) E# o0 T# `) w9 R3 e5 s
" v# }2 C# t5 A$ ~$ DTASK: [Exit playbook if user aborted the purge] *******************************
% y% `+ m" M5 i8 rskipping: [localhost]7 P' G" Z; Z$ O. \. |

% x4 j/ M" k  V2 g5 D  y( m" hTASK: [set_fact ] *************************************************************9 j; P  d" b' L, _
ok: [localhost]" B: q# r' t7 U4 F( i$ ^
, U4 r9 Y6 r6 K- s2 ~( E. o
PLAY [Removing the gateway configuration] *************************************) z( D( b0 i( K& K! c  X

3 t5 U9 \8 M$ n( q4 J* cGATHERING FACTS ***************************************************************+ u# p5 J6 K* o' E( G# E: b
ok: [ceph-igw-1]
; f" b: N: Y: l9 L5 ook: [ceph-igw-2]5 a; w9 v3 Y: w8 r4 D" p- Q5 y
3 m" M% `6 j& ~: Q' F, E2 _4 p( I
TASK: [igw_purge | purging the gateway configuration] *************************
) r: t  M3 j* u* R. N1 Kchanged: [ceph-igw-1]- M7 y* H2 a/ C& W  ^; l
changed: [ceph-igw-2]
: [# c% I1 q4 [* x8 [4 y9 R5 D
8 W% G- K! _) w- E  iTASK: [igw_purge | deleting configured rbd devices] ***************************; D) E! C+ m7 F# y
changed: [ceph-igw-1]  T1 }1 ]% ^) Z5 Q+ }  Y
changed: [ceph-igw-2]
# X" `  p+ U! u& b3 g6 {4 z3 \8 F# v
PLAY RECAP ********************************************************************. S/ K5 c' V& ^! ^4 J
ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
9 G: N5 P: j+ m8 T, iceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0
3 y+ N3 K# K- Q( W) Plocalhost                  : ok=2    changed=0    unreachable=0    failed=0
6 b+ @3 R) T& x. ]. V  O使用COMMAND LINE INTERFACE配置ISCSI TARGET* E1 J- g, k& Q7 Q* Y8 Y/ `% x
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。0 q8 P( r4 w) {' Z: _
Requirements:  M- i* C" n* `( k5 S6 `  x% A$ ]" H
正在运行的Ceph Luminous(12.2.x)集群或更高版本0 a- Z: [6 T* D) W) T
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
4 J; ]8 x; ]! {7 j; Z! C% s- ~必须从Linux发行版的软件repository中安装以下软件包:; p% _1 q6 s  d$ ~$ M
targetcli-2.1.fb47 or newer package7 E4 S% J# H- `4 y" f3 i, K8 w
python-rtslib-2.1.fb68 or newer package
+ g1 P/ J: Z2 E7 s3 g* }tcmu-runner-1.4.0 or newer package
- A& C; q; v7 xceph-iscsi-3.2 or newer package6 E0 q4 w1 X! d6 k- c
重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。
8 |" V7 c3 c4 w) l4 A# r/ x0 u在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:
0 J9 W7 p( G9 y9 @6 ?7 s7 h1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。% P. k/ S( L; S- M% o. L
2、安装和配置Ceph Command-line Interface
& U& K/ p% L- H$ p/ l3 O3 ~' |3、请在防火墙上打开TCP端口3260和5000。
& b7 s1 W$ O  `1 Z5 B2 z& w注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。3 M* @& N, e+ \: H# ^* K
4、创建一个新的或使用现有的RADOS Block Device (RBD)。% l" J  F, j7 ^4 W& n) p
Installing:" ~, D# b- M4 U% Q6 @9 s
如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。
4 {- c* v+ J) k5 D! P对于基于rpm的指令,请执行以下命令:
: x# x8 |) [. ~1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:9 T& a1 x3 `4 I5 K
# yum install ceph-iscsi
  O( X1 U  P) _$ k; v2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:
$ p/ d9 K; g6 s& q' e# yum install tcmu-runner
& j5 r: G4 }; D$ g  r; _Setup:
  p: E  b0 w1 o) P& z3 C1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:" d; [! L4 I- b- f$ x: g5 i
# ceph osd lspools
2 X5 G7 j( o# g如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。
% t% L4 ^$ h7 E0 j2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:
3 ~! y& m& ~/ u. q2 I# touch /etc/ceph/iscsi-gateway.cfg
* [2 ~& i4 Z2 k; a  |' r2.1、编辑iscsi-gateway.cfg文件并添加以下行:/ m9 ?2 s. g! L- P
[config]1 j% f; n/ v. v5 d" X1 g8 I
# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing; Y+ F; ?" f( g- i$ @; V
# access to the Ceph storage cluster from the gateway node is required, if not
2 F2 h6 Y" u- a7 b9 f) U( f4 a# colocated on an OSD node.- e- m+ V- I' y' v5 x6 ?0 H
cluster_name = ceph
, L4 R+ L; x7 f9 c3 |# m# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph4 e  E  |8 t3 g" D8 f2 \+ x( e+ N/ |
# drectory and reference the filename here
4 w# A4 J+ _/ W( \gateway_keyring = ceph.client.admin.keyring; X& Z' k; c! U0 W
# E& I8 x4 z+ |9 o0 P$ ]/ ~
# API settings.8 ^# W" k0 [4 g. j4 n/ r2 }+ M
# The API supports a number of options that allow you to tailor it to your
% q0 J; T! ^5 [  z: l* @2 R# local environment. If you want to run the API under https, you will need to2 v* p7 m) _) c
# create cert/key files that are compatible for each iSCSI gateway node, that is
1 x% G/ D! x. }5 U2 N1 k# not locked to a specific node. SSL cert and key files *must* be called
+ D* x2 P$ q9 @) G+ s8 x- R# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory
9 G# ?" x/ c! e9 A6 h2 g# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true', {7 W* ?% ^) H+ l6 l' o
# to switch to https mode.) k  Z/ J" i; ]6 [8 h' O
# To support the API, the bear minimum settings are:* D3 _8 c- y' O  e
api_secure = false2 C& v6 G, C- m# k4 f
# Additional API configuration options are as follows, defaults shown.
% N9 J; e0 m" n+ s, F$ }# api_user = admin
3 M# q' `9 s+ C# api_password = admin
# S7 n2 s2 ]) t+ U( g# api_port = 5001+ b  D* h) G! ?/ p; E3 C3 `
# trusted_ip_list = 192.168.0.10,192.168.0.11
  q, a; T& I5 |6 k/ S! O" [6 u7 F( b  z8 b6 w8 Z% w# G
# ------------------------------------------------------! l. L& k& Z0 g1 Q+ X9 ~# [: e! h; I
# 翻译如下& Q/ q$ E/ {! i* T; g( o
[config]( x8 H/ U2 O- C# |- U. R
#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。
$ @' {+ W- ]8 Ncluster_name = ceph
% t2 b' F& n& Y( ]& E#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename7 v# O, P1 `* ]0 f
gateway_keyring = ceph.client.admin.keyring7 M3 R( Z* g, a: C* ~" i  ]
9 `  b! J# P/ ~) @4 g5 C9 |# s$ k. v
#API设置。
& [% Z+ }$ e: {8 B#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。% p8 B! Y; M/ X# |; f7 c
#为了支持API,至少需要配置如下:
9 |% A* J/ P& C; I3 gapi_secure = false
4 ~1 e2 S# W$ C6 G9 r0 J( I#其他API配置选项如下,显示的默认值。(trusted翻译为信任)
4 X4 ~5 |% \8 ^7 X1 M, G# api_user = admin9 n4 n& Y5 p' Q) D' \4 ]1 `& Y
# api_password = admin
% `  V% b% `+ m  }# api_port = 5001
. }7 E" D* _8 i+ |; q" P/ A# trusted_ip_list = 192.168.0.10,192.168.0.114 }; y* n' N) v9 f+ Q$ J
注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。0 I, Z* @, F7 F( L# S
重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。% g& d+ _7 |3 \! ], @
2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。' Y9 m  W) O3 S& L- z+ C
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:8 \3 j" Y( V7 A4 C) f
# systemctl daemon-reload
9 d) i+ D- o8 z- w# systemctl enable rbd-target-api% U% Y% D! J% U( i4 h# ^- B8 P
# systemctl start rbd-target-api
) s, B7 z8 q% \7 t' NConfiguring:, R: {$ [! h, s$ Q; ]2 |4 U
gwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
; Y5 P3 I- R& F" Y4 F: S1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:
5 M' O5 b1 z4 r6 f* [6 f# gwcli, W3 D' J, o+ P
2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:
5 z" A: W% D8 `> /> cd /iscsi-target% B4 {: v9 q9 |# p( @
> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw: ?. i. K. y/ I" F3 T- G3 ~
3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。
+ |' J% @$ O: o1 N" D" K. k1 b& v  ^+ W> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
4 r/ b# _( Z  Q: [  p> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.214 z" x$ Q# Q$ J' {. z+ M& R9 Z$ h
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22& c; M( m% v" u# e; w
如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:
, q1 b0 I" @8 U% j4 z* ?; [/ E> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways* |, i  B, O+ z
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true
6 `! v' Q0 X- ^3 a, D> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true/ p. v+ K' J. D- B" K  X
4、在rbd pool中添加名称为disk_1的RBD image:
% Y/ q! l( o* n  t> /iscsi-target...-igw/gateways> cd /disks
+ K# w6 ?! B# o" n, M  a> /disks> create pool=rbd image=disk_1 size=90G/ t+ e7 L2 {# {2 f( S  S4 p% Y
5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:
" G! t: Z3 B, a( X/ ~5 J' x> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts& F, M  `0 g# d2 g
> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client
5 {4 D! t) S9 e3 z. p6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:
* Q/ ?6 \- c. V) E2 o> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword' I( u1 j1 y7 G  B" V  }) s% a
警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。
  `: x4 F  K7 w9 c7、将disk添加到客户端:3 \# E6 z% P3 C5 Y& C4 ~% ^8 g
> /iscsi-target...at:rh7-client> disk add rbd/disk_1
8 X5 U9 o% _  d下一步是配置iSCSI initiators。' S1 g7 @2 g4 m9 [  @1 e! \* T
手动安装CEPH-ISCSI
# w( H# a0 @) @+ FRequirements
9 x3 V# @  u7 W& l! \9 m要完成ceph-iscsi的安装,有4个步骤:
. _/ q6 p, O5 G/ X4 G3 U9 g1、从Linux发行版的软件repository安装common packages
* A; Y9 W. {6 N0 w- R  y  U2、安装Git以直接从其Git repositories中获取其余packages
2 E- k8 j5 A  h5 X3、确保使用兼容的kernel) @: w0 t' `8 S
4、安装ceph-iscsi的所有组件并启动相关的daemons:
# j/ t  P+ t. Y5 U! ?" o' R" Ntcmu-runner
2 M( U) F: M$ brtslib-fb' e" N/ E" r0 @* p' }' t# m
configshell-fb' ]( Z, t$ b3 ]& @/ L# C
targetcli-fb
/ r" E4 _8 M6 b, P5 b4 e' i( H$ r9 I5 Mceph-iscsi5 L4 P3 I* m8 S8 E  E* ~7 e8 ]! L* |+ Y# v
1、安装COMMON PACKAGES, N3 s# E7 d% p. r
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
: u, I; {6 S2 r( H0 Rlibnl3( B2 o5 R8 I4 i9 p3 ]- m3 y
libkmod+ h# w: O" k4 w4 W  ^- S2 ^% [
librbd1
. E5 Y1 z+ J1 Q) r" N2 {5 P& ppyparsing
4 j( v/ N8 Z: Y3 bpython kmod
8 b" ^/ ^7 U$ u2 Q. dpython pyudev9 k% p6 a; t2 Q! k% Q0 z
python gobject2 C$ J; v$ u: r" ^6 J+ W/ [5 d
python urwid) \$ Y+ Q3 X+ c
python pyparsing/ R" D  |4 E- ~, m2 f
python rados  N* ~/ F- K# z- g; ?$ x
python rbd
6 X% I* L( c5 Q5 Ppython netifaces# F; _& V6 @; F# e  J3 T8 N
python crypto
, }; h/ H# N1 I- l1 x; P2 r' vpython requests
# _: R! ]" C( x! Xpython flask
: u4 N" F! G* HpyOpenSSL8 v# _) |% x; |
2、安装GIT. ^& @' [1 \6 H0 o
为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
# a, n- l# u" Z5 N> sudo yum install git+ }9 d. c* N  E( K. `. e4 R
在Debian/Ubuntu上执行:6 S( L/ u- u) u+ B
> sudo apt install git0 r" a/ A4 J% _2 O
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com- v# r* S  U/ E/ J- e
3、确保使用了兼容的KERNEL2 e5 H# O0 }- I% x/ u) d$ {
确保使用支持Ceph iSCSI patches的kernel:& \2 g  ~. k. I# a3 w  y, C
具有内核v4.16或更高版本的所有Linux发行版
: B& U, |6 j3 U8 p% Y3 s# @Red Hat Enterprise Linux或CentOS 7.5更高版本
# a' G" Y1 h, _& C如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:1 n2 U: s8 u8 j
CONFIG_TARGET_CORE=m( d/ o3 @% o  G; i$ Y
CONFIG_TCM_USER2=m. j7 R, h6 |: `! P2 x+ o6 z
CONFIG_ISCSI_TARGET=m
% ~7 [7 d3 P/ Q7 b5 y  C3 [, k4、安装CEPH-ISCSI* s) t& }# W1 k
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
" d) W; L0 G4 m6 a% jTCMU-RUNNER
& }9 `$ S" b" p( t1 t/ q) ^Installation:( |' c" w! b" _3 @+ z$ Y, W2 }
> git clone https://github.com/open-iscsi/tcmu-runner3 t2 G5 C4 D$ E' c1 {( s
> cd tcmu-runner
) u5 k" ~$ b& t! L1 w运行以下命令以安装所有必需的依赖项:
' u3 f, x' e* C" w> ./extra/install_dep.sh0 I- S  [/ {6 g
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:5 r+ s( h: e7 _+ }2 Z0 X
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr
5 ?( R0 B4 M- W- O( C( X# N8 l> make install
  Z$ A3 F2 h; [4 @% R3 u  S( W/ I! s6 ]启用并启动守护程序:
6 E8 v+ _3 }/ ~7 D$ v' x& c> systemctl daemon-reload
: m( s; w- m0 y& p/ r- A> systemctl enable tcmu-runner
+ }- |  H9 l( {: L9 W/ f. L9 r> systemctl start tcmu-runner+ [; z/ g, ?0 B" g4 ~+ q1 L
RTSLIB-FB. k3 C; h1 P! B$ g1 J+ E1 l% ]
Installation:
( c$ \5 {, x/ f9 K% Z+ L2 F* u> git clone https://github.com/open-iscsi/rtslib-fb.git& t: L2 c9 i2 D3 V, ~& b. ]4 G
> cd rtslib-fb3 o: B) T0 d3 R
> python setup.py install
1 J$ g+ P$ [0 }3 O8 eCONFIGSHELL-FB
  [) _1 y6 N5 n% [Installation:
  F6 z( w* t3 n> git clone https://github.com/open-iscsi/configshell-fb.git
5 N$ T" [* z5 k$ q( W> cd configshell-fb
3 N8 s) x: i2 J& J4 X> python setup.py install
: }; S! t# s! u# w. U# GTARGETCLI-FB
0 I; m8 {( O# Y1 i. _5 u: \' k$ L) pInstallation:3 j2 ?4 X- B6 M2 G: u
> git clone https://github.com/open-iscsi/targetcli-fb.git3 T! d7 B0 }$ n" _/ v4 A* `
> cd targetcli-fb, N& F8 R/ J* a% q& D
> python setup.py install$ I& ^% T; l2 `! w& v
> mkdir /etc/target
; A/ e3 P" p* H  g8 O$ a( y" e> mkdir /var/target; q; x* Q4 C) o
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
6 C' ?5 S& w) ^) OCEPH-ISCSI
7 H; Y  X! V. R7 |8 k( d2 F* `Installation:
5 L3 I% ]* F0 M6 D; \> git clone https://github.com/ceph/ceph-iscsi.git3 u; C/ q" E6 h4 w
> cd ceph-iscsi; o. [" |, x9 U5 R# X. n  D$ J
> python setup.py install --install-scripts=/usr/bin
% E% L$ @& x( k) t2 _+ ^/ u> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system, X; I, g8 ^& H; L
> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
, O: T5 K# r6 w7 R/ o启用并启动daemon:6 z; R; `) g! m: ^2 N$ H) o
> systemctl daemon-reload
, x9 r; R# g$ T4 R. r6 j8 E> systemctl enable rbd-target-gw
( e; ~$ `5 S% Z2 v> systemctl start rbd-target-gw
- j0 A: _2 q: S( C5 d0 [% E' [& R> systemctl enable rbd-target-api0 \( W8 V9 w5 O1 b, I
> systemctl start rbd-target-api
7 H, g) v% @7 x9 r8 b8 ^安装完成。 进入main ceph-iscsi CLI page上的setup部分。
1 \, |3 T& }1 T9 u1 n& Y

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI
8 H- v% ?9 x' @9 l2 d3 V( u- vRequirements
# a8 j9 u) o3 I; y! D0 ^0 r7 \  F
2 A: t) E/ p% M- B3 T  `6 z要完成ceph-iscsi的安装,有4个步骤:
6 x( T+ W! S* i8 R
/ L' T% ~, {  `* W+ N! t1、从Linux发行版的软件repository安装common packages
5 Q  p, N9 i3 L* z7 j. O$ W0 z# b# J+ a  Y
2、安装Git以直接从其Git repositories中获取其余packages
0 q9 D- e/ t* F: _  j# `# L' F& Z  X7 D) E2 q; l5 q
3、确保使用兼容的kernel
' W' {3 F) T9 K/ h% l6 i) E
9 i8 s) i# d7 F1 C* F, h7 A4、安装ceph-iscsi的所有组件并启动相关的daemons:
4 A0 i6 j# R* O8 p7 i" p; n
) B# C* O8 X  w, N1 E& C& ytcmu-runner
+ {: W+ K) {( t5 E# B: }& ^8 Q9 xrtslib-fb
: \+ C0 ~, B# l) I0 d6 g1 \configshell-fb: J% ?6 I- t& I) u
targetcli-fb
; ~% h( l  _8 u0 g" Kceph-iscsi
# |; Q  [7 u( \. y. h. s! @1 K, Y' V1、安装COMMON PACKAGES; F4 b8 G2 e; Q& \" ]0 g/ g- V
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
5 W' {& J5 w" y" B) T3 W1 u
- F# [7 o5 T6 r# u& ?1 ^/ \9 m4 |libnl32 |6 x# Y9 |5 N& o! q) I
libkmod
) G) {" \# \' x- a1 U2 Ulibrbd1
# o1 r# k0 m" F8 X3 i& ~) O' c! {pyparsing; S" S; ]+ h1 c  ]7 G+ ]; ~/ P
python kmod
0 S  ?/ c9 a/ w1 i! n2 cpython pyudev4 Q. \0 L- Q+ P7 h4 h
python gobject4 b4 B2 ~9 ]% n! l
python urwid  @, o. Q5 n5 F7 @0 j+ c) A
python pyparsing
/ ]; s/ f& V: U$ a6 n0 c4 wpython rados
3 n! v" S9 Y9 L( V5 u3 zpython rbd
+ {5 m* h( T( _" T: K6 R5 M5 bpython netifaces
( ?6 b% X7 w7 ]4 u5 e/ ^* bpython crypto' U3 \0 y- B9 L' j! i( H  Y: }( ?
python requests
# G# L# `) u" F: `, |8 k6 a- Kpython flask
' U" y, _# t& I! ^5 o' fpyOpenSSL
8 Y0 `  M5 D3 `2 a2、安装GIT
" a' g" N+ H' b* S% i' p" j为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:% M) K! g4 k! \, Y  [0 e
/ V  ?) j4 X( S% X
> sudo yum install git- u" D$ M9 N; M6 y5 J
在Debian/Ubuntu上执行:" X' D1 k$ z. d: K9 b
8 E, S/ Q6 z9 D8 l- E/ }
> sudo apt install git' F+ N; U$ _. z) r6 q6 _9 r% G0 I/ W
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com
7 B: l# d  e6 J* B! a& w" A* d
# t5 Q1 t0 e) d& {/ I4 |7 S3、确保使用了兼容的KERNEL
. R- v$ P1 P' C  Q6 `6 o" h确保使用支持Ceph iSCSI patches的kernel:
0 e* s8 D% Q/ H% {$ H1 n& z5 k- A& }/ L( ?7 V/ r% R2 K
具有内核v4.16或更高版本的所有Linux发行版( A6 C: J) |6 _; W' E3 `! M6 [
Red Hat Enterprise Linux或CentOS 7.5更高版本
( y' b( {8 V" `* Q4 P如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
9 {. d$ w$ N0 x5 C+ I7 Z
3 X7 P  I6 N9 }4 bCONFIG_TARGET_CORE=m1 i2 s. {2 g1 h" a; v% i
CONFIG_TCM_USER2=m  D5 o/ |5 P4 r; r" W0 n
CONFIG_ISCSI_TARGET=m
% ~9 U! `# l6 b& W4 Y8 ^7 X+ s' r4、安装CEPH-ISCSI" P( V4 i& Y  r- X! |9 O
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
6 j; p, p0 Z3 `. y" ^0 z' D7 ^+ w9 L( M4 d) o
TCMU-RUNNER
# {+ C; s$ [4 C; u: p' {* \4 j, z
. `* g1 e# D8 r$ TInstallation:% u4 q: F6 g! L! C
9 R+ c4 M/ I9 R6 [3 y: B7 t) M
> git clone https://github.com/open-iscsi/tcmu-runner
: N5 \9 b+ u/ ^8 t; a7 E> cd tcmu-runner
2 Y( a# v, u% Z( o1 f$ b运行以下命令以安装所有必需的依赖项:
8 z" Y. u7 i( S2 b) ~( G- w0 A1 r# G( ]
> ./extra/install_dep.sh+ V, K, h  `; S, D, b! e4 R
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
# T. B& h- p1 }& U6 _, d3 p
/ B& g. d% D8 l2 D% k$ {- s> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr( {3 v! q9 e+ ?) @
> make install5 T/ r& p- Q3 i. a: k: p+ p# R
启用并启动守护程序:
0 \- F6 D* e% Z( j$ _6 N' k
. k* w& C; Q+ o5 o> systemctl daemon-reload
# w, d. _( F+ j, Z9 _8 x: w> systemctl enable tcmu-runner1 D: A; ]' C6 @
> systemctl start tcmu-runner+ m9 G& z& y* M$ V" Q; u* E
RTSLIB-FB
! G1 O* X+ c; D, ]. E
4 L& H* u  b/ _5 m1 o+ VInstallation:, D7 I2 t# y* P: l

. [! U* D/ J: {( @% }3 p0 v0 G5 K> git clone https://github.com/open-iscsi/rtslib-fb.git- T% X+ Q, s1 p% p( q+ j
> cd rtslib-fb6 `- [4 T" [; L  g6 p3 ]
> python setup.py install1 m' c* F  s. }, z( _. B
CONFIGSHELL-FB
, R# P" ~% J2 H! ]8 i! B
# C: ~8 A, l5 d& M/ iInstallation:3 ?. u5 t6 [: n+ B, T6 |0 j

5 A& ], `0 |! [/ z> git clone https://github.com/open-iscsi/configshell-fb.git/ n4 W6 J( `5 G
> cd configshell-fb$ G6 E9 }  l% I- N1 K$ R
> python setup.py install
$ V; s: Z4 S; X  CTARGETCLI-FB
  {3 O0 [/ l6 z4 `( W$ X" X, J* K" _
Installation:
- O% k, d6 i8 O2 b) A  A* @& K9 K7 U4 {2 c
> git clone https://github.com/open-iscsi/targetcli-fb.git
2 ?" Y& @# A% ~+ o/ n7 V  V5 t> cd targetcli-fb
% N3 o9 H- t; t& \/ M> python setup.py install
4 Z( W; Q% b4 p# u  j% j* f" W> mkdir /etc/target
" M# l7 @: P( Q4 g* C+ p> mkdir /var/target# Z8 X2 b) j( s
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
% N, H6 d) r. b' y6 j0 v% t9 K2 b7 R5 Y+ {
CEPH-ISCSI
9 d8 Y1 o- i! c' W6 S( T. I( mInstallation:6 _& H" D% b) o" j9 J
. D3 g8 |+ G0 L0 v# {
> git clone https://github.com/ceph/ceph-iscsi.git! e6 N/ u0 ?/ y! x7 w$ U- ]( ^$ `& G
> cd ceph-iscsi
( D9 d. g- D! W* h8 J2 O9 f( t# y> python setup.py install --install-scripts=/usr/bin! @" Y% W5 J9 {' k4 |
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
* r1 J/ _3 o$ W8 k2 H> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
8 N  J' {4 Y3 ~/ U# S启用并启动daemon:. e. A# n0 @* @( ~
, d6 M3 i! k+ Q' a5 U
> systemctl daemon-reload0 l2 F( g& E7 G1 [
> systemctl enable rbd-target-gw
$ n7 b1 m: T; `: y> systemctl start rbd-target-gw
4 D' \& i8 X6 O> systemctl enable rbd-target-api
( W/ X; z+ d6 ^3 \0 B' i1 x> systemctl start rbd-target-api
% X: U+ a& q( ?3 [- e* Q: y安装完成。 进入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;
确认内核选项启用,如下:
* e$ b* \5 V7 O  W; u, Y$ d% \. H( F
3.2. ceph集群版本:
注:官方建议 Ceph Luminous (12.2.x) release or newer
实际采用:Ceph Kraken (11.1.0)
3.3. ceph集群配置:
通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。
建议如下配置:
% |, C" [' a, E7 A
确认配置:
确认名称为”rbd”的pool存在,如下:
5 N0 y! ?0 O9 T6 A: e0 y: U$ I: S
确认支持5个features,如下:

8 _" u" T$ @) W! R3 C% W: y4 ]! c" \
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)

( K! e- h; {+ P8 }, N
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' q& A/ X; J1 n$ T5 o/ e
    即: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
    % M9 @. V& q1 i' ?4 ?
  注:rtslib-fb依赖pyudev>=0.16.1
- M6 u& `9 d$ p; ^" ^# j+ v
4.2. iSCSI gateway节点部署相关服务6 _, j) U% H  G5 `
4.2.1. 部署tcmu-runner
7 h. z, }- E8 \3 s
4.2.2. 部署rtslib-fb
/ C0 s3 o$ K# D, @

5 n. n1 X; O& n
4.2.3. 部署configshell-fb
& Q4 @: V2 F# N' p+ i) S3 s

+ u1 }, x; d$ J. h
4.2.4. 部署targetcli-fb
9 z+ ?5 \( ^; V0 T  y

- z6 Y$ M4 c! @% E
4.2.5. 创建配置文件
: P& O6 f/ i8 h4 R

  |; m- y2 Q. D9 ?0 t" i! i# b
4.2.6. 部署ceph-iscsi-config+ n! g9 l# j8 |; [2 f! K
' ~; H8 {1 d, |4 R: t5 m- z5 k
4.2.7. 部署ceph-iscsi-cli
3 @8 ]: x6 X: M2 `+ ^
4.2.8. 检查各个服务状态正常8 Y' W; c* b6 J$ H) |) _0 }0 V
首先,检查相关服务状态正常:

/ F' R: Y8 o# u) `  d5、创建&配置iSCSI gateway5.1. 创建iSCSI target
例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
! w0 ^. D$ v9 t, c0 ?* L
5.2. 创建iSCSI gateways) Y. D9 }1 n  Q' C
配置地址解析,如下:
其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。
例如,要配置2个gateway。
4 S. [) V7 g1 E. @# S- p
注意:配置/etc/hosts后,需要重启 这3个服务:
2 }* i, i1 U, B  g( Z, }
注意:在2个gateway节点上,要分别确认这3个服务正常运行。
如下创建2个gateway,提供HA方案:
% {" {0 e# H- ~% X, }5 [( v" T
然后,检查3260端口监听正常:
8 c$ X( U# ^8 q! d
% Q1 m% m+ E% s5 O
5.3. 创建iSCSI disk
& u$ y# w- o" y* W. S# q$ e
如下创建RBD Image作为iSCSI 后端disk:
1 J! U6 a' @, O+ u) \5 ]" ~
5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。
首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。

/ m- @0 f& J7 y: w' s
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。0 {8 c1 I1 k9 _' Y) x

; T2 V. E5 _: t5 S% A, f  E  f( r4 {$ }$ w/ V, Z
5.5. 为iSCSI client配置iSCSI CHAP认证信息
注:建议略过该步骤。0 S* p5 Z- M6 h
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。
例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”

4 L8 M' Q' z  e5 @1 O* H, ]5.6. 为iSCSI client添加disk
例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。
5 G" ^9 k1 t% W( m; i
6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具
# n% a, ?9 @: n* Y. n
6.2. 配置multipath服务+ {, r$ G  z9 W, }6 r4 w
创建默认配置/etc/multipath.conf,并enable multipathd service。
' k" e- E" ?8 ^

" T- \3 H! m0 K: v修改配置/etc/multipath.conf,内容如下:( I& M4 h: z+ T% {" {7 S

+ J5 u2 t: `% {8 P
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。
重启multipath服务。
[td]
命令:    systemctl reload multipathd

$ M% G' G! R  A! f) V9 P# ]

  t1 Y) t; y7 e+ `! U0 ?# @0 d6.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
, R; v, \8 H  S% B7 E5 s

* x, M5 V* ?+ i- i- F; g  p/ v9 d* q+ I
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

( Z7 {0 H& L4 d+ L  q

) e& r- X5 g* W% o6.6. 查看扫描出的iSCSI盘
如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb

( |/ `4 S6 K8 C9 }( ?, y2 X' D% `6.7. 查看multipath的iSCSI disk(由RBD image映射)
; N% H/ }1 V& {7 b6 j; h9 k- x7、附录一
Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。
【解决方法一】
1 P8 [+ I, H/ e$ i% r# ~3 |1 v( F, l- s
说明:lun.py中不设置qfull_time_out。
影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。
修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py

% S* Q( _( g2 b1 m7 C6 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、附录二( T/ D; g0 o  x( `9 |7 u3 }& Y
设置成不支持ALUA。
修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
5 d- G; U( t! ~& I# d

& @( O- t1 X/ C0 Q. m1 M! j4 a
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

% i3 N) ^, j$ R8 @% }& \" S! E" D
$ Q8 Q. c: ?* N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:07 , Processed in 0.020753 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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