找回密码
 注册
查看: 3975|回复: 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)
  l0 z1 |5 e8 G( K. z
1 d4 \% N' O- L5 |6 U9 m4 }! ]$ {7 L+ @" D6 ~. F
由于升级libvirt、
qemu
后没有qemu-kvm模块。nova配置文件配置为 virt-type=kvm将会报错、配置为qemu则性能低。

1 T/ o9 l5 T9 x2 v5 b4 m2 {" o1 X$ b$ U& u# M  p) Y! G7 A& R: y
关于kvm、和qemu类型选择请参考博文:qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest)

, C  K; c$ O* ^$ F- j4 q1 R4 D1 [  i6 E& f! ]2 t, V# _
& J! N* f! n5 N7 @; z$ ?) v
本次测试环境配置:
( w; U/ E! f2 s) i) P

3 l+ z- y8 g- T& s

    % O4 Y2 t1 W0 W* F, }
  • horizon 的ip 192.168.10.715 ]7 C  z' Q- S! M/ k9 b) k+ }$ a) d
  • 其他组件ip 192.168.10.191
    + Z( I# z. d4 p9 {& Q# ^" R
    / l1 c: j8 O/ l, i( L9 |

/ w9 S& ~6 r. b" Q' X7 |8 ]3 y; Y* P" C: _" s
复制代码
% Z0 m8 |% E0 x1 F( ]
4 ]3 Z4 k7 {# G) H
4 Q) ~1 Y! ~) u0 }. X

' n; V5 }% L6 J) Q+ y1 S" x& G" N( k0 P6 \
# x4 q! X9 V- {
1、使用virt-type=qemu启动的虚拟机:
* r7 V" @* L' E. L8 P
3 c9 n; O" j9 k3 m" V( i; I) Y
8 y/ q, H2 i4 Q" i- x/ K6 G4 l+ f
& L4 p6 v6 @' p$ z+ s

7 P7 W; H6 J( U; ]& \3 u
1.png (46.25 KB, 下载次数: 0)

' H5 H. `6 b. x' C: B* w

  y3 w4 Z% V9 F! O. R下载附件
: p4 ^) U* J+ K# \8 _) S6 U7 X* e( d' W$ }
保存到相册5 A+ {/ ]2 Y; i) v: c6 P9 Y
7 k* l" P  N0 d# L* y" X7 s

+ t$ |( O) k% T" s5 f7 D- S( q) [" E3 ]8 [5 ?
2015-4-7 18:43 上传

: Q: E. x( x# L% A: O, C
% F/ k* b3 \' @* B3 I; Z) t

9 O; p6 w: I! _4 T% \+ f7 b8 O  i0 Q9 W
7 i4 C/ a% f1 o+ A, q, U
; A: g! Y8 w! q0 H7 d

1 k- K# @- |/ |3 I
! n  X% F: U' o& h  W+ w

7 ~; ]! t+ L1 S9 n& z3 U
  • 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/ k, G  P8 {: v" e( {% A) v5 q
* u2 v* V# o* b
& o* [# P; d. K7 _" S
复制代码
# Z0 @1 y$ v* Q6 L7 D$ V
7 T1 x7 r. ?* x- X! z: r

1 e. A8 G5 O* m" O9 E. s8 V4 A) j

: e/ s9 [# V9 U, `1 N5 \
- u% ]4 k+ X0 Q4 W; F- z  y9 Q! @! v- d$ z7 j, Q$ D

; I8 r$ J2 R/ e1 T
很明显看到上面使用的是/usr/bin/qemu-system-x86_64。
- A# R- E6 \$ ?3 Z; q- g: a
* p5 J" s# N1 i4 Z' S' x0 ^( C

: z7 P9 _- L7 m$ s/ k3 g$ r
看看:/usr/bin/qemu-system-x86_64 --help

! I5 K  Z& B% |0 Z& W1 V. z3 M- c% v/ h- x! d3 a7 w

9 c- k$ g- N! F0 N" A- T

) ~2 ?# H2 c1 y4 _+ ]
, m+ R) F/ \6 h5 O
2.png (10.38 KB, 下载次数: 0)
' U+ q) \1 ?9 y% }& w
+ _8 K" [( z0 F* b( E" Q1 H5 a
下载附件
4 R6 w3 Y; M0 s/ x3 r& Y. X' q( ~1 o; p: c0 k
保存到相册
, V# _- d2 t; Z9 k7 {% p/ j& D2 F& |0 V' [9 b9 x4 I$ F/ \( Q3 h$ h& E

8 w, S$ s# H. j" v6 g/ ~4 S" M. o$ X3 Y5 g( e
2015-4-7 18:43 上传
, @4 n* d6 r  r* |) R, T

