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

Ceph iSCSI gateway 安装和配置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-7-9 18:18:14 | 显示全部楼层 |阅读模式
使用ANSI配置ISCSI TARGET
) T7 Q" l0 j+ q  \Ceph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。0 f& L+ ?1 ?& s2 @: O7 y1 d
要求:( ?. z6 r( }+ _6 }. X( _- q
正在运行的Ceph Luminous(12.2.x)集群或更高版本
  ?9 [" ?2 r& l! r- jRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
5 q" C. S! c. B在所有iSCSI gateway节点上安装ceph-iscsi package7 g; o' F9 _" Z- Y
安装:
! H6 t) Y, C7 U; i在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:8 f/ _0 j# v5 x0 P" w
1、以root用户身份安装ceph-ansible package:2 W- Q. M" D6 {! H
# yum install ceph-ansible
( ~  }( r, |$ K: x: H5 Z2、在/etc/ansible/hosts文件中为gateway group添加一个entry:) t# G5 Q- M: X4 I
[iscsigws]2 y: V1 Y+ v- D$ T, `& r
ceph-igw-1
+ W8 S+ U1 j0 b, s+ Z! Y# Vceph-igw-2
8 G* \  Q1 _# N9 U注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。
1 e& ?' Y+ J6 o3 a# x# Z; Y* I配置:
) z. `& u" Q) c0 @ceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。
) a1 w5 G7 a' h" L+ y& GVariable(变量) Meaning/Purpose(含义/目的)
* \; }% z; d3 \" U  bseed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。7 _5 B; w) G$ Y/ d/ L- Y/ G
cluster_name 自定义存储集群名称(默认为ceph)
* M7 R- ]/ M# g7 d. |, `" S2 wgateway_keyring Define a custom keyring name.- V5 F# b( n+ l9 [/ X- l
deploy_settings 如果设置为true,则在运行playbook时deploy the settings。
$ F7 ]. `3 k1 W9 s% T6 L8 aperform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。
, I# S1 ]8 V/ Q1 |api_user API的用户名。 默认值为admin。+ a, j1 ?7 G" H9 h% H" R
api_password 使用API的密码。 默认值为admin。
' k4 [3 C% D! e6 }- f9 Lapi_port 使用API的TCP端口号。 默认值为5000。
  @( [9 |& F* m" s2 g) B2 Tapi_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。
1 G5 j8 V6 M- ^trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。
# @2 |8 S1 i3 N; `0 M1 E7 XDeploying:
# Y, f5 ]& w5 ^( [在Ansible installer节点上,执行以下步骤。
5 S; t2 y9 O0 ~: C) b1、以root用户身份执行Ansible playbook:4 h( i5 s! r- Z# m% m: ]/ C% }
# cd /usr/share/ceph-ansible/ l& Y$ M0 }4 L# s& K2 P
# ansible-playbook site.yml --limit iscsigws2 p' {2 }+ t, g( V, N
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。; Q: Q+ P& b& c/ V  f; F5 w8 h, Q
2、从iSCSI gateway节点验证配置:
- x, H" C$ s7 p5 j  F# gwcli ls: c6 Y" z/ |1 x7 z& H* z4 g. s
请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。- S  T  X/ ]/ H  B# o% q
重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。
* c9 H  ~5 E/ r. B  E, JService Management:! f& t9 ^/ P) \8 t7 \5 @
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服务交互命令。2 x4 L" a. c. o$ A: K* @
# systemctl <start|stop|restart|reload> rbd-target-api
. d- S% ^1 \7 P$ ^1 N% Qreload
7 p5 @$ Z: Q; @# U2 ?- w4 c1 {reload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。
0 f* ?8 y& i2 ~; t- E# Zstop* m& K2 `# x* _% [
stop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。7 W7 I* U0 L& L! S- ~1 u
Removing the Configuration:, J7 ~7 x7 x. z  q
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:: k  @9 m% F. G5 E% a+ G
lio :
2 j: X5 C8 l# Y2 m) n' d- G在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。
0 i/ e# c6 Z  {  T! kall :6 ~* d- t; ^8 k4 {# `) e1 ]4 g
选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。, H9 l/ M, h+ n) R: A+ J2 Z
警告清除操作是对iSCSI gateway环境的破坏性操作。3 W  j2 h$ n8 C" y: R
警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。
1 D) S. @% |1 X  R! q/ ?[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml3 o. r* f, D  W' _1 C7 y. d
Which configuration elements should be purged? (all, lio or abort) [abort]: all9 S/ k! p; N( x9 p$ }

6 L( \( G: f$ xPLAY [Confirm removal of the iSCSI gateway configuration] *********************
8 g9 v* v' J4 j
% t2 E% W7 x; ]' f0 c- |3 UGATHERING FACTS ***************************************************************
& X% O- h0 ^6 T- N0 Aok: [localhost]
' ~) f( ~) x, k2 O6 `  G
; I! F) c% j' Y1 _& uTASK: [Exit playbook if user aborted the purge] *******************************
  S1 I1 \4 B2 e5 H2 Y- c7 A  Tskipping: [localhost]  @" T4 I* ^6 m# H9 S% U
# k% T8 V! w$ s
TASK: [set_fact ] *************************************************************
5 x8 F( m6 E* [6 I& e, B3 Gok: [localhost]& Z& n( K2 L) s. ]& T8 |

" p1 _8 Q/ u! C7 d# g0 m3 QPLAY [Removing the gateway configuration] *************************************
2 a+ Z6 e$ u& P; M1 ~7 A% n- M/ C' x
GATHERING FACTS ***************************************************************2 ]1 z! U8 \+ H) g5 T& i) T- `% K. w
ok: [ceph-igw-1]7 c5 d/ b, D3 U6 M6 `1 E! w2 K
ok: [ceph-igw-2]' c1 N) E5 R- I+ }/ d; j

