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

Ceph iSCSI gateway 安装和配置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-7-9 18:18:14 | 显示全部楼层 |阅读模式
使用ANSI配置ISCSI TARGET
6 A3 Q: [- w9 JCeph iSCSI gateway是iSCSI target node,也是Ceph client node。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD) node上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。+ V/ z; B) o7 I# h
要求:
" G  x5 I5 O0 f9 o4 @* p2 r正在运行的Ceph Luminous(12.2.x)集群或更高版本
' N  ^, S# D& |; Y) rRed Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
- R, _; T( L  t! N! v2 D5 b在所有iSCSI gateway节点上安装ceph-iscsi package4 ^+ }4 w% X  N2 [- C5 g# O
安装:
* u; g: `" W9 C$ U/ L在Ansible installer节点(可以是管理节点也可以是专用部署节点)上,执行以下步骤:
3 o: r& l6 x$ m" a- \* w+ j* b1、以root用户身份安装ceph-ansible package:
9 Q3 b+ w) y+ N0 p/ g: x# yum install ceph-ansible) T; Z7 h/ X5 u9 F7 X3 G4 ~1 ~$ t
2、在/etc/ansible/hosts文件中为gateway group添加一个entry:5 k' K6 M' H3 I$ H! W5 e1 z7 @$ i
[iscsigws]4 f- v4 h- O# R7 Q( j( q4 v* p
ceph-igw-1
- Z* y: ]0 `2 @9 n6 o+ Kceph-igw-2
9 h9 A# y7 b- ?5 w) Y# t3 \注意如果将iSCSI gateway与OSD部署同一节点,则将OSD节点添加到[iscsigws] section。
" |4 }* ]( Q# i0 {; S: w$ I8 g配置:
0 j" \7 s4 v4 J* B3 U# ~8 Bceph-ansible package在/usr/share/ceph-ansible/group_vars/目录中放置了一个名为iscsigws.yml.sample的文件。 创建此示例文件的副本iscsigws.yml。 查看以下Ansible变量和说明,并进行相应更新。 有关高级变量的完整列表,请参见iscsigws.yml.sample。
& R6 a% g% N! W3 _* tVariable(变量) Meaning/Purpose(含义/目的)2 }. A* @% B# w+ e
seed_monitor 每个gateway都需要访问ceph集群以进行rados和rbd calls。 这意味着iSCSI gateway必须已定义适当的/etc/ceph/目录。 seed_monitor host用于填充iSCSI gateway的/etc/ceph/目录。
) H; t' i# v" D5 Y* {cluster_name 自定义存储集群名称(默认为ceph)4 o7 Z( S! \( f6 E% F" N9 \1 {
gateway_keyring Define a custom keyring name.8 b$ E. ?1 @( [/ x
deploy_settings 如果设置为true,则在运行playbook时deploy the settings。
8 Q; f: T4 J  U* Mperform_system_checks 这是一个布尔值,用于检查每个gateway上的multipath和lvm configuration settings。 必须至少在第一次运行时将其设置为true,以确保正确配置了multipathd和lvm。
7 j/ p: [! a5 B# bapi_user API的用户名。 默认值为admin。! U5 l$ v: Z( M  K. B
api_password 使用API的密码。 默认值为admin。6 e( U. B8 A! c  C5 e+ E3 S
api_port 使用API的TCP端口号。 默认值为5000。/ I  n5 I7 r5 ]* t( p. t
api_secure 如果必须使用TLS,则为True。 默认为false。 如果为true,则用户必须创建必要的certificate和key files。 有关详细信息,请参见gwcli man文件。( Z8 c! g  s2 |
trusted_ip_list 有权访问API的IPv4或IPv6地址的列表。 默认情况下,只有iSCSI gateway节点可以访问。, I* a6 y$ A) F- z& H
Deploying:
: E% p; u8 o' P! s) l+ j) T% [' `在Ansible installer节点上,执行以下步骤。3 c, M5 B! v5 k1 O# T4 F
1、以root用户身份执行Ansible playbook:; q  i) K( |$ G+ U+ q% B1 O
# cd /usr/share/ceph-ansible( t! Y; u( S$ Q2 t' |! |3 I3 S
# ansible-playbook site.yml --limit iscsigws
2 `5 E( K6 f% w4 P: @0 B注意Ansible playbook将处理RPM dependencies,设置daemons并安装gwcli,因此可用于创建iSCSI targets并将RBD images导出为LUN。 在以前的版本中,iscsigws.yml可以定义iSCSI target和其他objects,如clients, images和LUNs, 但现在不再支持该功能。$ n- o) a' L! B  _" v* d7 w  B
2、从iSCSI gateway节点验证配置:3 {0 S! K" H6 S2 r" K# _
# gwcli ls: G4 }( v6 [. q4 u6 @9 d' ~* H
请参阅Configuring the iSCSI Target using the Command Line Interface,使用gwcli工具创建gateways, LUNs和clients。
" r- U- Z$ ]/ q( w: `重要提示尝试使用targetcli工具更改配置将导致以下问题,例如ALUA配置错误和路径故障转移问题。 可能会损坏数据,configuration across iSCSI gateways不匹配,WWN information不匹配,这将导致client multipath问题。2 i8 O+ B) {5 ?8 Z& ~
Service Management:
2 x! `5 s! \/ S5 Y# wceph-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服务交互命令。, a+ j0 }) m+ _0 p0 L! Y9 C
# systemctl <start|stop|restart|reload> rbd-target-api
, L5 a" E/ @  n/ P7 Freload
! B# p% J5 Z  A0 d- freload request将强制rbd-target-api重新读取配置并将其应用于当前正在运行的环境。 通常不需要这样做,因为changes是从Ansible并行部署到所有iSCSI gateway节点的。
0 k7 x9 K# {; c( s3 rstop
* q9 ~+ ?: N. W" E8 z" dstop request将关闭gateway的portal interfaces,断开与客户端的连接,并从内核中清除当前的LIO配置。这将使iSCSI gateway返回到clean状态。 当客户端断开连接时,客户端multipathing layer会将active I/O(活动的I/O)重新安排到其他iSCSI gateways。
- M8 B0 R8 z9 w7 Z2 xRemoving the Configuration:- y7 k% i- x7 B- ]8 O, w& l
ceph-ansible package提供了Ansible手册,可删除iSCSI gateway配置和相关的RBD images。 Ansible playbook是/usr/share/ceph-ansible/purge_gateways.yml。 运行此Ansible playbook时,系统会提示您执行清除的类型:
4 \# `) X" s9 u9 [lio :
: r9 j5 ^1 n9 [在此模式下,将在已定义的所有iSCSI gateways上清除LIO配置。 在Ceph storage集群中,创建的Disks保持不变。& M6 W+ c: W# _, v
all :) G# v( E# x/ M2 k: d
选择all后,将删除LIO配置以及在iSCSI gateway环境中定义的所有RBD images,其他不相关的RBD images将不会删除。! k3 F& B5 v' g' R
警告清除操作是对iSCSI gateway环境的破坏性操作。- P  u+ F5 c  N
警告如果RBD images具有snapshots或clones并通过Ceph iSCSI gateway导出,则清除操作将失败。1 \$ i1 |8 a- Y# o' @
[root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml
9 D7 h1 X- Z, l1 {0 C0 F, J& ?Which configuration elements should be purged? (all, lio or abort) [abort]: all; V# l1 l7 q/ e

; y6 D+ \! U: F  b4 k/ h0 ?# SPLAY [Confirm removal of the iSCSI gateway configuration] *********************1 v7 L! ?& W# q5 t4 q" w" B
& m3 I5 X: w3 A0 L
GATHERING FACTS ***************************************************************" n7 c# i  Q8 }: U0 x8 d$ X4 i, v4 c
ok: [localhost]
4 }; M3 U2 y9 R/ ]% I8 z. A# ^) K$ {
TASK: [Exit playbook if user aborted the purge] *******************************, c8 @" y1 y. |, ?* \, W
skipping: [localhost]6 M4 m2 ~/ F6 R2 g

& m( ], m% `2 S6 _8 }TASK: [set_fact ] *************************************************************
6 m6 Z" z! d  @3 Bok: [localhost]
& y8 y& K$ ^3 W4 W' J! n5 \5 J: l! D
1 t5 G4 j8 s1 W/ D5 Y$ {PLAY [Removing the gateway configuration] *************************************# Y- X8 W7 T$ X: B* Y3 B' I
0 x. a$ `% b8 r" k
GATHERING FACTS ***************************************************************& s5 R4 ]9 o; t  j
ok: [ceph-igw-1]
' ^3 g3 c0 \. A8 hok: [ceph-igw-2]0 h. i/ \6 _& @2 [

7 A, e5 M8 S: t3 P  R: i+ ?3 e# |0 m+ NTASK: [igw_purge | purging the gateway configuration] *************************
! R* j3 S/ ~3 Cchanged: [ceph-igw-1]
4 n3 f  x0 t2 X1 |" }- n: kchanged: [ceph-igw-2]
' |) z/ w: z8 l3 L& |! |5 a3 S, B/ a) J$ C) y' Y% a
TASK: [igw_purge | deleting configured rbd devices] ***************************% U: d. o$ v! L+ A7 N  H0 a: C
changed: [ceph-igw-1]
; `9 c4 j0 [9 x+ K$ Gchanged: [ceph-igw-2]2 ~. K, X: S5 W- r/ |7 ~
8 V2 q& U* q' h4 f; n( |8 G
PLAY RECAP ********************************************************************, M) U; D$ }( L$ ?7 e9 d3 j
ceph-igw-1                 : ok=3    changed=2    unreachable=0    failed=0( i! ^9 _- k: P) w
ceph-igw-2                 : ok=3    changed=2    unreachable=0    failed=0  I: o" s5 X, U/ K/ W
localhost                  : ok=2    changed=0    unreachable=0    failed=0
" B$ R6 ~" ]- F$ W* c2 k使用COMMAND LINE INTERFACE配置ISCSI TARGET: U5 c  a9 Y: q: ]) ]
Ceph iSCSI gateway是iSCSI target节点,也是Ceph client节点。 Ceph iSCSI gateway可以是独立节点,也可以位于Ceph Object Store Disk (OSD)节点上。 完成以下步骤,将安装Ceph iSCSI gateway并将其配置为基本操作。
" j! k0 G" i0 mRequirements:' z( C+ t2 ~& Z9 a0 j$ e
正在运行的Ceph Luminous(12.2.x)集群或更高版本  p6 N: m- N- c
Red Hat Enterprise Linux/CentOS 7.5(或更高版本); Linux内核v4.16(或更高版本)
$ ~) d6 T' Z0 I0 V, T必须从Linux发行版的软件repository中安装以下软件包:
( X; A8 r, R- y3 u. ttargetcli-2.1.fb47 or newer package
1 W5 B# X1 B+ K' e/ U2 tpython-rtslib-2.1.fb68 or newer package
% c- s- D) @% A6 Itcmu-runner-1.4.0 or newer package2 O! a% F  `( g* c
ceph-iscsi-3.2 or newer package
( m0 |$ X( ^8 B0 s重要说明:如果存在这些packages的先前版本,则必须在安装较新版本之前首先将其删除。
! r' N5 l2 Z) H4 }  k在继续Installing section之前,请在Ceph iSCSI gateway节点上执行以下步骤:# U5 L4 ^, N/ B9 {* h6 O
1、如果Ceph iSCSI gateway未在OSD节点上,则将/etc/ceph/中的Ceph配置文件复制到iSCSI gateway 节点。 Ceph配置文件必须存在于/etc/ceph/下的iSCSI gateway节点上。
( e  ]. x! Y  w, p8 }+ i/ C2、安装和配置Ceph Command-line Interface
: l9 b9 |- e# m( X) I3、请在防火墙上打开TCP端口3260和5000。% Q/ z: x6 x' ~, Y/ ~% A
注意对端口5000的访问应仅限于受信任的内部网络或仅使用gwcli或正在运行ceph-mgr daemons的单个主机。
% t& D' X$ s6 L: B" a' K4、创建一个新的或使用现有的RADOS Block Device (RBD)。, k+ {. Q. i2 N
Installing:
- M$ t# _* [( G# C! D如果您使用upstream ceph-iscsi package,请遵循 manual install instructions。8 s1 w9 X8 v/ E
对于基于rpm的指令,请执行以下命令:& Q8 s1 g% W# I3 `; j! _% w
1、以root用户身份,在所有iSCSI gateway节点上,安装ceph-iscsi package:
& n  H$ P6 n: c( m# yum install ceph-iscsi
+ e  g7 D% u% K6 Q2、以root用户身份,在所有iSCSI gateway节点上,安装tcmu-runner package:% A7 |5 R0 j3 B2 D
# yum install tcmu-runner
  z8 I. ~8 [) T8 O' M( z0 _! e4 e9 hSetup:
/ Z! h0 v" m: H3 }' c- m1、gwcli需要一个名称为rbd的pool,因此它可以存储iSCSI配置之类的元数据。 要检查是否已创建此pool,请运行:
' O7 s! a! |2 U8 b. v5 f# ceph osd lspools
3 E* T4 U* M# T+ \1 n% z( Y如果不存在,则可以在RADOS pool operations page上找到创建pool的说明。1 L, b4 c! O+ w9 W; U+ u
2、在iSCSI gateway节点上,以root身份在/etc/ceph/目录中创建一个名为iscsi-gateway.cfg的文件:+ u4 s2 u/ P  r$ z. N) A! s7 w
# touch /etc/ceph/iscsi-gateway.cfg' c! {$ H1 t2 u9 o3 k$ g2 ?- z
2.1、编辑iscsi-gateway.cfg文件并添加以下行:' L6 Q* Y- s3 Y5 ?
[config]
9 p3 J- g. Y3 y8 L4 U- O# Name of the Ceph storage cluster. A suitable Ceph configuration file allowing
3 n5 N: D6 Y/ d. u! G, x# access to the Ceph storage cluster from the gateway node is required, if not9 e5 g. o4 v4 `  @& T! Y5 M  G
# colocated on an OSD node.
( }- f2 R5 o( I2 V# \$ qcluster_name = ceph
$ p+ R. B. t2 O! x+ ?# Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph4 z+ v1 k9 `* }1 V9 [8 B- S  n% ^
# drectory and reference the filename here! r) v) H4 r3 w9 a' N. t. a
gateway_keyring = ceph.client.admin.keyring8 L9 l1 `3 T4 g9 c. U# s
6 T$ k. g# {# l! f; l1 I
# API settings.
3 _' z- F) ^6 l% ?: w0 p2 g1 J# The API supports a number of options that allow you to tailor it to your1 s# B5 G* ~. c2 c0 a
# local environment. If you want to run the API under https, you will need to- M: H: n: W. n
# create cert/key files that are compatible for each iSCSI gateway node, that is3 G! F1 ^2 g' @
# not locked to a specific node. SSL cert and key files *must* be called5 [( w6 Y7 V9 M6 K
# 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory6 o4 a* s2 o* m" q
# on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'8 e! h( z  s9 k' ^
# to switch to https mode.7 q) l& `1 s1 @. U9 {$ H& s4 L
# To support the API, the bear minimum settings are:1 H3 r# }7 K6 F
api_secure = false' I  {9 V! K7 O0 p# o/ k
# Additional API configuration options are as follows, defaults shown.
; F& y& {  t1 x# api_user = admin$ l" f$ Q8 E+ }2 i1 j7 B) m
# api_password = admin
3 r! \, |3 w4 u  B- j2 H" o, C# api_port = 5001
7 }! l, ^& {) d, B2 @# trusted_ip_list = 192.168.0.10,192.168.0.11" i2 |3 t% D/ J0 {5 c, Q' t
$ w, u. P$ `4 j0 k
# ------------------------------------------------------9 j3 C$ H, U0 q
# 翻译如下
7 ^/ O, J5 m5 U  r[config]
9 d: J1 ?' m/ _2 k6 E#Ceph存储集群的名称。如果不位于OSD节点上,则需要一个合适的Ceph配置文件,该文件允许从gateway节点访问Ceph存储群集。0 a8 u7 B: l6 [: X( |- i; {3 M: M
cluster_name = ceph
! j. Z' ~6 |0 M; z$ Y8 T3 n8 A#将ceph集群的admin keyring的副本放置在gateway的/etc/ceph文件夹中,并在此处引用filename
* K) j5 q# ^& v$ A  T  `gateway_keyring = ceph.client.admin.keyring
8 M' Y# |& O, n/ U9 i2 E8 [  f0 j
#API设置。
; x! }, n, m, ?: p#API支持许多选项,可让您根据本地环境进行定制。如果要在https下运行API,则需要为每个iSCSI gateway节点创建兼容的cert/key文件,该节点未锁定到特定节点。必须将SSL cert和key文件命名为'iscsi-gateway.crt'和'iscsi-gateway.key',并放置在每个gateway节点上的'/etc/ceph/'目录中。放置好SSL文件后,您可以使用'api_secure = true'切换到https模式。; p# J* @  {: F- e9 [5 R, ~- c
#为了支持API,至少需要配置如下:
3 Y' P0 B: Q2 J  aapi_secure = false8 N( E2 ]/ J7 u' ^3 f5 W0 r% r
#其他API配置选项如下,显示的默认值。(trusted翻译为信任)  ]2 _1 S* T, j# B
# api_user = admin
( S, s1 x8 z2 [& a2 n; {# api_password = admin
7 l* i+ Q) C  K" Q3 m# api_port = 5001( D/ T  L4 H8 Y* x2 V
# trusted_ip_list = 192.168.0.10,192.168.0.11, y9 b* ^  e6 ^2 N7 ^1 B, A* s. V3 A
注意trusted_ip_list是每个iscsi gateway上IP地址的列表,将用于管理操作,如创建target,lun导出等。该IP可以与用于iSCSI data的IP相同,例如与RBD image之间的READ/WRITE命令,但建议使用单独的IP。0 c0 ~3 F* g8 ]; I& {+ ^, k
重要说明:在所有iSCSI gateway节点上,iscsi-gateway.cfg文件必须相同。
% B* V1 U/ L( n2 F5 _2.2、以root用户身份将iscsi-gateway.cfg文件复制到所有iSCSI gateway节点。$ A0 L' b6 T$ t
2.3、以root用户身份,在所有iSCSI gateway节点上,启用并启动API服务:
/ @0 P0 `- f0 c/ l" W) x5 m- r# systemctl daemon-reload; B0 n5 i: V" K$ e
# systemctl enable rbd-target-api
. u5 q. |3 t  k5 u# systemctl start rbd-target-api
3 m6 ?* R3 N: ~- V7 q" nConfiguring:0 f9 ?4 [/ p* A9 ~" h
gwcli将创建和配置iSCSI target和RBD images,并在上一部分中的gateways设置之间复制配置。 较低级别的工具(例如targetcli和rbd)可用于查询本地配置,但不应用于对其进行修改。 下一节将演示如何创建iSCSI target并将RBD image导出为LUN 0。
3 J3 e/ {$ }  L2 q9 j: V% R7 O: W1、以root用户身份,在iSCSI gateway节点上,启动iSCSI gateway command-line interface:* @. D8 l5 L4 h: J3 d3 A
# gwcli7 I$ `" g  x4 b; S1 ~3 r! u
2、转到iscsi-targets并创建名为iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw的目标:# d( V" F0 y: c3 i0 V$ j* K+ N- [
> /> cd /iscsi-target- k5 N, R2 N5 {
> /iscsi-target>  create iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw. a+ k# e- V) X; c" X
3、创建iSCSI gateways。 下面使用的IP是用于iSCSI data(如READ和WRITE命令)的IP。 它们可以是trusted_ip_list中列出的用于管理操作相同的IP,但是建议使用不同的IP。
  p7 v" h; M) x  }+ z0 }> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways
+ Q( e$ T6 `8 e> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21
# r" L. G; u8 F6 l( Y! d; z> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22
' `6 H' F3 c( c; J0 _如果不使用RHEL/CentOS或使用upstream或ceph-iscsi-test kernel,则必须使用skipchecks=true参数。 这将避免Red Hat kernel和rpm checks:, m$ x7 B2 {! `9 D
> /iscsi-target> cd iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/gateways2 d* t: E. i; b) J' P2 s7 y7 z
> /iscsi-target...-igw/gateways>  create ceph-gw-1 10.172.19.21 skipchecks=true
; g- a: d3 J" P3 Q> /iscsi-target...-igw/gateways>  create ceph-gw-2 10.172.19.22 skipchecks=true
. }4 [0 g/ M& w" B" C4、在rbd pool中添加名称为disk_1的RBD image:
7 s/ h1 k; ~: g, {  j> /iscsi-target...-igw/gateways> cd /disks
' v+ ^5 N6 E' h0 R8 f1 U> /disks> create pool=rbd image=disk_1 size=90G
9 X7 K, Q. j. W/ Z0 R1 l0 T! y5、创建一个客户端,使用initiator名称iqn.1994-05.com.redhat:rh7-client:; z5 R  f7 |5 o4 {, S0 p5 r0 P* g
> /disks> cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw/hosts
1 C% c: Y5 N5 g0 \2 R> /iscsi-target...eph-igw/hosts>  create iqn.1994-05.com.redhat:rh7-client3 H) W. c. G; i# ^) C8 F8 }7 y0 @& U
6、将客户端的CHAP用户名设置为myiscsiusername,将密码设置为myiscsipassword:) k5 |" Y& ?5 B3 j" R& C4 C8 o
> /iscsi-target...at:rh7-client>  auth username=myiscsiusername password=myiscsipassword9 x) L/ b* P% c5 B9 ~
警告必须始终配置CHAP。 如果没有CHAP,target将拒绝任何登录请求。# w9 }4 E6 ]6 A
7、将disk添加到客户端:: E) V7 ~, T) {' }
> /iscsi-target...at:rh7-client> disk add rbd/disk_1
7 B6 D/ u! Z: Q4 `- a下一步是配置iSCSI initiators。8 z, c# X4 Z% m5 k  J
手动安装CEPH-ISCSI# n2 r, Z- H+ [
Requirements) M5 s. U' a- f3 O  d
要完成ceph-iscsi的安装,有4个步骤:+ z9 f: o0 ~5 s) ~* t
1、从Linux发行版的软件repository安装common packages3 N5 _6 P" l; y# [5 X1 T0 z" M
2、安装Git以直接从其Git repositories中获取其余packages! v# K. s" V3 Z% p9 O9 Q
3、确保使用兼容的kernel
" S' [% Y, R6 T( v5 s4、安装ceph-iscsi的所有组件并启动相关的daemons:
8 _$ k9 b+ y' C# q4 C9 J0 xtcmu-runner
6 ]. `/ T, x- y& ertslib-fb
5 }. X0 D+ L1 Lconfigshell-fb
. C4 P& p9 |/ ~  v0 Xtargetcli-fb
+ H7 I9 E% r- h; F: C8 cceph-iscsi& p% \$ U, J& |+ e% B) f' S; ]
1、安装COMMON PACKAGES/ C" ~8 P, s" D, a8 r3 b  T
ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
- E9 A; l/ D/ e5 M5 slibnl3# H5 Q; z( F) y: x2 P. p* ?
libkmod/ v& m5 V) Y8 }& C, l
librbd1
6 ?- W; k& u% spyparsing' o+ J% H% p# L1 \) J  e- w$ b& M
python kmod
" p9 D1 A9 M/ k0 q5 p7 @- Epython pyudev
- |) Y/ \' M5 s# O8 apython gobject
7 v$ u. @4 d; R+ z8 f9 p: }python urwid
, r$ m' m) z8 F$ P; |python pyparsing2 M! Y5 j  Q0 o+ u8 r6 t+ c9 n
python rados
  V, E7 e* F. K. r8 _python rbd# d+ W8 f( j( s+ g% w2 I
python netifaces
1 ?. e2 }( ^$ ]  O! N- Lpython crypto- [. J8 ]) D: x+ z" S
python requests, S( S' L1 r/ i0 f& f
python flask: B" S) y- a' J
pyOpenSSL& P" T& W: d2 k
2、安装GIT
" @4 k# N+ E$ T为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:+ S9 V/ ^! y1 ~1 h) Z
> sudo yum install git
7 D% M4 X' I3 {1 h) L在Debian/Ubuntu上执行:9 r' C7 r! V; L  X' ^& Q. K
> sudo apt install git2 G* C% U0 b4 y- S6 ]
要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com
4 K: B7 a9 o! d7 g- L2 k: v# f! n3、确保使用了兼容的KERNEL
+ v3 A" J5 }! }5 E4 f; X/ v确保使用支持Ceph iSCSI patches的kernel:4 a0 s7 _: h" b4 I& K
具有内核v4.16或更高版本的所有Linux发行版7 e% y3 i& Z- t
Red Hat Enterprise Linux或CentOS 7.5更高版本
7 n. O. y' x0 B+ V' p) u2 x% W如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:. v5 A; X, ?7 ^2 L8 C- J1 b2 S
CONFIG_TARGET_CORE=m, H) ?& ?6 W" L8 I5 z
CONFIG_TCM_USER2=m; D5 \. Q+ {' U8 [5 A5 y; _
CONFIG_ISCSI_TARGET=m
) u. s4 G4 Q/ V) S, G& ?/ l4、安装CEPH-ISCSI
" R1 |, J: W4 E; U* r最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
$ h% a$ ]) ?& Q% S4 rTCMU-RUNNER
' V! n1 h. F  ~2 J( e: pInstallation:
* @* o4 X+ h: d# _> git clone https://github.com/open-iscsi/tcmu-runner
8 e& S/ l$ m9 D5 j> cd tcmu-runner
2 N6 W; N$ E/ K5 Y- u6 c运行以下命令以安装所有必需的依赖项:& O3 u: F; ~5 Q+ n- `
> ./extra/install_dep.sh" w2 i  K& G3 n6 o' Y. J. E
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
  K2 D( M' M0 t> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr% |0 c9 R& x, F$ h2 ]1 w, z: J
> make install
; H0 V# `6 ]% S: Q- r1 m启用并启动守护程序:
- z0 w$ [- v% a> systemctl daemon-reload
  f3 m( I, s6 Z  s9 ?> systemctl enable tcmu-runner
5 W, [0 j' o, {% f( A> systemctl start tcmu-runner+ L8 V( d% {+ Q9 f
RTSLIB-FB6 H+ g( g! @- j+ C+ Z
Installation:' D" ?. w& F! `
> git clone https://github.com/open-iscsi/rtslib-fb.git
* F9 A$ x8 C" n3 A/ F> cd rtslib-fb
- l% p" }  L, p' |& I& c: Q> python setup.py install; G" A) A8 y5 _  h
CONFIGSHELL-FB9 U/ o. y! {4 }( k4 Y* R; j8 L) S
Installation:
( x+ m6 t3 G2 ?> git clone https://github.com/open-iscsi/configshell-fb.git
! V) a6 a$ c' x* J> cd configshell-fb
' i5 m) y) U- }7 g> python setup.py install
( o' ^" J1 I# rTARGETCLI-FB( Q3 }& r$ n1 `: k" v
Installation:3 M3 V8 q6 l1 q7 @
> git clone https://github.com/open-iscsi/targetcli-fb.git! C! M) O+ y; P% _
> cd targetcli-fb7 }+ W  |% I% i+ B) m
> python setup.py install4 ~0 S. }& r  X4 j7 c# u' t4 G
> mkdir /etc/target
4 B2 Q* ~9 j% o- A> mkdir /var/target# q7 r# T  N5 N3 Q( t% N( z9 v
警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。6 o9 P2 C1 h2 J" a2 [7 X  x
CEPH-ISCSI& u1 c8 a2 n+ W1 ?  V4 f
Installation:
1 G+ v- X5 K3 N7 y> git clone https://github.com/ceph/ceph-iscsi.git
2 {; m0 E( z) J> cd ceph-iscsi$ [( \: \3 [( `; Q
> python setup.py install --install-scripts=/usr/bin, s2 T/ W( _6 r/ u
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system- d9 C$ Z8 R- t6 r& o+ T- r$ ]# k
> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
* b/ w4 ]3 c. m/ Q+ o启用并启动daemon:
2 F) P; ?9 m/ {1 @> systemctl daemon-reload  Y; @; T7 ]( d
> systemctl enable rbd-target-gw
' n1 G$ U7 c* I7 H: R/ k! H> systemctl start rbd-target-gw) Y* h) P& T, p' |1 I
> systemctl enable rbd-target-api# ?0 W% O  L7 j- a$ I% ?
> systemctl start rbd-target-api
3 U9 B( ]! A3 \安装完成。 进入main ceph-iscsi CLI page上的setup部分。* X/ i9 m0 L8 w; G9 |5 e3 y

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-7-10 17:12:53 | 显示全部楼层
手动安装CEPH-ISCSI
8 w$ A7 T& ]% g- I: |Requirements
+ M8 e& `- U1 @$ o; R+ l" R  X
! W) |! X9 }" p" V要完成ceph-iscsi的安装,有4个步骤:
& S4 x* {% G0 k3 o) V$ e1 U% r) @$ m! X- y; o& I, |
1、从Linux发行版的软件repository安装common packages+ Z5 q* r0 X% m& z, n

" d) Z% V& [! I# ^( n0 O' m2、安装Git以直接从其Git repositories中获取其余packages# @% u2 M2 o+ ?& I6 l4 o0 I$ p

& x/ v5 k" |+ c$ d+ a; o4 M: J3、确保使用兼容的kernel& K$ ~7 _5 W& _% A4 ]

# |: D& s# \  B% P; k2 E. S3 @4、安装ceph-iscsi的所有组件并启动相关的daemons:& E# t+ x& h! e# [$ R% B" v' K. H
9 M: N' Y; v& h( G  x
tcmu-runner' ?# p4 l+ o5 P; u( ^& t5 p( L9 O* w0 _
rtslib-fb1 y4 G2 q, w, M4 v  }5 F
configshell-fb5 ?- `' V. W8 y( w7 v6 c/ d+ m; c
targetcli-fb; t, V& r- ]( ?0 D+ W9 _1 F1 M
ceph-iscsi5 L5 v1 G' f; ]9 y+ U$ W
1、安装COMMON PACKAGES
- }( ~6 ~6 K% a2 K3 Y! H/ E  `ceph-iscsi和target工具将使用以下packages。 必须从Linux发行版的软件repository中将它们安装在将成为iSCSI gateway的每台计算机上:
" k1 {  \) m/ b; j5 a, [( p* @6 p) x  s' h
libnl3
& @7 _) m2 Q6 Q& mlibkmod
/ d# V6 I; n' i! Q: Plibrbd1
( Y6 p# G+ C! V& [' {) vpyparsing
0 X# c; \$ i+ i% spython kmod. n- z' t( \$ I& u7 w  G( z: B
python pyudev- I7 _1 U: ?2 N% j. y9 O% ~
python gobject
, |0 r8 p6 B9 o. c/ mpython urwid
  p8 Z! w1 j- u3 l9 K4 U+ mpython pyparsing
9 @+ X/ d4 O, v# t# G1 \python rados
6 x, n& S5 V6 R/ w% @9 @python rbd# h& F- m' Q* w
python netifaces
9 o8 ^7 Y6 g) q, L$ m; G4 ]9 Cpython crypto
" p% V# p2 ~8 \python requests
5 ]* e) |3 T9 z9 ~' gpython flask
6 e0 V1 n/ k' d: PpyOpenSSL, `, k3 u: G! o6 ]8 g0 v# U; w
2、安装GIT
8 w6 a7 N. m* w为了安装使用Ceph运行iSCSI所需的所有packages,您需要使用Git直接从其repository中下载它们。 在CentOS/RHEL上执行:  u$ B; X+ W1 ^% o/ j

