易陆发现互联网技术论坛

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

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

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

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

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

x
openstack 云计算卷热扩容相关文档5 P! v" [2 g+ G
[toc]) m& u. v& w' P

2 V% Y8 D! Q: c' \" l指令( @  O7 h" [2 o) o6 D& P7 T8 W( y
usage: cinder extend <volume> <new_size>! G: {) ]5 M. ~; W5 O# R  K5 U
Attempts to extend size of an existing volume.2 A" ?$ h( |5 y* t" {2 f
Positional arguments:% P& {. H3 V+ \& H6 U  }
  <volume>    Name or ID of volume to extend.4 U, k3 b* ]4 D9 o  w
  <new_size>  New size of volume, in GiBs.
8 ^/ @8 p; @0 |$ R3 d; i& y, z功能说明
! h5 I8 a5 M7 ]  k3 q5 t( T) r9 n; @& P" J( y0 A, P
最新的openstack()代码支持了热扩容功能:
  }% Y- t  i& v; Z) T% H7 H" A
: {4 p- [5 b' Y( N! j3 CAdd ability to extend 'in-use' volume. User should be aware of the
9 h7 P2 Q$ u/ ]+ Dwhole environment before using this feature because it's dependent
" F; Y) h' c2 r' s0 lon several external factors below:
; J: \/ F! @: t+ q8 e% T1. nova-compute version - needs to be the latest for Pike.0 t- y2 }, U! m8 s2 `  h/ Z
2. only the libvirt compute driver supports this currently.
6 Y; I1 E  m" m3. only iscsi and fibre channel volume types are supported, p  X- n+ Q& G4 G9 K* k% t
on the nova side currently.
: v# ^2 o% \+ e  o; S5 ?8 jAdministrator can disable this ability by updating the
  S3 J, g/ W0 D'volume:extend_attached_volume' policy rule. Extend in reserved
' p( U2 g& ^" z5 n, o6 \4 Y+ ostate is intentionally NOT allowed.: G; ], t8 J# h# B8 J

8 w) G; z+ V8 T( l4 P. }+ G8 C注意:
. O. t8 y- ~' J1 u6 v6 q
8 [  f& r. f% w8 h目前只有 libvirt 驱动能支持,且只有 iscsi 和 fibre channel 协议的卷类型能支持!
- M) B6 `) _. e8 Tcinder、nova做完热扩容后,fdisk -l查看可以看到磁盘大小变大,但是之前做的文件系统的大小是不会变化的,df -h 的结果跟扩容前一样。用户还必须用resize2fs 指令自行resize文件系统!6 O0 F- b- ~) C. J% D
《openstack 官网对于热扩容在 CINDER 方面的说明》
# H; J$ E9 T' n- @
8 j/ l) j6 u0 @) m3 r《openstack 官网对于热扩容在 NOVA 方面的说明》
" H: H/ f3 J6 a2 G4 |, `+ n7 e$ ?7 S! V6 J# d: A+ v$ G
Cinder方面代码
/ o# a2 k3 f, qCinder 方面其实没有什么改动,跟冷扩容做的事一样,扩容后的size必须是整数GB且大于扩容前size。核心实现是调用卷驱动里的方法,如netapp,调用的是cinder.volume.drivers.netapp.dataontap.client.client_base.Client#do_direct_resize实现。唯一的区别是,扩容后,会调用nova api。
! z* X; ~7 f# h2 ~- h8 E5 T8 r0 B; X' C, [* F) O# x
cinder.api.contrib.volume_actions.VolumeActionsController#_extend:
+ I. G8 l+ `( \2 b# 如果版本是  且 卷状态是in-use,则走热扩容
4 n% }: s! [9 a. o4 ]- {if req_version.matches("3.42") and volume.status in ['in-use']:2 F) l& f8 q0 u8 P* M, H8 l( D) Q; a
    self.volume_api.extend_attached_volume(context, volume, size)
* I& u8 u! n+ \0 y6 G  y9 g5 Kelse: # 否则,冷扩展# f# j; X; _1 N
    self.volume_api.extend(context, volume, size)
& l  w+ r) D0 d% X: b
3 p& }0 o" s- b% z; Z- @cinder/volume/manager.py里调用nova api,通知nova要扩展卷:
' ?' V" x- l' [- g2 L3 \' I if orig_volume_status == 'in-use':( x  S& Z( Z3 i5 @, b
        nova_api = compute.API()6 c2 u  u. `' @7 f
        instance_uuids = [attachment.instance_uuid
5 V* Q: R/ ~- G5 \( n; ]7 H* `                          for attachment in attachments]/ s6 n0 t. {3 i: ]1 F
        nova_api.extend_volume(context, instance_uuids, volume.id): J' |+ }2 `& d2 G/ w) @# B, m
