|
|
这里是Xen手册页的xl文档:xl(1)。
8 P5 I( ` u9 H" W3 Y3 d! W* Z( [% N- u我们将创建一个CentOS-6和一个CentOS-7 HVM。
! [3 J* e4 e1 p, S首先,我们需要虚拟机的配置文件。 在xen包中有一个名为/etc/xen/xlexample.hvm的示例HVM配置文件。 您可以查看该文件并在此HVM文档中查看:xl.cfg(5)1 d# b6 @5 W' k
文档:http://xenbits.xen.org/docs/4.6-testing/man/xl.1.html! ~5 o, X$ D6 W1 }( S
这里是我们的配置文件..我在/ etc / xen / config.d中创建了一个保存配置文件的目录。% i# f3 B& v0 z" c# N$ W) a6 r
(1)保存与恢复:) S$ }, A3 |8 Z" f
保存:/ |+ C7 l& y0 |: a" \7 _: |: _9 b6 b
# xl save box-001 /tmp/box-001.img /etc/xen/box9 s7 L- f& H1 P6 M
Saving to /tmp/box-001.img new xl format (info 0x1/0x0/888)( u9 Y) Z% T0 l, W
xc: Saving memory: iter 0 (last sent 0 skipped 0): 65536/65536 100%
3 Q* Z1 c0 H7 R1 K/ p1 s: x9 V @libxl: info: libxl.c:1717:devices_destroy_cb: forked pid 5981 for destroy of domain 8
Y1 y% G' F" ?( z6 ^3 w
& `5 ^. Z+ d% h& X0 f# xl list
& l+ {/ [ i( u+ v* O7 Y7 XName ID Mem VCPUs State Time(s)
4 b* U8 F& [& j6 c6 ~0 t/ N3 u9 KDomain-0 0 1024 1 r—– 88.0
. f* g, z9 C" ]恢复:
% O$ i0 K: m( u2 H1 F# xl restore /etc/xen/box /tmp/box-001.img7 S8 q- _2 j( X8 \4 G, `7 w
Loading new save file /tmp/box-001.img (new xl fmt info 0x1/0x0/888); O8 l) I2 y7 I" |) \9 [$ F
Savefile contains xl domain config in JSON format: e/ k' X( t2 H3 o! Y6 e+ R
Parsing config from /etc/xen/busybox" K ~) _. L* n$ l
xc: Reloading memory pages: 65536/65536 100%
+ V8 k3 M5 @" w, U1 M验证:
! n, [1 u! _/ Q) P& r# xl list
5 d1 S4 E: `7 k' @, Q; t+ E& }5 iName ID Mem VCPUs State Time(s)% |4 y: z" z. {
Domain-0 0 1024 1 r—– 90.7
, R1 Y* |! z3 d: jbox-001 9 256 2 -b—- 0.0
$ P; Z `! {4 Y# \# w. |2 l9 m: c% `(2)暂停与继续:5 M* G- q0 I2 y( P O
pause:# xl pause box-001
/ c- \/ p& h% C5 o4 l2 W/ T9 ounpause:# xl unpause box-001
# `5 G8 h- B7 \% n2 L) z+ I(3)关机与重启:
* z4 c" q, @6 oshutdown:要虚拟机支持关机命令2 E" [( m6 V! p# r0 K4 U
reboot:重启
. G" L' r" x0 ^' u(4)保存与恢复:- h+ S8 m0 m0 b& S( u- O
保存:
2 H8 C( B: n# Y+ r% q# xl save box-002 /tmp/box-002.img /etc/xen/box/ R: C$ R( Q p. e) c
busybox-002 is an invalid domain identifier (rc=-6)
3 M" [/ A- w( t* U0 z, B$ o: L: \[root@xen net]# xl save box-001 /tmp/box-001.img /etc/xen/box
! w9 k3 `1 O$ s/ v( CSaving to /tmp/box-001.img new xl format (info 0x1/0x0/888)6 _+ W" n/ K! z9 y2 O& Z
xc: Saving memory: iter 0 (last sent 0 skipped 0): 65536/65536 100%
5 l7 F# o7 }$ v+ F! L% y; tlibxl: info: libxl.c:1717:devices_destroy_cb: forked pid 5981 for destroy of domain 82 f. N- S9 S" g6 {
$ a8 D5 S$ ]- C
验证:, j& L8 p+ \' \2 L$ [
# xl list
. q$ u0 D2 `( h2 rName ID Mem VCPUs State Time(s)8 _4 K# H! v( R
Domain-0 0 1024 1 r—– 88.0
. g3 z8 U. e/ ^' q" s& m7 z6 e3 b* L, A( C2 a) h1 C8 j
恢复:
( t6 Z3 |+ y! ]9 @# xl restore /etc/xen/box /tmp/box-001.img2 J+ j. R! {( _: Q. M0 G" I
Loading new save file /tmp/box-001.img (new xl fmt info 0x1/0x0/888)
' ]$ J5 @+ T% A) a9 K0 V! d4 k9 kSavefile contains xl domain config in JSON format1 i+ F. L8 e" r
Parsing config from /etc/xen/box' t$ D( _6 \4 `
xc: Reloading memory pages: 65536/65536 100%
) k' i m9 e" R4 E# N9 L" A& Q7 t2 ?5 l ~3 c9 \! W; e
验证:
, x# b! n+ u/ p# xl list
5 L1 A3 s2 ?1 t! j4 SName ID Mem VCPUs State Time(s)
# p: k8 @ z. L1 i6 ?Domain-0 0 1024 1 r—– 90.75 {7 b& m' |- ]" A. W R. k* h( T: b
busybox-001 9 256 2 -b—- 0.01 P! M# A- V; U- Y! b0 {" s
(5)关于cpu:
3 k+ X9 u0 M( e# xl vcpu-list
" H2 J& G6 X8 ?6 C4 j5 wName ID VCPU CPU State Time(s) Affinity (Hard / Soft) ^! D! {; q/ | t
Domain-0 0 0 0 r– 92.8 0 / all
4 y6 h" ]( ]8 f0 ]' Ubox-001 9 0 3 -b- 0.3 all / all
, |) `$ Z$ v; Y$ @# Jbox-001 9 1 1 -b- 0.2 all / all% [+ \6 Z4 S$ H/ O3 T! [) u
8 g1 A' c3 v8 G/ W4 b让vcpu 0只能运行于物理cpu3上0 F% }9 a4 A! W% j: }) \. P: ~, d1 ?
# xl vcpu-pin box-001 0 3+ A, u# n5 c" u5 ?7 c$ e. E
" u- K! M3 ^- U5 s/ I6 ^5 B# xl vcpu-list
* [, C: g$ D* XName ID VCPU CPU State Time(s) Affinity (Hard / Soft)7 K# s% J: a2 m3 @
Domain-0 0 0 0 r– 94.4 0 / all
$ w0 l; n" ^1 u* Bbox-001 9 0 3 -b- 0.4 3 / all
% p" v0 b) o. J5 c! ybox-001 9 1 1 -b- 0.4 all / all
+ ]' ~! a, |6 \8 C
4 x0 w: R& z5 j4 _" |" l, P" ^只让busybox-001只运行一颗cpu% D6 h: r% k: b2 i8 L
# xl vcpu-set box-001 1
: n3 }5 r1 I/ F3 c# xl vcpu-list
8 C, I/ Q4 Z$ r2 i z& m( t- ^$ k4 fName ID VCPU CPU State Time(s) Affinity (Hard / Soft)
5 }: I2 a5 c" B: V5 h( b) |" B: {Domain-0 0 0 0 r– 95.2 0 / all
3 {) l9 _7 |& s* w2 b- _box-001 9 0 3 -b- 0.6 3 / all. _% h3 z3 H1 e$ @$ [9 T8 \
box-001 9 1 – –p 0.5 all / all& _/ S% b: |; X: D8 Z9 S
(6)xl获取信息
7 B9 d1 Z8 X8 U& o. F' P# xl info, n8 z3 | K4 P- M$ p; P0 e
当前hypervisor信息- b# e* P7 E+ U
4 n; V! t, d& C/ s( F8 K# xl domid box-001
- j& N( Q& J+ K6 ?; O9- u) K/ H3 [% o1 [; O
+ i; i+ W8 S0 b7 m% Z7 e
# xl domname 9; n0 V4 J g, T( H4 N3 h
box-001/ x8 z1 G, l/ h/ y
0 [, p( p7 \, I6 N" X
# xl dmesg box-0012 i+ F2 |! X2 z1 W! K" M9 C, \
启动时信息
" O7 L3 \* S3 h( R
, u9 f7 V0 o" q/ f8 H# xl top box-0012 t! P0 h8 M3 H$ n
查看domain资源排序命令
- I; J8 N/ N" [& h$ X2 H' L5 p
" @+ \! C$ ~$ {6 T9 _! v1 H(7)关于网卡6 y# g- h( c Q: A3 O
# network-attach8 d9 [) q* `: i! N+ `
添加块儿网卡6 o8 ^1 D4 Q1 h/ r8 ^3 z
& F) m; t) S8 f f; y# xl network-list box-001
3 O/ i1 I3 @. [! | kIdx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
! X2 T# x3 Y) @3 L4 \- i0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/04 {( s7 g( E+ b( R# L8 a+ \
' Q3 M" _! i: { A7 k
添加网卡:
4 a/ r1 I& N! n; l# xl network-attach box-001 bridge=xenbr01 H% h: X0 Z4 {& H: I) p
1 t2 e+ ?; ]) A" J5 q* I8 Q# n
验证:& n* B* P% k1 t) q
# xl network-list box-0013 d; j# T7 Q% v1 S0 p
Idx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
: b5 T3 x! K6 u" O" s5 o0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/00 G# d' W$ B. u; F# Q5 L5 g' D
1 0 00:16:3e:1f:06:07 1 4 8 1280/1281 /local/domain/0/backend/vif/9/1
3 w8 r. ?1 d! A9 B$ X1 {
; w9 B L2 A1 e! ?$ E \3 D验证:
! c y, K8 W' q# ifconfig -a' x& {& d3 l6 E+ Y) @" P
vif9.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF- v9 _3 B6 ~* T1 j% N
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link5 B* U1 q6 H+ u5 P- G, C9 H' j/ L
UP BROADCAST MULTICAST MTU:1500 Metric:10 F$ M, `+ I) ^% k+ q% l+ a3 e% X
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
' S" W; b! \( b+ wTX packets:128 errors:0 dropped:0 overruns:0 carrier:0
* D# N0 A. [2 `! m3 e. ~% l8 f4 {5 ~collisions:0 txqueuelen:321 u; _+ P1 T; S" v3 R" E. o8 F
RX bytes:0 (0.0 b) TX bytes:85791 (83.7 KiB)* x; k; _$ c2 O3 [
M0 l" U: z; X( \% t( P
vif9.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF/ X" u! b' l8 o* J' J
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link% l2 { t" l' V: b# h8 G
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1& B! @6 b6 L" `: U! h$ H' f$ o
RX packets:0 errors:0 dropped:0 overruns:0 frame:0, r9 j5 E. f2 T1 P4 X3 j) z! X/ p3 b
TX packets:14 errors:0 dropped:0 overruns:0 carrier:00 ]7 P5 g1 a' L9 Y+ ~" I5 v% d. k
collisions:0 txqueuelen:32
/ p1 s8 }* t6 e" r) y% HRX bytes:0 (0.0 b) TX bytes:6287 (6.1 KiB)
1 p6 ^& ~4 B* U) p1 f
$ h7 ]8 w. S7 Q! o2 Fxenbr0 Link encap:Ethernet HWaddr 00:0C:29:13:E0:CF0 O* x, ]5 Z3 e3 E. \& A: c
inet addr:10.0.0.208 Bcast:10.0.0.255 Mask:255.255.255.0
4 |7 p' B% L; ginet6 addr: fe80::20c:29ff:fe13:e0cf/64 Scope:Link
! y& y7 Z8 {! @UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
3 f+ E1 V- T) w& F/ H# WRX packets:12309 errors:0 dropped:0 overruns:0 frame:0
- f7 I+ O& i( U7 T0 R7 e) aTX packets:5822 errors:0 dropped:0 overruns:0 carrier:0
/ N/ V3 L: @2 q5 V# \6 Kcollisions:0 txqueuelen:1000
1 r, F( X; Q1 A/ @# ORX bytes:2376281 (2.2 MiB) TX bytes:1105969 (1.0 MiB)
- @, @0 `2 v* h& P* O2 z( a6 s4 H o' B( C1 j& s
查看虚拟机网卡:
' a, V& r/ g. Y* Q5 I# xl network-list box-001
1 a* U: w2 C* z5 M/ H* C9 uIdx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path
; e/ u, [$ H; c2 o9 L4 {0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/04 o: k* U3 J6 O
1 0 00:16:3e:1f:06:07 1 4 8 1280/1281 /local/domain/0/backend/vif/9/1
- y3 N/ Z+ l" t) e/ \
# ^% P, G1 Q3 y: l6 F& D拆除一块儿网卡6 r7 W- {$ d% r; b% K5 j
# xl network-detach box-001 18 Y, K( b4 M' {. g) H5 ]
* u* _8 o0 g, ^$ h验证:
& z8 h1 R* ~! Q4 e& T" K# xl network-list box-001
" r$ g9 d0 }* b4 g6 T1 s# a! FIdx BE Mac Addr. handle state evt-ch tx-/rx-ring-ref BE-path# P( Q' A4 i0 ~$ ~1 ~) [
0 0 00:16:3e:75:d5:57 0 4 14 769/768 /local/domain/0/backend/vif/9/0
" X5 Q- o2 ^, T' j' c# e& A$ G(8)磁盘管理:
) C: H7 \ V+ d' C9 D9 [######创建一个磁盘映像文件 E" A& R- G4 L! s
# qemu-img create -f qcow2 -o ? /srv/xen/box1.img
/ ~# n6 V8 q, W" o0 e' } c- ySupported options:
9 D; o$ W! z6 P" l6 I& P$ O4 Z* osize Virtual disk size
& }' r1 {5 a' O8 u3 Z2 U: |backing_file File name of a base image- g% @3 d U& G6 J4 A( l$ b s
backing_fmt Image format of the base image0 j- P$ J) }& [6 j# E2 e3 H& _
encryption Encrypt the image
I' p! J( v. y! q) X5 f8 ccluster_size qcow2 cluster size
" i, ^) O) e% L9 ?2 B* a0 T% D) Apreallocation Preallocation mode (allowed values: off, metadata, falloc, full)
/ {, [* i4 H% f- v# dsize 虚拟磁盘空间大小
. B7 e& R3 N+ x. i( G$ gbacking_file 指明后端文件名称- d7 C) D7 d" Q5 G& ?1 L8 \1 c
backing_fmt 指明后端文件格式/ n& m# x- _ s* ?, b% `7 q
encryption 加密虚拟磁盘映像文件7 D/ B: n: K& o- ]3 ?. d" T5 F1 w
cluster_size 簇大小
% `+ G/ ^7 u1 x- v- [5 bpreallocation off,metadata(只创建元数据),full全部分配空间
8 T" M3 Y3 C, n" R, X) M8 M2 s8 M
% }6 z4 x% T' Z; j7 M* D" q/ I###热插拔进入虚拟机
: K; H3 {1 f% V: w
2 m, i4 x* d$ D0 i- g6 @/ # fdisk -l$ ` T* [) S. F7 f0 k
7 W# R4 [6 j- U* d3 ^# S
Disk /dev/xvda: 2147 MB, 2147483648 bytes9 F6 T! R0 h8 K
255 heads, 63 sectors/track, 261 cylinders
( Y' D5 @9 f1 c. x2 S( ?0 r$ ]Units = cylinders of 16065 * 512 = 8225280 bytes
/ e5 ?. l1 C: H) [ S
& N( d7 l; K6 z j, \9 }4 XDisk /dev/xvda doesn’t contain a valid partition table
) j z9 N& o: _$ q k! R& q& Z4 Q
$ K1 w+ d/ @' J. F/ s3 d# qemu-img create -f qcow2 -o size=2G,preallocation=metadata /srv/xen/box1.img6 a, b* }# Z; ]# a, F- |1 E& W
# du -sh /srv/xen/box1.img
% b6 w' O3 D# j; }, Z1 u524K /srv/xen/box1.img3 d$ V8 i' w# _! z
6 |: d9 j5 H& [% b9 `
#####插入虚拟机
, {5 M& L9 r& A: A, X# xl block-attach box-001 ‘/srv/xen/box1.img,qcow2,xvdb,w’
1 \' l4 {2 K5 F: l( Z5 Y/ C; c6 R% X: b( P/ R0 d) C
验证:4 ], p" H9 ]1 E8 n; G; ~4 \
/ # fdisk -l6 w* w4 I; w y& @* Z: ]+ [1 V
8 a# }, M4 w5 w! @2 z9 l! f! t+ N8 qDisk /dev/xvda: 2147 MB, 2147483648 bytes
: a* Z: a5 N \8 F255 heads, 63 sectors/track, 261 cylinders
' j# i: U8 Q G# H, ]Units = cylinders of 16065 * 512 = 8225280 bytes1 Q l9 z6 O# C# u
q1 c0 Z6 d* t$ q
Disk /dev/xvda doesn’t contain a valid partition table
3 Y3 L/ Q `0 p6 R3 j% v" A8 L& G7 A: J+ y C& Y/ @
Disk /dev/xvdb: 2147 MB, 2147483648 bytes
w, l* M) e) K8 S255 heads, 63 sectors/track, 261 cylinders" x% ~9 i& M9 Y/ ?$ p( t! x
Units = cylinders of 16065 * 512 = 8225280 bytes
; }4 f/ x6 B) }8 ^9 B! M; ~4 ^" ~: ~' m( O- ~5 K7 T
Disk /dev/xvdb doesn’t contain a valid partition table
' W7 d$ @$ ]8 E/ H6 }& p% S验证:
3 S8 ]' s ~) S* v2 R# xl block-list box-001! N& p/ m2 Q; [3 l" r& ?9 s* O" l
Vdev BE handle state evt-ch ring-ref BE-path2 v( z3 r5 C4 F6 p6 `
51712 0 1 4 13 8 /local/domain/0/backend/qdisk/1/51712
0 U! b4 G' Y9 F! p51728 0 1 4 14 57 /local/domain/0/backend/qdisk/1/517282 |+ [+ Q# z/ g% T% A
- I I" Q' X3 `# Z9 w& k
#####卸载磁盘
" r S4 y6 _/ u, e# i# xl block-detach box-001 51728
' {! F P7 u N4 ?验证:2 e$ l- Z1 ~: V
# xl block-list box-001
$ M3 V5 A) v/ R1 N2 gVdev BE handle state evt-ch ring-ref BE-path1 w+ ~; j; S+ H9 _( o( C( L
51712 0 1 -1 -1 -1 /local/domain/0/backend/qdisk/1/51712. u+ \: O' t/ N4 v& Z( _
! V# C, P! E3 t7 ?0 k4 n' O4 Y3 f
###查看虚拟机up时间
' R$ @, h8 H5 e% C' A# xl uptime box-001" H2 ^& E! i. |/ R5 C+ q) u. F
Name ID Uptime
: u+ x% ?. y2 r# [' \! A: Pbusybox-001 1 0:13:054 E9 t* i U9 t6 _; |% \' E
(9)创建虚拟机
7 ~3 }7 W6 B( D干跑:- B& }5 ~3 H8 @. K
# xl -v create /etc/xen/box -n6 e0 @% s+ V7 d& N; ?4 _; `* h
- S$ d- B% p# }" x/ L& s! h) q直接连入控制台( n/ _* s; B% C+ p
# xl -v create /etc/xen/box -c7 o8 Y2 z" I! q( ]" k7 I" k( z
+ S0 A$ c$ T* _3 y& e: V
进入控制台% U4 b: F% E, j3 M v W3 Q- y
# xl console box-001- E9 Y, x/ [# H& H; e
# Y [- X/ h0 z退出控制台:
( x- l6 J' Q& {' M+ Wctrl + ]6 y, `: J- O2 G* O; }" x! }5 @
& g% d* l- R! p: [ Y+ m
. t4 [. U9 @2 S4 g* |9 a& D |
|