- i3 o/ C0 ]& ~* [& d" T$ u> sudo yum install git: G) M% A5 j; e* t* I/ ?) ?3 G: O
在Debian/Ubuntu上执行:
+ I& G7 w! z. p: c" g- |/ i/ T* I% A& h6 E6 k
> sudo apt install git
) C7 C; _& P5 g8 f1 t6 u要了解有关Git及其工作方式的更多信息,请访问https://git-scm.com& w3 _) _3 a# o7 ^1 L) @4 A, v) u5 V: L

9 h& A" p5 F6 ~9 [- y& a; \3、确保使用了兼容的KERNEL
( _/ g2 n1 {2 ?  w确保使用支持Ceph iSCSI patches的kernel:: K" _$ ^# q( I4 U1 n
, w5 x0 K' S) O" p+ s, J9 m
具有内核v4.16或更高版本的所有Linux发行版; k/ B8 V2 e* c' B9 ~
Red Hat Enterprise Linux或CentOS 7.5更高版本
* ], c% Y6 o) o; x# @- J8 ~$ E如果您已经在使用兼容的kernel,则可以转到下一步。 但是,如果您不使用兼容的kernel,请查看发行版的文档以获取有关如何构建此kernel的特定说明。 唯一的Ceph iSCSI特定要求是必须启用以下构建选项:
: e1 k7 _7 ~5 x" r% w" D/ \$ @) V' p9 N  o  J" C& p, D$ z1 F
CONFIG_TARGET_CORE=m) l9 N! P8 \  p4 X" A7 {' w
CONFIG_TCM_USER2=m
) B9 M/ f  }8 p" `CONFIG_ISCSI_TARGET=m0 p2 D8 H" h, [& T7 u6 _
4、安装CEPH-ISCSI1 R; b( i( h1 F* |
最后,可以直接从其Git repositories中获取其余工具,并启动其相关服务
6 {6 N# U2 V- [: l' t4 \/ T+ B: ^
7 p7 b- U$ y' }  u+ ]TCMU-RUNNER+ l* `+ o) @2 R. {+ A) a$ d
- i+ h, O+ j' }1 r; @5 }
Installation:; Z, v/ [3 i$ `; O" Y5 `
1 H4 }# W5 [, \7 ^
> git clone https://github.com/open-iscsi/tcmu-runner
4 g; R/ G: `, s( u# w$ y> cd tcmu-runner
5 u% R: g0 P$ z! p6 Q6 ?; Z3 z运行以下命令以安装所有必需的依赖项:! ?5 h* c4 ~1 w, z9 [

& `) Z6 ~: U, D! z, l> ./extra/install_dep.sh5 `) T7 p( [* v9 I! Z( e" ^0 b
现在,您可以构建tcmu-runner。 为此,请使用以下构建命令:
2 l/ Q# U' X- K( s3 Q0 k
0 _# \. l1 ?5 {2 [> cmake -Dwith-glfs=false -Dwith-qcow=false -DSUPPORT_SYSTEMD=ON -DCMAKE_INSTALL_PREFIX=/usr2 P5 V4 c8 d# V/ Q+ I- C) g7 {
> make install
! S6 \  C# {9 a1 m启用并启动守护程序:
) e" X+ s) Q& U* y% I% O
& Y3 j" R1 B8 U! }> systemctl daemon-reload* I0 |9 |. ]4 T9 J9 L5 x$ W" Y8 @
> systemctl enable tcmu-runner2 B5 m' D6 B: ^- V! d7 C5 f2 w
> systemctl start tcmu-runner8 m: K. t2 w8 R) T  }# W3 g' M
RTSLIB-FB
8 K$ l/ t% K" s" R6 F1 G/ y4 \: a& f1 ?: T! I2 z3 a
Installation:4 F* k4 j  z$ ]+ l
4 W0 D( b, C, B& ^! L' u
> git clone https://github.com/open-iscsi/rtslib-fb.git8 L3 L$ x* t( |) A) J9 p
> cd rtslib-fb, I8 ^3 Z& w. c; k) y% h& O# W
> python setup.py install1 K0 p" ]4 T2 m7 ?5 h" R# `; x
CONFIGSHELL-FB* o' E4 o. F% R+ k

' \' X3 I) d3 C  |7 }. YInstallation:' T; p% L  b* X
. ]) a: ]$ Z( z( r$ m1 o4 W! D, _
> git clone https://github.com/open-iscsi/configshell-fb.git, M( W* F* f  [! B5 A+ G
> cd configshell-fb
& ~( L) |  h* ]8 q( b3 ~, ~> python setup.py install7 h3 H& w7 |9 ~/ p
TARGETCLI-FB
- @% l5 p9 x; Z- s- c: L. M, t7 Q5 T+ E% u4 e: V
Installation:
# u; Q& z, ]! \, I! P5 y
7 `* u; s$ d0 x+ b* p' x> git clone https://github.com/open-iscsi/targetcli-fb.git7 I  s! r1 H% ^& j1 b0 j
> cd targetcli-fb
2 ^7 u7 u% Y% {. ~0 T+ A7 H# u2 a, A> python setup.py install: m4 W' P  v( D( C0 U/ G
> mkdir /etc/target! D" I+ G! g( K5 n7 v+ {3 z2 j9 D
> mkdir /var/target
1 ^- F4 ]1 @) q3 L  T( V警告ceph-iscsi工具假定它们正在管理系统上的所有targets。 如果已设置targets并由targetcli管理,则必须禁用targets服务。5 j; d4 W) t' m3 @

! q  i) \2 z7 {% j! S& q8 b; [CEPH-ISCSI) y/ y! m- d" {
Installation:
, B/ h$ d7 G/ v! Z2 x$ ~4 s; v. z) i+ i( ~  W% t
> git clone https://github.com/ceph/ceph-iscsi.git
  L9 c  v. A+ l> cd ceph-iscsi
2 P5 H+ W* ^0 ?. ]$ y> python setup.py install --install-scripts=/usr/bin2 u: \1 r$ [8 m
> cp usr/lib/systemd/system/rbd-target-gw.service /lib/systemd/system. G( o; B* n  X8 W" h# d
> cp usr/lib/systemd/system/rbd-target-api.service /lib/systemd/system
$ g8 r* u9 I1 Y3 D% z/ l# G4 x启用并启动daemon:+ \% O( K6 s0 R) z1 D
0 T2 q6 A: @0 _1 ?
> systemctl daemon-reload
! V" t  L! [# P> systemctl enable rbd-target-gw
! C" C$ Z( n. Q8 d8 u  J> systemctl start rbd-target-gw( G7 K- h9 _& W+ ]
> systemctl enable rbd-target-api
& |, `$ R% \0 @% T% D> systemctl start rbd-target-api
8 Z8 U* t1 {% f, X1 {3 E- H( T安装完成。 进入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;
确认内核选项启用,如下:
4 E9 |+ C; b$ e4 B
3.2. ceph集群版本:
注:官方建议 Ceph Luminous (12.2.x) release or newer
实际采用:Ceph Kraken (11.1.0)
3.3. ceph集群配置:
通过快速检测OSDs 故障、快速检测请求超时,尽量减少iSCSI initiator端业务超时的情况。
建议如下配置:

2 _, _4 [/ v$ J7 i3 i
确认配置:
确认名称为”rbd”的pool存在,如下:

( x) f! S" G" _7 g3 E2 W7 X! x( J
确认支持5个features,如下:

3 l# r1 n) F8 U$ C% @2 }5 j. L7 @# y- x* c# ^
确认支持VAAI性能加速,如下:(如果不支持功能升也能使用)

8 m- f1 a- a7 p* L/ Q
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
    3 T; Q9 v+ {2 V6 y4 X* Q6 U6 q即: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/ g) ~, H5 y, T9 I) W- X
  注:rtslib-fb依赖pyudev>=0.16.1
6 }. F+ K* X1 q' p' ?, K
4.2. iSCSI gateway节点部署相关服务9 s0 j# [, I0 \. n) O% A1 E! I
4.2.1. 部署tcmu-runner
" D; {- m: p$ Q* h1 A! ]5 z
4.2.2. 部署rtslib-fb0 q) S& C, e# M. V

# G, y* O2 Y- s) d4 S' t
4.2.3. 部署configshell-fb( @4 Q& t  Z. r9 s0 \
$ e- w/ i% @+ F+ Q; y
4.2.4. 部署targetcli-fb
4 _9 b- y0 l% k/ E  [2 V

/ l$ v0 l0 a% p% R
4.2.5. 创建配置文件
) U8 e4 ]& Y2 S0 y8 h& h
3 C& U+ _; k9 d" S; j8 ]5 ~( ^
4.2.6. 部署ceph-iscsi-config" u, O1 c; L8 ^0 u7 d9 J
$ g, ]1 `7 l4 i1 x4 o
4.2.7. 部署ceph-iscsi-cli
( ^; r: J6 j* x) |9 q
4.2.8. 检查各个服务状态正常
, b2 T' b' L3 f3 k& f9 U( [5 \& V
首先,检查相关服务状态正常:
2 R$ Q3 `- d1 z% a
5、创建&配置iSCSI gateway5.1. 创建iSCSI target
例如以“iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw”为iqn创建iSCSI target。
$ y( Q/ p$ u9 r8 W, Y: z
5.2. 创建iSCSI gateways0 K/ y- Y& W' f) }8 o7 i$ Z# \
配置地址解析,如下:
其中,”10.10.10.121” 是本节点IP,且该IP用于读/写服务,”wenda-centos7-1801” 是本节点hostname。
例如,要配置2个gateway。

# J5 _6 T' t% @7 C) s0 ?
注意:配置/etc/hosts后,需要重启 这3个服务:
; m! n( x6 `, d6 [' Y3 u9 R
注意:在2个gateway节点上,要分别确认这3个服务正常运行。
如下创建2个gateway,提供HA方案:
6 _" |/ I6 X5 b& C8 _' G) S" A
然后,检查3260端口监听正常:
* [0 K+ Z, D/ \! o5 L

5 _1 W! H2 l( L: c8 g5 r# n! Y
5.3. 创建iSCSI disk
9 Q$ }3 e7 C( S  q
如下创建RBD Image作为iSCSI 后端disk:
2 S& H3 G' ~& p+ {9 Y! u
5.4. 创建iSCSI client创建iSCSI client的目的,就是在iSCSI gateway节点上为iSCSI initiator添加acl授权。
首先登陆iSCSI initiator节点(即iSCSI client端),获取InitiatorName。
; d/ }+ K3 t( y! ^5 U) a
然后在gateway节点以“iqn.1994-05.com.redhat:rh7-client”为iqn创建iSCSI client。# A# R/ b' o+ M. Q) \

0 G/ e; F4 ?3 A4 F8 s% W' |- E2 W8 d0 k; N2 R& y# ]
5.5. 为iSCSI client配置iSCSI CHAP认证信息
注:建议略过该步骤。* p; d( ^! t7 R! x9 K' D8 b. b# i
一旦配置CHAP认证信息,则iSCSI连接时必须提供CHAP用户信息。
例如设置client的CHAP用户名为”myiscsiusername”,密码为”myiscsipassword”
6 D& {; ^5 H% K4 P- N
5.6. 为iSCSI client添加disk
例如 为iSCSI client添加disk名称为”rbd.disk_1”,该”rbd.disk_1”可在gwcli "ls /disks/"查询。
3 N) Q; N& X/ h+ a, w
6、配置iSCSI initiator访问disk以Linux为例——6.1. 安装iSCSI initiator工具和multipath工具/ Z8 n# m' ?* c2 A
6.2. 配置multipath服务
- L6 E: ^. V1 \5 k, u5 h) L) q
创建默认配置/etc/multipath.conf,并enable multipathd service。
2 J  U/ T- K( j4 t' ?' i9 F& F

' H# ?4 d6 N4 N2 H; {0 m5 o$ n修改配置/etc/multipath.conf,内容如下:
8 b& L2 B+ V: E) V# L

8 u' R" E7 S8 [% M9 w. _. A% [
注意:高可用策略不适用ALUA。因为CentOS7.4内核版本的target不支持ALUA属性。
重启multipath服务。
[td]
命令:    systemctl reload multipathd

- u! B7 o8 d, a8 A) I3 ?. {
) @2 n  N. K* I
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
* m) }  c, }& o' ^  z8 J! m

" j4 z' `* {3 v$ Q% v' J9 Y4 u, s
4 M2 f$ U$ Y% p: E9 b6.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

9 L. k0 v" l: K2 j/ C2 O

* z/ g7 U: m- z! ?6 L1 H# i6.6. 查看扫描出的iSCSI盘
如下在客户服务器上执行命令 ll /dev/disk/by-path/,查看到扫描的iSCSI盘映射为客户服务器块设备为/dev/sda 和/dev/sdb
8 g2 w) T+ S3 p$ N. F/ Q
6.7. 查看multipath的iSCSI disk(由RBD image映射)5 b0 ]" P4 A: _) c" @+ G
7、附录一
Linux/CentOS 7.4及更旧版本,系统中struct tcmu_dev没有qfull_time_out成员。
【解决方法一】8 H. l* s+ s' k- R  Z  q
说明:lun.py中不设置qfull_time_out。
影响:存储异常时,业务可能由于iSCSI设备TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE导致阻塞。
修改:vim ceph-iscsi-config/ceph_iscsi_config/lun.py

9 g( z# ^* Q6 O; p! Z! m+ n% i" z. ~* R& y
注意:修改后重启 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、附录二
- v+ R: B- s1 e( l& }
设置成不支持ALUA。
修改方法:vim ./ceph-iscsi-config/ceph_iscsi_config/gateway.py

5 \) K& R7 @7 [0 [5 p3 v' t2 Z1 W% l4 y. T/ i; g
注意:修改后重启 rbd-target-gw 服务和 rbd-target-api 服务,就可以正常运行了。

/ s- c% c* k% a: r5 k; o) N/ p
& a* o/ U, _* {2 L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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