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

易陆发现论坛

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

Ceph iSCSI gateway 安装和配置

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

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

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

x
使用ANSI配置ISCSI TARGET
0 h7 k+ V* A# Q/ ]Ceph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
. t( Q( f) x, l, A1 @要求:+ C; U' I5 i$ J
正在运行的Ceph Luminous(12.2.x)集群或更高版本) ^. f3 [( l  ~/ H2 ]# i0 f( w
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
9 {9 Z/ K* H9 z+ S4 d在所有iSCSI gateway节点上安装ceph-iscsi package
# \, Q3 e9 C* J% ^* ^安装:
7 b& @+ }' Y5 M  N在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:/ d$ J) b$ E9 i- Q/ t
1、以root用户身份安装ceph-ansible package:# L; Q: }' L7 h: x4 H
# yum install ceph-ansible
# j1 j* Z/ Y6 n6 v5 D2 G2、在/etc/ansible/hosts文件中为gateway group添加一个entry:
3 M6 y( c; Y- t[iscsigws]4 R/ ?2 \: m1 _7 y1 q; o1 b; x7 l
ceph-igw-12 E8 R& w' y/ `
ceph-igw-2! H2 R  `6 r- T1 P% s
注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。" G( z$ B. h0 P( c
配置:4 C0 y9 A& T1 q
ceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。; C" D% H9 N& {( {
Variable(变量) Meaning/Purpose(含义/目的): t( u, W2 Y% Z4 K1 U% j* Y
seed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。  ]% m6 n6 _8 w( P9 n
cluster_name 自定义存储集群名称(默认为ceph)) w9 c- c% _' V
gateway_keyring Define a custom keyring name.: f+ Y2 t: k$ n( h) _& N- |) }
deploy_settings 如果设置为true,则在运行playbook时deploy the settings。* ^9 U# I: I' a% b8 U1 Z; U- g
perform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。
6 r- p6 O* ~) B$ S; g. ]api_user API的用户名。 默认值为admin。- t+ h1 b# ?* W5 E8 O8 H+ ?
api_password 使用API的密码。 默认值为admin。
2 A$ x" P( r, W; Hapi_port 使用API的TCP端口号。 默认值为5000。
. u7 ~: U# Q7 D/ y) uapi_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。! y0 Y( N$ E, A: `6 {( P7 z6 v
trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。% q: I$ r2 `- e( I
Deploying:
/ \) Z* m& Q" [3 K0 f在Ansible installer节点上,执行以下步骤。
1 l6 Q. E7 \8 J8 ]1、以root用户身份执行Ansible playbook:
6 f4 l" B, h& {7 H) a. ]; S# cd /usr/share/ceph-ansible
5 A* k) A: s5 C; }# ansible-playbook site.yml --limit iscsigws8 s  E5 f* A( y6 i
注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。) r# x( P4 V3 j* ^# R
2、从iSCSI gateway节点验证配置:
8 Y( s/ [) ^7 I% _/ w# m# gwcli ls
$ g! z' r0 `. L7 T! B' `请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。+ x/ U* m5 W: t3 H# O( B# v% f
重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。0 K+ q# k) `2 k( ]
Service Management:# h( J7 Y. U  \
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服务交互命令。
" N0 k4 [- |/ F2 x- i$ P' g; S1 v! w# systemctl <start|stop|restart|reload> rbd-target-api8 x' K' o, j% i" K  v, x
reload
; t* y4 {  y( nreload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。7 [& b0 A7 {/ {6 W: j
stop
2 i" e  c& x/ Z9 M. Qstop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。5 s0 N7 o/ ]( i( L
Removing the Configuration:
# Z3 f* G. v3 H) ~/ u$ Bceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:
# s, Q! d! E$ q& x) zlio :7 C4 z) U/ P( s& j
在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。7 B9 c3 }1 D. d
all :) Z4 K5 k1 ]9 v
选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。
# ~- W* i8 |( Y$ T* ^7 K6 _警告清除操作是对iSCSI gateway环境的破坏性操作。  }5 z( c. r" n( A  G
警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。- y( _" D) [! }7 A- g+ M
[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml& c  C2 k  `9 j  {
Which configuration elements should be purged? (all, lio or abort) [abort]: all
$ |+ U; y0 J" t& R& Q* e# B
6 O) v  v" ~! f: bPLAY [Confirm removal of the iSCSI gateway configuration] *********************% C7 |) L$ |" c" A! @: r
  V% B0 \( ^+ a. \# S
GATHERING FACTS ***************************************************************
6 O* g* P. v! U; i6 Mok: [localhost]
; c. d8 L! m0 ~( g0 m. v7 E5 R8 a* s. ]) z( v
TASK: [Exit playbook if user aborted the purge] *******************************9 o: v; c, H/ O$ G
skipping: [localhost]) d/ F' V: E$ ^3 s  o4 `) P
: d6 c. `1 u: o& F5 W
TASK: [set_fact ] *************************************************************
3 }( F. u4 d1 i5 k# {1 m+ t7 Pok: [localhost]. I* V7 U1 v2 v1 h

( E8 r- F( r% Y' y9 x# e% cPLAY [Removing the gateway configuration] *************************************
) \, I9 W: {, i6 J. a% l7 j6 W* S# o  s
GATHERING FACTS ***************************************************************' P" J4 K3 h% q- @) E" w% e0 {
ok: [ceph-igw-1]: r1 d2 `, C7 ~0 y& t) ?. y4 q
ok: [ceph-igw-2]
* l+ V0 V2 n  D. t4 a5 M) ^; R3 b
TASK: [igw_purge | purging the gateway configuration] *************************5 B- ]" i, t! a" P
changed: [ceph-igw-1]- m( k% D5 h( A" S
changed: [ceph-igw-2]
3 F. r# E% I6 l+ ~3 [8 ?0 g/ b+ Q* E* b6 \/ R* v  |! O
TASK: [igw_purge | deleting configured rbd devices] ***************************
4 w; [; H# |2 }7 U- _: B$ g/ bchanged: [ceph-igw-1]2 e2 N- C' Y9 p$ W0 V
changed: [ceph-igw-2]
5 ~) e5 Y& F7 r- b# w  H. d1 A/ r5 |7 H9 _* {
PLAY RECAP ********************************************************************8 ?0 K9 J& n' O2 S
ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0, R; \9 E+ o* q: |- }( z* u6 h
ceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0
" Y( s7 n9 T4 ~* Nlocalhost                  : ok=2    changed=0    unreachable=0    failed=0
) [$ g6 Q2 N4 A" ]8 V使用COMMAND LINE INTERFACE配置ISCSI TARGET
$ Z) D- \' C! P8 c0 h$ s0 \& GCeph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
* i" C) Y; l8 C! x5 `Requirements:/ D# L2 F4 w% }: ?  C
正在运行的Ceph Luminous(12.2.x)集群或更高版本
- Z7 t5 m* d+ eRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
, {7 o. ?/ d1 X1 W8 u必须从Linux发行版的软件repository中安装以下软件包:
  d3 q# e) Q. Z+ h& e( L9 Gtargetcli-2.1.fb47 or newer package+ j) C3 ]3 A! e7 U! q% f# H% [3 }, ]
python-rtslib-2.1.fb68 or newer package  E  v9 D7 Q* U0 c. [/ C
tcmu-runner-1.4.0 or newer package
6 {& `1 r9 ~$ [/ A) |2 O  c8 f- Aceph-iscsi-3.2 or newer package" W3 Q0 J7 h1 R% [/ x% W# ]
重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。
9 _! P5 Q0 t3 c, i在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:# P4 ?* N. ]) V1 }9 o) |  i3 f
1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。
) g: X" m+ A6 o/ E, M2、安装和配置Ceph Command-line Interface
0 ~1 T' l# J  B1 j1 S8 {( N8 n3、请在防火墙上打开TCP端口3260和5000。
( i" I$ D9 g8 v1 `8 N0 G* f注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。
0 f1 K# r; S1 q6 G4、创建一个新的或使用现有的RADOS Block Device (RBD)。) y! H0 Z: Z$ T0 S4 l  G" E. ^# Q
Installing:
! y1 G" z/ I9 ]9 p' ]" l如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。; @; u5 l: U- j/ B3 N, N+ c2 U; j
对于基于rpm的指令,请执行以下命令:
* A/ l( E- I" I( U1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:
: p  r# _+ s5 [; g6 D1 U+ x# yum install ceph-iscsi
% V4 B1 b. Q# v) ]6 M/ z& K2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:2 D3 e4 y0 A$ S) E+ ?; O$ P
# yum install tcmu-runner, ~( }5 S+ J3 z- Y5 T
Setup:  L/ k. |1 W# r  O5 h; _4 d) R
1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:9 w6 a: L8 |) G5 K" V' d
# ceph osd lspools% ~2 p$ w- _. C. d% A
如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。5 `8 i' z4 e; e: `, W: y& T
2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:
% g4 N# |8 r. g7 O1 {1 q: i# touch /etc/ceph/iscsi-gateway.cfg; J; b- B$ R/ X5 ?" U! z
2.1、编辑iscsi-gateway.cfg文件并添加以下行:
) l1 a! d4 l8 _0 h" ?[config]2 s3 `( A& W4 ^. \
# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing- ?% w7 d0 }7 r8 r3 P4 V5 o
# access to the Ceph storage cluster from the gateway node is required, if not
) B! f% g) S( i& M" k% @% Z" _# colocated on an OSD node.
7 f) M; ]5 ~. I& m% X0 L' Ncluster_name = ceph
( e8 l5 V+ @6 N7 U* \! b  f2 `# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph
# {1 n/ M4 B8 v; r6 ^2 |  P( j# drectory and reference the filename here
8 v2 i: N* S' b  B" n4 J7 cgateway_keyring = ceph.client.admin.keyring& C; u- w. X( o

' D+ s* M; n: E+ x6 _# API settings.- p: ^0 v8 y1 B5 _
# The API supports a number of options that allow you to tailor it to your, j  H- W- y) v8 k% J
# local environment. If you want to run the API under https, you will need to
6 w6 C+ C- M2 G% F, k- h0 A# create cert/key files that are compatible for each iSCSI gateway node, that is
3 z  I; R3 Z$ y$ k) P; v' l$ ?) }9 F5 c# not locked to a specific node. SSL cert and key files *must* be called- o6 v) L$ b# Q
# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory
0 L" f9 c  x/ m  P. S6 p& b' U* o  ?5 u# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'1 [9 [- Q. F- a# q
# to switch to https mode.1 _' E/ E0 s" }/ |9 Y! R& b
# To support the API, the bear minimum settings are:  _2 t+ R% C- R/ |1 D4 i; _) @
api_secure = false
  s: r9 f  F% B7 h$ B1 h# Additional API configuration options are as follows, defaults shown.' o4 L$ v) S+ ^: E% T% t
# api_user = admin' u3 S$ H  u0 T  y6 f0 F
# api_password = admin
) O" W" E- m* S: i$ i1 |# api_port = 5001
/ X0 z! V' [" p  D8 N: ]# trusted_ip_list = 192.168.0.10,192.168.0.11' a3 a9 Y' R% o! r' V; V, o" S9 I

$ x# J# U: C/ x# D" L. q# ~# ------------------------------------------------------
2 [+ w9 {5 N3 t3 g% F# 翻译如下- f8 A+ x/ U" n0 {: w. O! b
[config]' e8 M1 w  v( O4 o( ?! }* R
#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。8 x1 Y. r% o. _* [% v' ~1 J
cluster_name = ceph' [8 u3 @- C* q/ o
#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename4 \, k" T3 R$ ]' ^8 t
gateway_keyring = ceph.client.admin.keyring" q. U4 G4 f+ ]. u# |8 q) i& U2 \
/ H% ^; e$ M4 O8 P3 E# a
#API设置。
8 S, i; ]; F. t#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。/ G( Z# h: x/ A: z& @2 N. Q4 x
#为了支持API,至少需要配置如下:8 s9 {' U  ^! @$ \9 a; m" W$ i! Q
api_secure = false
0 {  p: }3 |9 W#其他API配置选项如下,显示的默认值。(trusted翻译为信任)
3 [$ l0 k3 I; U- |# api_user = admin* R! @, t& j/ g! w# r3 |
# api_password = admin, A; g' }$ e3 ]: s/ O
# api_port = 5001* p+ o/ w- D& S$ ~3 T& j
# trusted_ip_list = 192.168.0.10,192.168.0.11) H+ y+ x' c7 }7 V7 R% w/ O
注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。
9 T0 q9 f3 j1 k$ S" U- Y' D* X" v重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。
' e* W& [( N; C" J: U2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。% S( t  y; E: C% Q# H. ]1 Y
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:
+ }5 p) B: Z, U7 Z' |1 {# systemctl daemon-reload' G2 b0 {" v' j0 t8 `8 t/ ^
# systemctl enable rbd-target-api
& D4 Z4 `$ O: Q# systemctl start rbd-target-api# ~8 S# U6 f$ L' F
Configuring:
$ b. g( u6 q( t" }' z+ Pgwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
; y( a+ U# c4 V( v1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:
( v3 N, T9 W& I# gwcli" I, y4 U- w* Q/ m* r9 w3 j
2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:% ?4 P3 z! y; i
> /> cd /iscsi-target
& k& F; e! K/ v  Z. W> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw
- L: W  Y# `6 B" W- n7 z3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。
" c5 @0 E, b& O> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways; Z/ e- h9 V+ X7 t0 }5 V! R
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21% ?7 L# e( Q' f, F' X& X6 v7 s: z" L
> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22) J4 t5 z$ {3 b' g. h! A
如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:
9 e( c7 `9 i2 X6 V9 B> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways$ z$ e% a+ ]* Y& z3 K+ @
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true
7 O' [3 }: y1 s6 I# C> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true
5 E& W( L* j, k4 g: D6 A. R4 Z4、在rbd pool中添加名称为disk_1的RBD image:
. g7 X; M+ c( b8 V: |* P5 ^) H> /iscsi-target...-igw/gateways> cd /disks8 z3 k& M" S' c* ?
> /disks> create pool=rbd image=disk_1 size=90G
0 l! D/ I& e+ \( D5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:8 }6 J2 U) g0 s& ~  |. i
> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts
9 h: _6 P: w* _" p) P1 B; W$ s  @3 s0 R> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client
- Y/ O5 v6 D! W; F6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:! J% _8 Z% }+ X9 b1 h
> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword
- n1 n$ H# d. b1 R警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。
/ Y  f8 P$ J( T- d- Q  h' d& q7、将disk添加到客户端:2 U0 \  _. a5 Z- c0 j
> /iscsi-target...at:rh7-client> disk add rbd/disk_19 C7 m# {- m' P" P' i
下一步是配置iSCSI initiators。
% Y0 X: `" I5 @7 Z& c. y: O  _( U手动安装CEPH-ISCSI
+ E7 Z, Z/ m$ e. F/ _3 m: IRequirements- ~. E9 c; \0 r5 S7 [( y
要完成ceph-iscsi的安装,有4个步骤:* e, A9 O+ `7 _: R' W3 a
1、从Linux发行版的软件repository安装common packages+ x# t* b- N' R
2、安装Git以直接从其Git repositories中获取其余packages$ M$ [) r1 N4 `4 F
3、确保使用兼容的kernel! C2 B% d& o, ]- C* _( K
4、安装ceph-iscsi的所有组件并启动相关的daemons:, z5 O1 a: o7 e7 O$ n& Z& A4 N* M* R
tcmu-runner0 K5 q% m) F( P: A( S, i! X
rtslib-fb
* u& L. ~+ c7 ]8 Sconfigshell-fb
+ f% ~, I- a+ g8 ^2 btargetcli-fb, B1 Q* Q* X+ P' u# ^) D
ceph-iscsi
0 W' Y6 O( k3 e1、安装COMMON PACKAGES+ m* x. q# N4 U
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:+ ]' n# s8 Z" J& R" Z
libnl3
' B4 D& T6 P$ ~% n- ylibkmod
; y5 {( f. M1 `5 v; Vlibrbd1* Y/ V4 P9 g' N  X; Q( y0 N
pyparsing( J* X, R* x, O$ u, @% l; F" [, h
python kmod7 l, N% D& I' L3 ]1 v& R# A
python pyudev
7 ~" A9 P% M! @; p" H/ Spython gobject6 {1 x9 k- V. U' H* }: e1 Z" s
python urwid
' V* V8 _, X* F( }1 Z6 apython pyparsing: E5 @7 u) S: N% t: U
python rados
( k+ v: @" u7 l- l8 [! _5 ~python rbd
, J/ @4 G. w* O- cpython netifaces
' ~% ]2 @# X2 Spython crypto
) ?( [  k5 _" V7 U# F( hpython requests) x7 Z6 ^& V& S9 H) f" V
python flask
: i2 q2 Z9 |2 h' s7 z: l  HpyOpenSSL
; z1 C& R+ b' F! c2、安装GIT
9 q4 `( n% g, m" a6 _7 y8 O4 l为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:/ h! z1 B. k. Q" m+ @' u
> sudo yum install git1 I6 r# j6 k# o  |# E! R
在Debian/Ubuntu上执行:. ^" Q5 a7 O* L0 s9 t' l% l+ X
> sudo apt install git
6 D- ]- t2 C) @要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com+ P- I. }% {0 Q, P+ E8 p
3、确保使用了兼容的KERNEL
& U) Z. ]8 X: L3 m9 Z* F5 l确保使用支持Ceph iSCSI patches的kernel:) H$ g, v- q" x/ ^5 W1 ~; M
具有内核v4.16或更高版本的所有Linux发行版
6 n5 E/ `2 b+ |- T6 J& URed Hat Enterprise Linux或CentOS 7.5更高版本5 l( c( G2 g2 ?, U6 a
如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:) q- f* K" j/ i% ?' @4 E2 p: S
CONFIG_TARGET_CORE=m
2 T' k: ^3 j8 j: E9 p8 {CONFIG_TCM_USER2=m
3 j0 ]& S3 N; I3 W0 yCONFIG_ISCSI_TARGET=m3 d* U8 w( Q0 t
4、安装CEPH-ISCSI
) B. \- c/ R6 @4 u7 T  J% {最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
* S) [' ?5 n+ Q' pTCMU-RUNNER
& J9 {9 O0 M% h- RInstallation:
2 y5 E! z0 S# |3 s> git clone https://github.com/open-iscsi/tcmu-runner+ J, g; }) ~# t$ f! J; f4 o
> cd tcmu-runner
4 i  J) g% u( P; ?8 t' A( g/ t2 T运行以下命令以安装所有必需的依赖项:
, S+ M& F$ N5 F4 w' I" ?2 }! @1 l> ./extra/install_dep.sh
" {& C  t/ E; }" C) Y% P- D* d现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
8 A; G0 w1 f. p  y> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr8 L0 @, c, }, p
> make install
1 l& \  Z3 ]! P: l启用并启动守护程序:8 g  L' H0 w% u
> systemctl daemon-reload
! T7 w( }" b1 F* ^; K9 K> systemctl enable tcmu-runner
4 k7 X; ~) |% [+ r( \$ I> systemctl start tcmu-runner
  J: p3 n  W# o) z/ ~6 T+ XRTSLIB-FB% q" \: u7 t% }9 M) G5 t
Installation:# s  u6 a3 u5 o3 L4 F, p+ D
> git clone https://github.com/open-iscsi/rtslib-fb.git
7 L5 Y* Q5 E& A+ c# }> cd rtslib-fb
* ^& k$ [; L: n% r" v> python setup.py install
9 |4 Z4 J) R; kCONFIGSHELL-FB
% A. W* b. g- J8 v; r& lInstallation:
( O& S! D3 q4 ]> git clone https://github.com/open-iscsi/configshell-fb.git
/ f( l7 s1 _7 Y5 u> cd configshell-fb
5 o/ h2 R: b$ p> python setup.py install
2 v: j( z& D) p, uTARGETCLI-FB
* D2 k5 S% W6 C' t1 c6 t2 _, kInstallation:
+ A2 z/ X) S" ?. H> git clone https://github.com/open-iscsi/targetcli-fb.git
7 E, G, e/ R: _! x' l> cd targetcli-fb
3 d4 M* a; n8 W; l* }> python setup.py install
* F; g, H+ L3 t. f3 v% [3 \> mkdir /etc/target
: O* K  Y1 ^' o; o! z> mkdir /var/target
' C& o# R& t( |: ]" I" X) X警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。3 {  K" Y4 g) ~& r2 O9 g8 R; i1 b
CEPH-ISCSI
) E" ?/ |2 q0 w8 h5 ^, }3 cInstallation:
8 G  |) ]7 T  ^. v0 v9 M> git clone https://github.com/ceph/ceph-iscsi.git
- h$ K2 u3 E1 ]( @) b, q1 Z> cd ceph-iscsi
* v$ h0 a* d! s5 P4 m: O. i> python setup.py install --install-scripts=/usr/bin
$ E! `7 s: I# Y' U6 e- Q5 |% k> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
5 T+ i' y" K) @0 b0 ?0 x> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
% f2 F" E% P9 W1 a5 ?) P启用并启动daemon:
% F( I9 i, E! Q: F6 A7 ^8 G- {> systemctl daemon-reload" g, z! u6 Z! C) {0 @
> systemctl enable rbd-target-gw
& w( e) O" a: h% i> systemctl start rbd-target-gw: h1 J0 g1 q. ?  H3 ]/ H
> systemctl enable rbd-target-api8 M* E3 I7 X# r& J
> systemctl start rbd-target-api  ^% e1 |+ ^; A# A. e$ o
安装完成。 进入main ceph-iscsi CLI page上的setup部分。, ~. ]5 ^- }! W: g& ~2 o0 o( y
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI" k7 G$ D( {. }# K8 m! u2 D
Requirements
: ?+ G4 @- X. s1 @; a& Y' a0 z# C' F: ^8 s( P! f0 p2 ]
要完成ceph-iscsi的安装,有4个步骤:
; U/ o, Y/ n" Y' B7 `5 _+ g
2 P) m0 P  O: h8 n1、从Linux发行版的软件repository安装common packages
3 m! B7 i: y4 ~! M+ D
+ K/ j, R4 C' u, ]2、安装Git以直接从其Git repositories中获取其余packages# }$ ^" i9 m: ^
5 e& H* o2 Q4 C' E. E
3、确保使用兼容的kernel3 C# i# J/ ^% k
) ~* e# X' e  T& C5 Z
4、安装ceph-iscsi的所有组件并启动相关的daemons:
+ N; B6 a& o8 w5 |1 R! I, E2 i8 w8 J4 t
tcmu-runner
) Y$ d; y9 K1 n1 A/ Mrtslib-fb4 D( U8 d. N# _* s, w9 {' H
configshell-fb
) o8 o; @8 j+ W) Xtargetcli-fb
6 r0 g+ y3 {3 k4 }ceph-iscsi( Q* C* W/ U7 c$ L
1、安装COMMON PACKAGES
9 O5 L! i+ Z) _ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:9 Z) s& W4 Z% {6 G
3 v/ z) p+ t* i8 x3 e/ y9 S
libnl3) s# ]% M; A1 q5 _4 @! q; k
libkmod! J+ c* z( L) H) I$ q) G# w4 v# |
librbd1
; d; j- @! C2 h8 T* S+ H' d& i. l# `. tpyparsing
5 h9 y  C; N- p6 L% \python kmod
" F" n2 `( \5 Epython pyudev% i3 V! U% V) Y+ n0 H9 k
python gobject$ i; K, M) w: p, w
python urwid
# g' G  U2 p$ y. O( apython pyparsing/ W# g' T* \1 g
python rados! ?8 _: ?( M4 L# h2 C" u
python rbd' f4 v" H6 w% P1 S4 h5 M
python netifaces8 t! Q$ M7 H* G4 W% g
python crypto
7 x% N$ c5 K$ B, g$ \/ Lpython requests2 b8 ^7 n! m1 R1 T4 r& y' ?/ Y" v
python flask3 V3 `0 p% ]7 B8 q$ Q3 s; Y
pyOpenSSL% x2 W9 w" a) Q) z2 a
2、安装GIT& i, q* B: l( M
为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:
% z* P! [( o6 h; J+ Z- ?
- S- j) Q' U: F> sudo yum install git' }- k6 n% D6 N5 W# k/ ~7 f8 b" V' i
在Debian/Ubuntu上执行:( a* s& ~6 i; X; Z

8 H1 Z; h6 d/ k- G4 m> sudo apt install git9 c8 F* N/ C1 ?2 C3 n1 v+ R
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com9 v: c1 w) f* ?

  D% H# T8 r' G) P$ i* A' T3、确保使用了兼容的KERNEL
2 {4 H. m3 j' M4 b- Z1 p确保使用支持Ceph iSCSI patches的kernel:
; a* _" n. _" e8 b6 d
; c) k  p: e( B7 E! T, ~( ~具有内核v4.16或更高版本的所有Linux发行版' l. i; |6 A% u5 {; x
Red Hat Enterprise Linux或CentOS 7.5更高版本, h. O- c/ S6 E2 p8 J
如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
+ B* z+ [8 H, s; e# z) t" R2 L+ I( b3 P7 l& _
CONFIG_TARGET_CORE=m* I1 F2 u* ^3 r
CONFIG_TCM_USER2=m
; ~, U1 j0 ]3 L6 b7 UCONFIG_ISCSI_TARGET=m, f. @8 L* ~. m- n
4、安装CEPH-ISCSI
2 c2 i/ Q0 i6 l最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
" H& N2 f7 T5 W
+ ~7 t) i/ n( Z* V' Z4 ]TCMU-RUNNER
, s2 T) h/ @6 o" f9 n# M3 m3 T# k# {9 E# g5 z! T1 ^* |! A8 c
Installation:
2 U) ~% n. f4 J, r" G5 \7 _
  c) ]3 |/ m6 l> git clone https://github.com/open-iscsi/tcmu-runner