7 o9 s0 A+ J7 Z  z" ?5 J

9 T) ?; b$ ^  A6 x* f4 [4 ]
! J1 l5 x/ @; }3 o- r* z( J
+ d" U- h# b. H! o- K4 \. }6 h! h; X/ X: v% e. l( W
$ c* `$ d3 a; Q

+ `0 L; x) @% K5 P0 ]* v+ B, A7 h- u2 [6 N6 F
) @$ b5 R1 y; n( r8 m- W

% c& A4 I$ k7 }2 [7 j# I1 o. w# v0 r2 z
2、virt-type=kvm用openstack生成虚拟机,报错:
' j/ D4 q  L3 M8 u5 j- C; M

# A5 [3 _8 O7 X$ n& ^$ X
9 q# d9 j) c5 E7 ^- t

      }* W/ l0 z' l7 A( v2 _2 j7 j
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] Traceback (most recent call last):
    . S+ N) y% B# x9 A" e
  • 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
    2 r7 u' V- Z# s2 h3 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)) W" r; \& _3 `3 q2 H9 Y
  • 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
    ' P5 A7 C- V( S8 M$ C$ Q# Z  Q: I
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     return function(self, context, *args, **kwargs)4 g1 c$ j# B1 d3 C5 @
  • 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
    0 S1 e; ]% T. ]; H6 t7 a5 p
  • 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)) ^; W# C& B# I$ ]2 n) ?0 w8 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/openstack/common/excutils.py", line 68, in __exit__
    5 C& R  n" ]) V  }$ L" q
  • 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)
    ! L: ~/ g% b' T* D! 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/compute/manager.py", line 1714, in _spawn' T! I% o& U( J( ~! o* \
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     block_device_info)2 z1 d; M. [4 s& 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/virt/libvirt/driver.py", line 2265, in spawn
    9 h0 d( v9 p& B
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     block_device_info)2 J5 p0 k# J2 [% I8 g  z( n
  • 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_network3 r4 [1 {4 d5 a" l- e
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     power_on=power_on)
    : m$ h0 S- c+ N8 W
  • 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
    , S" a3 }2 N7 X1 _+ M8 V9 n0 A
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     domain.XMLDesc(0))9 }" @' a# ^7 @1 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/openstack/common/excutils.py", line 68, in __exit__
    9 T5 s& t: c/ K1 ^0 ]
  • 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)
    . A' o4 ?5 x; K  a6 x5 c
  • 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_domain2 q6 f7 ?6 S4 n; D" c- p2 \9 Q- i7 K
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     domain.createWithFlags(launch_flags)$ w8 V6 S$ g+ u( M$ S6 `% A: s
  • 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+ J$ ?# M5 j  w& U/ i
  • 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)
    " u/ k4 ]; J5 ^1 O0 m9 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 141, in proxy_call
    2 _& N5 d9 b( i
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     rv = execute(f, *args, **kwargs)  @3 q0 s2 L" X+ v2 j* e. G
  • 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 execute7 D2 d# H' n& f- H
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     six.reraise(c, e, tb)
    $ C3 U% y' ^0 V. h- ?( b% 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/eventlet/tpool.py", line 80, in tworker
    4 {8 z' T5 P6 Z( {
  • 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8]     rv = meth(*args, **kwargs)3 ^% J9 J% _# {! W9 S
  • 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 createWithFlags: z  t2 ?7 P; w
  • 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)  H( i- d9 M' X4 z* C9 V5 U
  • 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# L8 c7 q; r7 H
  • 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 directory6 ^; z% T. A0 E# {4 f; @
    8 v. Y! ^; ?! m
6 f* j3 I/ [6 m6 \  F' C

- O& B+ F, t- s# g! c$ l复制代码( L# r& ]5 x  w6 q  T
3 C' |/ E' Q# b2 R% u

% v9 _, S8 V. D  D! j
9 M5 H: ]* E6 E' |
) ~6 I" L  s0 s
/ X  ~+ l9 s3 L) K3 b' T# X8 Q
7 r& `0 X* n/ j1 U1 B- I
9 _! i1 ]7 C6 G9 `" a: y

" f- H8 X6 ~6 k6 H$ `
3.png (2.85 KB, 下载次数: 0)

