找回密码
 注册
查看: 3976|回复: 0

解决后端使用ceph qem性能问题

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-11-30 21:34:05 | 显示全部楼层 |阅读模式
[解决后端使用ceph qem性能问题](升级kvm后使用virt-type=kvm(qemu-system-x86_64、qemu-kvm、qemu-img)
/ K3 F" F( _4 X/ G4 f
( l+ u( u+ v" v( e8 V3 K" L5 Z4 M8 `! k' ], f, e( J# J
由于升级libvirt、
qemu
后没有qemu-kvm模块。nova配置文件配置为 virt-type=kvm将会报错、配置为qemu则性能低。
' i8 [$ j3 k+ J8 H
8 x. Y( O, b; a+ g( b1 A2 V- s
关于kvm、和qemu类型选择请参考博文:qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest)

# Q3 d3 ^5 `7 ]) `7 p7 c  J" \" q: c' Y' o, w% Z; ^  k8 z

, }, `& f" }# @! G
本次测试环境配置:
2 B3 Y- ~- \+ `( F

& U7 G4 {. y7 v/ x3 L

    3 m4 b2 [, o6 H3 n$ p/ l. o
  • horizon 的ip 192.168.10.71; n% C" b+ @" l0 C! U  ?, G
  • 其他组件ip 192.168.10.191+ i/ J: l. Q& v* L' g* x; m

    - P9 ^8 ]1 |+ ~, T7 i! h7 p5 B

, J+ ]6 |0 C$ T/ j2 \6 {$ V7 ^7 f% A$ G/ j, h, W0 [, g4 S$ R
复制代码& j8 v, _5 M# V. N$ k) G# q( s7 V3 G
0 t8 F* p" K2 m- S0 l9 ^* y

5 f  I$ O! e& L( P5 F
& s  O+ B% Z! {2 z; |: b  m; @- d' o  v
6 O: _) l& K( u! Q( b+ m1 n
- k' f7 @4 w6 ?0 h
1、使用virt-type=qemu启动的虚拟机:

9 s, q  d/ |1 V3 S# G6 ^3 ^0 v& A1 d$ {& J- h* T* a7 \
" {0 o6 V0 z/ h, v

; u4 f; g  t$ d% g: m1 @  r
3 G8 i  ~1 q) o! w: @$ u! X
1.png (46.25 KB, 下载次数: 0)
2 S. [3 O. K; ?& K# `( i
$ M: ^7 \6 Y/ ^( g
下载附件
  u2 X. S4 R3 H
1 E5 ]; ~& Y/ A1 Q 保存到相册
; h, z1 G9 U( Y# _8 z/ T0 H  q( F3 T. t& C0 A! G

7 N) B1 o4 y/ i, }
9 f1 N2 M& t9 D# y" v$ m
2015-4-7 18:43 上传
$ n* J) o& K9 e! W+ [
9 w6 J, Y. h& s* w& }+ i& ?
- ^. b4 }# z2 k( l4 t
" B, v" V2 `3 \! |
' H( H, }. i$ H, t

; g& ^* `6 k$ P3 @7 z; O
  K4 O$ |+ {" A0 G4 l

/ F7 r/ t; w1 U, t/ H$ }