这里调用nova client 里的:6 E3 J( K' t+ d$ u6 U4 c9 O
novaclient.v2.server_external_events.ServerExternalEventManager#create:' D* P! o7 E6 \0 s" d6 L
) Y1 _4 B: L: R6 F
class ServerExternalEventManager(base.Manager):# o& W& r5 `1 N
    resource_class = Event$ {. u5 {: {) B; C; `

3 l9 V$ P* |) _6 C9 g! v    def create(self, events):9 ~" {4 u" n* }5 `! A
        """Create one or more server events.4 d- e* c4 k2 R( N
5 E$ e$ I; q7 c8 R5 J4 H& t
        :param:events: A list of dictionaries containing 'server_uuid', 'name',- V0 G1 A7 M& n# d# |
                       'status', and 'tag' (which may be absent)3 A0 k/ U. B* w+ F, |
        """5 r4 C4 P; r: p7 J$ G! m2 X

" D* V. N) x4 b- _        body = {'events': events}
# Y4 @3 d9 o2 N' z( j4 D) ?  V9 l) e# ^        return self._create('/os-server-external-events', body, 'events',
* I( \: F. ?8 V& [4 X% @                            return_raw=True)
6 _. A/ E* K! c  o0 b* N  l
. d( z# {! w/ W# d/ g2 x; _'events':
: I3 |2 ?+ F6 b* e
' E% l: `: K% P0 B- r  o4 [{'name': 'volume-extended',- m- r; s2 [& N. h: b! _9 Z. V
'server_uuid': server_id,
& T7 w2 A5 o" N$ d, u'tag': volume_id}& \; a! ^1 C' n. B; K( T
Nova方面代码2 j5 o: V$ Q- ]
Nova将使用现有的外部事件API端点监听来自Cinder的附加卷扩展通知。收到通知后,Nova将使用os-brick触发主机上的设备重新扫描,以发现卷大小的变化。$ g2 H. b/ a( q$ s! @( p2 X! s% O
. }/ ~% q$ \0 X
nova api '/os-server-external-events':/ U- X1 U) I: g) y+ d; D

8 b! f0 r$ o& K- {8 Y' A5 rrequest:
0 b* E% H# ^( D' @/ h1 w( O8 j    {1 N5 ?5 Z! c# u3 B: y# v: x. s0 q
        "events": [
; ^! |4 c2 l0 B7 f0 {6 I% Z            {
4 |' ~/ B) Q' U4 e9 h, T3 n3 ^                "name": "volume-extended",6 P, Y" o9 P% t# x4 j
                "server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3",
7 A' z& s* W7 @; d- Q3 s                "tag": "0e63d806-6fe4-4ffc-99bf-f3dd056574c0"' ]/ {" Z; ]/ t! e$ M# [
            }: s& V1 v! a* r4 O  `
        ]
# a: I$ A6 J8 w    }2 Q1 H. Y7 Z6 x) c
response:/ V( u/ I* I/ L4 I
    {
" v1 I$ z1 g/ H% w; a/ E" u" w        "events": [9 }4 H$ U; t6 Y1 q, W
            {
0 B; ~5 K$ _$ O  L6 C                "name": "volume-extended",7 I+ Q  v2 r! ?% e5 l
                "status": "completed",' h" g5 a# o4 y8 l* D) c3 C
                "code": 200,
1 P# F4 Q$ \+ Y* n2 }3 u                "server_uuid": "3df201cf-2451-44f2-8d25-a4ca826fc1f3",7 ^! D$ n: ~3 W' j/ L# w
                "tag": "0e63d806-6fe4-4ffc-99bf-f3dd056574c0"( I( U* n6 b- @% W- s( e
            }
: E6 z! Z5 i1 J        ]- O5 F3 Y# j1 M; n5 z' J
    }9 J* Z5 c6 p3 w9 g' |) Q- D" t
检查nova驱动compute_driver = libvirt.LibvirtDriver是否能支持卷扩展 "supports_extend_volume": True
: L' F' B- r' a3 D3 Y驱动的支持功能定义在nova.virt.libvirt.driver.LibvirtDriver:4 J5 r' }5 m8 x- Q& ~
class LibvirtDriver(driver.ComputeDriver):3 L: Y# W( y5 d" v; y
    capabilities = {
3 s+ o! q9 r* p/ C; a0 Q# Q        "has_imagecache": True,7 f6 G; A. d; K- A, x
        "supports_recreate": True,) w( C. g/ n7 {4 `0 a) z- c
        "supports_migrate_to_same_host": False,0 C8 P2 Y8 T8 p& a  X: a' i
        "supports_attach_interface": True,
6 }' ]# {$ f6 Z        "supports_device_tagging": True,
) I. S+ e3 O, b8 d0 }        "supports_tagged_attach_interface": True,
- }: K2 C. f8 U' b7 q- G- J        "supports_tagged_attach_volume": True,
5 L$ m% R# P, n  V        "supports_extend_volume": True,& N# W. l9 d$ {! B7 m3 B  v& J
    }6 j4 {' H0 z# Q' I- `9 Y$ w

( h9 L& U. v, G根据卷connection_info找对应的驱动,然后调用驱动的extend_volume方法。
/ d; \( ?) P( J5 M" x% O    def _extend_volume(self, connection_info, instance):! s& W7 M3 R0 e: X% \" K4 r
        vol_driver = self._get_volume_driver(connection_info)" _" B9 Z0 o) g8 q7 p
        return vol_driver.extend_volume(connection_info, instance)
. u1 y3 f0 s+ Z5 Y比如Iscsi,就会找nova.virt.libvirt.volume.iscsi.LibvirtISCSIVolumeDriver#extend_volume:0 a' C, E, L. y- ]4 |1 H
        new_size = self.connector.extend_volume(connection_info['data'])
7 v  J" n6 P, v- b/ O在调用ISCSIConnector的extend_volume
7 J# X! `, Q% K& s. Dos_brick.initiator.connectors.iscsi.ISCSIConnector#extend_volume:
8 M/ o4 j* m7 l& g/ t; F        volume_paths = self.get_volume_paths(connection_properties)# y2 S  o3 C, B8 K
        if volume_paths:
& X. n, R  p4 q& z0 D8 p. ^. }            return self._linuxscsi.extend_volume(volume_paths)
( |, u' b& D& a/ }9 v; K调用linuxscsi的extend_volume
, I) o6 K( B9 P5 m. D* Hos_brick.initiator.linuxscsi.LinuxSCSI#extend_volume:
/ ?6 j4 _5 A- w+ G   def extend_volume(self, volume_paths):
4 z$ m9 V) l8 n        """Signal the SCSI subsystem to test for volume resize.
) ~* {$ P6 A# }$ F  I6 q8 H# J/ m  B5 S% V1 ^$ [
        This function tries to signal the local system's kernel3 @7 U! s( z: {
        that an already attached volume might have been resized.) N5 b* C1 Q8 @/ @
        """
