[解决后端使用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 u1.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 O2.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& ^$ X9 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- I9 _! 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 }+ E8 _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+ A2015-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, Z5.png (11.06 KB, 下载次数: 0)
7 ^! m( D" y1 G, y. D! n& v6 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, J2015-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% _* R6.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" A2015-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( b 6 ]& 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 C4 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 N2015-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 N2015-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
|