7 o# B) t' s; M% b. c
  • root 24502 17.6 0.4 2530112 307192 ? Sl 21:51 1:23 /usr/bin/qemu-system-x86_64 -name instance-00000001 -S -machine pc-i440fx-1.6,accel=tcg,usb=off -m 512 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 8ee337e0-4808-49e7-9e66-45dc4a7b1f40 -smbios type=1,manufacturer=Red Hat Inc.,product=OpenStack Nova,version=2014.1.1-3.el6,serial=44454c4c-3600-1058-8033-b3c04f463232,uuid=8ee337e0-4808-49e7-9e66-45dc4a7b1f40 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/usr/local/libvirt/var/lib/libvirt/qemu/instance-00000001.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=rbd:liunova/8ee337e0-4808-49e7-9e66-45dc4a7b1f40_disk:id=admin:key=AQBlwSxU0HsWBxAAMfhhWANPIIDihk7JTFunKQ==:auth_supported=cephx\;none:mon_host=192.168.10.186\:6789\;192.168.10.187\:6789\;192.168.10.188\:6789\;192.168.10.189\:6789,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=18,id=hostnet0 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=fa:16:3e:99:7c:a0,bus=pci.0,addr=0x3 -chardev file,id=charserial0,path=/var/lib/nova/instances/8ee337e0-4808-49e7-9e66-45dc4a7b1f40/console.log -device isa-serial,chardev=charserial0,id=serial0 -chardev pty,id=charserial1 -device isa-serial,chardev=charserial1,id=serial1 -device usb-tablet,id=input0 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -k en-us -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5; E4 B* F# a/ ?6 u$ Z, u2 m6 O) H; U# d
  ^! T1 a0 Q+ [9 W: T
* U! i% N6 ^9 u- }  f. Y/ \
复制代码
" g" d" _, U1 Z- ?8 N
1 a: n* E% X- z, u& C! O" c
7 Z; \  ~! {6 c% _0 m  Y
# L; Q1 v3 g% |3 `

& N! k+ n& v  [7 c; b" |* `( j8 `; T, U: G( B% g
; Y7 y. {+ m. d. D/ Q: [
# ^- Z. l+ e) P8 P4 O6 y
很明显看到上面使用的是/usr/bin/qemu-system-x86_64。
6 c$ e6 a1 ?: S: _* \1 {/ \$ ^* X- [
8 N- @8 l; k) `

7 {: U& m; Z7 q0 R. {
看看:/usr/bin/qemu-system-x86_64 --help

7 L" f' O! n  h  I% [
: [1 G0 K- @7 u
9 W. n0 m9 x0 Y

, s4 B) [% j- n, k( J7 L, S: N5 t  F6 _8 @# y
2.png (10.38 KB, 下载次数: 0)
$ n( O1 T" s4 X- Q
" d7 m% r5 u7 N5 @# K
下载附件! n( f; e! q1 T* H+ H9 O# U9 ^
9 _1 F& @2 K, w/ j$ t$ \4 {
保存到相册
* T" E+ U% g" Z0 N  Z/ D
$ x( F9 g8 f$ ~6 c3 p
# E; h/ E4 ^+ \

8 w  N" k5 P0 w, N- L
2015-4-7 18:43 上传

* r+ Z7 I8 e; ~; J$ Q7 T8 [6 u2 s; s* J  O" ?/ F

6 X6 ]! [5 I+ `  {- z  E# _5 J- i( ^* U. y3 i% A( _

9 y0 `* s- ]6 U$ z6 T! q4 g4 ?, [4 L" c7 J3 h( S, y3 N8 Y; B

* p. Z$ u6 w# k( E$ c4 O* k6 u( W4 N. R' i$ F

4 r0 X0 B$ v* A1 T8 Z
( R# ?! x, ~% o1 Y% F. F. t) K) n% r( K4 l8 F

6 i) n: B! j' l8 }( o3 m
2、virt-type=kvm用openstack生成虚拟机,报错:
1 T) _1 @. f9 q2 _0 R

9 }+ f) E. {! @" b7 `2 j

( K- f# W/ u, j7 R4 z! O7 c

    4 H% k' Z* i9 _( Z% T$ ^
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] Traceback (most recent call last):+ Z) \# k" Q1 [. n4 g4 |7 o  R$ z+ I
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1305, in _build_instance+ p  M6 q& a, q2 j% ?8 z9 G3 S
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     set_access_ip=set_access_ip)
    $ E8 n- B( H; x
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 393, in decorated_function* j, a( L3 I, K# \
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     return function(self, context, *args, **kwargs)0 l! }7 C0 Q* R' K
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1717, in _spawn. c# y* C* z4 x" g3 E/ _" V! g
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     LOG.exception(_('Instance failed to spawn'), instance=instance)
    8 I  H  }; w9 A; P" h
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/openstack/common/excutils.py", line 68, in __exit__! [1 a" R4 j4 a! m7 p5 u, v' W
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     six.reraise(self.type_, self.value, self.tb)
    ) Z) j5 m, |  g$ [( ~: @8 |- B
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/compute/manager.py", line 1714, in _spawn
    # Z8 c. A1 R6 N1 W+ y
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     block_device_info)
    - j. ]9 i+ F$ P  @* D3 x0 x& T' O
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 2265, in spawn9 |! I# X- [( D6 f) v& C
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     block_device_info)
    % \/ h5 X0 w8 v
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 3656, in _create_domain_and_network
    9 g: O0 j& Q' f* }, v
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     power_on=power_on)( P" j$ w1 B* W9 i! t0 Q& R) \
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 3559, in _create_domain* p+ ~1 M! J% J' I% }+ o' N
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     domain.XMLDesc(0))
    1 T- M# c' S1 ]
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/openstack/common/excutils.py", line 68, in __exit__) z4 h' t+ y* a& w; e0 `. G8 F
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     six.reraise(self.type_, self.value, self.tb)7 t5 }# H3 C" h* s2 p2 k( }
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py", line 3554, in _create_domain& S: f+ C- m8 ^2 |9 s
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     domain.createWithFlags(launch_flags)
    ) z6 @5 W( r! a) i' c2 K$ Z3 f1 ^/ B
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 183, in doit
    - f* j5 d. r3 r7 ]* B  t
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     result = proxy_call(self._autowrap, f, *args, **kwargs)
    2 ^" b$ }1 D; }! L, c# \6 `; [
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 141, in proxy_call
    8 K8 S% I( t! R- A
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     rv = execute(f, *args, **kwargs)0 z' H4 y% }3 F9 y: @& b
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 122, in execute
    8 l/ g7 r" q; u  O
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     six.reraise(c, e, tb)
    8 W% P5 t3 R: b: n' y: I
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib/python2.6/site-packages/eventlet/tpool.py", line 80, in tworker2 V. Q& e/ J4 p% l+ r4 O: z- z! E
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     rv = meth(*args, **kwargs)
    : `( H% A0 H2 a4 m* B
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]   File "/usr/lib64/python2.6/site-packages/libvirt.py", line 727, in createWithFlags4 p( z, \1 u8 m6 p7 ~; M
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)" v& z/ s5 V- O- @2 S
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee1tafd7f8] libvirtError: internal error: process exited while connecting to monitor: char device redirected to /dev/pts/4; b  x! k6 [) _* t; C" M( r
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] q%mu-kvm: -drive file=rbd:liunova/5b50ed5b-c3d9-40cd-889d-0aee14afd7f8_disk:id=admin:key=AQBlwSxU0HsWBxAAMfhhWANPIIDihk7JTFunKQ==:auth_supported=cephx\;none:mon_host=192.168.10.186\:6789\;192.168.10.187\:6789\;192.168.10.188\:6789\;192.168.10.189\:6789,if=none,id=drive-virtio-disk0,format=raw,cache=none%sA could not open disk image rbd:liunova/5b50ed5b-c3d9-40cd-889d-0aee14afd7f8_disk:id=admin:key=AQBlwSxU0HsWBxAAMfhhWANPIIDihk7JTFunKQ==:auth_supported=cephx\;none:mon_host=192.168.10.186\:6789\;192.168.10.187\:6789\;192.168.10.188\:6789\;192.168.10.189\:6789: No such file or directory
    2 P4 D0 [# C: k# K: D! s: \  ]) ?, T" ]) \, Q: B
; }0 b4 ]1 T" `. L2 X
3 }8 \6 X+ K9 P2 t3 ]2 N, V
复制代码7 G4 D/ N( M: V; Y9 v( ^

2 R4 s0 p5 @  w& c2 J- U
( m" Z3 A& ]- l
0 Q/ q( d1 W1 T5 K5 i/ Y1 h4 I
2 y+ L7 l" [/ @7 v5 m$ l" G) A: R/ z+ d3 r; b; G
, w3 h4 Z% d/ w9 C$ z6 Y. h
. _+ q; F' T( B9 ~4 k
6 V# U# \/ F: D) M" B0 m
3.png (2.85 KB, 下载次数: 0)
; r7 m+ C( ^% g# `& E; G+ r' ]

6 G* l! q4 q/ m& L# r下载附件2 \/ J3 p# T: f2 L
. {) i% T) Q- Q3 d+ D; r) i! i  F
保存到相册
- {; F! }$ |7 n6 K7 _$ U0 H% t2 g( l: u9 c) D# K' x

. k* c# [1 c! l' N2 d
/ |% d, ^2 O5 C+ p
2015-4-7 18:43 上传
& {! X5 D+ }5 a. ]

5 o# }: g9 d- L* W

: O8 s, i. n6 |7 u- L' D& A
& Z# w; m9 G6 h( I" m9 N3 u4 ^* u4 Z* c
/ M) w0 i! h: C1 J% f. n. V  u
" k8 S6 u, Y2 T, t8 N7 D* @0 k