9 r1 q7 A, x  F# s0 _8 s        LOG.debug("extend volume %s", volume_paths)
0 n* F% V6 }9 L
3 y, ?8 L) n2 y        for volume_path in volume_paths:
  V! q# ^# ^( Z& s8 D            device = self.get_device_info(volume_path)* M& x3 ?7 k  I
            LOG.debug("Volume device info = %s", device)% |7 D: D; t) l: N; ^% l+ W
            device_id = ("%(host)s:%(channel)s:%(id)s:%(lun)s" %
1 u  p8 `" V. O( e. z8 X3 Y                         {'host': device['host'],
3 W6 ^# T- E& F! j  w                          'channel': device['channel'],
$ p; w7 ~4 {8 f. Z2 i2 U                          'id': device['id'],9 u6 m! o+ K, [, Q  p* T  D
                          'lun': device['lun']})  m( ?: U- ], s* [1 r1 R9 E

% k* i2 t  }* G' X2 V4 I% z            scsi_path = ("/sys/bus/scsi/drivers/sd/%(device_id)s" %
5 t# [- E3 d* g" `* q( x* i                         {'device_id': device_id})  ' f; a8 q3 x% K( y& I, ~, q
            # 如:scsi_path = u'/sys/bus/scsi/drivers/sd/3:0:0:3'% w4 h, x2 E) R' M6 Z, U; m
" `$ X1 ]' ^( N2 M& Q. e$ F
            # 获取设备大小8 n# h7 O2 Y6 E& Y  J; o$ Y; g
            size = self.get_device_size(volume_path)
# ?' n$ o0 v) m% b7 y( g            LOG.debug("Starting size: %s", size)
% i0 s7 B" r% K  C* V4 F1 K+ V/ E$ {7 s0 w  J, g
            # now issue the device rescan
' f: \7 x5 O9 C( v8 Z' c/ [            rescan_path = "%(scsi_path)s/rescan" % {'scsi_path': scsi_path}
. n1 |! n6 T& ~0 N6 ]( ~            # 如:rescan_path = u'/sys/bus/scsi/drivers/sd/3:0:0:3/rescan'1 A6 d* `9 k( z$ M$ d
, v  g; N4 B3 h4 R9 U, g
            # 在rescan_path文件里写入1。' H0 c/ \( K# z( _
            # 对于SCSI设备,对 rescan 文件设置为1 可以使SCSI设备重新扫描。
7 ]: K5 j8 x4 d% E8 P' `            self.echo_scsi_command(rescan_path, "1")
/ }/ l' z: s% u. l5 N" E* v            new_size = self.get_device_size(volume_path)
+ v# o- T7 I# f5 i            LOG.debug("volume size after scsi device rescan %s", new_size)
9 e$ W. h2 @. e1 s0 i
" _3 w; Y1 N( D  \" c  }        # 通过指令`/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
5 v; D$ V  i; a) f$ h2 p/ H        scsi_wwn = self.get_scsi_wwn(volume_paths[0])( h! b. ^! A' z; s( U4 V
        # 如:scsi_wwn = u'3600a09803830387461244a62344f6b52'
% m" m8 q' H, l/ `% j  k. T        mpath_device = self.find_multipath_device_path(scsi_wwn)
8 D9 r" D* G4 |1 h1 `1 L        # 如果mpath_device非空,说明是多路径磁盘。0 `7 [# M$ z0 ]5 Y+ ?& |
        if mpath_device:6 {; b; K2 Q7 R
            # Force a reconfigure so that resize works
1 R. r- i/ V% k  b            # 执行 `multipathd reconfigure` 重新获取 multipath.conf 配置中变化。
& [( S- l; g; V) q. K9 u3 o8 k            self.multipath_reconfigure()6 h/ x& e" D9 p5 G5 }- Y/ J+ l
            # 获取设备大小% R$ [% h2 W! H. _# x+ E
            size = self.get_device_size(mpath_device)
, I( i4 C; |% T            LOG.info("mpath(%(device)s) current size %(size)s",- l6 y6 K7 U2 A% m2 z
                     {'device': mpath_device, 'size': size})
/ I& i' l7 q" T( Z$ E6 _0 [: G# [2 z& C5 _, t
            # 调用指令 multipathd resize map multipath_device 重置多路径磁盘的大小' G6 {4 Z+ x# t& M
            result = self.multipath_resize_map(scsi_wwn)
, [9 s6 w" |$ j% ?! n            if 'fail' in result:& F: _6 S! t5 y) g- c7 C- `1 z! d
                LOG.error("Multipathd failed to update the size mapping of ": b( V9 q& b, {
                          "multipath device %(scsi_wwn)s volume %(volume)s",
' P6 c3 K- R% G) B                          {'scsi_wwn': scsi_wwn, 'volume': volume_paths})- I7 I& v# [  j3 j+ S2 V
                return None
3 X' c7 o, _& ~; {
7 i5 Y; t+ r. \, m# K$ O            # 获取设备大小6 F, Y" D' s, \' i4 s* v# h$ e& ^
            new_size = self.get_device_size(mpath_device)* [0 x0 y( @$ h* W$ O
            LOG.info("mpath(%(device)s) new size %(size)s",
) ^6 Z- A( a, P' D                     {'device': mpath_device, 'size': new_size})
. J5 [: z, _; j* ~& F  P: Z7 k% T0 T+ v
        return new_size
0 r0 T, i" {9 D流程简要:
" g0 H6 F( H6 \2 K1 @% c向scsi扫描文件写入 1:tee -a 1 "%(scsi_path)s/rescan",对于SCSI设备,对 rescan 文件设置为1 可以使SCSI设备重新扫描。
% @5 ^3 B) x2 J: R1 P- h
; k3 ]2 t  p2 N/lib/udev/scsi_id --page 0x83 --whitelisted 得到scsi_wwn4 X' D% f9 j" ^! ^/ }6 E, L# X- ?
, V- e$ {6 T/ I, B' `, U9 I# O
检查多路径设备,先检查/dev/disk/by-id/dm-uuid-mpath-%(wwn)s是否存在,存在则返回路径;如果不存在,则检查/dev/mapper/%(wwn)s,存在则返回路径,不存在返回none。! w0 B0 G" G; e% ^2 \
4 \3 W; T& x  P. m; e# P
如果第3部结果为none,流程结束。3 d) n+ D' L4 p" ?0 y6 A1 F

1 f7 ~7 n  X6 x# M; s* m) ~# [如果第3步查到路径,则需要执行 multipathd reconfigure 重新获取 multipath.conf 配置中变化。- }) |* ~1 U# h4 N9 l

  ^. h! M0 }) r. G执行multipathd resize map scsi_wwn 重新设置设备大小。多路径磁盘流程结束。1 T: G* U5 \& U) B& \" c5 {3 N
1 k8 z" @. _# M7 [+ p. U* O2 V$ g
FC和Iscsi驱动都是这样流程。# A: A1 B  z- a7 d8 U

  A2 j( j. T! V附:
" t* o1 c6 N% T& k% mcentos 如何使用多路径磁盘
( n7 g$ ]1 c0 g6 {# D. e1.安装multipath工具) E$ i' v8 C8 q# C) o5 D
# 安装multipath工具4 K  n7 ^% p  x& Z/ ^# F
yum -y install device-mapper device-mapper-multipath/ [$ B+ O; D: N9 |+ k* n3 T4 p

  `' ]6 [% H  {$ R0 f- w) q& G- D#加载multipath内核模块) {7 q* `1 Y5 k+ g, H
modprobe dm-multipath$ X" f' G! u4 x7 E4 ~
modprobe dm-round-robin, {6 O  }- X$ O8 T/ E

* ]* e: c' z, I2 G- X1 i7 R0 Z# 拷贝默认配置文件0 ]* O$ p& _7 E" m1 _' {' J
cat /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf > /etc/multipath.conf
5 o; v8 y2 m6 m
8 T) K, R  ?' q9 m* I#启动服务/ e7 M1 z6 J4 s+ ]
service multipathd start 或者 /bin/systemctl start  multipathd.service
8 W% A' e* d* [- b) ?; F2.配置nova_compute的配置文件
3 Q( D' E' O" _' v5 M1 c5 }[libvirt]# K4 n! B4 v) n) v% d, a* u
#  iscsi磁盘是否开启多路径,True为开启
/ W6 \: g7 M9 i' M: svolume_use_multipath=True
1 y0 T: H! V+ _' D$ q; m3 x* u% ], c* W& K* b
# 建立连接时的rescan次数
- E- W0 Z2 g3 }num_iscsi_scan_tries=58 p' a# e) X" ]$ y; o8 Y: Y0 M

+ j8 I7 {+ l( L8 {& X# 创建iscsi连接使用的iface名称
3 A  c1 M, ~8 ~iscsi_iface=default
- [/ d! B  @* z6 m5 Q9 H修改在线多路径设备容量的方法0 O; e8 P. a% r: v/ @* O! u' I
redhat官网上介绍了修改在线多路径设备容量的方法:+ ^, O" ~( D0 Q6 s' I" T" F: c

/ B6 L8 L& g9 jRESIZING AN ONLINE MULTIPATH DEVICE) m) G. }7 d! Z; l  {
If you need to resize an online multipath device, use the following procedure.9 r7 @" z& j4 ]+ L. l) s4 N
0 l0 F0 {& V+ X4 R' E% p
Resize your physical device.$ W$ ?# f9 h3 V( a# L
Execute the following command to find the paths to the LUN:; ]4 F! ]- u! \3 N
# multipath -l
1 V* I3 V# ^, @, J
4 f% _+ g& e8 T1 V2 PResize 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:
0 w  o& C  z- M/ N+ k# echo 1 > /sys/block/path_device/device/rescan
; s) }* [1 c3 z' J; e  G/ @7 R
7 ^, F7 Q; h& Q* T* N/ M4 S3 t" LEnsure 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:! `( u* P; ]3 t4 S9 R# n( ?

) w5 C' x  l) S0 P: y# echo 1 > /sys/block/sda/device/rescan
+ m% O' {- I: i6 x( G4 o+ U: D
: a  q/ Q4 j: c7 P, t# echo 1 > /sys/block/sdb/device/rescan
1 o+ C, ~" q( ~
# o# P2 `5 {, t* V9 v3 s% F/ @# echo 1 > /sys/block/sde/device/rescan
- s& @7 K" r' [3 N% U* R$ P& ^6 P+ b. C- F2 G. d6 g  S
# echo 1 > /sys/block/sdf/device/rescan
5 ^3 g  o- P1 l* m# }, f# s9 y! v# x' M
Resize your multipath device by executing the multipathd resize command:
& s& E6 E3 U4 C1 Z/ |: r# multipathd resize map multipath_device- N; Y4 D$ ^! k! L4 m: t  M) X$ _
3 B, G7 ?8 n( b! K' h3 A* q" d9 E
Resize the file system (assuming no LVM or DOS partitions are used):  @* S! Q4 T+ s
# resize2fs /dev/mapper/mpatha
/ g. p; r5 n( F$ r3 B
5 O6 e3 b3 ~2 o看的出,跟nova的处理流程差不多,主要少了resize2fs一步。
) N8 D7 e# u/ B7 T! N) F# e* M3 i
. \( o- N+ H, a3 ~/ x; _9 R! H测试过程遇到问题
. Q! A& |6 k5 d9 F问题: 创建虚机时提示"Host 'localhost.localdomain' is not mapped to any cell") Q9 S, I/ B: _4 C; m6 [8 {1 W9 j; c
! P" r2 q/ ^6 e0 ~1 f8 G# T% J
解决: 执行 nova-manage cell_v2 simple_cell_setup
( t' B1 E7 V+ e( D2 |! w) c
% V" w  |% b4 U7 p; v问题: n-cpu日志提示libvirt 版本过低
/ s- q( f/ Q6 H& ]7 `: y5 l3 \6 ?$ A% z  ]) x7 q( b% H
解决: 按照以下步骤升级! \$ F' j1 _: }2 a& u
$ rpm -qa|grep kvm
1 v9 J7 G. y7 r* I# j$ rpm -qa|grep qemu-system1 A( t0 Z; B) B
$ sudo virsh -c qemu:///system version --daemon1 C% v$ m: T9 k9 b6 e; |+ }
$ sudo yum remove qemu-system-x86
# W# h- ?+ U& w$ H+ d7 S' B% h$ sudo service libvirtd restart
6 L9 S0 L6 z) s* H$ sudo virsh -c qemu:///system version --daemon) r" [+ d7 a/ |! d
6 g' }2 F0 C3 D/ B# a
问题: c-vol 提示:ERROR oslo_messaging.rpc.server ConnectionFailedError: HTTPConnectionPool(host='12.24.2.18', port=2379):6 y3 ^3 ^  A& m2 n5 A1 H
Max retries exceeded with url: /v3alpha/lease/grant (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x718cc10>:* N) R5 V3 S) u# v3 y
Failed to establish a new connection: [Errno 111] ECONNREFUSED',))% P( h7 A" h6 p7 @. ^8 g* i
ERROR oslo_messaging.rpc.server# X) T( m% l2 o+ X: Z* G4 n0 N3 w& @

+ l, Z5 L! _. {9 U解决: 配错了coordination。在cinder.conf里吧[coordination]的backend_url注释掉即可。5 t: V* a3 W) S9 w& k

& `: n& z" s$ O. ?( z. n" A) ~# g8 b7 [% _: t
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 21:29 , Processed in 0.054666 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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