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

易陆发现论坛

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

Ceph iSCSI gateway 安装和配置

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

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

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

x
使用ANSI配置ISCSI TARGET; e; R, I- p) W5 k7 A; w
Ceph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
" M% U$ K( M  m6 U+ r- Y( D要求:; P4 C' ~" I' |3 i" y
正在运行的Ceph Luminous(12.2.x)集群或更高版本8 }0 o- ]( v; W* f
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
. x8 C6 w& r, U9 |0 |2 g- d7 k在所有iSCSI gateway节点上安装ceph-iscsi package* s4 _; y6 j) N2 ?
安装:- r5 J" q$ \- h6 V7 e6 m; E5 E
在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:
# m# [/ h% x: i" @1、以root用户身份安装ceph-ansible package:7 K( ?$ w+ p! Z* p2 A" n; J
# yum install ceph-ansible
* e5 A, @+ Z* w! Z8 i2、在/etc/ansible/hosts文件中为gateway group添加一个entry:
8 x8 `& t) o7 O- N" K4 X[iscsigws]' y4 n" i0 q6 F7 O% W3 ~
ceph-igw-1
: ?1 N5 E( c# B. W, }- ~# dceph-igw-2
) z, N$ s, q* d/ W, C2 c+ C, P" p( v8 Q注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。
& p$ K( K- \4 F# i1 z1 W& V% s配置:, Q3 L/ `/ `' C2 L
ceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。7 b) z$ w- r2 N- Y
Variable(变量) Meaning/Purpose(含义/目的)
. N. \& a* _5 r+ yseed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。5 `2 m9 @7 R6 S4 d0 f. e8 F( B
cluster_name 自定义存储集群名称(默认为ceph)5 ?, W* z* @% e& S; ~
gateway_keyring Define a custom keyring name.
& [+ c( S" @: w2 l7 A0 N$ Jdeploy_settings 如果设置为true,则在运行playbook时deploy the settings。
  {# D6 ~5 g3 zperform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。
" j6 w7 h+ }8 `* lapi_user API的用户名。 默认值为admin。0 V& [  |5 Q* z  c& s
api_password 使用API的密码。 默认值为admin。
0 I4 ~* q+ z7 ?* X* m( dapi_port 使用API的TCP端口号。 默认值为5000。
: I4 U- p% I9 A" W! ~2 L7 L& Lapi_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。9 \3 p2 o3 f4 }' B0 a- |9 p- \2 f; B
trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。
0 V4 k8 @# ~+ B7 `6 N8 x+ UDeploying:; A8 g7 v" z  r* V0 b
在Ansible installer节点上,执行以下步骤。
% Q2 ^4 a/ o1 K: n! o! |1、以root用户身份执行Ansible playbook:
, k- [9 @# n. d: g+ E/ J9 L# cd /usr/share/ceph-ansible
9 z, z$ A( S) X- h+ T6 B. `# ansible-playbook site.yml --limit iscsigws4 |& P  n9 y9 k& N$ I3 j
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。
' L5 L' k% o7 F( }' h9 b9 o9 t  v6 _2、从iSCSI gateway节点验证配置:
5 a7 o! y/ b" Z0 z/ w# gwcli ls7 a, t4 I( i$ j0 ^1 }* h
请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。" a* k& t+ q0 v+ E0 y. h/ T
重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。2 P9 w* }& \; t# g/ ]" V
Service Management:
  Y& d# y: a& \: n: Oceph-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服务交互命令。
0 c' {) K. B9 w; H1 A% s# [; w# systemctl <start|stop|restart|reload> rbd-target-api: C$ J$ }) N3 y4 B  ]8 n: |: J
reload
& S+ \9 {: ^3 X" F0 j, Dreload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。
8 G, G, R  v' N8 Nstop
0 E6 F2 P5 _# b- ^. a5 C3 Ostop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。
8 h/ u0 z% v3 W3 o2 |$ \Removing the Configuration:. l! {9 x/ b& z: _
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:
' n; H# M3 k1 o9 ]1 ]' ]# F5 a- Zlio :7 W* q' x, S7 V6 L
在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。' |, u$ X& D6 W- ?0 |, N2 @$ v
all :
: R  R0 m+ `7 E, P, z$ T选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。: g* W/ c# k3 C5 M
警告清除操作是对iSCSI gateway环境的破坏性操作。2 J# |: |5 t* y2 p2 a5 h) {
警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。
/ J5 L1 J# S- V$ u. J7 y/ V[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml2 D. {' {9 m) L: m
Which configuration elements should be purged? (all, lio or abort) [abort]: all/ @* I5 u7 V+ o& H
# ^- N) Y8 V- E7 i5 K
PLAY [Confirm removal of the iSCSI gateway configuration] *********************
  u6 u( @' u2 Z$ V) z+ \9 V; K- d' S2 `- f" L2 C
GATHERING FACTS ***************************************************************
5 Q2 Q* [% H4 s  E- z4 xok: [localhost]/ G7 w  A# ]) Y* O3 w& K! u# l! v7 B
8 v* H7 l* S1 b7 e$ Z
TASK: [Exit playbook if user aborted the purge] *******************************' {" e+ D) R  ?" r7 X2 T% x
skipping: [localhost]7 I6 v( w9 W" ?7 d" d; P7 ?, f: N9 c# j
) Z4 `7 v' O6 d% F
TASK: [set_fact ] *************************************************************6 i* b' D+ U8 _. T! V- k
ok: [localhost]
1 ~# p- U/ x, @! v& y2 f5 G
7 t6 v. @+ F1 ]% Q/ {8 H& @  [PLAY [Removing the gateway configuration] *************************************
" [- v. A5 F2 B+ L1 n- c4 T. }2 ~
. u% u& u: L. E. L& H5 NGATHERING FACTS ***************************************************************
, C0 E' j- q9 x* Z+ y& ~) @, _ok: [ceph-igw-1]
, l8 G0 e- y- Mok: [ceph-igw-2]; `5 }. i7 N* p. ?/ a
' \) A3 s# ~# g
TASK: [igw_purge | purging the gateway configuration] *************************4 C/ K& w, m9 K5 H5 G6 K
changed: [ceph-igw-1]
6 O% g3 u. S0 ?changed: [ceph-igw-2]! _0 a: ?9 v7 ^( _$ ?3 |- z4 H
$ h$ P9 y3 s  ]; J7 _9 H0 d% D' Q4 z
TASK: [igw_purge | deleting configured rbd devices] ***************************# j9 K/ C2 I& L. \, ?2 b
changed: [ceph-igw-1]" o- g8 o, Y3 O
changed: [ceph-igw-2]5 Q# c# [$ o# W7 |3 d  `& _

" \! g! Q# [2 P) I$ b) O9 wPLAY RECAP ********************************************************************
! O$ Q4 c' a& P0 o- e6 V" ^ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0
0 Y1 n! u% t1 ?2 Y- t3 @5 N" U0 Sceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=05 G7 A5 b+ D9 `
localhost                  : ok=2    changed=0    unreachable=0    failed=00 g& Y5 o9 [: \- H# L+ ^1 y  H
使用COMMAND LINE INTERFACE配置ISCSI TARGET& A: }6 u3 M0 w; x  J: G
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
) X4 g) l! ^9 G& k. I6 jRequirements:9 ]  t2 m" q4 C- y) _1 |
正在运行的Ceph Luminous(12.2.x)集群或更高版本
6 C# W$ L" f; @+ G% Q" aRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)% [$ [* K* I$ R2 N6 O
必须从Linux发行版的软件repository中安装以下软件包:; R# e. [& g9 H: e! @
targetcli-2.1.fb47 or newer package/ [. e# f/ h1 l) v
python-rtslib-2.1.fb68 or newer package5 k) Y7 R  ]" f  L0 ?
tcmu-runner-1.4.0 or newer package9 {9 u5 [' V3 M' e
ceph-iscsi-3.2 or newer package
6 |3 _) c  G/ Q, k! A2 z重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。
% r$ K& X# z8 f: o. @+ ~8 E在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:
" @2 s/ Z& j: t' `  c; e; ~1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。
" h! ^0 ]5 X# _7 i' x$ U3 [8 v2 m* U1 @2、安装和配置Ceph Command-line Interface5 M# e( z" Y  R* T
3、请在防火墙上打开TCP端口3260和5000。0 z# K2 [  N1 g, T7 J* T8 {
注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。9 r, h; Y! G# ^7 z, ^
4、创建一个新的或使用现有的RADOS Block Device (RBD)。1 C8 ?. a" _/ o* ~+ S
Installing:3 t- ?+ N" }4 n2 ?! T! E5 }( Y
如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。
, ~' a; g) t( H, @) \! c对于基于rpm的指令,请执行以下命令:; X7 s% ^" A8 {; y% s# g" S. V$ Z
1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:) j' h; S3 W% X, W' g9 g0 r) v4 A) H
# yum install ceph-iscsi
) m- g4 J$ r* d# u# T7 @2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:
. m5 X) B- X/ G# \# yum install tcmu-runner
  {8 [& y& u) p/ w+ i  _8 VSetup:' u, w; E% ^! o: k
1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:( x' w4 J# o. S% m* Y( Z% J8 E; a
# ceph osd lspools7 Z1 S9 V, f: `. n' b% ]2 b. I5 a
如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。
/ Y/ s, X# i& x/ i% u9 q  u! H2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:" [- S; w; X$ G! r: w
# touch /etc/ceph/iscsi-gateway.cfg
9 p- x% W( |% ?$ F- s2.1、编辑iscsi-gateway.cfg文件并添加以下行:
' J8 ]& p1 T% ^! V[config]
2 S" U" j8 h% k/ Q5 l6 t% i( X# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing6 A1 r  ]( X* A0 |# v' f4 l
# access to the Ceph storage cluster from the gateway node is required, if not0 o# P! M- I# G4 u4 o: \4 d8 E
# colocated on an OSD node.9 ?. v# o4 b  i
cluster_name = ceph
) C  Z3 q$ ^6 r( c4 e# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph' [, _* p* y0 ^
# drectory and reference the filename here! @$ h; l( t6 Z5 }  G
gateway_keyring = ceph.client.admin.keyring
" u3 j$ [1 M: }; s- \0 f" t1 y7 J! ?' p( v. {3 K2 p+ N" i+ ~
# API settings.
% I/ t8 \0 n6 P+ A& f* {# The API supports a number of options that allow you to tailor it to your
4 }/ R' D. C: E% _% ?7 O# local environment. If you want to run the API under https, you will need to( i$ d2 }- ]0 [+ U# T# Z
# create cert/key files that are compatible for each iSCSI gateway node, that is
* `3 B# D! k: _# not locked to a specific node. SSL cert and key files *must* be called
5 X8 {* B! E& v$ F' y0 C# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory
$ t3 Z- K# H. N% K4 ~0 w# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true', G9 e0 u) [; w$ d% c# [' E( ]
# to switch to https mode.
5 K, f9 j' S( d1 i& D6 m% O' ?9 e# To support the API, the bear minimum settings are:, ]9 f5 j; O. X1 J" X  Q
api_secure = false
+ \& v# |8 T: W$ V: s1 a4 q# Additional API configuration options are as follows, defaults shown.1 {1 q. F: K: _) h
# api_user = admin! o" y" F+ W. k) _. c
# api_password = admin9 i: g9 B- q/ M* C
# api_port = 5001
. t8 m# t' W# b2 p5 z# trusted_ip_list = 192.168.0.10,192.168.0.11
: J6 u- P; b) d6 n! ?! v; s0 Y0 j# Y: |6 f' D, ^0 J+ q% i- Y
# ------------------------------------------------------
& W  I) x7 D) n7 O# v0 F# 翻译如下
- q# O/ X7 u6 H, q9 ~7 W. T[config]. K0 y* b& l4 v+ r9 {5 U1 K" {: o' w
#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。
. o- ~* r. e; h, S- b9 Ucluster_name = ceph8 \2 |/ C9 [( |" i0 T; V$ p0 G
#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename: y# F0 L# @3 j3 A% l, b
gateway_keyring = ceph.client.admin.keyring
, `, y, k1 A& p; c" a* B
& A4 S* S4 U5 `$ d0 C0 Q#API设置。7 V: t& T0 c+ P! I0 y; d8 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模式。
. _' z% M( H& g* r4 C  P( i: Y7 g#为了支持API,至少需要配置如下:
& ^: [5 _+ C5 Q/ Lapi_secure = false9 s; ?! W9 k% x6 q$ p( X2 f- D
#其他API配置选项如下,显示的默认值。(trusted翻译为信任)7 U2 Z& @$ m; ?7 c
# api_user = admin) r' }2 \: O- z2 ^4 h$ G
# api_password = admin
9 D. {% s- `9 s8 V& [: K5 u- g# api_port = 5001/ a4 o$ r8 j# e' @6 Q$ o& J6 r
# trusted_ip_list = 192.168.0.10,192.168.0.11
/ n+ I$ x; j7 m( Z注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。
, Q1 @) a* b% J& y重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。
! Z/ U* H: O, D: l3 U2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。
- c$ K& ]( C8 ]5 W5 ]2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:
& R3 _' p7 A0 t4 M0 `$ B$ l# systemctl daemon-reload
! w  d8 B! {& P# systemctl enable rbd-target-api* V' C3 k# X' B4 V3 T
# systemctl start rbd-target-api
1 q, E  b2 S7 q: k; V8 JConfiguring:  J; C* w7 x  E) K
gwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
. u: ^) t( S$ P/ w  c1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:0 @3 n% D0 J7 n7 f5 ]
# gwcli2 F, l9 _: ]0 I3 c! C( P
2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:
- e, K2 p! v7 S7 T  S> /> cd /iscsi-target* X7 W8 ]( c# u, `7 W2 J4 \
> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
# x8 y/ V) {) K: l3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。* i2 x: C" c6 l
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways: j1 [4 ]  c" o& N, z/ k
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.215 h6 z& T. Y( t1 y9 j. `1 [% C. w
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22
* l0 F- _  v/ U如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:
0 U3 ~) S* }/ D# y. v2 x; E> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways7 A# l0 v, q$ z6 `! n
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true: S, _' G8 x" [
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true
; L4 H; _1 E/ I5 k4 @4、在rbd pool中添加名称为disk_1的RBD image:
( F4 K. ~0 Q6 B7 m( [> /iscsi-target...-igw/gateways> cd /disks
, g) l, j! d# a  ~3 f  i6 J( m> /disks> create pool=rbd image=disk_1 size=90G: \9 u3 r: q5 i
5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:' Q  V3 Y" _- i3 J2 }6 m7 u1 a
> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts
0 f" u( c8 v3 Q* k$ P2 Y. H/ R0 M> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client
: k% a: q/ P* R6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:/ d. u* r0 r8 M7 E5 k
> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword
0 F; w7 n, g  V/ z警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。
) B& ~7 {* L0 @5 P2 S: K3 h7、将disk添加到客户端:
2 s+ N; h; ~  y3 e. `  t, M> /iscsi-target...at:rh7-client> disk add rbd/disk_1
7 C6 ~- M& a9 I1 R, p下一步是配置iSCSI initiators。
8 J+ A. q3 |: S( D5 g手动安装CEPH-ISCSI* y1 ]5 G6 H  y* \* Q
Requirements( r" L7 f4 r. W9 N
要完成ceph-iscsi的安装,有4个步骤:" @3 w! r6 q6 q) A0 N: q, N  @
1、从Linux发行版的软件repository安装common packages
& g) [& q5 a; o$ E9 f1 B4 I2、安装Git以直接从其Git repositories中获取其余packages2 l! f( O/ e$ T0 Z
3、确保使用兼容的kernel% ~! ?# U( K1 X9 z
4、安装ceph-iscsi的所有组件并启动相关的daemons:: k2 [* R% z2 x5 J) c- ?& y" _* i. w
tcmu-runner6 K% c! J4 J, A' a6 N; r
rtslib-fb) b* v% f# G4 g( O2 k5 e
configshell-fb
: v# }; ?8 L, k! C9 d* }/ A3 `- Y" ktargetcli-fb! z* k# b: H$ o5 g* P' H) W
ceph-iscsi, N8 W$ z8 V( q# V" e; }4 G
1、安装COMMON PACKAGES# m# {% t5 p8 e( e- ^0 K
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
3 b; e- l  A; A$ m5 ]3 ?; Alibnl38 U$ s" q) e" a* B
libkmod5 }, q0 O- D) c5 |1 g( D/ V: V6 H
librbd1
) _+ r9 [, s( T* C% W. [" L1 Mpyparsing6 T5 Z) X. o3 V3 ~  D
python kmod
; ]6 j1 ?. S9 T% a5 S9 @: X: Gpython pyudev8 O( I+ L9 F$ E' G
python gobject/ [+ Z$ M; |6 f: k: l2 H$ h* i
python urwid
/ [, M3 ?" o/ D+ ]6 }4 }% vpython pyparsing
! `, z8 S5 n- ~0 cpython rados" f6 ]& e/ `' k$ Z: w5 j
python rbd% A" B8 U1 q5 u4 f* N) Q# a) G! Y
python netifaces
9 v- ^" P/ Z) bpython crypto
# d: l8 P% A& U. Y/ K# o) z, j; c- Fpython requests; c' ?  d. d) g( J9 i
python flask
6 C5 [" j0 x: H4 S) jpyOpenSSL. V" W1 d5 @. G# V: A
2、安装GIT% M3 |( k; f3 E! y/ b2 x: p3 `2 I! x
为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
4 F/ a1 g  c' ^/ T5 ^> sudo yum install git
9 o0 q: o5 ?: }在Debian/Ubuntu上执行:# F6 `5 w. N8 @! f
> sudo apt install git
9 G, ~7 Q: C$ B4 @6 P4 s" w0 v, q要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com2 L( u, `! J7 ^
3、确保使用了兼容的KERNEL
7 H) v. _, n, t0 k: v$ ^确保使用支持Ceph iSCSI patches的kernel:
  v6 {: ]8 k# p8 b* j具有内核v4.16或更高版本的所有Linux发行版
7 f% w3 P. \6 S' R6 _% J2 I) ?Red Hat Enterprise Linux或CentOS 7.5更高版本
' f+ P5 A$ M$ ]如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:# b& }% L. G* P5 ~7 Z# _3 M1 z4 B
CONFIG_TARGET_CORE=m8 I3 E' H" ~0 L( o/ l7 o, k3 V
CONFIG_TCM_USER2=m
) e4 p: P/ L" b! kCONFIG_ISCSI_TARGET=m
0 h- K7 W7 I3 S, f4、安装CEPH-ISCSI- d4 x4 C% a" h3 V. X
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务$ C2 U9 a) u9 {2 l4 s
TCMU-RUNNER7 G) x# @1 s4 A9 V( d
Installation:& U! U. D) t( J# P
> git clone https://github.com/open-iscsi/tcmu-runner: E1 Y# w2 T- N5 b
> cd tcmu-runner
0 C8 P1 P* m+ _1 n& Z. W+ D* h- J运行以下命令以安装所有必需的依赖项:  ^! Z  \, g0 P; g0 D
> ./extra/install_dep.sh
8 U0 o1 w3 C& E. r% u, d- v现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:8 G; ^" O7 O. |, G/ c9 Y
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr" G) a- @: \0 \) s) x
> make install
0 Z1 o* @) P; J* Y启用并启动守护程序:
# R3 [5 X5 i- _' p  y, y5 l/ U> systemctl daemon-reload
5 O* ^* ~6 `9 v! o( B> systemctl enable tcmu-runner: M  j+ {2 e: [9 l& @+ Y; j
> systemctl start tcmu-runner9 S; T4 n' W& V2 J+ I+ [' v
RTSLIB-FB
5 o6 s1 G( [- w7 XInstallation:
2 y4 e- ~" c! `0 S> git clone https://github.com/open-iscsi/rtslib-fb.git+ R. n! L" @  d+ r4 M
> cd rtslib-fb
  M2 D% t$ p$ m- k. \2 V" _; k> python setup.py install$ p1 `7 l+ g9 D: @
CONFIGSHELL-FB& d, O$ X  T* S. J% X
Installation:; U; a. t- C3 k' s5 B* q/ q  X
> git clone https://github.com/open-iscsi/configshell-fb.git
+ h4 L3 G& i# z% G# w2 n+ }5 Z> cd configshell-fb
' \, g$ M7 z4 @> python setup.py install- P3 x3 `  g7 E4 l
TARGETCLI-FB
0 M8 H* ^% @! XInstallation:
5 J5 r9 z/ k7 [0 R9 u1 D! P> git clone https://github.com/open-iscsi/targetcli-fb.git
" [; K2 y2 O( s, _* }> cd targetcli-fb
, X: l9 E% t9 g- d- y  Y4 m> python setup.py install
+ Q# Q+ s- s: g7 Z  }* k/ P> mkdir /etc/target
2 M* r2 F7 B- L# j> mkdir /var/target( A) K: e9 K, J8 c
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。+ v' M% k" R6 U+ A
CEPH-ISCSI
$ P5 U5 y' P% O$ L' mInstallation:
/ e  g; Z5 g% o2 V! I> git clone https://github.com/ceph/ceph-iscsi.git$ b2 q2 l2 u! \; [3 l! A& ]
> cd ceph-iscsi; e" s- g6 q! E4 m
> python setup.py install --install-scripts=/usr/bin, h% E5 T6 d. o2 \# \
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system0 k, _" P9 b& y. ]/ {0 W* k% M) ^/ V1 |
> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system# L" L1 ^% B/ `$ ]7 l0 X
启用并启动daemon:1 C& ?# V* F) {! j# q
> systemctl daemon-reload
$ r4 m! z' A& V' l> systemctl enable rbd-target-gw
; j3 d/ |0 G. l) G" y# N> systemctl start rbd-target-gw
: D" Z1 M5 q' }> systemctl enable rbd-target-api) C5 ?; j! T$ w1 f
> systemctl start rbd-target-api
( A  @% ?  N- `安装完成。 进入main ceph-iscsi CLI page上的setup部分。
, I- K1 u- }5 I9 F+ I! ]8 f
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI# g4 z7 B% _2 Q/ }/ Z2 N0 n2 k+ k
Requirements9 y; i* e: J6 z$ p: q7 M
  T$ m' x5 F% W$ [. T8 W, h/ i9 I
要完成ceph-iscsi的安装,有4个步骤:: V+ G1 w0 I/ M/ q# f8 O9 g

, @  X5 Q) _3 G$ X1、从Linux发行版的软件repository安装common packages4 s9 V! h5 m1 J

. n5 Q7 y) E# F1 ^% a3 s2、安装Git以直接从其Git repositories中获取其余packages
$ h4 G+ _+ B, \7 Y: e: v: T
" _3 j% U* x5 _2 L  Q9 Y$ r8 k3、确保使用兼容的kernel
; y( t+ u. ^% D: m: A/ h8 K# F
' @) f$ Z, b& b4、安装ceph-iscsi的所有组件并启动相关的daemons:4 H0 f  R& c$ R0 w* a3 \
, ^& X( g3 }' z/ q
tcmu-runner
  L8 Z2 B9 p$ R5 E$ I. Trtslib-fb8 `; L# }4 v0 z1 d
configshell-fb+ c8 M2 d* c2 q/ f6 X$ e0 m' g
targetcli-fb
! ]. z, c. G5 }* f3 i5 [4 jceph-iscsi
( s9 U6 ]0 {: k, j& U) _. U1、安装COMMON PACKAGES1 }, K6 H8 v- n) w
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:$ k& v9 u( u& h0 N
( U0 j- Y" ^' p- m) t
libnl3- I% G1 d2 P( @: l
libkmod
* y0 e5 m7 E' K, C2 |' Jlibrbd1
( Y5 m. F8 H" p+ m+ t; a- K" qpyparsing
* q. C- h) [8 c1 Upython kmod
% v# O# L0 [. b- o( bpython pyudev' j0 G4 o2 E; ~. }( [5 [
python gobject' Z$ F3 l3 j- b: k- r
python urwid
; P' u6 v' x% J  mpython pyparsing% o7 U) d/ h, t! s9 S! D3 D& e0 Q
python rados4 N8 p# p8 C1 c9 I
python rbd1 k+ ~6 S2 b3 R+ F7 |1 m( u6 {( n; J
python netifaces
8 S# L- @# }7 `" M9 y0 z6 w8 tpython crypto' r: h2 r2 K+ \. z
python requests3 y4 w+ ^" T; Q+ x$ D
python flask  w& p& @# q% \7 S! e  x5 s& H$ f
pyOpenSSL  D0 v/ C4 `7 l; H% e8 N
2、安装GIT
' G! D; Q# |: W. C为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:: H) D; z3 a* U

: M) R4 R! s' N. Q& F> sudo yum install git
2 T  @+ _5 S2 O9 k5 X在Debian/Ubuntu上执行:
5 P; a0 N+ w" Y1 y. a+ g
4 L- u# w5 T, D6 f0 \  A> sudo apt install git' P2 ?5 a+ i: v% q* W
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com* |2 M9 G4 J6 ^2 ^2 @* j

5 V( k% s. n. p# O! I% U8 W3、确保使用了兼容的KERNEL
3 ?: D% q" [/ u& d( s6 Z: ~确保使用支持Ceph iSCSI patches的kernel:
* X8 G; I! n1 t# s* W- @. r( R" V; v' W( m7 P) `  d2 O9 E$ q
具有内核v4.16或更高版本的所有Linux发行版
, d6 Y! d" V" E3 ZRed Hat Enterprise Linux或CentOS 7.5更高版本
* _  f- K' k7 g4 l如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:3 {/ Q" X- ~! ~0 S1 e3 {; J4 H0 ]
) @0 i5 i$ N$ L) m, M5 y
CONFIG_TARGET_CORE=m" s; o' }2 A  R+ U6 y
CONFIG_TCM_USER2=m
7 W( L6 V  R8 y8 I8 U: V5 s' zCONFIG_ISCSI_TARGET=m
9 `9 J$ W* a- \4、安装CEPH-ISCSI" w. `" k9 p$ _5 Z% S) h) a  t+ b/ @: X
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
3 X  i* h2 A: `4 r9 M  J$ d# ^1 a# T; d
TCMU-RUNNER
- z% C4 _: x" R  ?# O6 @# P  @  G6 S0 W: T
Installation:
! X6 E/ Y: B8 M& B6 I; c" e
( y. z  ]9 G0 g( Q) j3 _> git clone https://github.com/open-iscsi/tcmu-runner
: ^/ B( J  X* _/ W9 H, A5 ^2 w> cd tcmu-runner
/ `, w$ y3 S+ E6 N4 z7 x5 @5 ^+ v$ m5 R运行以下命令以安装所有必需的依赖项:8 ^4 Q; n! }: l' M' j

4 I7 L/ Y+ V0 t7 m* r' P4 |> ./extra/install_dep.sh
6 j) ?! W* K4 A现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
4 i' q: K) L* C$ o
" X& p: s  c3 }7 T> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr
3 m/ E1 G/ U$ s: |7 j! m. `> make install
8 B/ m& Y$ r1 O& B启用并启动守护程序:* p) D8 i7 ?5 u3 |+ ~

3 m% y8 r4 H! S. y' |* G> systemctl daemon-reload
; ^3 h! H, N  v# O. _& |8 Z> systemctl enable tcmu-runner
+ g; F, Y3 w% z2 n6 i> systemctl start tcmu-runner
  \$ B5 Z* J9 ]RTSLIB-FB
. K3 ^* r  z0 Z* k% C
' B1 t% o* s# D2 q: m' d/ hInstallation:; I$ k! E; `- @6 L

+ _5 \5 D$ h# }0 N> git clone https://github.com/open-iscsi/rtslib-fb.git8 G  \$ o9 c  s% v8 L
> cd rtslib-fb
8 j4 d6 v/ G7 b  D> python setup.py install
1 A& E/ k0 q! e, K/ NCONFIGSHELL-FB
2 S# A2 i# k1 u" ~9 W' I" I" X: Q3 H9 E3 }; G) {' v2 {
Installation:
) u  O' N6 h  C  C
# B7 J* D9 ?4 G& W; f5 ]> git clone https://github.com/open-iscsi/configshell-fb.git* N! o- S9 P* W3 |, u, e5 j2 ?( o
> cd configshell-fb% i& ?) z9 C3 ^1 x1 ^7 `
> python setup.py install. w$ L9 a* R. ?7 v9 W. @
TARGETCLI-FB7 Z& Q% l4 h5 Z3 j9 y
' _. o1 T  R2 c) T9 L
Installation:9 @% D1 o& g, O" E1 {
! ^' Q2 \9 c* v4 w# l) k/ O
> git clone https://github.com/open-iscsi/targetcli-fb.git
5 Z1 {2 B, |! A> cd targetcli-fb
8 w* _" f7 q  E; P" O> python setup.py install9 m6 s% l; t, K: X' t
> mkdir /etc/target
! d( t) l# I) X* A2 \* u# N  m> mkdir /var/target7 [( f: P: S8 a
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。
* r) V9 _2 b/ e1 y! D3 d% Z6 r6 g2 U- w8 I
CEPH-ISCSI" |$ T" w& L, F3 z
Installation:
! f' N' [# U- N' R
6 `9 d% v3 H7 s7 g) v> git clone https://github.com/ceph/ceph-iscsi.git
6 {$ A7 g; I; |6 u6 `/ `) {7 _> cd ceph-iscsi4 d3 U9 ~. X2 w% [$ T7 U
> python setup.py install --install-scripts=/usr/bin: W) v$ L! k! S; J
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
; y- P( l; ^/ i> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
" }5 e7 r% G, r) o7 }4 k启用并启动daemon:
. ~2 @6 v$ x2 D" [/ U1 X/ |4 U# r/ Q5 `0 ~" b7 i: b0 E! q
> systemctl daemon-reload
; g: n6 u/ V6 ?' t> systemctl enable rbd-target-gw
. H' N- T! d& [( G0 J& X( j  z& n5 V! m> systemctl start rbd-target-gw
5 N- D" `8 e( }: T* n+ W* b5 U! s3 |0 G> systemctl enable rbd-target-api
7 h# h' v9 i2 j7 _: C> systemctl start rbd-target-api
, Q. V& Q5 U: u* {! o' g$ G1 R2 j安装完成。 进入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;
确认内核选项启用,如下:
- k$ [! |) l1 B1 G
3.2. ceph集群版本:
注:官方建议 Ceph Luminous (12.2.x) release or newer
实际采用:Ceph Kraken (11.1.0)
3.3. ceph集群配置:
通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。
建议如下配置:

: ^+ @$ C# ~1 t1 b
确认配置:
确认名称为”rbd”的pool存在,如下:

( _# j- t- G5 K8 g5 `1 `: l
确认支持5个features,如下:

4 g. G- G! F2 q5 ~# I
; a. c0 }) z5 S5 q( ~4 \
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)
, |* {3 o1 C$ n( w
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
    , E0 o: g6 q' T7 ~2 B  m' z即: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. c) ]8 o3 V- e$ V. }
  注:rtslib-fb依赖pyudev>=0.16.1

7 t  N; m, U) b
4.2. iSCSI gateway节点部署相关服务
2 o% U! q" ?% c0 P& G/ X/ d
4.2.1. 部署tcmu-runner
% d* H0 b2 a( _2 D4 f/ a8 O
4.2.2. 部署rtslib-fb
; J# }: e( e  W. d- u1 O0 Q- Y

5 e! a4 ]; p( Y! {
4.2.3. 部署configshell-fb& x% R* z0 ~) e0 h2 `

& q) S* x5 t  s/ B, v/ |
4.2.4. 部署targetcli-fb' k7 l* J% i$ I( V. w1 `" \& n6 w
1 I( Q: j9 s% T, l, w1 R; g2 v
4.2.5. 创建配置文件
& j1 O8 D& y0 b8 U8 m  F# U# J+ f
- n2 A  P" Y4 G; [% V( |! A
4.2.6. 部署ceph-iscsi-config
  o, X- f+ y* B# Q2 j) a5 {% D; E
& D$ A4 E+ Q- Y5 F) i8 Q# B' E
4.2.7. 部署ceph-iscsi-cli* B5 Z. f' M( @$ n, s
4.2.8. 检查各个服务状态正常$ ?4 v( b+ ~, @' N) @9 B: Z
首先,检查相关服务状态正常:
: K/ m8 ~1 f/ |- ]
5、创建&配置iSCSI gateway5.1. 创建iSCSI target
例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
. A+ I1 ]/ u4 f0 ]9 X6 Q$ B* J
5.2. 创建iSCSI gateways! }, m3 M( h  W6 N) Z
配置地址解析,如下:
其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。
例如,要配置2个gateway。

8 p( v1 J: N. S
注意:配置/etc/hosts后,需要重启 这3个服务:
; U4 D* d1 A' v4 L0 i
注意:在2个gateway节点上,要分别确认这3个服务正常运行。
如下创建2个gateway,提供HA方案:
# y5 ?0 S8 h# N+ f
然后,检查3260端口监听正常:1 j6 I: p% p4 e& C

' A6 o* Z  ^- [1 Q
5.3. 创建iSCSI disk" ~& p+ D5 `7 i4 h1 k
如下创建RBD Image作为iSCSI 后端disk:
; V/ S: Y! i) x7 J
5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。
首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
: @; b/ N  K1 r0 q
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。4 T6 {0 g( G- w+ N

: Y! G& M# F9 |0 P
" k" t; f5 U7 J9 R; n! x5.5. 为iSCSI client配置iSCSI CHAP认证信息
注:建议略过该步骤。! [* i: n' X: X7 g( u8 p0 _7 A
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。
例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”

1 [+ M+ @' E5 }4 `: P% `5 I& [, S5.6. 为iSCSI client添加disk
例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。

( r& E5 V4 D9 H1 }7 Z6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具# Q( J! G) \. w. y, y8 z
6.2. 配置multipath服务: F# X; d, }. u
创建默认配置/etc/multipath.conf,并enable multipathd service。

. R9 h1 A0 ^% Y  A! R! I

: p! Q4 S" @: p( M5 q修改配置/etc/multipath.conf,内容如下:
9 e4 _' S5 e: K- ]' W
* \2 h- J( A% l0 V. C
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。
重启multipath服务。
[td]
命令:    systemctl reload multipathd
7 P" {' B3 C! J6 B
8 K1 l) H& \  l. M
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
/ t: N+ h4 v. o4 A! ~; i

, G0 T+ H+ q! o7 w
# P! x) ?: r) n9 P6.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

7 q. E/ w5 q9 @
; W& O0 Z& Q# B0 F3 [. d0 S3 E
6.6. 查看扫描出的iSCSI盘
如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb

( b6 m5 `0 }' A! e+ X6.7. 查看multipath的iSCSI disk(由RBD image映射)# L/ D. ]' P7 \, F; H. q, d* \1 w
7、附录一
Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。
【解决方法一】7 q4 a, P$ z! d7 e
说明:lun.py中不设置qfull_time_out。
影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。
修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py

) i. p; {0 {" @& n# x: U
注意:修改后重启 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、附录二
7 n: }) C3 C/ h5 n
设置成不支持ALUA。
修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
# O1 r' D& s) r

4 P, ?3 O( |; A' W" o( \
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

0 f3 _/ U' f' ^( b/ v# j* p
, i; Z( W6 {. a6 k
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2022-10-4 04:44 , Processed in 0.052778 second(s), 22 queries .

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

© 2012-2022 Comsenz Inc.

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