1 d$ U* ~5 r. v) ]. D) u( j/ X! U: j; [0 L: k* Y
0 r) d: q8 s: u. G% M. [: b, v

* o9 t" R# o/ N' g/ C! U6 l, v9 A- p" U  s1 L
3、关于qemu-system-x86_64、qemu-kvm、qemu-img
. T/ ]- v' o& @7 J* K

+ R6 J  Q2 `* W' x+ ]9 `" S
图3.1

" U5 a' |9 T! R# y& z1 G) }# Z. v9 F- \  t
4 a1 v/ N+ u! X  S! {

1 w; h; G$ }$ h1 P) u
! Y5 d+ A. B* q* M% |' _
8 M6 j( G& E* B4 M( `1 K0 j+ ?
4.png (3.12 KB, 下载次数: 0)

# G4 ]/ Q4 i# D/ u/ v: I
* i; h3 ?; q# F7 v8 x6 Z& [7 w
下载附件
, k7 P% [6 o# `( h8 u8 z* d5 e1 Y! ^! i# w1 c! G
保存到相册4 t4 f& _+ _* s* ]  y. h
. W+ F1 n8 A  u1 {" A/ Y" `

. }2 @2 m2 u, g  R& w8 U
! t' w0 P/ W0 a9 G2 e
2015-4-7 18:43 上传

3 Q) p2 ?& p! U3 I8 Y
  Y- H4 `& f6 t- E) c
7 N7 G2 T0 C5 d4 R9 A/ _- A/ h

7 b8 t+ L# C- P. q( }3 f' `! R3 \) ?
* }# k8 z! H7 b1 r+ {

) _/ \# h7 j2 b. h9 N2 u" c) s: _
; G. t/ }: |9 S
4 {7 o; ]0 L9 f1 N' U: J4 _$ e8 F3 O- c9 x2 r" @! w

