[解决后端使用ceph qem性能问题](升级kvm后使用virt-type=kvm(qemu-system-x86_64、qemu-kvm、qemu-img): @6 l0 i& J3 b" D _! b% E9 j
: a5 P6 A& O# r: @& G
$ G" v5 U" Z5 @8 U# x由于升级libvirt、 qemu 后没有qemu-kvm模块。nova配置文件配置为 virt-type=kvm将会报错、配置为qemu则性能低。
. M3 v+ h: x3 t5 _; ]8 i4 F6 Y$ N7 L0 O& c
关于kvm、和qemu类型选择请参考博文:qemu中KVM硬件虚拟化的初始化分析 (tcg、xen、kvm、qtest) 3 ]3 W6 a% z! L- d
6 v) ?* n0 ?8 w3 @! y$ U9 f. o
7 |* { n! J# P! C( ^, e3 N) Q本次测试环境配置: - M, ^- B* C1 r) ~1 I
% V9 b- t7 _. m8 L
$ L; L( {& u, m6 c- horizon 的ip 192.168.10.71# \: S0 B" S1 e! y: h0 E
- 其他组件ip 192.168.10.1916 R2 s+ L4 W! P
) y4 d ~4 W8 l9 [' { ) a; E/ t4 v3 {
# `' L5 Q" S+ E7 t0 ]复制代码
# }" z8 H4 B: H4 M$ X
" e2 Q, v* F$ s7 {# L
: N0 |; u' w+ G7 E6 E4 {) p4 F8 x* u, Q: m7 X8 q$ Z
3 X3 d7 B* p7 q3 Z: y2 G1 V
7 t" @9 n+ A E$ r& o
1、使用virt-type=qemu启动的虚拟机: 8 a9 I* ?) x9 c6 k, p% }$ r& V
8 ^; o8 Y' @; w+ p 5 c! z' E; F( l- m. M2 q0 [
! j& t* ~0 \- U+ i8 _+ e) m
0 [* w# |- |) W6 L1 a1.png (46.25 KB, 下载次数: 0) 5 I; w8 s5 J* ]7 Q
' P: ]* }9 G Y R8 P: B下载附件
/ D# N8 S/ t4 M" H L0 ~6 Q3 K$ Q* o6 t* S) v0 |" t, t
保存到相册8 b* Z7 J; H0 t: `' Z
. L2 F1 X1 d! S3 f) P
( C! r5 \" K1 O, \: K3 W* y' ]' R1 c6 Y. r) M5 J) z- n, d
2015-4-7 18:43 上传
) ]' |0 Q# X" Y! D! A/ P# f: O" Y6 P9 q0 z" E$ h% w; Z. L6 `7 X9 H
" P& a) }7 A* b5 I1 `2 @
# J+ K# z0 b0 c, Q _$ O
% T& o3 K% b+ _, G5 Q- G) g! c
9 R4 Q* L5 V0 N" d) B " Y4 V j8 ~5 c) s& \
& J( j9 a4 _0 b( \+ C" F- s+ M( v2 Q* Y" D6 @6 M% E
- 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
% Z, v" ` }% q' {; c6 l
. o. q* p1 W) d7 D2 |# k1 B$ }: Q' V, z6 K3 U: w/ E8 ]; }; t0 s
复制代码
; z; o4 e7 q0 f1 h& E! e, m - u( e/ f2 J! s9 o& r* H' H4 i. |
. k% y6 h% V% c" R! H$ B" n
% X- W! y4 ~& [/ B2 Y
' j/ z+ j" A* i" [6 t8 ]4 I" S
, N& E5 c/ d' u4 `5 W7 v
9 ?5 z: {7 C0 J: R9 F) f
/ M: a, c _ T# T$ ^6 K, b3 ^很明显看到上面使用的是/usr/bin/qemu-system-x86_64。 5 X- c2 o( H4 z6 U4 a
) X w+ Z: |* O' N# u
& ~5 ?: w5 w4 n* C看看:/usr/bin/qemu-system-x86_64 --help o, R+ _+ r, Y4 \
# j9 q& d4 r6 y8 f2 p+ _9 Y5 h
' n0 d) x9 z9 Y$ m2 B
+ @( n0 u5 E& m0 {8 z2 C
6 h& o( ]; J$ G+ M2.png (10.38 KB, 下载次数: 0)
# B8 w, g: u) F8 j0 A6 Q. b8 n* k, c) I4 D/ w
下载附件
7 Y8 |) F. j- m P
: Q; W. g U3 n0 ?0 [( } 保存到相册
. r* X$ o- q- ?! n. ~* R8 I, {: P2 R# ^2 A- I+ J
% e2 \* ` h3 W! ^" e8 z L
8 |* Z5 F& K- j2 {, w+ ]& f2 q
2015-4-7 18:43 上传 8 W; c, Y$ k* {+ m# {; n& N/ Q
8 z0 p' i4 A4 J
7 \+ A7 z" A' D) C$ z8 N9 H$ t/ U& p" c
, D1 x I8 S1 E: S0 g5 n
/ J( p* P& r8 Z# Y9 e 0 ~# F3 [& z/ j2 E
; g0 p6 h2 i$ c& Q( v- l) f
! d2 }6 V: V8 R; B4 X2 y
1 J+ w8 x \7 m
/ S7 ]4 n3 |1 r1 H5 f4 H
7 y5 X9 o4 `! |: r; [! c2 x* R
2、virt-type=kvm用openstack生成虚拟机,报错: " t# ]- a, Q( V% K8 V
! ^ ~6 W3 k4 P1 |5 v, M. e8 M0 j+ f7 N
9 E1 e$ W; K; N l f, m6 i" l7 W- ~' C, T$ o6 E: z- C
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] Traceback (most recent call last):% R) I! h, H3 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 1305, in _build_instance/ x- m+ u. ~4 E6 E0 k
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] set_access_ip=set_access_ip)7 t2 \& b4 S% ^. f( V3 ]
- 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
. }0 ^" x; c- T4 L" }/ Z4 h - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] return function(self, context, *args, **kwargs)" F% V1 a& y4 M0 V$ m4 ~: x- 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 1717, in _spawn
2 D4 q( e: x8 Q5 k: [& ^8 z8 U - 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)
+ @2 A& Q- { b* M3 j - 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__* J, y& U% p" n. j9 J; @
- 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)
9 q" j8 a7 z( {* j - 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
. v- N5 C( o: Z- O; W9 y+ _$ J - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] block_device_info)
- K! Q7 I8 L& ~ s* a ]6 Y2 H& W4 m - 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
8 N+ [ v5 i4 @3 H - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] block_device_info)
5 n9 T8 _1 `5 e3 i: E: z, f! 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 3656, in _create_domain_and_network1 ?7 X# W% M3 z1 k7 N2 U' u3 Q9 z
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] power_on=power_on)
" ?1 u d1 S9 _# 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
* u$ f B+ t. Y2 B* p - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] domain.XMLDesc(0))
$ ^' k: i {9 x* y5 j& E; M, [! _ - 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__+ K3 t, [! b, c4 h
- 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)
; G& O8 ^/ y& X( ^8 g# U$ }: } - 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
1 J$ b9 C$ v, o" e; {/ S2 Y - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] domain.createWithFlags(launch_flags)) y3 I- u4 e; h: 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 183, in doit
& `$ n6 ^' }: R+ E( Z- j - 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)4 @- X+ o3 M, k2 a
- 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. `) e- `. y( ^" {2 D8 j
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] rv = execute(f, *args, **kwargs)
& X5 d( ~7 d B2 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/eventlet/tpool.py", line 122, in execute
' P# }+ m% }( Q0 n - 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] six.reraise(c, e, tb)
. j* B, c" g5 Q, b$ v: G: |* l1 x. O4 J - 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: u ~, L% V+ ~9 @% D7 H
- 2014-11-18 21:53:55.498 25214 TRACE nova.compute.manager [instance: 5b50ed5b-c3d9-40cd-889d-0aee14afd7f8] rv = meth(*args, **kwargs)' g4 E Y; O/ Y0 i9 j
- 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
3 C' p* D6 t8 D0 @4 ]- D1 J - 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)
- D) N, R. A- T. J - 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/47 e' T W1 w' X& a; @% N
- 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
( C* U" G7 s, U2 n, L! n0 x" {0 V; j6 o- _' H7 t
( r' ?' k2 c8 E# @2 h+ `) g8 i2 C( f
' u9 s$ |1 o% Z. }9 D0 B2 }复制代码& C% x4 a* f# S: ?
$ T ^! n: w# a6 j+ E. i4 }
) y2 C1 y8 |6 e8 I& \ [
/ V/ ?# v! U( r% C8 K( c
7 _& }5 x! a' O/ B! a4 s5 W, }' Z& q. h

) b1 |; h' }3 j! N9 X/ _3 {8 s1 y1 ]# p) W
: N, `) J; Y0 h0 i3.png (2.85 KB, 下载次数: 0)
. U% N5 N. v, z' Y+ r5 c1 w% M
. g8 E* h2 I, l下载附件3 q+ r) ^1 }0 u+ J
4 G) W0 X" Q& n$ |
保存到相册. \9 y Z9 x0 V0 T5 K( w' r
( q- w2 r" v! F/ u) J9 Y( z
8 \. l+ p0 \1 z8 V* K( }: d3 z# [2 I: H
2015-4-7 18:43 上传 7 f: k; j/ O' y" f
- O* M, R8 I" U+ K& @
* S) ]/ g4 r1 H
/ r( `4 J. W! A4 g" y' v# r5 s& _* }2 r5 \8 u+ P4 A$ [
8 F4 O! S% Q _( c' J
$ K) z9 q4 p, F9 l
9 c" e! K, y) C8 l( ^* N* q
% M1 I5 _; n# u8 N+ C
8 v& B- R) L" |1 H0 Z
8 f& Y1 u" s; v0 a N! h" }/ `( G; W& w' ?- V y }
3、关于qemu-system-x86_64、qemu-kvm、qemu-img 4 e% p R( W h- i
* T- [2 N& ]2 |5 g% m4 G: t
图3.1
# m2 D$ H/ t; O% u8 z7 V: T1 I% p# F3 w$ T* A2 f0 \( h9 v# X
; O2 s% s0 T: m$ N" |8 m9 `3 ]8 Y9 e 6 C1 E; Z% f) m2 \% T4 t2 k
% V! G2 B/ m, t- l+ u) O% O8 u
) q+ f) E# ?! Z0 m$ Y3 i+ u, i& [5 k4.png (3.12 KB, 下载次数: 0) - K. J. O+ s7 X3 q/ y! u- o- ?
* e0 d1 Q5 V8 G2 B7 O+ h下载附件
: a0 b0 o0 E8 `# d7 x
& m& ^' l! g T- l* n) T1 a$ s 保存到相册4 G+ o# C+ C* H) h
, a2 I8 }+ k/ o7 t, ?
% B; Y. ?4 a& J7 r, ]9 e/ w
n1 Y( t. ?& O$ m2015-4-7 18:43 上传
, a3 [" D" Z* e+ Z( k) o+ w2 U5 k' m/ n+ U
% L `9 ^) |* n
7 K2 Y c# h. q
3 |5 Q7 [2 t; x7 ]; x8 g- F% N2 S
! X- ~" a0 G6 X4 O! B4 m
# I) h+ Z5 }7 O+ D8 c# R, S
4 j7 m/ A) M1 p+ k" W8 J& b, k
4 I+ E4 ]2 m! b8 n& x' S3 E
1 _, j G: x/ g$ J6 D Y: j/ x( I# f2 D3 J( [5 c9 F Y3 P
查看上面两个qemu-img对应的版本及支持格式: , b5 V( v1 _# d
5 o2 ]/ n6 f% a$ T+ I; k S, y# N
+ }! }, J. J2 W( m) b
- /usr/bin/qemu-img | grep -E "version|Supported"
$ c" C$ P/ r% q, H U ' I, Y" F0 v& W2 c7 u, I
' w: Z( V. ~8 q4 |9 `5 }2 t9 a5 `: ] q b
复制代码
- r, l% e6 [6 m
n5 d9 ^: Q; h$ I
Z! \& ~0 ^! {/ S+ f. @8 r
$ u' y2 _4 Z" T+ m* b4 v1 S2 }
7 J+ ]; J f) g" v3 S b+ I
5 }' V6 B9 z6 d a H- C图3.2 $ u- z9 j( E* I( ^$ i( W
' ^. B$ {1 R/ q1 S
3 |' i$ X! G. U. i+ r! a
7 f' y9 e/ |( l& i( C M& X3 j) X2 J, d4 v5 h M
5.png (11.06 KB, 下载次数: 0)
- Z& w% `8 P4 M: o
5 `: _# K0 Z. H h7 O下载附件
! I: u* }0 v8 u1 v4 A0 t$ P7 X
保存到相册
3 O R: T+ @( `& @4 Y
3 c6 M7 n% ?4 ~
# Z! C Y( f+ {2 F3 P1 ^& D
# c8 ^9 Z9 M# z" U. D* l' B/ F2015-4-7 18:43 上传 5 @" `# F& r; c. n* d6 ~! A
3 W" \0 D( s, |6 A0 C
! t! Y3 X1 O L9 Z/ O7 m; I2 i3 o; U6 L$ i m% B. B. H, g
) S# U. ?8 X1 z
1 e4 |7 j9 Z( B! O
+ j* e4 z! D3 ?2 u% V, I$ {9 r0 z; l; Z a3 _
0 c) @ ~. v. q4 e" K( N( Y u
- /usr/local/qemu/bin/qemu-img | grep -E "version|Supported"
* B& S) U3 E$ ]$ q: B, l
. B9 O+ V& k! w4 ]) @5 H0 O6 m0 }; O- M0 G" \
复制代码; q8 G+ ^5 `' \" {3 b' F
! A5 I' c+ C% Y( x2 p- ^
# T R, j C, C
1 }+ q* U( h8 p: t) l( n" i6 H9 U5 F2 C2 s" }+ c/ T+ n6 x
, T& u; g% C( v4 ?& L- l
图3.3 . m. ]2 E2 w u' Y( v
2 D/ ~) D5 j! Y2 `4 K 5 J; E5 c: C- j; y
4 J9 J! x& [( L% v/ Q R
3 |- d6 j$ B5 @8 g: N6.png (17.52 KB, 下载次数: 0) 0 q, r' K0 P3 }
2 g: }! l/ M* r: Z! ^) {
下载附件' R3 T- I$ b6 ]# ~4 V4 q
, u- O/ f; X0 K S& Z' v
保存到相册
' q) c5 _2 \3 l
& m- h' k; \! P) D8 {$ o
( ]: [0 }" w$ q6 m
# ` k5 w% M: n2 c- `2015-4-7 18:43 上传 8 I. a9 r$ h' q8 P2 z" r# v* ^
8 H7 T$ `( f$ a: i! v z, }
T# S5 m H7 s4 ]/ G0 x
: U4 ~4 z- c( w) c% c% p5 T
1 ]1 P3 H! S4 `2 ?1 w9 x& z
T% r; v& X. c- S : Q5 s" E+ s+ Y" w
+ p6 c4 F' p6 W1 b
m0 v1 d. n5 m7 s Y
0 A% K5 t& [- i+ K* A' [1 y. e* \' D/ X1 e( }5 U! t; y9 t
% o# H3 a0 }/ u% c3 Z6 a/ f( ]3 _/ |! w r
; O' R p+ N' r; l) I在回到上述错误:
: q e6 H8 d% Q5 Q! _9 R; G2 k
图3.4 ) p8 D/ x8 o& h( }0 B( e3 ^6 J5 b
[7 \& [$ W/ w$ d9 S5 S& [, k; V
' t1 A# W4 p. N* w2 `
1 Y# H% m9 g R& Z _
+ k6 B! ^4 ^1 _6 H7.png (21.19 KB, 下载次数: 0) ! y! k( _- \$ Q: H
1 O: s2 t+ ^: g) V
下载附件
% n1 t" C! I# F5 y$ u: |" h6 S/ |7 F" N' X
保存到相册- ~* j- C) w# U: j$ ~) u
, F& G3 x3 e+ ~ W* Z( M
' o4 g3 z; N4 y" B
* A" W: a, F: C6 ^- Z# W b
2015-4-7 18:43 上传 + G+ [) R! L# T) o5 {
1 D; l1 }* a" R/ [
1 G% Z9 r6 I* w. ~ T4 S) L; O
! y: n5 k" k5 v0 r* M" v8 K" F
. K( R% {3 H* M$ o1 d! ^$ R' C
. x: @, H" s7 D; ^( o# W5 e 6 k8 F0 t% j; B P2 S- M! Q
% i* }1 E% q: R2 A
0 [1 Q: l" K! S q& `& @) X2 j* [& B% W9 W( `8 f7 _
$ m" r+ |$ ^3 H4 a% c! u4 H4 B7 I! O% c
此处启动用的qemu-kvm:
" [1 d c) d& q% j+ n( e
1 O4 F9 \- P( A+ u) `
* g$ m' |0 @& Q- r查找qemu-kvm:
! K5 ^ Y& C+ R5 t$ P
$ c" X2 K* b: X6 I1 G+ A* l, J图3.5 6 Q8 ^, F/ B3 P/ B, W' S9 P
0 w. ?6 s# a+ f% i0 x0 _
5 ~* |$ Y9 E0 w+ q9 h- w
2 {0 t& g% |& @" H( y6 ~. X, s- r+ D) w9 p2 O, l/ J
8.png (3.69 KB, 下载次数: 0)
) H8 `: I- _# k$ Q: F, _4 B9 u; j9 p0 C/ h7 n* c
下载附件/ M/ W" F% L1 r2 Z% I
! j" p& b0 w. ~: S9 k% c 保存到相册7 {2 N( |, b# u. X0 [
( q7 X. }0 s8 {; J5 Z0 i( d. M5 f
, \) q- q5 @* f5 d' a$ }2 p, F
/ y/ |0 V9 L F8 S2015-4-7 18:43 上传
3 B& W8 T C: q; |0 W5 H0 P$ J7 ^1 ~* F/ U4 P1 D2 c+ s, @
0 _" w. L) B# P1 {3 o5 c& v+ r
* z) l6 w: O s, ?6 V/ d1 q% d9 |
2 a' Y9 C( M Y' f: A
: m0 s' H/ O+ }# b* O
0 M" [; i+ R. b. g% ^4 h$ i
8 l# \; F% L/ \; f5 U( t: f
5 o. Y* w7 J$ d' }+ e
$ i7 T- L8 [, a5 Q+ O c4 F2 \" E* o/ \, Y% g# I4 R- C* e
8 [. Q, S$ D% h: x( e/ J; T# k
查看qemu-kvm版本: ' B' A; n, K8 S6 S
1 c# l. ~% m& [1 o9 P图3.6 1 z" h- H9 s0 d8 i+ D: |1 h
9 h+ w5 H+ p5 o4 {
: z0 l8 z, {, p5 m$ ~4 M' H; }. H9 { W# L; F2 T8 f0 E* |
% S. G2 D- @4 m* R
9.png (5.34 KB, 下载次数: 0)
% G( L6 \) B) A, Y9 A" v h6 n1 X2 ~7 ?+ L: `7 |. M0 r2 V' e
下载附件
( | C3 n' L' W: _7 G2 s3 K
& @& U- k9 m# q5 c( i: m 保存到相册
7 ~6 i3 R7 W0 c
5 S# f8 n }( U* t! ^0 ^# q K* ^
5 W: T# E" _- y5 ^, G$ @
c6 j, \( j. K2015-4-7 18:43 上传
# v6 ~7 {: }) P" T* X0 O) l6 b
) ?: L# v) w* k7 l K1 ?! X T+ Q$ d9 U8 W
! c x- Y5 A! E' ]3 e
3 m& A$ q. G4 g. F6 R B. M( D; M
: j+ \- y) s" v2 Y# [) T 5 k+ k5 f. K# `0 G; F, ?
4 ^8 \. _ Z: c/ c+ I
: N, H1 c! t U* \
1 _: S1 }% G% C2 C! U- p$ n" U6 }2 i. f* M+ V" b
+ \/ t0 X0 R2 n6 W/ _
再找到对应的0.12.1版本的qemu-img(图3.2),发现不支持rbd(ceph后端使用需要rbd支持)。(注:图3.3qemu-img支持rbd。) 3 x1 m% V6 v; Z/ z2 O( d! f
6 A& O/ K0 d! h% F- i# S. h/ u; a: _$ b. ^
通过上面分析总结一下: 5 v, \- C0 z6 L& P l8 i" C
5 |; u: G. ?( Y5 h5 E
/usr/bin/qemu-system-x86_64与/usr/local/qemu/bin/qemu-img是配套的。版本为:version 1.6.1(手动编译1.6.1 qemu的源码包之后版本) # [4 u s' J# D/ T
D P" n+ N/ H7 P5 N
, l$ f A& k2 l3 I/usr/libexec/qemu-kvm与/usr/bin/qemu-img是配套的。版本为:version 0.12.1(为升级前版本) ( R* i. P5 O `. b! ~4 F( ]
7 p& x5 s: n( z9 H: `- P$ ]6 f5 d8 Y
3 z+ U8 w# z( q1 Q0 T6 N9 |8 A0 S. d4 H5 M+ I9 |6 U: u* B# b+ c+ C
9 q. `0 ~% g: S j
这样就可以解释图3.4的错误了,因为图3.4使用的是V0.12.1,而V0.12.1的qemu-img没有编译支持rbd的模块,因此出现图3.4错误。
3 ]( V& `7 y0 N7 z
, z( z2 L; I4 @' d! c! E" F7 y+ [/ A5 `& [
解决办法: & w( S5 ~) q3 j: B. v9 |
" m- m, D$ }. p7 A* a# _将图3.4中启动的qemu-kvm替换为新版version 1.6.1的/usr/bin/qemu-system-x86_64来启动虚拟机。 ) i; ~% T% D% h! S/ s3 F
, ^ Y8 K" [; X+ v6 y2 `; r
8 `: ~ c( h& u$ b' Q操作步骤: ( z9 Y- L% w$ l, i0 [) p2 m; o
/ u' _0 `! t. J5 @6 Y" O) t4 U
. F0 E- o6 @5 z3 o3 f- mv /usr/libexec/qemu-kvm /usr/libexec/qemu-kvm.bak
8 J# O7 M8 B& J ~& r$ w
# }& |3 r" b: Y2 x2 G7 K: o% @# E$ N% t1 g t( h
复制代码7 d: @4 J0 s6 ?$ j+ g7 ]
8 C) j- |; G) k! u" t+ [. l; t" i
; q2 }' x% Y } v8 R( j E
% b W7 J+ _; H3 L
, z" F# t- H& D9 M
4 `9 {4 p8 A2 d2 [' R7 z' P7 p
1 L$ v; T* Y$ `$ G/ _9 K1 j再次生成虚拟机:
2 L/ e1 e) i2 \/ a0 b; c( P: Q+ {
2 e$ w9 U, G8 {# u: ?& K! ~7 Y. z* @8 N& w
& C. c! E2 v( s10.png (49.33 KB, 下载次数: 0) ' o: o& f, ? \+ h: S' W4 ]8 e; M
* T. V! d' a0 V4 M) T8 b下载附件
% n( z9 f. ~4 F* j; J, ^2 Q" M p* F% K$ k2 u
保存到相册
! d9 p4 J5 ?( _6 [, ]/ m/ K t' _" J' K$ ?: g6 K& L. a6 p
, K& g0 s7 ?. d) G; w" w
' B$ n- Q+ l( e8 ]- c! U( k% b2015-4-7 18:43 上传 7 F! H; X/ q0 E# G; g; e. @* l
+ ~5 E3 v; P+ g. O: R9 H, v5 H$ f
7 b, P/ |% {0 y, e. c3 r1 r
6 d. b* X: l) d& f1 d
( m- o7 c/ T& N1 R# w# ^
6 }% _4 G+ D: Y1 s ' o# k s: I7 P! _& [& t0 p
4 l2 _, s7 x& d( S$ D; M
: B" B' f$ ~" j. i
0 N1 z% u+ A3 Y; `% F! s* r k$ e
% p4 Y& d: n' C8 m# G
发现虚拟机生成成功。
* z! { j" a0 n+ g+ j, S2 R3 f7 n
" l, b# w( a, j! L. l+ s# [! N8 U2 E; ~
再来看看底册启动参数: + i' I6 {* r" E8 p4 v) M, v% `
{( [1 z( ]6 H9 G
# P4 q; `. S, M1 x% Q! y/ t
- ps aux | grep qemu
3 d) B: ], U! q$ Y# s
: h5 g4 _& u4 k- J/ R5 ] D; M; K5 k0 s& q/ E# V- A
复制代码
1 M" ~& q, R. k ; K6 ?8 B3 N4 j- h6 K
- J$ h& u9 |8 z- x0 E7 B. K: F# b( ?
" d( u8 C! l* @2 F5 D- m
9 A+ o& }/ w5 l0 _- ~2 {5 [& t
! h- D( E0 Q+ o' V7 p* `1 C! @9 a+ Q, d0 O; n- m
5 O1 v- [0 z8 U; F6 X0 F9 e
11.png (99.05 KB, 下载次数: 0)
$ K( Y# F$ U8 Y' l8 A3 N
9 D c6 V) d5 Y5 m3 j下载附件* b% Y$ D4 h. o) I% ~
8 ^( k/ C, m/ K 保存到相册0 W; W2 C: }6 H2 `% H6 @% a' \
: K1 E6 l0 Q/ s/ P
; x1 }* L/ S8 @: d( l
) {( u! U$ ~: ~2015-4-7 18:43 上传 9 T0 x) b+ b+ n2 ?! N9 E: ?
' j! u- C, ]* U' w7 R, Q+ {9 d2 Z
/ o( J" h$ X& \4 v: x" Z
4 z9 h: I! Z4 E; L0 B+ B: e
# G& @4 O. C* L2 |7 C# W9 K
: j3 U, s+ R1 n" @0 a
{3 M) E1 q5 n5 p' }$ }+ i9 L
! H: b. d$ w% {* Y: e; a
1 ^, b1 D- z4 Z6 f/ @; i( E' F* d5 g$ ~
/ {* P3 X5 @7 G4 z6 }3 P% s% ~) F" r) g1 e1 H
发现后面生成的虚拟机,将nova.conf配置为virt-type=kvm之后。再将原生自带的qemu-kvm移除掉则能正常生成虚拟机。且生成的虚拟机使用了kvm虚拟机(accel=kvm),提高了性能。 % Z- K1 H( @6 |) ~/ w) h; u* v+ q
2 L$ m( [8 C# }9 X- ?! A F8 A, |3 F6 c8 G X" m$ u/ X
结论: / j4 B& a; x- [, Z$ I0 J
8 O& X4 |# g" p) s- g8 ^6 ?" ~) J5 J; U" M4 g& j
7 B' p% Z9 a! I
- 1、当nova.conf配置为virt-type=qemu时候,会使用qemu软件特性模拟生成虚拟机,一次性能降低。
1 J% \4 A/ d8 a8 y0 |
6 d4 |8 G _+ x7 G" K- 2、当nova.conf配置为virt-type=kvm时候,首先回去查找qemu-kvm模块。如果存在qemu-kvm模块则直接使用此模块启动虚拟机。如果qemu-kvm模块找不到,则会去寻找qemu-system-x86_64,找到则用qemu-system-x86_64启动虚拟机,并使用kvm虚拟机特性。及开启--enable-kvm特性参数
0 {4 Q) g& J% }! n% F" T5 W
9 p! l. y/ P7 I, G
- t( [8 s6 n& f# ?6 V0 R+ t9 T) t+ Q9 m: p2 F6 e
复制代码) L/ F" F, X. y1 I1 V1 J: N
: s* c6 a9 K/ Y( E* O6 Y* e1 W
, d9 x% l* t! ]; G1 C! D7 k- `
- `( u! c( {1 n4 ]0 y2 ~
) L3 f( @* _" X7 E* m! M) n
6 P% ^ A6 \. [9 i Z" o1 {0 H# P- R$ Y/ p
注:kvm虚拟化模块:
1 W. H Z8 M) f
# m0 ?5 ]; U, K
* @! R0 _7 \% g3 v% r2 n4 B6 n1 I5 W/ K
- 在老版本中有单独的qemu-kvm模块存在,结合qemu一起做虚拟机工作。在后续新版本中,已经将qemu-kvm模块完全合并到qemu中去。因此当需要使用kvm特性时候,只需要qemu-system-x86_64 启动命令中增加参数 --enable-kvm参数使能即可。
+ c* b0 i+ E! C 1 D# @4 b( ^4 N) c1 {' i4 P
& l( ~# M3 w- D7 N, g+ a5 Q# q8 Y
7 w2 }# G- q4 t" R, g1 s5 @ |