9 H; _: ~7 ~7 f: ~

( G. v( S+ U, \& G下载附件
: ^0 I7 c3 j9 B8 W. [0 Q
+ y' ?# U$ u% i3 Q4 D: @% k! ~ 保存到相册* c% c+ U' @0 y7 E. N9 J* f
1 m9 z: a3 ]4 k+ p& `" H

. }6 e! B' G! F/ Q" g, X8 M3 h% @( K+ K! N7 L
2015-4-7 18:43 上传

* O1 C) U  Y7 m, D
# [# g# f8 i5 l) [5 h1 }+ E
8 _5 ?& x2 }( U( }. ]4 b
0 i% U; I$ Z3 {1 g7 Y( w

, K# V* T, _0 k4 {$ E9 U4 L1 W# F+ ]. Z$ M
& _, }" n! U! [0 M/ n: M8 w
. w+ T0 P  ]# s4 c5 A

( r' G. J+ i' h: S" o. o, ~0 ?- m/ k' x3 I9 I5 g& c6 M- ~
( E" X: u. D5 i) ]6 @/ S  H0 A$ Z

5 f! M9 B2 j/ T0 k  ?
3、关于qemu-system-x86_64、qemu-kvm、qemu-img
0 W; j& l' D& I! ]5 p
5 P) ]5 h+ l# i/ D- ?2 D8 F% x9 O
图3.1
. l! i1 S5 X  q  [& c* i

4 R8 V5 V& e! C& u9 h; Q( Y4 n9 N( |
/ y& j; O2 o' |' R, k$ w3 a

( [1 Y# @' B2 ?! x$ I. E0 r8 \5 Q5 Q+ ]8 i5 y) U: W
4.png (3.12 KB, 下载次数: 0)

* I7 S2 q2 v) a3 `
- }" K$ o% L: c5 @5 B
下载附件8 C7 ^; Z6 p/ G) {' J
. g9 u8 d4 [& \- `. S
保存到相册0 p2 {9 L  p: ^* I; @

$ Z& Y2 T1 I1 q
+ o, b8 A( O) }

$ ]" \1 |4 a/ p* r6 M+ A
2015-4-7 18:43 上传
7 ?( p" _# O. z* C
+ o( ]# Y- {4 ^! X% ^  D
& `- Q7 A1 t  Y7 j7 L$ q5 B: G, f

7 v6 E1 v- ]2 L6 d9 ]# D  W
/ h1 n- c; e" E& J3 N* }
' w% v# v  U9 `! A( i) P
. x. j) L& k( e- k7 ^

! M6 g3 G# h5 g
( a! L" {3 S9 O. w+ i8 P3 W# Y% A0 |3 E+ `) X

3 z* O) ^5 A8 v- X4 [0 s0 f6 _  {5 p  O$ P& v- X( h
查看上面两个qemu-img对应的版本及支持格式:
+ R" N: b; I0 m% V9 W
4 Z( f( t- l7 y; \0 g

, a, k. D- W7 y! g4 R- |' N
  • /usr/bin/qemu-img | grep -E "version|Supported"
    8 J% `$ l5 w3 K& Q/ P7 F

0 y" J! N% A  y! O, a1 k* }. P
( J" a- U7 @& m4 V* I复制代码0 e4 C5 L4 m3 x& [. }, y$ m
5 z& H* e$ e: o+ g: W
7 L2 l9 f' J  J- m0 H. R( P# ]3 x

% T1 L9 r1 _$ }- C; D8 g& |; U8 M& I7 Z6 M
. O2 k0 u. z0 K1 S# Y
图3.2
. O' F" P4 E+ ?& I% `' o# h

; ]: N; m2 M0 ~9 W
6 i3 z6 B( R  P
" J% ~+ D, e0 C; p# c/ B3 Y; ?

2 C$ o5 O/ u, Z
5.png (11.06 KB, 下载次数: 0)

7 ^! m( D" y1 G, y. D! n& v
6 h! n0 i1 T" w4 f
下载附件) F6 H* |9 u: p: [) u$ `9 q
; n& f3 L6 K7 ]" }/ c$ Q4 l
保存到相册
/ P. x9 U# E) B7 `$ r# K" C) o4 u/ `+ T+ e; E
$ c+ ?, {4 G, P4 ]: }1 v/ w

! H  m1 e) N  I  O, J
2015-4-7 18:43 上传

: S9 Q5 R  C2 i* T3 p  L% ^" c& z8 O% Q  W5 G% q! [( f
' I4 U+ v9 w' Y, H9 y, ^
$ _$ r% N) ?5 G. v; q

5 q& P! ~/ p! W# m% R7 V  v, s# |; ^( y. x- W$ M$ N# S

1 {0 m9 I+ @# v5 R* q) j6 s
2 I; h/ h9 D! P6 O; [

* p- d: |, }5 j. u
  • /usr/local/qemu/bin/qemu-img | grep -E  "version|Supported"
    $ J: k, z7 \2 W& C: R  ]4 v5 |- a

* b/ b& G4 A5 S, s, S+ P! d: w% I8 F6 k2 Q6 g* F+ o+ S
复制代码( Y* P6 W: z5 i
* n, l7 C. P( t
. v; T, I6 ]: s2 A5 D: q& G

7 j+ |% y6 u) P* O& X" w
; `$ f' H$ u, C! H. v0 x6 J) L3 N" c. m2 X4 f1 w
图3.3

/ Z$ j- F0 w3 K" f" |2 |# }1 F% y. W% ]: G/ @% C* c# o' j

% s/ L( A" b- H1 n& T% Q

5 e& b0 u2 H% e+ L
4 V" n8 n8 k; x% _* R
6.png (17.52 KB, 下载次数: 0)

- L) e  U- T  t

! y) k8 O" d+ ?3 S1 j% c下载附件
* f7 |4 K- o5 z$ V$ o
( x8 M- ?$ \7 I2 o! ~4 U 保存到相册
- P+ }+ j/ C% A" h! f
2 V+ O& T0 \, I* Y* P
) w/ R* J. N; Q; U: ?
9 V8 l% }9 ^( t& h/ t! |
2015-4-7 18:43 上传

1 N* V% I" {( P& T0 i4 |* r( O$ y0 d9 Q" K
1 @5 L+ M+ U/ `5 _
" D# t/ S8 M) {% h8 A
( |& G' b1 U/ `1 T6 a! D

+ ?  _6 n5 d: c1 |

7 h7 Q7 U. [1 w: ~
  o6 \' Q$ I& o, _' I% l9 P& [/ C4 m0 I$ k# F
/ v- X5 T2 k  }% m" Y

5 M+ r! _, E+ p, C* M9 ?  T" o
( U. L4 W4 g) x+ b: z2 r" i4 z
  z; d/ y: ^6 n$ A1 m# P
9 C5 I- E0 O& q+ H, M8 {4 c
在回到上述错误:
- E/ {1 t" t+ j/ z; W

  h5 I( _9 v6 g4 I: `4 f7 z! h+ D
图3.4
, F" X3 E1 r# I

& q/ J& ^- j' }- Y, b+ B) e8 n" b8 c

. W, s- q7 G2 }8 v/ K' R% A2 A0 j+ A% |0 I& s4 w
7.png (21.19 KB, 下载次数: 0)
9 q) \$ ~! n6 j3 i8 n

2 Y3 L: Q5 e% m1 `, I" o. {3 p下载附件2 {2 u5 k# C4 S9 c" E/ E
, j) ~: @. y: \
保存到相册
% Z! W; o: P0 L0 u8 ^( L7 X6 T2 r6 T6 O  `

. b3 d! Y3 V2 w% {
& G1 p; [3 L1 ?  ~- @/ Q' y" A
2015-4-7 18:43 上传
2 t. d% K* V5 J- s
% }" G; M$ K1 b; p- v) n: a

( Z7 o% \6 E( |4 t8 u! ]4 r4 f) N8 T, H7 s* U2 U7 N( s0 z

2 T2 N% Q6 z' D" W# G
+ z1 E: @6 k1 R6 K

' w/ X" ?/ l7 J
2 c  L+ F, U# G- n$ b$ H# t; i( w7 X& P' j$ Z, M; L% D
4 [$ b1 E2 x7 r- A

8 v0 x6 i$ k3 |% l0 V) O" q/ j, \( d% I3 w
此处启动用的qemu-kvm:
/ v0 f# x0 e( a. T. B' Z- B
5 q2 e" s! e5 u7 f" r

6 ~3 M0 \: F! ^3 R
查找qemu-kvm:
  F. W2 j9 d, P1 d

/ p! K+ ^. R. {% F$ K
图3.5

" Y) V2 v0 M$ s1 Z( l9 M1 a
; @4 K  h5 Z; E1 t2 ~1 I( |- a" [% Q1 z4 P
( [7 x: Q: X+ F, t' g; H$ O
0 L6 _% Z$ O2 B; r/ v
8.png (3.69 KB, 下载次数: 0)
3 Y& V3 K4 _, `

  ]* E6 Z( z6 {+ o下载附件: @( V" D9 D  I6 F. g0 [
; v$ ~3 e, u% r7 r: n, L
保存到相册
/ H, Q) A7 R9 c# \$ v# S9 q. ]' s5 n7 I8 W0 k4 W

# c: J0 l  R' ^9 ^" A9 W3 a" e9 X  W( Z# y5 q. R! P* H5 ]
2015-4-7 18:43 上传
( I1 T3 k) C# z" [
) M$ b4 h0 Q4 H4 e- y4 R
, _) w* P% s+ P0 \7 i4 m* J8 A

2 Y5 A5 B+ Q! C5 L8 T
$ F* |2 f# P: U7 r" Q% q) o' Q5 Y
' L3 Q. ~3 b6 x7 x  I

+ d/ o" ^7 X- j. r# Q& j6 Y7 O% p2 Q1 ]) m. v* r9 l
0 v) o* g& K' q- Y, I

& b8 S- g. y' x; [' C; T( _; N1 L: p% g+ M2 w

& M# l7 w) c/ k% u2 n( }# |0 Y
查看qemu-kvm版本:
9 _4 v; |; d- e# o6 d4 }5 u( u! V) y

$ n. O1 y0 U; ?( f$ r9 K& L
图3.6
0 }: g; F- n; g( Q. [# `

, G$ O; B# o- G# C+ |* C( b6 ]& W; `6 P( V
3 T9 n" E8 W# t. _4 M: e
3 X$ s9 P8 U, ?- {) E% k
9.png (5.34 KB, 下载次数: 0)

+ i7 b' |# Y7 j  }3 J* q' ]7 G
% e2 [2 a- K* y/ I+ c3 N
下载附件
+ ?: z! A* V- o1 I' G5 M( d9 D  y; A/ p$ s- J9 C1 n
保存到相册
  o6 j1 H  v' B6 a, l+ W% C4 j2 f% s0 l7 F& {0 L+ _( `" [

% f6 ^( x$ F2 o4 _" e, W1 L' v) m1 Z4 h
2015-4-7 18:43 上传

# A1 A% i5 `6 B( e+ j0 O
3 u1 }7 j9 B6 ^+ t8 ^( @* ?2 C
4 z) H  j" W* d5 {
0 G  `! R$ ^) i9 K2 \( c6 `
+ f' B0 ?1 U3 B* V( B8 z& E
+ V& K( K) x  ?. X! c

8 D5 ]5 w5 N! m: x6 O8 s- d. N: o2 {$ k- k) @' q

) K7 z; H3 @/ V+ O9 F) _$ d) S7 \8 K; Q: n$ P
  b1 g; Q( t4 x. c0 o

7 D8 ?. f0 ~: s: I/ T" F
再找到对应的0.12.1版本的qemu-img(图3.2),发现不支持rbd(ceph后端使用需要rbd支持)。(注:图3.3qemu-img支持rbd。)

' I& |3 W( g1 q
. h2 N4 [6 L( ]" `8 W0 D( \7 Q. M& T- F# `9 x5 p
通过上面分析总结一下:
* ~5 n3 Z, I! t8 J# y! s

- c4 B) R2 q. r6 s( K' Y( ^4 l
/usr/bin/qemu-system-x86_64与/usr/local/qemu/bin/qemu-img是配套的。版本为:version 1.6.1(手动编译1.6.1 qemu的源码包之后版本)
+ r$ o* a* y  }" G7 Y- R

& q, M* w3 X+ v. m. X/ C4 J" E4 A% f( [1 W! [- H' }. J  p7 S
/usr/libexec/qemu-kvm与/usr/bin/qemu-img是配套的。版本为:version 0.12.1(为升级前版本)

/ `8 |3 i9 M- \# w  y$ W0 F4 c7 H$ D' m2 S7 I6 y1 A7 k& f' V0 i

4 w: k, J1 d& \( n: s* B( ?5 u; G% [3 `0 E$ n8 J5 F& O

" h$ j' P* I0 a4 A6 x+ u
这样就可以解释图3.4的错误了,因为图3.4使用的是V0.12.1,而V0.12.1的qemu-img没有编译支持rbd的模块,因此出现图3.4错误。
7 Y' b  ?1 h" L! ~' A

: F: ~% [1 u. J8 _4 q$ B! c5 i
) w- r3 I9 g% b& v) s4 x
解决办法:
0 K- L" x' E- z9 [* E% h6 k( T
& H, @* c+ _& S4 ]. j
将图3.4中启动的qemu-kvm替换为新版version 1.6.1的/usr/bin/qemu-system-x86_64来启动虚拟机。
( r$ L5 \! B$ H
( D3 F, d0 u/ L) p# q2 y: e
2 b( {9 D; ~3 D7 [7 P
操作步骤:

* o! g  E1 X; @7 I) N
& O, ~1 ]0 d3 l3 {7 s, H0 y0 p

" G+ P" h. b: n) i
  • mv /usr/libexec/qemu-kvm /usr/libexec/qemu-kvm.bak8 P. s+ X+ f8 m5 }( {2 J" ~' a/ Y
! K5 b( H0 J! s& b: B5 A) x; ~

1 Z" r4 Y& q& n) ^7 I! A复制代码! J8 k& a7 {0 p# B* |
) K# R8 i8 R) m' W* G7 \+ g
9 n  L& K# ?/ z5 ]$ V
! k6 A; t1 U% F  S# s# p

% [6 q) E; j; N. ^2 k% W; N& }5 E

" X8 G* W6 \8 _8 H7 A3 U! X3 r2 M
再次生成虚拟机:
9 K4 o/ R- i! \3 z- K
8 u3 m8 y3 A5 l# J, h
$ I7 }7 g: D4 ^( P/ v  E4 P8 F0 P

: ?4 Q: E9 ]+ E5 G& Z+ [
10.png (49.33 KB, 下载次数: 0)
' k1 ^7 r& B! ?7 c

9 h- n3 n/ b7 h7 C2 @$ }下载附件* R4 a& L; m. W+ ?

! x6 l5 A+ }& s/ }2 \9 Q4 ~ 保存到相册
& X  X; @8 {0 w' G; O- m/ V9 s
8 U+ `/ Y6 m: [2 A2 O: q( T
. u* P1 M8 V* u% f. }" h/ M9 K% ]

2 [: K1 p% n2 N
2015-4-7 18:43 上传
; \$ d0 B6 t4 ]- f: H, T
7 R* X$ ], U! k

- }$ v$ b; U5 c' |6 s! F* f3 M* S! _4 F% m. y( v4 T# d
0 Z4 o& O- L9 p; P' x& }5 i
& N5 Y5 g4 N9 }* K+ w$ w+ R0 g' ^
: N9 O, s2 ^% o+ q

7 G4 V) M: e% K0 ~  E4 H) X/ F( d7 E( n! l& M/ E3 l6 e
8 s/ e! j  U' ]( A
- G9 ]* Z+ ~' t; c+ \0 d
3 ^4 u7 i3 n4 T& d7 r/ p; l
发现虚拟机生成成功。
3 r2 N  V$ u; O/ V1 A. C

/ v% v7 J, e. u( U# l' j' z) C
  |4 _  T; X; A1 _/ |$ e) u
再来看看底册启动参数:
1 N, P7 ^0 |0 b; g

: l4 g  [. `, I$ G- }4 ]' D/ ^
+ \# I2 U; V, P
  • ps aux | grep qemu) l5 f# d0 w9 z7 j5 H& V! F% `( [