/ X/ R8 ?  e0 Z! S
% ~1 P7 Q5 Q3 [) v# B4 B
查看上面两个qemu-img对应的版本及支持格式:

* ], f8 e5 m: R& B7 e
1 A3 o; c4 J0 I8 {

' H0 W) M5 @  A8 Y7 ?
  • /usr/bin/qemu-img | grep -E "version|Supported"! u- E0 h3 X1 L: t

% P5 [/ m' V. {1 e; v& \8 w
: f, M+ D6 s4 N复制代码3 \4 _9 y6 W$ O) l9 [6 X

2 ~* N" U1 z2 _) J
2 F  T, h3 B5 ]. Z1 R0 d/ z
+ \  W9 `$ w2 j. u/ }
5 ^; o& `7 Y. V% A* }" i
, U5 f/ z& k* Y( \1 @* u
图3.2

* S3 C, F4 _7 v" z
3 q& O- C3 w  Y8 B$ Z5 e
/ D: Y0 t0 R$ D

" R$ {$ x5 F$ J" Q* P- E* Y
* E6 c( t- O& d
5.png (11.06 KB, 下载次数: 0)

# z9 d$ f3 m; }" E9 q6 s1 p" w

7 N# M- ?6 d# `0 n下载附件
% o" S. n3 f& V( B% F2 q6 Y3 @- M; `7 k7 T  ?- X
保存到相册
7 P( n$ R1 b" v9 p: e$ z; v+ O# k  _. I7 y
7 Y  l; S$ I' S! z9 l) Q
; Y' O4 S1 o- c$ D% D' F
2015-4-7 18:43 上传

1 H" F" [; r2 X/ c+ w9 O4 Y" q) R0 ]. F7 a! d

( s/ ?. t4 h8 w5 T: c0 G2 o6 l1 g
7 f* w& U( s. Y- F# H4 I: j4 ^3 g8 s
6 V; g9 p; r8 d' A
. M& O8 z" G! S% z2 J- ]$ A; A
  h) {6 I, T. \) Z

- h2 I- E# n+ M, {
  • /usr/local/qemu/bin/qemu-img | grep -E  "version|Supported"
    & B' R/ q8 R) X" a0 J9 O/ c1 b
! r' Z2 ]) z/ p3 U$ C7 ]" b( t

7 b. P% O2 Y( U: M复制代码
. s  c. ?7 S& V" _

/ ]: w: a& |( c
! G$ k  }, _" Y, U4 r) o5 s! w- f% F  u" J, }

* {$ E! v! f8 s& ^8 y4 i2 E
; b) Y. `# j' k9 o# C7 K
图3.3
4 |6 S. a6 R6 z
: @6 y6 {8 v6 U, o  G: j+ n* V8 Y

$ R3 {; \3 C+ c/ o9 S
* u5 I3 `) ?2 }! q7 u) ^, M6 y0 ^
, c- h1 d- u- |0 @) Y# N; h- H
6.png (17.52 KB, 下载次数: 0)