( x, c; Q( ]5 @, V2 ZTASK: [igw_purge | purging the gateway configuration] *************************
- }( }) g6 O( uchanged: [ceph-igw-1]& d) q6 n) y- S. f' Y
changed: [ceph-igw-2]. M( j0 [' [1 j, m/ B* Y! H
) o* p. ~! L( ]! W9 H
TASK: [igw_purge | deleting configured rbd devices] ***************************
+ o; Z3 C' n1 N2 y+ b6 X4 F+ hchanged: [ceph-igw-1]. a" j0 }: r  ~7 H8 m* q( D. N4 B1 U
changed: [ceph-igw-2]
# w& F+ \' t2 Z1 Q" ~
5 z+ b- v7 X9 d4 GPLAY RECAP ********************************************************************: E( F. ?! h& b4 A' n6 \6 z; m
ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
6 M# V" T% h2 nceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0
( \9 y2 Y0 W5 t9 Nlocalhost                  : ok=2    changed=0    unreachable=0    failed=0( p) R8 W, \# ^) D4 p& l( o
使用COMMAND LINE INTERFACE配置ISCSI TARGET4 \4 V/ r3 b" i0 W
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。3 Q' E, ~% X, b6 g# G. x3 Q
Requirements:
$ P. e6 M1 E  r6 U9 |正在运行的Ceph Luminous(12.2.x)集群或更高版本- o' p* ^0 A- f% i
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)" F* f  Y, M8 O3 _0 o
必须从Linux发行版的软件repository中安装以下软件包:
1 r# U0 U) W1 }$ Gtargetcli-2.1.fb47 or newer package
2 `# ^. |( P- W7 W! c4 mpython-rtslib-2.1.fb68 or newer package  M5 H$ r  [, c# h. e( l
tcmu-runner-1.4.0 or newer package
5 @4 r9 ~* x( x; U  z3 L, m( Fceph-iscsi-3.2 or newer package6 p  z! [7 d# u" F- l; }
重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。6 \8 ?( j; t( ^
在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:& Q# Z. T' K* U" v, r
1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。
* y7 G1 ?- P" O# [" i, F2、安装和配置Ceph Command-line Interface
: y6 l+ H4 Q; S) v8 q7 M! z( b) a3、请在防火墙上打开TCP端口3260和5000。
' a8 @  n8 I  k, S! C: a注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。, \6 z8 `9 |. K# p! R. o8 y
4、创建一个新的或使用现有的RADOS Block Device (RBD)。
4 Y9 S8 k8 m+ B7 wInstalling:, X3 Q9 k0 \5 f6 g
如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。
* N/ R" J% h/ R, Z- ~对于基于rpm的指令,请执行以下命令:
( C* u$ a5 i7 m3 h, H- [3 ^; C1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:
, `& ^- Q5 S0 D! f& ^0 J# yum install ceph-iscsi$ M$ X) c5 M, g8 E7 ?
2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:
! c$ u: p+ R8 e6 N4 f& d- n# yum install tcmu-runner7 j9 t) j6 b  Y5 [% U- C
Setup:
* F% j; q  g! X1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:
7 D7 f! @9 \8 _* E; d; J# ceph osd lspools
0 w( m2 [$ ^% z( u5 Y8 g如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。
2 S6 D" d  e" L- f2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:
/ m& y- r3 Q; v* V: ~# touch /etc/ceph/iscsi-gateway.cfg9 S/ z1 K: X3 E6 N3 n7 y6 D
2.1、编辑iscsi-gateway.cfg文件并添加以下行:4 W5 K2 a4 U$ \2 A0 C' n4 z0 j; G
[config]! `' T8 T2 L; |/ v! c2 l
# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing, G( a% L, q; D2 G( r0 [2 ?7 W& R
# access to the Ceph storage cluster from the gateway node is required, if not
* N* m5 z: K1 w0 d# colocated on an OSD node.$ T$ S, e  ^$ K* m9 t2 f4 b
cluster_name = ceph
3 P) N6 d! ]7 @8 v* A; V1 J# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph* T* o8 a; M$ d! d; C
# drectory and reference the filename here# D& e1 o5 O" T* u; Q6 k/ S6 J4 S' T+ ^
gateway_keyring = ceph.client.admin.keyring
: {5 V9 X9 c! V7 x/ E# {) w" F6 m) t
) |- {2 E- e7 A9 H' s# API settings.
# T# }6 e( _! |$ q4 s# The API supports a number of options that allow you to tailor it to your+ K* A& _- U$ }% Y1 r1 t$ f9 T
# local environment. If you want to run the API under https, you will need to
8 z! n" i: x6 R( w# create cert/key files that are compatible for each iSCSI gateway node, that is
1 G$ d$ }( h  ]3 ~8 f% K! A; s# not locked to a specific node. SSL cert and key files *must* be called
3 J; G3 _" _$ S7 F+ L1 j# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory6 ]3 p# a* n& @" g& i$ J2 S) }; m9 e
# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true') i6 _# n% R0 T! q) f- x
# to switch to https mode.2 R+ R% j2 \' l* H
# To support the API, the bear minimum settings are:  x! j# Q# k% I3 w9 K  N* P7 u
api_secure = false8 h6 o0 G- B% n7 Z; i
# Additional API configuration options are as follows, defaults shown.3 _9 j( N& C" b' V6 b
# api_user = admin
+ O- F/ p. A  z7 t" B# api_password = admin* @! k3 Y  g% x0 [' G9 w
# api_port = 5001% m6 g4 g9 {6 h+ x- T
# trusted_ip_list = 192.168.0.10,192.168.0.113 D- `( q' o& l- t5 i0 T5 Q7 k, W$ C

