易陆发现互联网技术论坛

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

openstack 云计算卷热扩容相关文档

[复制链接]
发表于 2023-12-15 11:00:17 | 显示全部楼层 |阅读模式

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

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

x
openstack 云计算卷热扩容相关文档7 ~1 e6 b. A) L
[toc]
3 N- ~0 q) S" d! {' ]8 [0 d/ y7 V% c3 G2 W  E7 J! c
指令
% z4 y+ @9 V8 _8 _) ausage: cinder extend <volume> <new_size>% q3 G9 J/ H+ ^: ]
Attempts to extend size of an existing volume.
# l7 ?# m# G8 |! qPositional arguments:
* a; a. g" B% k3 m: f: c$ q+ t  <volume>    Name or ID of volume to extend.+ b5 {7 Z' a* Y5 |7 |5 o
  <new_size>  New size of volume, in GiBs." I, K4 p0 P  t6 I, ?
功能说明
9 \# {# t  U1 C  M% Q9 `; \% L$ }! g, p- M" M
最新的openstack()代码支持了热扩容功能:  Z* D3 N1 {/ k* P
9 j( Q+ `, u% d+ j) `& ?7 v
Add ability to extend 'in-use' volume. User should be aware of the
8 s- y" g7 D" I  P" Gwhole environment before using this feature because it's dependent  E6 I* @8 G0 e& [8 }
on several external factors below:' `8 y  H1 S$ J
1. nova-compute version - needs to be the latest for Pike.
/ g* m+ E  O9 \1 r* w3 n6 v1 ^2. only the libvirt compute driver supports this currently.& ^6 I2 i0 B# i9 b
3. only iscsi and fibre channel volume types are supported- ]" O" |3 y/ A& H2 y
on the nova side currently.' q9 E7 Q$ T, r( W* n
Administrator can disable this ability by updating the
; d  b  Q& I! ^6 u0 W'volume:extend_attached_volume' policy rule. Extend in reserved! ]# v9 ^2 [1 x; H/ i
state is intentionally NOT allowed.; J& K7 Z% l2 p" _- X
# a2 E! _: B& O2 O( C
注意:1 T2 a2 h6 ]- A

/ l/ c4 @9 R# Y目前只有 libvirt 驱动能支持,且只有 iscsi 和 fibre channel 协议的卷类型能支持!! E" o* M- P; f. M" q
cinder、nova做完热扩容后,fdisk -l查看可以看到磁盘大小变大,但是之前做的文件系统的大小是不会变化的,df -h 的结果跟扩容前一样。用户还必须用resize2fs 指令自行resize文件系统!+ d7 e5 p$ N1 t' y
《openstack 官网对于热扩容在 CINDER 方面的说明》/ b" O( R( ~* }3 P! g; ^& D. V' J9 W) x
: g! h8 D: |9 Q0 a1 }6 m' `
《openstack 官网对于热扩容在 NOVA 方面的说明》# ~9 v2 F$ C: d* x
# p: E! `- L$ i; R) f5 Q
Cinder方面代码2 j- c) y& X7 t% w
Cinder 方面其实没有什么改动,跟冷扩容做的事一样,扩容后的size必须是整数GB且大于扩容前size。核心实现是调用卷驱动里的方法,如netapp,调用的是cinder.volume.drivers.netapp.dataontap.client.client_base.Client#do_direct_resize实现。唯一的区别是,扩容后,会调用nova api。/ A, h# k2 o9 d8 w$ r  q
) ^" J6 O. F/ e4 s9 _8 m; M
cinder.api.contrib.volume_actions.VolumeActionsController#_extend:( k7 n; i- w$ |
# 如果版本是  且 卷状态是in-use,则走热扩容* u' B: d$ N+ B  _. g& X
if req_version.matches("3.42") and volume.status in ['in-use']:9 _2 P$ s0 k9 v
    self.volume_api.extend_attached_volume(context, volume, size)