8 s. B. w; m: M+ i) S
. X" M" U* g  a; O' p6 p
下载附件, v$ Y6 j# S, o2 r0 R$ ^

7 G/ m# Y( o! b# l0 j; ^ 保存到相册# n! f- a& T" ?* M) j0 Z
4 `  W; c: }, D. K* [0 N

  I, C' f: f3 U2 T
" g" f# t% @  E
2015-4-7 18:43 上传

3 t* K& t) ^# d0 `. R: Z" X, }- C! H3 Y. U7 H, \3 N" R6 K5 a
0 @# q+ V' v5 Z0 p8 r6 S5 S

/ L2 \1 c1 G- h
, [) H5 W/ ^7 P" A  T' c. }- K9 k& e% @. x7 e4 }2 B# ?* R. T

, [, K7 a4 _0 n+ J2 \/ i  N
! L2 v5 G6 P8 k+ k; Q8 `8 M
; ^% m0 p$ p: G3 {& M
. z3 R4 h& N/ L+ D2 Y! v0 r! W& z
. @8 v. o+ ]; x4 Z5 {% a! o3 }8 c
( N+ C0 P" \0 \1 s- L0 z5 o* J" {
8 L7 v- P, N7 d  J% ^  t5 k
4 C+ H5 V9 h% k2 ~3 ?+ O1 B
在回到上述错误:

# P8 L% c) j0 Y  L* U2 U/ i' w$ w+ o( u# P/ z
图3.4

7 T& d8 a3 [% t* Y
1 N/ z5 O6 z& q  t0 i* G( g; y8 c& U0 g( a" q! C% I

  d. a! q& ^. D  |# s3 N7 P; j4 k3 |( x. u2 ?; g
7.png (21.19 KB, 下载次数: 0)
- s# b$ ~9 d2 Z. O

' f5 s/ x+ ?# n. {下载附件
1 b  z8 Z0 d* T4 V) l! h, f7 a
" }3 M5 ~2 |  j. n* ? 保存到相册9 h9 j# q1 F1 b

2 v: p1 _. B  j1 l. q

( D4 C  U, X% r$ h( X
7 C' K0 q  i  w- T, ^- M
2015-4-7 18:43 上传

/ j# f- I; s/ r* k) P
% u' c) y  h6 N6 o4 U1 P9 i7 q
# q$ I) L, s0 n3 H9 ~% Y

4 ~" ?8 U9 s3 C" o0 d2 O$ J& E/ }8 F/ `
1 D6 [  v5 c, X; ^
! |  e: w; o" @! [

: U1 j9 n* A$ j- T& J2 \. g
5 p) Y2 s/ }7 E/ Z5 G
+ h/ j4 `9 n" F
: t1 P9 z/ n$ b! K8 g, K
" ?9 U1 b- \) y" ?+ G% ~6 O5 I2 k
此处启动用的qemu-kvm:

$ K8 r' S- }9 H! V" n" d4 o/ Z( C! R& Z2 s0 F

  d6 ~$ m$ u$ I: o- f
查找qemu-kvm:

3 P$ @( I5 s& m1 A& o$ Z
3 C* I4 e# Y, P5 R1 _9 x4 f8 Q
图3.5

! y3 G9 ^& L- E- {0 I( x% O4 ^: z. }1 W' c
3 N9 e0 o& S. @7 J- Q/ P

' J9 u( N+ E& c! x3 G! E% J! e* @6 A& g. {+ O3 k3 [1 M
8.png (3.69 KB, 下载次数: 0)
5 }! x' K3 w. [( }; B3 q" G
4 Z- }5 u: l" v1 n2 c
下载附件" S$ r6 n$ P1 a1 |5 Q
1 G  K) @5 Z6 |9 F( _5 ?
保存到相册
, m  w5 p4 Y, W0 t' ^6 X' A5 |
2 D2 n. e; L/ n6 A
! ^" p& l, w& N$ D* U* ~  S

' _8 Q  Q4 N8 j) |$ d8 {7 F
2015-4-7 18:43 上传
6 E- c( N* s7 @' s
- V3 V$ v+ y' O' a3 w5 t! Z
: ~' [. P( p. G8 R# O
2 z6 C- D( I7 j
) A; v- U. d' K  f8 o+ `

