|
|
这里是Xen手册页的xl文档:xl(1)。
; y' N- r* q$ s- u) H我们将创建一个CentOS-6和一个CentOS-7 HVM。7 m/ l* o3 l$ F# N5 i
首先,我们需要虚拟机的配置文件。 在xen包中有一个名为/etc/xen/xlexample.hvm的示例HVM配置文件。 您可以查看该文件并在此HVM文档中查看:xl.cfg(5); ~! C: ?6 a/ C4 |% O+ x' w4 W0 I/ x
文档:http://xenbits.xen.org/docs/4.6-testing/man/xl.1.html/ c/ z+ c# K T6 L" B+ V; [- r
这里是我们的配置文件..我在/ etc / xen / config.d中创建了一个保存配置文件的目录。
* c4 e/ C$ L' @! x' L# |! C1 _ ~(1)保存与恢复:
- x7 K f. ~/ e5 X' a p保存:* u% J) g, u" Q, O7 }( I& h
# xl save box-001 /tmp/box-001.img /etc/xen/box0 O; v) H- s, k ]' {2 z
Saving to /tmp/box-001.img new xl format (info 0x1/0x0/888)& N+ f+ c% I4 F* @6 F) L! v
xc: Saving memory: iter 0 (last sent 0 skipped 0): 65536/65536 100%
; [! M0 \5 \+ W' Q3 z1 ^4 N1 z( M/ ]libxl: info: libxl.c:1717:devices_destroy_cb: forked pid 5981 for destroy of domain 8" w% x s9 [" s: ?4 W5 n. f9 ^
' X/ g! Z# M; Y, ? b( o: v# xl list( b( C. o- j3 r7 d9 A4 B8 }
Name ID Mem VCPUs State Time(s)
: X( E8 i: d g3 D5 C7 TDomain-0 0 1024 1 r—– 88.0 N L# H4 X, |" M/ j* d
恢复:
5 z9 d! Z1 `3 }# q& K+ f- v# xl restore /etc/xen/box /tmp/box-001.img
/ L3 G1 ]' D9 x& BLoading new save file /tmp/box-001.img (new xl fmt info 0x1/0x0/888)
3 o: I9 G& e! \3 A- c9 mSavefile contains xl domain config in JSON format
! N6 y' |* L8 t: \" T8 i, Q3 ]Parsing config from /etc/xen/busybox1 o, d, \! r' p" s2 v7 A
xc: Reloading memory pages: 65536/65536 100%
& s8 a$ m2 [( N+ g7 B) d验证:
Y1 h* E' p2 J5 T( z2 n. [* s# xl list" h% J- o$ a. d: @, }0 P4 X) |2 F
Name ID Mem VCPUs State Time(s)
, q& K% Z2 n6 O+ j5 zDomain-0 0 1024 1 r—– 90.7+ s4 e3 `4 `" B4 r
box-001 9 256 2 -b—- 0.0' p# z0 o! B* V! X
(2)暂停与继续:; _7 w- Z. T) O' p- ?6 V7 ?
pause:# xl pause box-001# H: M1 `2 `' }) N" C8 {+ _0 I5 c
unpause:# xl unpause box-001: v) z* v7 E, J4 v! @+ [; r& V: d9 v
(3)关机与重启:8 i. I& c/ n |8 Z$ F# {& R
shutdown:要虚拟机支持关机命令
- L" n3 h& f/ kreboot:重启- m# p1 b# Q; O3 s% i
(4)保存与恢复:
% I: e, C1 V3 v9 {1 \9 A保存:: j0 U. {$ k) R2 \
# xl save box-002 /tmp/box-002.img /etc/xen/box
+ W7 m1 l! s( g4 k5 t1 rbusybox-002 is an invalid domain identifier (rc=-6)9 ^" X. R* G" S; O+ N9 Y/ D5 J
[root@xen net]# xl save box-001 /tmp/box-001.img /etc/xen/box
3 v8 _+ v% w5 u9 W* E# d/ wSaving to /tmp/box-001.img new xl format (info 0x1/0x0/888)
$ F2 h% l$ {: w" d) oxc: Saving memory: iter 0 (last sent 0 skipped 0): 65536/65536 100%6 J. y+ c# E4 q2 E4 p' I( X+ ^
libxl: info: libxl.c:1717:devices_destroy_cb: forked pid 5981 for destroy of domain 8& a4 G' y) b6 C& @+ k
1 g% _- s" R1 |# E
验证:2 _, G% m' ], n2 C4 C0 [7 x
# xl list) J4 z; h: z! @7 }
Name ID Mem VCPUs State Time(s); ~( P5 X1 m1 H; o; L$ X3 N
Domain-0 0 1024 1 r—– 88.0
& W; n% c# }0 q$ d5 m7 `6 K& w1 y: w& Z( ?. a
恢复:
$ [( J3 }& R$ F" H. K) W# xl restore /etc/xen/box /tmp/box-001.img
7 ?# t# t% [$ @Loading new save file /tmp/box-001.img (new xl fmt info 0x1/0x0/888)
6 |/ D: t6 u: A0 Y' vSavefile contains xl domain config in JSON format
# T* V# z2 ]$ D) CParsing config from /etc/xen/box, T$ i, f: F6 h
xc: Reloading memory pages: 65536/65536 100%- A: d! m0 q5 ^1 u& A; x+ Z" a
2 L( w+ R; K! Y: }
验证:
# I8 B$ f4 ?; A# xl list
5 b4 W$ R# L3 t! G) `6 yName ID Mem VCPUs State Time(s)
4 \4 l/ Y0 T; z5 L; c" V3 a- ODomain-0 0 1024 1 r—– 90.7, [: a( O% r0 a! o
busybox-001 9 256 2 -b—- 0.0
) _% @% t8 ~3 D% v0 }# l(5)关于cpu:
, y! s- J3 n. _" U' Y: l# xl vcpu-list
; ^, k0 ^) a/ u" ^Name ID VCPU CPU State Time(s) Affinity (Hard / Soft)& |/ k+ a( `. w. @ V
Domain-0 0 0 0 r– 92.8 0 / all- O, T9 e0 o9 D# H$ a7 ?% }! n
box-001 9 0 3 -b- 0.3 all / all- p# K2 @, a7 \4 ]- a1 p
box-001 9 1 1 -b- 0.2 all / all
5 j. f+ Y9 A0 o9 P- u* f
. a. Y4 D. r6 g+ X+ t让vcpu 0只能运行于物理cpu3上2 U' ~1 `' ]0 D! {) Z6 l W
# xl vcpu-pin box-001 0 3; z8 {3 N5 D4 g! u) c2 g
* t# O) ~3 M( b! u# xl vcpu-list
i+ P$ p1 I1 u9 f1 K- r. S8 TName ID VCPU CPU State Time(s) Affinity (Hard / Soft)
* w, T6 {" |4 M7 ?1 ?5 A9 pDomain-0 0 0 0 r– 94.4 0 / all/ \" H9 C7 c! c3 k% H
box-001 9 0 3 -b- 0.4 3 / all
+ P4 b ]3 f, j1 g0 ]. M# Mbox-001 9 1 1 -b- 0.4 all / all
1 d; M5 S$ w0 F4 r) W7 N# ~; _$ @
只让busybox-001只运行一颗cpu
' ^2 _( I: C% r3 ^( x' ]6 ~# xl vcpu-set box-001 1, ^# [* J2 {$ @2 N7 _) k9 c* `- a) W( {- G
# xl vcpu-list+ O6 K% x# E7 `
Name ID VCPU CPU State Time(s) Affinity (Hard / Soft)
0 ^; @0 c2 D; V; RDomain-0 0 0 0 r– 95.2 0 / all
2 L5 f6 P) F8 r9 _* O2 Gbox-001 9 0 3 -b- 0.6 3 / all
9 w4 N- z# F7 [3 g* H; M! k: ^: Xbox-001 9 1 – –p 0.5 all / all8 o( F# ]: Z/ q4 c% ]% u
(6)xl获取信息: {; a0 s- c( J, R5 m' U% ^
# xl info" U: o- M d) ]6 M# e
当前hypervisor信息8 r, r; \3 c9 H
. H) A! P1 d! [. O. Z4 |0 t1 k" O
# xl domid box-001' p/ K2 v9 n7 h8 N0 A M6 r, y+ a
9
$ }+ H5 H+ B8 s7 I: p( M4 A8 o8 z9 f/ v
# xl domname 9
- y" K$ J- s. w* L5 ~* A! l- a box-001" H4 e' O- A0 i( h1 {2 X: ?3 T) r
& F! x8 h; _6 h8 f( G# xl dmesg box-001: @" y3 }, U( m* a. P9 L, T6 e7 U: u& w! G
启动时信息& M% S, \( N! v: g8 y
: O! m) Q6 G) f5 V# T; X$ O
# xl top box-001% p/ E+ _# |0 n- a0 {6 T0 n
查看domain资源排序命令
4 k i0 j6 m9 ]( Y) O) V: c8 p `# O, {
0 @& T! ?$ }) X5 U(7)关于网卡- D Q$ ]9 N* E5 H8 p
# network-attach2 T$ Y ^1 l7 C0 {. ^
添加块儿网卡: E/ |3 g! G5 u% s3 w& \4 c
# k7 Z C* [8 R( X6 r5 c$ s) W# xl network-list box-0016 D3 j; G; u1 `6 D( H
Idx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
: Y4 R# l6 j4 Y; O0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/0
7 j( g* r$ A0 s, q4 D) C$ @7 J+ s+ d
添加网卡:
$ K( Z& F5 l' u6 y2 v4 @, e: q# xl network-attach box-001 bridge=xenbr0
$ \. N* j# o* b4 a# a! V! i; s! }2 i: H: H
验证:
3 p; w, x) Q7 b" i1 T# xl network-list box-001
0 F4 N- Q- E7 z/ `Idx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
! U! x& \. _9 k+ x# a) B7 n* ]0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/0) x# l, _9 W6 s, L! I3 `$ \0 c
1 0 00:16:3e:1f:06:07 1 4 8 1280/1281 /local/domain/0/backend/vif/9/1
& V- c$ _" Y. B9 `, T# o0 x: ~8 N- o# B( |
验证:
7 E4 A( Z6 s) R4 d% G+ X* l% [0 m# ifconfig -a, G" g' H: T, U1 \* J5 ]* _. t9 J
vif9.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
: W( n" ?: D3 N$ a! \inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link$ A1 v( U: S" M: V
UP BROADCAST MULTICAST MTU:1500 Metric:1
I6 }# ~/ `7 `8 Q$ @RX packets:0 errors:0 dropped:0 overruns:0 frame:0
" D( J$ j& w" V j0 O6 XTX packets:128 errors:0 dropped:0 overruns:0 carrier:0
5 f: E# y# j5 I: }( h7 }( |collisions:0 txqueuelen:32
) @. I3 ]1 o/ _+ |0 yRX bytes:0 (0.0 b) TX bytes:85791 (83.7 KiB)
0 w+ W: A* ^9 k$ p: G/ B, k: G, E1 g: `, b) R3 Q
vif9.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
8 r5 [* `& i$ Y8 J' V1 dinet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link% G. X1 s; ?0 h5 s$ q" c9 D: }3 J
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:19 s7 P4 s- E+ e+ D0 `7 ^
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
$ P# e- E% _9 ?# a9 f9 q* g7 vTX packets:14 errors:0 dropped:0 overruns:0 carrier:0
1 y3 M. H0 k3 ~/ H) @collisions:0 txqueuelen:328 c' @% f/ o! S
RX bytes:0 (0.0 b) TX bytes:6287 (6.1 KiB)
9 n/ I, [: \& `5 j& u- A+ q
# G5 u/ O- n! c4 `% ixenbr0 Link encap:Ethernet HWaddr 00:0C:29:13:E0:CF
6 Q4 h- z Q2 f8 Ginet addr:10.0.0.208 Bcast:10.0.0.255 Mask:255.255.255.07 N( i- F2 ~% d0 \- d
inet6 addr: fe80::20c:29ff:fe13:e0cf/64 Scope:Link
% A) k5 ?2 Y, ]3 Y5 v( X+ j( w. tUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1; @$ E+ B: K6 N5 m( N) Y8 u* j
RX packets:12309 errors:0 dropped:0 overruns:0 frame:0
, {6 O/ z: v* K9 C' rTX packets:5822 errors:0 dropped:0 overruns:0 carrier:0
! [6 R* ^* o+ ^% Mcollisions:0 txqueuelen:10004 p- X! T; V! d1 a0 w% P0 c
RX bytes:2376281 (2.2 MiB) TX bytes:1105969 (1.0 MiB)
# H( Q8 n" |) `0 _1 j& I! T% @
4 t- b* L& {( q$ ]/ D1 T- K: \查看虚拟机网卡:
6 T7 j+ L1 m G2 Q- L# xl network-list box-001
* n2 b7 @4 J3 X' r+ [# N& eIdx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
' |+ v y ]+ e0 e0 @. a0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/0% Q' E3 {- B" @" d7 Z# K
1 0 00:16:3e:1f:06:07 1 4 8 1280/1281 /local/domain/0/backend/vif/9/1
2 l; t$ y! m1 V2 H) {4 n. p; l* U2 o0 h5 d7 U, C! u4 K) h$ V
拆除一块儿网卡
9 P* f# C! a' F* x) k7 q# xl network-detach box-001 1/ M9 i- h. X8 q' h* {
% I4 C: [) S5 e3 V
验证:5 v3 }, S; X0 X8 D6 n
# xl network-list box-001
2 f5 k' ^7 {+ i% i. b1 Q8 GIdx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path8 X% r/ P. h0 y+ i# O5 U: r m
0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/02 N' d. i0 i! @1 W8 @1 |, }8 Y% k
(8)磁盘管理:. W; E+ R; A; L( E# u+ {
######创建一个磁盘映像文件* D# g: V0 n, ?' @0 P$ H$ Q' ~( B
# qemu-img create -f qcow2 -o ? /srv/xen/box1.img6 q6 U' c+ i8 D) Y% z
Supported options:
* u2 x- c$ g3 g) q* z+ Xsize Virtual disk size
" ]! M0 q6 T, K6 \) I4 R6 e9 |' e, M& Kbacking_file File name of a base image8 m$ P: T- k1 D& s& e6 l3 k
backing_fmt Image format of the base image/ v$ T8 e# j7 L2 G* n
encryption Encrypt the image
" N! \7 s" K; {* ?% Vcluster_size qcow2 cluster size6 s1 \4 }. e4 i: Q% n, G7 S
preallocation Preallocation mode (allowed values: off, metadata, falloc, full)( N* I- F l, Y6 O
size 虚拟磁盘空间大小% R- D, e |5 s h
backing_file 指明后端文件名称; D% \$ O2 `! [( a0 n( Z( ^$ o
backing_fmt 指明后端文件格式
6 N% {6 d( c% l- l; ~encryption 加密虚拟磁盘映像文件, m. ]4 u& B, Z# E# e
cluster_size 簇大小
5 H1 Y; \& \ M1 D" S7 G0 O5 Qpreallocation off,metadata(只创建元数据),full全部分配空间! P6 T. Z3 N+ w( _. \
3 a2 d3 t* S4 E* `# F
###热插拔进入虚拟机1 e8 P) \- ?2 g: g4 m
# Y, e" a3 |- I4 k, e
/ # fdisk -l
9 R$ M7 |1 p0 O* D/ _# |9 ^
/ {1 v& F. v+ g: l5 TDisk /dev/xvda: 2147 MB, 2147483648 bytes: W2 [4 h" {* }; ^+ N
255 heads, 63 sectors/track, 261 cylinders
) e; {0 p: j* z" D+ FUnits = cylinders of 16065 * 512 = 8225280 bytes
K4 p x% P2 J! O3 j& L9 s+ C( g* ~( D7 [9 h
Disk /dev/xvda doesn’t contain a valid partition table6 r+ r( H3 q, n6 a7 i
) }! V" X+ Z! O# qemu-img create -f qcow2 -o size=2G,preallocation=metadata /srv/xen/box1.img* p% M+ e4 N6 U; [7 E) x( m
# du -sh /srv/xen/box1.img$ s; S7 J) H6 H" e$ r* \; ?1 ^% s
524K /srv/xen/box1.img1 w! t0 v3 E P" O# U9 u s& o
' L2 A( E5 ]# w4 B' b#####插入虚拟机
6 @5 N0 S" C3 H3 q$ F4 s# xl block-attach box-001 ‘/srv/xen/box1.img,qcow2,xvdb,w’2 ]" [) m8 B. a6 v
9 s& X# W6 J5 o f验证:
6 E6 U) w! E) j6 m7 r; y+ f/ # fdisk -l
3 M, a0 ?1 `) W# G K) F
$ R Y1 U0 \+ j% R: cDisk /dev/xvda: 2147 MB, 2147483648 bytes
0 [2 `+ _, `8 X9 `' `255 heads, 63 sectors/track, 261 cylinders ?0 i7 E& c+ _6 B8 Q5 j
Units = cylinders of 16065 * 512 = 8225280 bytes
; h% p5 e7 E f2 n7 j# i, R4 W/ w4 `5 R& D9 \
Disk /dev/xvda doesn’t contain a valid partition table
7 y4 Y! i) S6 [
# k- R- O6 C9 } n" J& L* FDisk /dev/xvdb: 2147 MB, 2147483648 bytes
! o2 g) h0 P, w3 ~% E255 heads, 63 sectors/track, 261 cylinders
& x! C6 s/ l5 R+ o1 G J9 b7 R& zUnits = cylinders of 16065 * 512 = 8225280 bytes3 b X5 s8 @) i# B5 n
# u' U6 k- ]* b) s `& q2 g
Disk /dev/xvdb doesn’t contain a valid partition table1 E H' z; F2 p
验证:
1 x! s7 x; U5 ~5 J5 h) ~# xl block-list box-001- x) S9 Z7 b% K- B3 V& v, s
Vdev BE handle state evt-ch ring-ref BE-path; |5 x) N2 w: Q z- Q' \, [! y
51712 0 1 4 13 8 /local/domain/0/backend/qdisk/1/517122 a" W4 Y2 R$ @6 U3 e# x
51728 0 1 4 14 57 /local/domain/0/backend/qdisk/1/51728
& K2 k+ V; T! t2 h4 a1 o# p8 o+ t& L! ~/ ?+ e5 p
#####卸载磁盘
3 C) w: J2 K1 l4 \+ ?+ A U# xl block-detach box-001 51728/ ?. ]% P6 S, B# G
验证:# ~1 i! L4 b- `( T
# xl block-list box-001: a f" L9 j5 f" G' [+ H
Vdev BE handle state evt-ch ring-ref BE-path
" Z/ M. w1 s: @: x! g% w) ]51712 0 1 -1 -1 -1 /local/domain/0/backend/qdisk/1/51712
# |2 J; a$ u* o/ e) v/ J3 I0 b5 h% f+ S0 D6 _* R
###查看虚拟机up时间& ]# a, q+ q( P! w& H* {
# xl uptime box-001
$ j) h* g+ P: Z3 d0 W: G) X8 O- h2 Q. XName ID Uptime4 @8 y3 {6 I) `
busybox-001 1 0:13:05
& `5 Z+ Q3 a2 u1 ]) e- E ?) G9 \(9)创建虚拟机! S) [( H- {' q. ^' T5 E1 G& t
干跑:
& Q* U' ~- |+ Y- }: U# xl -v create /etc/xen/box -n
4 d4 s- v' q @, ?# n% V! `! z* J! O, G; \( S
直接连入控制台
, t! ] z4 Z9 U1 X# xl -v create /etc/xen/box -c) p7 b5 L( C$ B7 C6 Q! U/ D
5 x6 O& S, O) A! S& D% g% _) A
进入控制台5 n4 b# W) m* m
# xl console box-001) l% r. {4 N5 v1 E1 H
T4 e2 D+ n0 v8 Y Q# o4 h退出控制台:$ w+ ?/ v) q. T- w8 r2 b" K
ctrl + ]
( e7 F6 A" u$ M5 }
) |& y1 ], S1 i% o, j8 ?- H# M' }, x' i
|
|