: U; I3 a! q  J3 Qelse: # 否则,冷扩展
. T, f; ]3 R% s    self.volume_api.extend(context, volume, size)( _; O+ n5 P7 u2 D6 b7 T
& {6 \5 W2 g2 M2 J
cinder/volume/manager.py里调用nova api,通知nova要扩展卷:9 {8 f7 M4 E. u/ i, j
if orig_volume_status == 'in-use':4 q8 `  _2 f8 U9 q
        nova_api = compute.API()" ]% v4 L/ }' g. O
        instance_uuids = [attachment.instance_uuid
+ G! A* m4 R! |5 l$ ?4 F                          for attachment in attachments]
! Q2 G+ n7 \+ g7 F0 {; H1 u        nova_api.extend_volume(context, instance_uuids, volume.id)
% W, U, ?5 {! |2 _这里调用nova client 里的:- p' i2 M8 i5 O- v
novaclient.v2.server_external_events.ServerExternalEventManager#create:
1 W* n4 t( |) Z: K$ w! \" i  A- E8 b" @& t  _  l) s$ I. t! \
class ServerExternalEventManager(base.Manager):
/ I5 R1 m1 t' i3 z2 f' o( E    resource_class = Event
. l& X& ~: a/ `0 {
; ^+ `8 O& A: d    def create(self, events):0 a+ p+ C( O$ ~
        """Create one or more server events.
9 q8 t1 W1 M) U/ O" H7 n  q7 l! A5 ]8 J) L3 c6 J
        :param:events: A list of dictionaries containing 'server_uuid', 'name',
- V5 T7 g" W6 B" n$ D                       'status', and 'tag' (which may be absent)4 W) o/ [& m6 L! |" b# ~% M0 M
        """
1 ?) v3 `1 O. ^# b" b. ~7 {2 ]; t" R6 U# P
        body = {'events': events}4 W( @: h' N& u- K$ u
        return self._create('/os-server-external-events', body, 'events',+ Y) c7 E; r& D; y
                            return_raw=True)
$ _  @! F2 |( v* _# W' H2 a4 T" O9 R; I
'events':7 a( r; ^; n+ E6 R

1 y8 V3 L  s/ G* T( }7 d' U{'name': 'volume-extended',9 a- g2 E0 x6 l+ c: L3 i( D
'server_uuid': server_id,
. O2 S( a' {4 G* c% H0 P8 a'tag': volume_id}
4 A# c1 H4 t( u. x5 v6 y+ fNova方面代码
) y: w/ }1 ?6 q' l; `3 z( a( p+ _Nova将使用现有的外部事件API端点监听来自Cinder的附加卷扩展通知。收到通知后,Nova将使用os-brick触发主机上的设备重新扫描,以发现卷大小的变化。
7 N( u& K$ H# R) E3 \
: F! |, ?4 K1 v1 [$ ]nova api '/os-server-external-events':
; @/ J6 d/ n# N* u6 g. M  t6 y* ~+ Q8 O% p& S0 _$ H
request:' V- C  a  F; ~3 V4 y( Q- N
    {
5 Y9 z/ |/ |2 q3 r+ |        "events": [
8 L/ V$ P; i6 ~9 r+ F& U, e; G            {
0 ]: a7 _" X6 a7 _0 x                "name": "volume-extended",
5 ^4 V7 K, N' l' u1 K                "server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3",7 X4 D, k# y' y! g5 r
                "tag": "0e63d806-6fe4-4ffc-99bf-f3dd056574c0"
( X: j8 K" R" H$ X; L" f) m: S            }3 N$ p0 k# x* z: K2 O
        ]& Y! J! J$ W' h1 U8 j4 J1 Z
    }% {- |; D  m9 T7 W2 ^1 i
response:; H% O+ n5 I$ \8 K% E  d) O
    {* |) y4 J: o( G1 {
        "events": [8 P  D) S3 |7 ^. h5 I
            {
2 n) ], L& I1 M1 Y& h6 I: u( E                "name": "volume-extended",& W9 s2 }/ P+ c& G4 x0 b  R
                "status": "completed",$ e( F; n# p7 t; G/ c
                "code": 200,
( j0 C( p( G$ b& x, i% o+ F                "server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3",
$ _1 r6 p" E& e) [                "tag": "0e63d806-6fe4-4ffc-99bf-f3dd056574c0"
6 I5 b8 z5 m) j5 x0 [            }
7 @" Y  y) o8 ]& q5 Q( j5 u2 x        ]
) c; v6 \: f( [    }, I5 }: l% v+ h8 Q: M9 E
检查nova驱动compute_driver = libvirt.LibvirtDriver是否能支持卷扩展 "supports_extend_volume": True3 r2 W' ?7 n' V. R# ~, B
驱动的支持功能定义在nova.virt.libvirt.driver.LibvirtDriver:
8 {' Z- j6 a1 t& A0 kclass LibvirtDriver(driver.ComputeDriver):
. Q  ^) _5 e! K2 O, X  Z) T    capabilities = {
0 U" M! t, I/ v& g        "has_imagecache": True," ^% w: l1 l1 Q) m- V
        "supports_recreate": True," e% _/ R/ C  y, Y/ c+ N5 x
        "supports_migrate_to_same_host": False,' g+ t! U" J, K* y
        "supports_attach_interface": True,
4 e8 n- S- z4 x* B        "supports_device_tagging": True,: ?0 [( N& n* \% C4 E. V4 ?
        "supports_tagged_attach_interface": True,
$ d% j' ~5 Q. H  w& T$ M( R5 \8 a        "supports_tagged_attach_volume": True,7 |5 b# S. O& u" O3 }/ Y7 @) B
        "supports_extend_volume": True,
0 [$ ^5 E! B2 }( z4 v! S    }
5 R" }' a+ }9 r% p2 F0 V2 q3 f
2 C' M, ]6 J7 L, q, H  p根据卷connection_info找对应的驱动,然后调用驱动的extend_volume方法。
( r# E. Q7 b- x    def _extend_volume(self, connection_info, instance):
% U7 ^1 M# T% ~( J        vol_driver = self._get_volume_driver(connection_info)8 \0 q3 F$ t2 s3 h0 `3 D/ j
        return vol_driver.extend_volume(connection_info, instance)
6 i; s" A* J9 B& l) @9 a比如Iscsi,就会找nova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver#extend_volume:; O* ?6 `; z' ^5 ^
        new_size = self.connector.extend_volume(connection_info['data'])
, J3 P& V  o; Q6 ^在调用ISCSIConnector的extend_volume
% L. X7 M3 d3 Z8 Oos_brick.initiator.connectors.iscsi.ISCSIConnector#extend_volume:( f5 s. J* g. ^% G
        volume_paths = self.get_volume_paths(connection_properties): c; {, Y7 S5 C. T  c. c& U
        if volume_paths:, G: A( m7 H: s3 A6 j& J/ F
            return self._linuxscsi.extend_volume(volume_paths)
5 j: E% L8 _( V8 f/ c& B调用linuxscsi的extend_volume
9 Q/ m9 Q9 O7 z. U( n! ros_brick.initiator.linuxscsi.LinuxSCSI#extend_volume:8 V& S. B5 n8 O& ?2 t1 N8 }5 K
   def extend_volume(self, volume_paths):8 M1 M3 q4 z: Q+ E, {% n
        """Signal the SCSI subsystem to test for volume resize." {! W: ^$ Y8 V; T7 S  y* l

" |. [( c, {" U! Y' O' i5 i" r* X        This function tries to signal the local system's kernel
2 x# a" A8 l) N0 ]* a; e1 M6 B/ D        that an already attached volume might have been resized.1 G9 z% b. r/ @1 u! e* C3 M
        """
- e2 f) ~; Q( O8 K( ]+ b+ s        LOG.debug("extend volume %s", volume_paths)
4 s8 }6 t! |2 q0 `0 C
) z* m" g' X' L3 x9 D        for volume_path in volume_paths:$ D- m+ c0 J& u8 O) v, {) V/ |
            device = self.get_device_info(volume_path)  i2 E( J- F$ w# Y: @$ p: W) W
            LOG.debug("Volume device info = %s", device)) ~) o1 f+ P7 M- _% c7 j+ c
            device_id = ("%(host)s:%(channel)s:%(id)s:%(lun)s" %
  V7 I8 V" M  @- E$ R: t                         {'host': device['host'],
; |7 J# @% B3 T5 [! D( B                          'channel': device['channel'],
! K/ u; ~! V" E( E, W. i7 X2 o                          'id': device['id'],: W3 Y0 Q/ `2 e1 \" s, J
                          'lun': device['lun']})
8 u' W' a% P/ @8 \$ \1 }" Y
0 n0 V# e  g; A0 a            scsi_path = ("/sys/bus/scsi/drivers/sd/%(device_id)s" %
: @1 K9 x& L0 I, n0 M- {                         {'device_id': device_id})  
3 i1 g' o8 [7 N" r# `            # 如:scsi_path = u'/sys/bus/scsi/drivers/sd/3:0:0:3'* r) k1 t) v& a7 Y  K2 x) P

# |- Y3 y) A3 j8 [            # 获取设备大小
: V3 g: J' w0 n! t; K+ k9 D* D# ?            size = self.get_device_size(volume_path)
+ u* m! `6 W0 x2 n+ c0 h1 b            LOG.debug("Starting size: %s", size)+ X4 n. ]# j2 t# \% q
8 o0 |' w- p! o
            # now issue the device rescan  o$ {6 P/ b/ U! G5 [
            rescan_path = "%(scsi_path)s/rescan" % {'scsi_path': scsi_path}
& d7 K) a1 W) I) x0 d3 A+ H. w            # 如:rescan_path = u'/sys/bus/scsi/drivers/sd/3:0:0:3/rescan': ~" m4 C2 R4 ^$ h# O- m
1 ^* X% A8 C: o! Y
            # 在rescan_path文件里写入1。
& u  I, j2 {) W" B- Z: q+ u2 x            # 对于SCSI设备,对 rescan 文件设置为1 可以使SCSI设备重新扫描。
. H: \( u9 B. c/ ?6 V0 x) p. Z            self.echo_scsi_command(rescan_path, "1"); W0 x( d: a6 u; q9 r3 ?  n% J' f
            new_size = self.get_device_size(volume_path)& n, t* {. E2 Y4 i3 ]. F2 `; l7 O
            LOG.debug("volume size after scsi device rescan %s", new_size)
& ^( Y, l5 ?$ T/ z: {
0 c  a; N( }' A. X6 D% l3 f        # 通过指令`/lib/udev/scsi_id --page 0x83 --whitelisted /dev/disk/by-path/ip-12.24.3.10:3260-iscsi-iqn.1992-08.com.netapp:sn.2d72abb030d511e7875800a098ac0ce9:vs.24-lun-3 `拿到wwnid- Q: L! e! q% O# N! t5 j1 t0 q7 j+ o
        scsi_wwn = self.get_scsi_wwn(volume_paths[0])* M; W& \3 s! `- a3 O- m
        # 如:scsi_wwn = u'3600a09803830387461244a62344f6b52') e( o7 O4 n, g" q9 @
        mpath_device = self.find_multipath_device_path(scsi_wwn)# S6 w: E3 O3 E2 j0 o6 q
        # 如果mpath_device非空,说明是多路径磁盘。$ p  D% q- z' H& d
        if mpath_device:
3 x8 A9 A) r: t. F, `! U3 x$ \            # Force a reconfigure so that resize works
' {/ F2 l* S6 b5 T2 P8 p! u            # 执行 `multipathd reconfigure` 重新获取 multipath.conf 配置中变化。
  l- E6 m4 X5 c: S% [            self.multipath_reconfigure()4 p% z1 Y4 G  w' A
            # 获取设备大小
3 {: r. _( [* O- E8 `8 |            size = self.get_device_size(mpath_device)
. G, k  u5 \8 C+ M; ~/ H            LOG.info("mpath(%(device)s) current size %(size)s",
) [' q6 i+ \- h                     {'device': mpath_device, 'size': size})9 |- O( F% d/ p: j$ x- R2 _

7 \- j; O! r4 o2 N( Y+ r            # 调用指令 multipathd resize map multipath_device 重置多路径磁盘的大小
" I6 k$ A1 W+ d" T. C% E2 I            result = self.multipath_resize_map(scsi_wwn)
1 {1 C4 r: v5 n5 r" R            if 'fail' in result:
' K  E9 T; X) K. N                LOG.error("Multipathd failed to update the size mapping of "
5 G: s" ]$ u8 m/ b' |( V                          "multipath device %(scsi_wwn)s volume %(volume)s",( {! `9 V- g; i" T+ ?2 S& t8 i
                          {'scsi_wwn': scsi_wwn, 'volume': volume_paths}), v8 q' [8 S7 _  ]- m
                return None- U! y+ h; _# N, A" {+ c! M
$ p( M$ D: z2 c9 m
            # 获取设备大小
! J9 J! Y( h) r' h            new_size = self.get_device_size(mpath_device)
: D# W6 H7 v. g* |& S4 l' |            LOG.info("mpath(%(device)s) new size %(size)s",
2 O. m# V; r+ P: B& N: B                     {'device': mpath_device, 'size': new_size})
! S7 S6 K& x" ~  h8 ~. ?9 v
6 y8 O4 N6 J9 g2 G; F& f        return new_size
& b$ ]7 q# J# s: m& u3 R, S* n流程简要:0 ~3 B' R" I1 C# c2 w2 A# C3 `
向scsi扫描文件写入 1:tee -a 1 "%(scsi_path)s/rescan",对于SCSI设备,对 rescan 文件设置为1 可以使SCSI设备重新扫描。
( P& _2 x4 F* @9 K
6 q5 J2 I$ l9 L& |/lib/udev/scsi_id --page 0x83 --whitelisted 得到scsi_wwn
' [- L. b5 z3 `
) t' N% g, l0 \5 F1 G  k检查多路径设备,先检查/dev/disk/by-id/dm-uuid-mpath-%(wwn)s是否存在,存在则返回路径;如果不存在,则检查/dev/mapper/%(wwn)s,存在则返回路径,不存在返回none。
: N: n  r; H* P8 a7 H/ E' F  I9 R. L
如果第3部结果为none,流程结束。: q0 u/ r+ W* b, R- p, F3 E/ N5 J

) N- [% A" W4 H如果第3步查到路径,则需要执行 multipathd reconfigure 重新获取 multipath.conf 配置中变化。+ e( Y+ X( k1 J, F, a2 `

$ {: p' ~; X7 G) R. U! I执行multipathd resize map scsi_wwn 重新设置设备大小。多路径磁盘流程结束。4 o5 M) U. ^7 r( x6 C7 Q/ f+ Z: V
0 X$ @7 S! L3 Y: Q! D
FC和Iscsi驱动都是这样流程。* e( W. a, _; O2 q' U3 L
+ i. M  c0 Y% w8 ?
附:
4 {5 l9 p$ q1 P9 r& r6 Z" Scentos 如何使用多路径磁盘
6 U9 C% B! l0 Q  k1.安装multipath工具1 ^# C- h$ G* R/ k
# 安装multipath工具# v$ z& z" r" M/ s: U5 V3 I
yum -y install device-mapper device-mapper-multipath
! F  T$ N1 X0 ^5 @
. L, A" V( K9 T% x# c/ a#加载multipath内核模块" h" Z& {; ~6 Q, B8 [( ]4 R( X8 |
modprobe dm-multipath
" }$ X6 U" x* Z* G& b8 j2 V. Cmodprobe dm-round-robin
3 z5 P; ~4 U. o: {, Y1 C- w8 w1 a5 a1 v5 C, @
# 拷贝默认配置文件& q: a7 W, D; g6 o
cat /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf > /etc/multipath.conf. Q5 z  i1 o2 o; ?* {+ ^

' `5 N6 d) V; p% m$ |+ j#启动服务8 L8 l+ P1 e+ F, ~
service multipathd start 或者 /bin/systemctl start  multipathd.service% o0 B/ z. a* g( T" v3 v' u
2.配置nova_compute的配置文件. Q3 m) X9 S7 O- |7 R
[libvirt]
* b" s$ k; |: k) P6 y#  iscsi磁盘是否开启多路径,True为开启
# Y* z; I$ S! Z2 [7 i8 jvolume_use_multipath=True
; r- f# C2 W5 {, `0 G  k+ N
' ]4 o; t9 `% d3 X2 W# 建立连接时的rescan次数
4 j4 P' }/ S" p% e3 Knum_iscsi_scan_tries=5
4 E# }9 J' _& E5 d" v, L9 Z" h' _4 P' h0 W4 M
# 创建iscsi连接使用的iface名称) o. O# p9 f/ v+ W
iscsi_iface=default
) T( J6 r$ e! e' Y) ~6 F修改在线多路径设备容量的方法
3 Z. u$ i/ y; ^; v9 Bredhat官网上介绍了修改在线多路径设备容量的方法:3 z! ^% T+ r" p9 w

$ x1 p) z% R$ ]' f/ h4 I* tRESIZING AN ONLINE MULTIPATH DEVICE
4 D; m( J5 M' B1 M( |If you need to resize an online multipath device, use the following procedure.1 A  P5 U, X  P, m5 r: P2 w
5 k2 p# u4 o9 G0 M: s  }# g+ j
Resize your physical device." w9 Y+ M- l% t' R; E
Execute the following command to find the paths to the LUN:
; G# x$ K% e# Y( b% k# multipath -l' }8 Y- G- @2 W; E
5 D$ b# w! C0 C0 Y0 m" o( A
Resize your paths. For SCSI devices, writing a 1 to the rescan file for the device causes the SCSI driver to rescan, as in the following command:; x9 c+ g3 n4 x8 K' J; r: \
# echo 1 > /sys/block/path_device/device/rescan
: T1 q: |* L, c: |. n5 }. f5 _, v/ M& A( ]. Y- l) G' ~" h
Ensure that you run this command for each of the path devices. For example, if your path devices are sda, sdb, sde, and sdf, you would run the following commands:8 ^# O9 L3 E- x; X
, X% N% h  [9 J7 u6 x. t$ ~& d
# echo 1 > /sys/block/sda/device/rescan/ J1 f9 |6 p1 W1 e
8 j% N2 B; |6 y0 ~: n5 v
# echo 1 > /sys/block/sdb/device/rescan6 i/ g2 {. J! `

5 S* E: k0 J8 W* ?, D8 `# echo 1 > /sys/block/sde/device/rescan
& ^$ a! C" y) d; S7 d' M/ u1 F! U; H) x) C' z& m2 H5 i* v1 _) F8 K, i
# echo 1 > /sys/block/sdf/device/rescan
& s5 X' \7 k0 X+ j( R3 i
6 t' f8 [) u9 `+ y. h! ^Resize your multipath device by executing the multipathd resize command:$ E1 x  U; S* k- a2 D) V& V
# multipathd resize map multipath_device
* K& z( L6 R0 W  f# X
0 S& N! R' {7 u, L8 WResize the file system (assuming no LVM or DOS partitions are used):
4 V4 e1 j" |# }, K# resize2fs /dev/mapper/mpatha0 E  p" M( |& L2 c  @1 I" R

2 h7 n- {3 l  B+ i& I5 V) n3 ~7 T看的出,跟nova的处理流程差不多,主要少了resize2fs一步。- P- e% a% H( m! x% L; l5 K( u

& K4 Z& {5 W' c7 M, [  q测试过程遇到问题" t: P: P/ R6 Z/ O0 e% l0 x3 E
问题: 创建虚机时提示"Host 'localhost.localdomain' is not mapped to any cell"/ r7 d. O, D, i  M2 A, p8 k

: O$ v+ H  m$ r( f5 q! @: m" W' c( D解决: 执行 nova-manage cell_v2 simple_cell_setup
# b7 D/ _( d& e" D0 A1 H! P
# k+ I8 f4 ]* V7 H% f+ f问题: n-cpu日志提示libvirt 版本过低) ?7 m) v0 h6 m
2 s7 P! v2 _$ a7 b" A3 g* r
解决: 按照以下步骤升级
4 ~+ ~! ^2 }  A) o$ rpm -qa|grep kvm+ }2 r- m) `9 M( E. `% e& g' i
$ rpm -qa|grep qemu-system
# x+ L5 H% e1 c1 X$ O! N% F$ sudo virsh -c qemu:///system version --daemon: R, J- f% M- k
$ sudo yum remove qemu-system-x86
/ C& Q4 k( {# Y7 G5 e- B2 k: z$ sudo service libvirtd restart
# r+ q% r: V- C6 C, ?% P' q1 L$ sudo virsh -c qemu:///system version --daemon
- s7 W+ m, L" G; \- H! o
& J$ o. E, V# [6 c. ]: c8 b问题: c-vol 提示:ERROR oslo_messaging.rpc.server ConnectionFailedError: HTTPConnectionPool(host='12.24.2.18', port=2379):, V3 E$ ?2 F& S7 T0 Z
Max retries exceeded with url: /v3alpha/lease/grant (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x718cc10>:) D: t3 z' d2 P  g5 j3 x# b
Failed to establish a new connection: [Errno 111] ECONNREFUSED',)); g* a* ?: ?. y! a
ERROR oslo_messaging.rpc.server; C  n1 T1 v* s% o) h: m
6 H# ^) v8 A$ P! h3 N
解决: 配错了coordination。在cinder.conf里吧[coordination]的backend_url注释掉即可。
' C. ^- l4 l  v% Z, q- o  z0 D8 ?) m" s  v5 I

( V: ?  g- [2 c. q2 s9 a1 h; m/ c
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 点击这里给我发消息

GMT+8, 2026-4-8 19:33 , Processed in 0.046870 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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