' f4 \7 y+ f2 @0 B( U+ n0 m0 A* Q
* t- r! x% U# r9 g
3 n- z6 @7 p+ o) H

+ |! R% R) ~( f- a7 i% I9 t
4 {$ G. ?$ |) @+ l
9 F9 }5 D/ g! S" Q# H
* h4 Z( n. _' ~+ U$ Y
查看qemu-kvm版本:

, P, \; ^. W$ D  W6 G+ `" {) B/ B
% c6 H& s' E) t8 F
图3.6

% M3 Q5 K5 F3 a7 y0 u: x! K1 @. e( K/ o4 N7 Q' C4 j- r

1 _  ^3 m1 {- X

" z1 B2 L+ ]6 H
& _& U+ A) F0 n7 ]  v3 w- }6 b
9.png (5.34 KB, 下载次数: 0)

4 T! l9 C* Z0 W
7 m# C0 }3 m/ v9 n# J
下载附件
) W% f8 v/ Y$ [2 u7 S& }. W' \) Z0 k
- Y* ~/ {& I* R 保存到相册- q  d  }" ~# X2 M* u3 R' r

$ O: e  K& ~( q  K5 Q$ L% A& |
8 @# ?/ ~3 q+ ?% \" k4 P+ h
) V0 w9 p2 y9 \* Z5 J, Z* S0 X
2015-4-7 18:43 上传

4 T" f+ i/ T% S2 g. C+ @; P3 x7 F& S; k$ ]& y6 b! _

+ E# k- Q, D( K8 n. Z3 G# ?! R& |  O8 W& s* t0 d- \6 K4 ]0 n
; y1 z* y% w2 E
8 T. v( s7 P6 @6 m: G( y

" U6 b7 w  B7 ?* }
8 R$ V# y( g: q6 C( E# s+ n' J3 i3 V
: i$ e( p! j5 L8 v

1 b$ w" E8 a7 Z, n- u% {: e
- `" I( V$ ^" p; @# u% R
再找到对应的0.12.1版本的qemu-img(图3.2),发现不支持rbd(ceph后端使用需要rbd支持)。(注:图3.3qemu-img支持rbd。)
/ O# M% H' s$ [  D6 O! m
. J$ W% S% c3 q7 l. _5 J( B

: k$ }6 b5 s# g  D
通过上面分析总结一下:

2 _8 }/ Z3 D/ {
' w; T5 g" {1 h. Z# L( T: g2 D% B
/usr/bin/qemu-system-x86_64与/usr/local/qemu/bin/qemu-img是配套的。版本为:version 1.6.1(手动编译1.6.1 qemu的源码包之后版本)
! k2 `# p" k( |1 [
( ?, ^7 l8 k* k6 H) G) X  I; M
3 A- b" W! {" w, k
/usr/libexec/qemu-kvm与/usr/bin/qemu-img是配套的。版本为:version 0.12.1(为升级前版本)

4 a: s3 u5 s: N; |* k1 W% ?& C/ C2 h" j9 X3 o) [

/ P/ S4 y1 Z6 e
; B% J/ j6 a2 E+ @6 ~' V. j/ ?8 }' ^/ s7 a6 o& X4 a8 o
这样就可以解释图3.4的错误了,因为图3.4使用的是V0.12.1,而V0.12.1的qemu-img没有编译支持rbd的模块,因此出现图3.4错误。

! W2 h# ^* S  |. P0 j$ O( T' c3 t6 B& l- C# p! V; F

: K1 B8 k+ L1 a6 j) F( X* ^. S
解决办法:

% \' \5 N; C0 ?9 Y% s9 Z5 D$ V1 T8 O) p1 E! q( {
将图3.4中启动的qemu-kvm替换为新版version 1.6.1的/usr/bin/qemu-system-x86_64来启动虚拟机。
( L! M% d$ L$ F/ }; ]0 b

: |( {- r+ l4 F8 H# C4 ~. K; l3 q- \1 D/ d* K' M. V& K7 j
操作步骤:

! w( E* C$ D3 ~+ U# Q+ l$ y8 `0 a+ W  p

2 Q2 n5 _+ `. J  g$ Y& e
  • mv /usr/libexec/qemu-kvm /usr/libexec/qemu-kvm.bak
    ; Q) B6 F1 z' _/ o2 f2 Z9 ]
5 T, f, d' b* f# E
  B( i. v% X' I( K- K
复制代码$ W% P* L/ G* _8 L/ D
. a1 z2 }/ U6 }1 i+ O. x% x
( H9 \& ?3 Q. Q( u7 [+ b* V

- `5 X; b& Y: |( J
2 r  h, m. X# F) U& h6 h. O% `7 Y6 J, E. j$ T1 p+ [
; P  _& ~* L. q" f- y( U( r' C6 y
再次生成虚拟机:

+ u! J$ Y2 B3 ^! ^$ a% A* H) F
* b  A5 O: Q! a0 r9 q8 P+ T
* D2 }- y3 c2 `4 O* `; g. d
5 [. _; M7 L3 b* e
10.png (49.33 KB, 下载次数: 0)

& k# D' e) ^9 N" P
% k. w# T4 N% M2 G' K; P6 ?
下载附件! N' k% O* Q7 X& @8 \
) E" W+ [5 d5 t- @9 o
保存到相册
9 F# `; n# ^( I" ~6 Z% u! t( y
+ s) o0 J: E6 m2 }% }% @: Z) a
. [: j5 A% I' l+ {
+ ?5 U" S' b! f$ n; z8 s( h
2015-4-7 18:43 上传

) ?) s& k; ?- C
4 P  O. \2 M! D0 b, N8 A