0 l$ p& ^+ ~( Y0 _1 }1 H# ------------------------------------------------------
/ S' u4 A* d+ M3 f# 翻译如下
; d+ f, P+ p' W5 N5 Q[config]* K8 }3 _& u0 Q; D9 j2 q) E; A) n
#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。
5 L! f- g5 ^6 {* ?1 w5 H3 mcluster_name = ceph
, v  s2 z# D$ j$ ~#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename: t3 n& q  h( [
gateway_keyring = ceph.client.admin.keyring
/ u9 @& J3 f' X4 x
/ m8 x9 z% s' Q# b#API设置。- `8 r- s1 M0 C+ ~
#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。
' J, `3 H7 F1 T& E, ~#为了支持API,至少需要配置如下:
  \1 `0 r6 }/ b' v$ o: R0 u9 N9 tapi_secure = false
5 b0 ]" y2 b  C1 a#其他API配置选项如下,显示的默认值。(trusted翻译为信任)
3 |' C4 A2 ?* M: o# api_user = admin1 C* H. m9 j* d4 g! p) d! x' J  _
# api_password = admin
% k6 T0 L! G. b& C# api_port = 5001) i/ `* ^+ m+ i% G" }
# trusted_ip_list = 192.168.0.10,192.168.0.11
  R8 C: N% l9 w, e4 }注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。