7 \: {6 f! B% N> cd tcmu-runner8 Z0 O& R% i8 Q* _& x" Y  ^, k2 T& K
运行以下命令以安装所有必需的依赖项:/ |1 V! Z+ H: J& ~) v" }. N
$ I& H1 T8 f! v- i8 C
> ./extra/install_dep.sh
; D9 y1 v8 M4 D8 l8 w. B3 q现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:  ~; E4 a( v4 v. Y) H( Y% @5 R
% v0 W4 ~1 J' F0 v( _
> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr# I+ X" S2 i  \- x9 p! F! p
> make install
3 ^, h  e  `( v8 N' J& i7 t启用并启动守护程序:
# k3 U" j5 u, i. I  `! T% `# z$ R2 K, ~* j0 ^# Q0 d( }% C
> systemctl daemon-reload
4 b  K# L. b+ P8 n- C> systemctl enable tcmu-runner
9 ^% n1 H- C7 S. f0 v> systemctl start tcmu-runner
' x, o" E+ Z* f, X+ QRTSLIB-FB: S! w2 m: \9 F' a/ y3 s- N6 z6 d
" n8 e6 b0 v# [: e: g) j: l" p
Installation:
: X, {0 w* z/ y2 m5 N0 ~1 D+ D2 x" b0 J* R6 i) Z2 ]
> git clone https://github.com/open-iscsi/rtslib-fb.git
  v$ [0 G: C, n+ |# A) R> cd rtslib-fb2 E) r5 w( P5 ?% ~* b
> python setup.py install
1 j' u* a" i7 L" cCONFIGSHELL-FB. R% `3 Z- }2 Z( }
/ n9 V0 x2 K2 U/ `( p7 n8 a% ?* t
Installation:, E: F8 E& H5 j6 C4 d

% R" R( }* s( P- }1 F> git clone https://github.com/open-iscsi/configshell-fb.git
: A0 R' b8 n1 p- q: E% g$ N> cd configshell-fb" U: b9 ~/ u2 _- k. R3 M9 y
> python setup.py install
. @: D7 h0 N" e: T5 aTARGETCLI-FB4 s- I: G# N/ A" A

* {9 C/ o' i/ a' @. m+ o' [Installation:! i) r9 o1 S. q& p- S( e+ g+ s
" ?+ D" q8 r4 K% k* L7 N( L6 Z
> git clone https://github.com/open-iscsi/targetcli-fb.git
+ Y2 I: T; z$ k, o: V( k! N> cd targetcli-fb
# m8 _% p/ B3 M3 a7 O6 t' U2 {$ F> python setup.py install* Z/ o6 f5 A' m, T/ S0 L; y6 S
> mkdir /etc/target
- _7 P  Q9 z/ z& R! @0 s4 H> mkdir /var/target
& u: {. P4 p9 g! A/ j# K5 {9 a7 K警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。; ?) f) |$ ?' Y( y( x3 u

$ O# I8 }9 @* m' C+ r: SCEPH-ISCSI- d: W3 R) ?$ s9 B
Installation:
- Y: `2 c/ _8 d4 v" h8 }1 R$ p* X/ i' B! u$ p( p  T% a
> git clone https://github.com/ceph/ceph-iscsi.git
; \+ a0 ]+ l6 C* K* r9 K> cd ceph-iscsi
% S1 p: o. C5 C1 o, ~. q% R> python setup.py install --install-scripts=/usr/bin2 U! {6 N- z" Q6 q
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system
5 l7 C5 L3 h/ r# o6 u> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system- W: ~5 L! t* N0 ~
启用并启动daemon:
6 r$ H& M8 a" u
* i* I: @2 s5 ?! }+ F$ Q> systemctl daemon-reload
# H& [1 e" a" k7 S> systemctl enable rbd-target-gw
- `8 j5 j5 t8 x0 J/ M6 I> systemctl start rbd-target-gw; l5 h6 e8 h# e* |1 l
> systemctl enable rbd-target-api
0 _7 l9 ~5 i) \> systemctl start rbd-target-api2 ^$ W9 \2 Y1 U9 h2 Q: 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;
确认内核选项启用,如下:
3 J/ q1 m9 Q3 H& v8 l
3.2. ceph集群版本:
注:官方建议 Ceph Luminous (12.2.x) release or newer
实际采用:Ceph Kraken (11.1.0)
3.3. ceph集群配置:
通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。
建议如下配置:

/ |8 C( r) k2 B, Y
确认配置:
确认名称为”rbd”的pool存在,如下:

  k+ n- P. y! i* q
确认支持5个features,如下:
! z% [# C" S5 a/ e
) W! R2 K; R0 @4 U! f# x7 O
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)
2 ?8 b& }. a7 {8 R% z0 C- e
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
  • pyOpenSSL1 k  ^' Y" n' ], X) I1 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 pyOpenSSL9 h9 |, A; L( ^0 z9 a7 z9 R
  注:rtslib-fb依赖pyudev>=0.16.1
2 D  u: X% F+ a& |
4.2. iSCSI gateway节点部署相关服务. K3 x- ?  a1 z2 ?
4.2.1. 部署tcmu-runner# Q5 E# u0 M3 y7 ]9 y
4.2.2. 部署rtslib-fb
; @' J" S+ }# j2 N) J
( U* v4 L  |: j8 y
4.2.3. 部署configshell-fb+ ^3 m5 Z* N! u! g
  u7 G6 _) G! S2 W/ z
4.2.4. 部署targetcli-fb
3 X- A4 K& F; G: y+ w

, @: w' N% T' k5 i
4.2.5. 创建配置文件% B& f- ^! U" [
. G3 P; l2 I" R9 f
4.2.6. 部署ceph-iscsi-config
1 K8 }7 z1 R2 H% ~

4 ^: c; w! f7 P/ j3 v2 k4.2.7. 部署ceph-iscsi-cli
$ s) L5 m+ d5 w% g4 \2 B/ E
4.2.8. 检查各个服务状态正常" J5 f* }2 q- I0 P
首先,检查相关服务状态正常:
. S% N2 [  W4 c" Q
5、创建&配置iSCSI gateway5.1. 创建iSCSI target
例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
8 b4 ~1 X8 f; [8 {
5.2. 创建iSCSI gateways; c% r9 ^+ I/ U
配置地址解析,如下:
其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。
例如,要配置2个gateway。

* J/ j8 g# b9 c+ I& \( b2 \
注意:配置/etc/hosts后,需要重启 这3个服务:

# F- W- L0 {0 l" t, E. V
注意:在2个gateway节点上,要分别确认这3个服务正常运行。
如下创建2个gateway,提供HA方案:

. E9 p5 }9 p( Q: r+ S1 a& |* P' u
然后,检查3260端口监听正常:
: U- r1 n! F# e! `4 u+ p* w
5 f  i% @# N1 t
5.3. 创建iSCSI disk. `8 i5 ~6 v, ]. v+ X2 Q$ R
如下创建RBD Image作为iSCSI 后端disk:

# e0 w* ?, V( B$ M8 |5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。
首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
. w0 y# l, G+ f  V- H  i
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。
6 w  z0 d3 i8 ?, f1 B& u
% Z- S" Y; v& d( U5 Y% D0 u
/ i  P7 x# ^9 V" b6 H  a# Z# B
5.5. 为iSCSI client配置iSCSI CHAP认证信息
注:建议略过该步骤。
0 u& v4 v! @! L1 ~1 z
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。
例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”
5 I) y! X# X' X, ?6 Z* W+ m$ ~
5.6. 为iSCSI client添加disk
例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。

/ G. x; M- v1 j6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具! N1 S4 l5 W! X
6.2. 配置multipath服务
; j6 ?3 G8 f" {$ w) Y$ L$ J% s, X# U
创建默认配置/etc/multipath.conf,并enable multipathd service。
! V2 E% x1 t: m2 f+ o7 m; ^
0 B) q" B, H" h+ p2 g+ E9 v9 d) F
修改配置/etc/multipath.conf,内容如下:
% Z) R+ s8 Y8 ?6 w* q( D

$ Q; p$ d! V8 Z: d& ]6 W, Z
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。
重启multipath服务。
[td]
命令:    systemctl reload multipathd

* L  j& W2 l/ c- }* j

- O/ h" r" |1 y& Q6 h6.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

* _+ Q' K& E' z6 v

9 j7 F8 B* K" V% V' d5 b% F4 n! j; N
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

" t# j& ?2 z/ _9 a3 n8 }

; z" M2 V& b0 h; \3 ?+ u5 j) G6.6. 查看扫描出的iSCSI盘
如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb

, d6 ^6 e$ q7 V. K) g* L; a6.7. 查看multipath的iSCSI disk(由RBD image映射)* ]- Q2 I1 i; m, B- R
7、附录一
Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。
【解决方法一】
1 U, {7 O, `( B0 P9 P
说明:lun.py中不设置qfull_time_out。
影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。
修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py

( s0 Q1 B: Y7 x; f5 I
注意:修改后重启 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、附录二
) r5 f8 ?. B' X
设置成不支持ALUA。
修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py
+ T/ o+ K& {, V% L
! a; D. ?0 N4 H7 d
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

) [7 M0 l& {4 t  K& o- K  F; b% b8 l5 b2 h& m
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

如有购买积分卡请联系497906712

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

GMT+8, 2022-7-4 11:41 , Processed in 0.052550 second(s), 23 queries .

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

© 2012-2022 Comsenz Inc.

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