2 [' Q' V! I* z4 Z' \
( c. T/ G5 S) f) ^& s# H; O9 {( a, N- x, Y# S

3 ], g# y' K3 {" o: U% }6 M
, c# D# e$ T& h- [  b( h+ x
* \  k. O; M% ]9 k
) r& H/ W4 G; X

; j1 ^6 H3 {+ P( H, C: x- p# R* I8 j- [

+ X! U) n, q6 a' X$ R8 O0 S
发现虚拟机生成成功。

5 `) O2 `) F6 i" P& @8 O% T8 J# ^% C7 ?; E

' z/ \4 N/ l% J# v
再来看看底册启动参数:
3 @* S% v! y9 J3 E8 @) ~% ^
1 E' _! G$ ~# f! x/ B" U

7 @  w: A/ n9 M, W8 B; A0 J
  • ps aux | grep qemu$ v6 h! i2 R/ _
2 i2 z) {; Z' n% E' l; S

+ J! H7 }- E# M/ I. \; {+ F- i复制代码
$ H' }2 F+ a1 F8 a& L, q7 ?

) r4 X% t- B" Z* V. N/ B6 G! B' |1 c6 \5 m# V  x
( ~5 _: K2 j! p) e! F  M6 p  Q: h

5 I7 W# e' _8 K. {6 I3 o1 }' `3 Q2 A9 r' {0 i
# j" i# V! o8 y- l
7 K7 S6 |. k- ?' l/ a" T* L
+ s& ]1 h, C) ]+ h
11.png (99.05 KB, 下载次数: 0)