$ m! T. l! Y$ u0 c2 c/ W5 ^& o重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。: e+ K9 i/ y% X+ u: m4 j
2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。9 O8 I( w. q7 m) o
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:# o" |8 g; i! L+ n7 W& |
# systemctl daemon-reload
/ h9 J5 `; {* N0 ?' R2 R4 q& D' a# systemctl enable rbd-target-api
2 d6 b; y7 x9 b4 s! F# systemctl start rbd-target-api! Q$ G2 F) J( p1 U! s- U9 E
Configuring:& o+ a* {1 }& p5 s# {
gwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
! M1 A. X5 u- ~0 U1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:
1 c' r: a/ |" o5 P# gwcli
" F- o- H6 E( K2 c. J' _4 Y2 ?' N2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:# @  M+ y+ U1 R. P7 L
> /> cd /iscsi-target
% U5 P: {3 X7 {> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw$ t  M: _% n) @. }+ X& x2 z0 b
3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。5 F5 e: I- U' m5 \! J5 Y9 ?! O
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
# z- s/ m& {4 T4 i) ?: r> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21' C3 v# G8 \* R' Q) h( [
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22
4 `. |( H5 q* l. Y# A' {  l0 \如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:
! N: X$ n* N8 W" ~> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
/ f7 U3 [- I1 F' ]> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true, T8 Q! ]% _3 e
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true
* |1 S6 p2 {8 `8 \4、在rbd pool中添加名称为disk_1的RBD image:
/ q2 P% W- I! N5 W) ?9 E> /iscsi-target...-igw/gateways> cd /disks# S2 c/ a% q7 u
> /disks> create pool=rbd image=disk_1 size=90G# e$ e& f/ x1 T" Y% k( ]! ]. V* a9 a
5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:
6 ?, ]+ i6 I) ~" _> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts
: o9 \% o, ?5 L  R> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client. F/ w5 c5 n  w' N
6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:  S4 R+ ?6 k' i+ U
> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword
0 E. i  U; _3 P3 j' v" r/ D4 n警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。6 K0 k7 A; Y  i- N
7、将disk添加到客户端:  X" d, i" }' [' o" a& @
> /iscsi-target...at:rh7-client> disk add rbd/disk_1! H3 M  }. e* K, A- k2 e
下一步是配置iSCSI initiators。$ T3 ~. G6 [8 r4 R& D4 u" b
手动安装CEPH-ISCSI4 R5 E2 [, H& u6 e. s
Requirements
( d5 U/ z& ^8 M$ [要完成ceph-iscsi的安装,有4个步骤:
1 m9 m- ?1 _2 M) c! L1 e1、从Linux发行版的软件repository安装common packages" [6 f2 Z/ n% A" h! r6 H4 M. y
2、安装Git以直接从其Git repositories中获取其余packages
7 f6 i2 p; `4 x( B3、确保使用兼容的kernel3 Y3 T; x% t, s' g' k* _& S
4、安装ceph-iscsi的所有组件并启动相关的daemons:
1 A. r- B1 s5 {  o7 f- R* _' p7 Utcmu-runner5 S# x: o% w/ L+ k
rtslib-fb8 P" _; c# l9 N' A8 D, z
configshell-fb4 n( U$ r. E5 |0 d
targetcli-fb
% D- A0 {; A$ d) j7 a' Pceph-iscsi
6 I0 x  H% H$ X: r. p' _5 e1、安装COMMON PACKAGES
* R& [* D7 o. k% d$ k' n* ^ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:# c# n) C$ w9 ]# M: L
libnl3
5 r: p; _& J  t, ^6 D1 c& ulibkmod
, X4 f9 Q3 k( v$ a4 [. s- o5 blibrbd1
% D* D- ]& S& l/ {) I" G9 vpyparsing
% @6 i! ?# }2 {' b$ @# `& |  npython kmod" G, B$ J5 O& U) ?+ S& O9 Z  K- K3 Q
python pyudev
0 `3 n5 N2 r' l& L9 n; g- Rpython gobject6 Y/ D6 K- m0 R  \
python urwid6 q# H. |  ?, T! Q- t, [6 {/ [
python pyparsing
5 w. q2 ^' Z6 [  i4 I. kpython rados
6 B" Z* H5 D, `& ^4 ~python rbd  c2 p, P5 |0 r* Z
python netifaces% ^  n9 F: k1 t7 r2 X6 @
python crypto
4 P7 S& f& I  `& z- fpython requests
/ Y- w3 ?* h' K8 N& ?4 mpython flask$ r  z7 y  b  B, n' X1 ~* b
pyOpenSSL
/ j8 s! a; M% v: H/ J2、安装GIT
7 D7 I7 ~& M3 I5 x# d# N为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
; d4 y$ o  G" c. i, G2 ]> sudo yum install git- j% [) V- \2 Z8 N, [6 |% ^
在Debian/Ubuntu上执行:" b, S+ U: W- g7 L% D
> sudo apt install git9 @# Z, M4 ^( y
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com0 Q8 p( Y$ c; @+ G& I
3、确保使用了兼容的KERNEL
8 C8 G, f4 n2 d1 W; f1 z确保使用支持Ceph iSCSI patches的kernel:; W+ `/ V7 X2 W/ [
具有内核v4.16或更高版本的所有Linux发行版
) N- I  U% S  s. w/ D3 L$ e1 U) \5 }Red Hat Enterprise Linux或CentOS 7.5更高版本' o+ v* c0 z4 a1 T5 c. K; ^) Z* [
如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
/ k4 Y, {5 W9 F0 y7 qCONFIG_TARGET_CORE=m
0 M" w+ E2 H- x/ ]$ h8 L0 rCONFIG_TCM_USER2=m8 R  s9 X( k9 T3 K- @; @
CONFIG_ISCSI_TARGET=m) n( h8 X4 d/ t2 }
4、安装CEPH-ISCSI
8 w8 f, C  ]2 h' R% B. [最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
3 P+ u. f* ]0 S5 c* ]; B) hTCMU-RUNNER
$ d8 C0 o; i3 |( f8 ZInstallation:
) k* D+ `2 i6 V/ F) x4 s4 Y- Z% W& }> git clone https://github.com/open-iscsi/tcmu-runner3 g9 f8 \8 f0 k3 k
> cd tcmu-runner
0 ?6 b! S8 t- e( J运行以下命令以安装所有必需的依赖项:! ^: R0 a/ i) R
> ./extra/install_dep.sh& y/ V9 ^, O1 T- }
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:: c5 d6 f4 ^5 C0 k% O# I- o
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr0 e0 _+ U8 I( j% {2 h) }( ?# t
> make install
0 I0 u2 i4 A5 e1 |启用并启动守护程序:9 Z) W$ K1 p$ g
> systemctl daemon-reload  B, \4 a6 r1 Q0 C& D
> systemctl enable tcmu-runner3 Y$ g) W5 @. ]- ?$ l9 ~; J8 n& C$ l
> systemctl start tcmu-runner
" K$ N3 X& n1 nRTSLIB-FB
1 a8 k. @3 i9 \) u8 c7 ~Installation:
$ d. v, t& Y5 I5 ?! q6 t5 p> git clone https://github.com/open-iscsi/rtslib-fb.git0 e) X- _+ }$ w: [* H/ K4 D
> cd rtslib-fb
5 N: ^2 {0 G4 o9 @# {# @2 [> python setup.py install
' _0 R  Y# N$ T* w  W/ }* W: vCONFIGSHELL-FB
7 B. \9 `9 v- H* |" P7 zInstallation:+ f3 f# J& ?7 y# h+ Z) J2 s
> git clone https://github.com/open-iscsi/configshell-fb.git9 j1 ~0 G0 L  Q6 H
> cd configshell-fb
+ U7 X* y7 F0 T1 Z> python setup.py install4 o7 O( e' w" |1 ~8 N
TARGETCLI-FB
% k* L8 y7 E: \7 }, `9 yInstallation:! K( O0 P" e# i; b! ?
> git clone https://github.com/open-iscsi/targetcli-fb.git
/ v# N. q5 O- @> cd targetcli-fb
" z' m- r9 G  n  M$ }& p* H> python setup.py install6 x# H4 a" y% O4 Q
> mkdir /etc/target! T7 E* d/ g- X0 H( v, |
> mkdir /var/target
  D* F* t9 x. F5 j1 _警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
$ j' O" M- I2 L; `5 z' e; u7 RCEPH-ISCSI4 A$ C9 x: o/ t2 N, A
Installation:
, b  R2 o8 l+ ?2 Q> git clone https://github.com/ceph/ceph-iscsi.git
, Y9 E6 Q) z$ Q2 g' g0 I( v2 H> cd ceph-iscsi
) `8 p5 D9 D  u" ]% ]> python setup.py install --install-scripts=/usr/bin  l# P7 Z! P! I2 b' v$ {
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
4 \! G  d) Z' s& n> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system1 d, I) @' V6 V) C9 H% h
启用并启动daemon:
/ ^2 V3 D7 L6 M! f- f; s! @> systemctl daemon-reload2 A) L; e5 L4 M8 ~; m+ |$ ]( B: w
> systemctl enable rbd-target-gw
7 M; |1 m0 r& C1 X! e9 e> systemctl start rbd-target-gw$ y3 e2 ]$ S% b. W, ]* R' y% Z
> systemctl enable rbd-target-api
: z9 e8 K: q% F; p> systemctl start rbd-target-api
1 F6 C7 D+ |" h$ w% T. K( p! P安装完成。 进入main ceph-iscsi CLI page上的setup部分。% l8 r  p: {- R3 n6 V  k, Q

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI
' m" W, b/ B/ _+ URequirements
8 l( A4 x4 a8 m7 _& O3 }2 D$ P0 ]: I
要完成ceph-iscsi的安装,有4个步骤:0 N- q' o# @/ k! C; i3 V8 g
2 c6 J5 N* K/ `& Y
1、从Linux发行版的软件repository安装common packages
3 k1 t/ [  u; q6 f) l; K! {. J& ~
' K. U) x& v5 O2、安装Git以直接从其Git repositories中获取其余packages6 M0 ~3 g$ I- e/ h7 p6 c& |
) Y9 q! V3 w- p3 X. A" x
3、确保使用兼容的kernel
- r) |: a, a' r
5 j0 j+ ?+ k$ w4 [( ~% x* ~4、安装ceph-iscsi的所有组件并启动相关的daemons:
' m+ R- U9 Z7 Y, Q
. X' t& ]- Q- u7 z/ A4 p3 btcmu-runner- G+ V7 O. X6 M, a
rtslib-fb& n% t& o- f( s0 J9 Q
configshell-fb; D! T( S; z7 _' ]9 b( T, O6 P
targetcli-fb: }. q1 h& z0 B, T% ]) D$ O8 k" F
ceph-iscsi% v! y( n0 T" T  O
1、安装COMMON PACKAGES" Z7 o9 n" ~+ X% L2 C+ Z* ]
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:6 r5 Q: k, E: S( T9 \
' u5 v& Q6 h  Q# D$ O6 H% i. Q5 U% O
libnl30 O  j( ]# ?. `" a
libkmod
% n  ?, O# {9 k0 n, z, S" Nlibrbd1
6 |5 y: k' l9 [5 e; N2 B8 xpyparsing+ t  W- @  S' n
python kmod4 o' k, y7 b6 h# F
python pyudev0 o! o* _' d1 v# p- A) ^$ }
python gobject
% ], z4 G0 O1 ]. v9 _6 Qpython urwid% q( j# p# J( q; o/ r8 W
python pyparsing1 {7 T: p  M7 H* m, S; c$ R
python rados; p2 a3 c8 g; P9 g
python rbd6 a( v3 g0 j% ?. K3 F  S0 C
python netifaces
" g5 \6 ]9 N4 e8 a0 P! fpython crypto! L7 g7 c) z+ _/ J( L& C
python requests' q& b2 E7 o6 k# h5 T
python flask4 x7 g0 ?4 D$ q* B
pyOpenSSL8 h. }2 y: [- q8 E8 @
2、安装GIT! s8 _" H5 H( u, A; @, I0 p+ H
为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:! _- B7 ~8 C1 G4 Y6 B& _
) G7 |9 ], ^3 d3 u
> sudo yum install git
) J. e9 s0 r( \  a  v+ r9 Y在Debian/Ubuntu上执行:' m' Q# J$ y- e6 w# i6 H

$ ~6 c* C7 Y8 ?! a& }! N. C: [> sudo apt install git
% k+ S6 v& O& r要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com
% W( Q+ @% I# u7 h
/ X( K3 n" z) l! I1 y+ g7 T3、确保使用了兼容的KERNEL2 y7 b0 \7 `( r# j" _" p' C
确保使用支持Ceph iSCSI patches的kernel:
0 m; N- \2 C. g+ W* I6 x* }7 v+ c( N7 H$ |# t
具有内核v4.16或更高版本的所有Linux发行版
4 U& [1 o0 }$ X% gRed Hat Enterprise Linux或CentOS 7.5更高版本
* ?7 f3 h6 \. r9 D' W如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
- A; }$ C' q3 }7 k% B! y& k" d% B" A& l0 S3 A; ^- z' t5 X7 G
CONFIG_TARGET_CORE=m2 h" t( P# y' I; s0 T6 Y5 r% }' x
CONFIG_TCM_USER2=m; |" N! S* `0 Y6 J1 a7 `
CONFIG_ISCSI_TARGET=m
. X* r' p( h8 s( R/ p# A+ }. z4 Q4、安装CEPH-ISCSI
  P  r2 k" k  q  [最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
% t+ x4 ^6 F# s% y
) q! y0 H. a( e' RTCMU-RUNNER, P, ?' x# S3 b2 h" b
( A" a+ Q! j, }7 Z
Installation:- U" r- n" c: z. y

$ ]& m; w0 ]1 ], P% a> git clone https://github.com/open-iscsi/tcmu-runner
1 h# X) V* j4 n# S* `> cd tcmu-runner
( b3 Y) P: R8 N2 L6 O运行以下命令以安装所有必需的依赖项:, d. F2 t  G# `6 E6 @