* P0 H8 V+ n5 f
- v! K7 t* S8 `7 r+ z7 K
复制代码
- y8 l  T  q+ ^2 o/ @+ @3 }( b
. q# [5 e5 B; r8 _. @/ g

" h  V9 a! N5 A3 j5 \
, j: G5 r7 w$ Q6 m. A/ W/ W$ I" i
8 `6 N* l5 i& N) b( W4 _, f$ o. r
5 ?: S2 u/ Y9 {, n  o
. }" p% S3 G+ i; }+ C

* \/ v. G/ ]# A0 K/ ^- {. r2 ~8 t6 S; z4 p7 ^: d. K, t
11.png (99.05 KB, 下载次数: 0)

4 f& a! n+ V% c% U  T& U* C
* @1 p1 a! r- C. m; h& D3 G, Y
下载附件$ S: g( ?. d% u
# n, K$ d+ [* h- w
保存到相册% T3 ?' Z% Y5 P/ Z
0 I: e9 X6 o7 B
7 C+ r( ]9 s0 Y5 L# }  N

, M0 I( w$ T. H$ {# u' z0 H7 P2 N
2015-4-7 18:43 上传

6 s( X# u) j* \# K
9 j& ?: p+ d; L& l2 U' y( W2 O5 F

) n4 ?! h3 Q3 Z( h  R9 u
, Q% y8 C4 A# q. H/ L* R' i) `2 s' A2 E5 G& v$ \# i
( `( f$ }# y6 w3 i1 d

# c. n& d- s1 v+ m% l
; M, A( C% i; G5 v* c! T0 W& x3 D* h5 I4 x

. B# [7 X5 _: O4 z# O  \* g# I/ ^: \$ T" z2 a
% T) @' g' U* V. [5 ?; i2 I
发现后面生成的虚拟机,将nova.conf配置为virt-type=kvm之后。再将原生自带的qemu-kvm移除掉则能正常生成虚拟机。且生成的虚拟机使用了kvm虚拟机(accel=kvm),提高了性能。
' K+ A6 A4 R2 y& ]
  G1 `2 }& g8 [( b2 a7 o2 M2 ~

& @/ i( {/ I2 F7 P7 o
结论:
$ ?# m5 E" G' h7 ]+ c

- f- e% V# g/ y) {" j' o$ J

6 J% k: m$ `# u6 k; K8 B# m- ~
    - {+ [6 C7 ^/ P3 N% {% i* P9 x7 K
  • 1、当nova.conf配置为virt-type=qemu时候,会使用qemu软件特性模拟生成虚拟机,一次性能降低。8 y+ V) k( [8 e, ^0 O
  • & `7 g: D) ?& M: q( e' j; @& t
  • 2、当nova.conf配置为virt-type=kvm时候,首先回去查找qemu-kvm模块。如果存在qemu-kvm模块则直接使用此模块启动虚拟机。如果qemu-kvm模块找不到,则会去寻找qemu-system-x86_64,找到则用qemu-system-x86_64启动虚拟机,并使用kvm虚拟机特性。及开启--enable-kvm特性参数- L/ R6 ]2 t- }9 v- c4 }% j, ^
    * k/ g* l6 d$ @  X! n
4 Z5 ?' V' g3 H- A- O. ]
( a% y1 g% o0 H9 V2 q
复制代码
# _) {" M: f# Y2 S3 i% Q/ _
1 V7 r" A9 t, O+ [% j- P% I1 O: w

7 {! d+ n1 d, ?2 k3 i
; d8 _" F* Y/ @; P' d
# H" n! N' C  Y+ e+ W; o5 k) g/ ~" p  y  O0 n

* l2 x* [1 B7 e) K2 ?
注:kvm虚拟化模块:
# a9 {: t& B& y3 \8 Q

5 {7 |+ V* F, ?& b# k, t: r- e! U" Q/ N9 h" ]' a
$ F4 a* _6 a, Q4 q
  • 在老版本中有单独的qemu-kvm模块存在,结合qemu一起做虚拟机工作。在后续新版本中,已经将qemu-kvm模块完全合并到qemu中去。因此当需要使用kvm特性时候,只需要qemu-system-x86_64 启动命令中增加参数 --enable-kvm参数使能即可。# @5 N! _4 }- e4 j

! ?* T0 a' P6 J# o; |
2 m& ~. o2 J: W/ Q1 H6 D; \. ]5 D/ m& E$ f
, S' ^. T) K, f4 G
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:48 , Processed in 0.018636 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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