% J+ m% K8 f9 n' w& m
7 e! U0 ]' A! o4 r4 }. f5 \
下载附件) X& w( x% C6 U3 S* F

$ o2 f8 M: e6 R  F- ^7 K. I0 r 保存到相册* K/ {$ R( u7 k' z% i
2 l1 w1 V- ^! q. y3 d. ?

: T) U  _# p. R* H% M
" u/ n, A  p7 S5 s6 k8 K/ m2 I0 j/ k
2015-4-7 18:43 上传
% |) o/ e1 ^: V' m* f+ S5 c

3 i. X8 `. P  C6 a
3 [, R: w) ]7 `6 H2 n
& y# x# I6 W/ }+ O. Y
9 `/ ]/ c6 {5 F; u5 \& z' Q

  M$ v7 W6 t' I' |$ _' w# T, M; S

. z4 ?' D* ?0 J: c
+ P3 w5 w  E% v
* @+ h" M. X, B1 f& c3 z2 F# n
$ K" q$ m) M+ e! {4 F9 M# J
. T6 R4 X5 `0 e. K, W- A1 S3 M
发现后面生成的虚拟机,将nova.conf配置为virt-type=kvm之后。再将原生自带的qemu-kvm移除掉则能正常生成虚拟机。且生成的虚拟机使用了kvm虚拟机(accel=kvm),提高了性能。
& z8 b8 [; T3 A; L" x( X( |+ J

% ]) J- a- t& P& {( }
" N# K( r1 L. C& }
结论:
, ]" Z2 p5 ~  C3 M" C' Z
' d4 X5 k: j& P- \6 J; R+ b

% N) W6 P3 U. k; g

    * s6 I1 P# Z$ @' L4 ~) f
  • 1、当nova.conf配置为virt-type=qemu时候,会使用qemu软件特性模拟生成虚拟机,一次性能降低。
    ( H5 O+ B- X/ w- ]* H9 `
  • - v' ?" P& s6 {& M
  • 2、当nova.conf配置为virt-type=kvm时候,首先回去查找qemu-kvm模块。如果存在qemu-kvm模块则直接使用此模块启动虚拟机。如果qemu-kvm模块找不到,则会去寻找qemu-system-x86_64,找到则用qemu-system-x86_64启动虚拟机,并使用kvm虚拟机特性。及开启--enable-kvm特性参数
    ' ]- P4 Y; S! z6 c3 T% A
    , c! a' u+ S0 o% a! w

3 R8 v. @4 @5 f0 R# n, N0 d+ h
+ Q: [# ]# Y' @  J. i复制代码! p/ n! M& {0 N% Q0 x& h# M
' h2 d9 i) V. K% ^) @

% r* U/ n8 W9 A8 C' Z& ]
* W5 C' y3 C1 _: Q3 m4 H) T3 e& H; O( d6 ^* Y- ^! ?, y. q
* t' p! H6 _2 g8 ~' V
3 g! G0 Y1 Q! l  J
注:kvm虚拟化模块:

" v; Q' Y; I& q# u" P! m2 \; J* L0 O$ L8 Y+ T0 T6 E! k

( l( j  \4 a$ E! s
2 V) i; j* J; A! v( ?" j# H
  • 在老版本中有单独的qemu-kvm模块存在,结合qemu一起做虚拟机工作。在后续新版本中,已经将qemu-kvm模块完全合并到qemu中去。因此当需要使用kvm特性时候,只需要qemu-system-x86_64 启动命令中增加参数 --enable-kvm参数使能即可。' T$ W9 C, _8 o# U

5 |, Z# Q! l2 g% ]
6 q, V, z# ?% |! c
' T  i* S! R6 i% Y$ T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:53 , Processed in 0.020209 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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