- I8 U3 V0 i! s. l0 f) u> ./extra/install_dep.sh& l5 k- b( e" N; A# v. T
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
2 s) S% z  |' c9 Q) N; w! X8 ?+ U( c5 O/ [" \) r, ^% a
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr5 R$ j8 O( ]" x! X
> make install( l+ f5 y3 y4 X6 f* F0 y/ U
启用并启动守护程序:
4 P, B* G9 B5 N0 e3 Q8 z: H! c5 {5 i% ^1 E1 Y# Y  T* ~8 V$ l
> systemctl daemon-reload9 `" @# K9 }2 k( b
> systemctl enable tcmu-runner
, N. m" B9 e: G9 s: M9 |7 `7 o> systemctl start tcmu-runner
) h0 O' I- l  K6 U0 o  d8 K$ v1 lRTSLIB-FB
: }/ ~* j8 N7 [, d% w5 C
7 M. Y- `: D4 H* i  H0 rInstallation:
0 M$ P7 ^6 j  H) h
  w4 y- P5 i" g0 E" H3 I& a> git clone https://github.com/open-iscsi/rtslib-fb.git) V9 h, V3 ^2 @  ?0 w
> cd rtslib-fb
! V8 n( B" t: _5 I7 V9 J> python setup.py install$ [) X* h  q  [' ^  _( l
CONFIGSHELL-FB
  J% E% I+ Z0 Q! ~5 P3 Y; \; X! s5 P* a) m: B" D6 N0 F
Installation:
  C2 g) F0 j+ n: r4 L" A
2 ]5 A6 e  }: L/ Y" T1 `> git clone https://github.com/open-iscsi/configshell-fb.git
) Q$ X5 w" X/ n( m# L> cd configshell-fb/ W# ^! ~& O. p
> python setup.py install
8 r: d* J9 Z! b& QTARGETCLI-FB
+ x# n) g/ k' C) i$ ?( M3 o) j4 q. E
Installation:* l: h3 ~: @. n! u& r
+ O, F0 K+ \- k6 g
> git clone https://github.com/open-iscsi/targetcli-fb.git
7 O8 @5 o! I1 w* U3 w5 v* t> cd targetcli-fb2 I# e5 o+ q$ l' R8 l" O# W
> python setup.py install
% L; }, {3 I+ F* o5 p( X> mkdir /etc/target+ C( z9 _( t7 _0 _$ f8 ?1 ~6 [
> mkdir /var/target
  ]1 B$ I' |  b! l% @& |/ i5 t警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。2 s: N/ A7 ]) {' E0 F" S+ C
. {0 V9 d( A/ r% O, m/ j/ Q+ Y) G
CEPH-ISCSI+ i0 Y1 T9 n9 p: f$ N# b
Installation:2 w  o* A3 A8 m& p# Y
; |, D+ t: x4 U2 L# h- p  w
> git clone https://github.com/ceph/ceph-iscsi.git2 [! R9 t( m& n: P  k9 @9 O
> cd ceph-iscsi
! `; h, [3 i5 Y# y* S> python setup.py install --install-scripts=/usr/bin, [. D0 C5 Z$ W. ?
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
. E7 V9 l+ B3 O0 H- U6 d1 W> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system3 W% b6 _) @+ G
启用并启动daemon:: v. `4 G1 _$ _# {6 u

6 j( E9 S. |+ s) Z) \7 e> systemctl daemon-reload4 M6 a) i) ^7 W7 ]
> systemctl enable rbd-target-gw: m5 k. ]& h" Q9 G2 q2 @  e
> systemctl start rbd-target-gw' p3 Y( |3 Q7 @( N
> systemctl enable rbd-target-api" W) S' t0 E* C# S
> systemctl start rbd-target-api
& R. a2 S( w* Y+ ^. s* @! @2 r安装完成。 进入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;
确认内核选项启用,如下:

1 A# }$ M( V( x5 [) [3.2. ceph集群版本:
注:官方建议 Ceph Luminous (12.2.x) release or newer
实际采用:Ceph Kraken (11.1.0)
3.3. ceph集群配置:
通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。
建议如下配置:

: s, T) W5 A. R
确认配置:
确认名称为”rbd”的pool存在,如下:
; `  [9 Y. _! u/ W) l2 N
确认支持5个features,如下:

% I( J% x1 q: O& h& N
. @, d# {1 p3 q9 t. t
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)
& W) R9 U, f1 m' O7 k# i
4、安 装
参照:
http://docs.ceph.com/docs/master/rbd/iscsi-target-cli-manual-install/
4.1. iSCSI gateway节点安装依赖包
注:ceph-iscsi-cli 和target tools依赖以下packages:
  • libnl3
  • kmod-libs
  • librbd1
  • pyparsing
  • python-kmod
  • python-pyudev
  • python-gobject
  • python-urwid
  • python-rados
  • python-rbd
  • python-netaddr
  • python-netifaces
  • python2-crypto
  • python-requests
  • python-flask
  • pyOpenSSL2 @5 p# K3 k: s
    即:yum install -y libnl3  kmod-libs librbd1 pyparsing  python-kmod python-pyudev python-gobject python-urwid python-rados python-rbd python-netaddr python-netifaces python2-crypto python-requests python-flask pyOpenSSL
    4 Q4 Y+ r4 M+ y
  注:rtslib-fb依赖pyudev>=0.16.1

3 Y2 G( i+ n  h. X7 b
4.2. iSCSI gateway节点部署相关服务
! y. U# [& x* v6 M: O& b
4.2.1. 部署tcmu-runner/ n9 Y' j, m' m1 d% R' W( u( {
4.2.2. 部署rtslib-fb2 B: l/ L# }3 @" t+ D
! P4 B; b" m6 N" T' I
4.2.3. 部署configshell-fb; z/ O6 X! n. N; p( w6 G' s
3 \/ a+ w& x0 a; s/ @6 O
4.2.4. 部署targetcli-fb; X& ^; k# D* v- |( l& f9 M" o

( T+ f- E* X7 I! d" z  T; ~
4.2.5. 创建配置文件
2 D6 C! _- H( D1 _; l
% d" U4 T( {3 ^( [4 a$ m
4.2.6. 部署ceph-iscsi-config2 Y1 w! f( g& x4 s* ~1 U: S
6 @7 p! y4 b8 J, t9 ?4 l
4.2.7. 部署ceph-iscsi-cli& g" q! H6 z7 @1 n1 x" j
4.2.8. 检查各个服务状态正常
4 x* k' l* ?) X" ^" L8 w
首先,检查相关服务状态正常:
1 v4 Y/ R( {2 [
5、创建&配置iSCSI gateway5.1. 创建iSCSI target
例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。

. n! `7 [* I( y! ^5 y/ Q/ `
5.2. 创建iSCSI gateways
- W, c, f7 D! t" F
配置地址解析,如下:
其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。
例如,要配置2个gateway。
7 E3 j' K3 }# V3 Q6 ^1 k% |5 k( e
注意:配置/etc/hosts后,需要重启 这3个服务:
% Z4 u; g1 Z' C
注意:在2个gateway节点上,要分别确认这3个服务正常运行。
如下创建2个gateway,提供HA方案:

. B/ t; ^9 v# n1 }( D
然后,检查3260端口监听正常:( |; f& e# f; o8 {5 m
3 \0 @8 m* M2 }# k" b
5.3. 创建iSCSI disk: Z$ L: |% |' |) D: v( U
如下创建RBD Image作为iSCSI 后端disk:

$ `, e% o( ~0 s3 H4 Z8 `5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。
首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。

/ t: s7 K3 W; c; w9 {
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。# p7 @0 h* O2 d4 w
. C4 B: y' f; C/ U" X" m

8 J! F5 t7 o# j0 _2 V# V* @, p8 K5.5. 为iSCSI client配置iSCSI CHAP认证信息
注:建议略过该步骤。( x4 {) o0 a8 ?% H$ z
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。
例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”
/ c* M1 ?  P1 D% T; F$ e
5.6. 为iSCSI client添加disk
例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。

) S( z' A5 a& s7 E9 d+ r' T' Q6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具. [3 X, K. }5 @: c/ {0 N
6.2. 配置multipath服务' y/ c% u! X5 V" ?2 r* y4 v! \
创建默认配置/etc/multipath.conf,并enable multipathd service。

  H; z# E  ?5 @9 d/ C; |, M
: |. W: @2 h" {+ B$ [- n
修改配置/etc/multipath.conf,内容如下:8 X6 R) F" o. d6 O8 j

( x' m' G. Z( J6 t
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。
重启multipath服务。
[td]
命令:    systemctl reload multipathd
/ h, f) v- D8 t# a; k5 v3 M
! S( q; ^8 y( J, H! N* ]
6.3. 为iSCSI initiator配置CHAP信息
如果iSCSI client没有配置CHAP认证信息,则iSCSI initiator端也无需配置CHAP信息。
6.4. Discovery iSCSI target
例如 iSCSI gateway的IP是10.10.10.121
登陆iSCSI initiator端节点,然后执行命令:
[td]
命令iscsiadm -m discovery -t st    -p 10.10.10.121
6 D1 |  m7 S' r1 J4 ^# N) e

0 P7 U, q+ [. `) w2 \6 y% X7 ~! d6 K5 f2 L) z) u* R
6.5. Login iSCSI target
例如target的iqn为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwww
[td]
命令iscsiadm -m node -T   iqn.2003-01.com.redhat.iscsi-gw:iscsi-igwww --login

  H% M1 ~1 Z' ~# s; R( P6 u

" H: K0 }& x& l5 P! A$ A6.6. 查看扫描出的iSCSI盘
如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb
8 m0 V3 w, V! p. E# a1 p
6.7. 查看multipath的iSCSI disk(由RBD image映射). X8 b, m+ ~! p9 u( e; _5 |1 g
7、附录一
Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。
【解决方法一】" s& u" S- f% q0 Q+ {
说明:lun.py中不设置qfull_time_out。
影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。
修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py
# t" e. [% g7 V
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。
【解决方法二】
说明:系统中struct tcmu_dev增加qfull_time_out成员。
影响:存储异常时,业务由于iSCSI设备被设置SAM_STAT_TASK_SET_FULL,及时返回失败,不阻塞。
内核patch:qfull_timeout : 参照http://www.oscube.cn/blog/page-11/
8、附录二
  K+ I8 }* G' O* n3 J( S6 a
设置成不支持ALUA。
修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
5 ]2 M1 f# O0 b* R, K

- a2 y4 L# b! d. k% ]
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

! b: N$ T' X) ~& w/ `5 s! X. f  ]: j5 u5 A9 U( v
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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