|
|
一、Xen简介
; w1 Q- m/ v* b
- @3 Y6 E0 u# _8 p/ r9 k5 }& A1、Xen简介
) c; ^- ]1 Y7 L8 M' \
9 g W+ M1 i3 V Xen 英国剑桥大学研发,开源的VMM,是一种类型 1 虚拟机管理程序,它创建系统资源的逻辑池,使许多虚拟机可共享相同的物理资源。* y8 I/ ^1 X3 N I: X! b+ f
9 n; u. r# M/ J' U8 S Xen 是一个直接在系统硬件上运行的虚拟机管理程序。Xen 在系统硬件与虚拟机之间插入一个虚拟化层,将系统硬件转换为一个逻辑计算资源池,Xen 可将其中的资源动态地分配给任何操作系统或应用程序。在虚拟机中运行的操作系统能够与虚拟资源交互,就好象它们是物理资源一样。# L9 G, U' v, `+ }# K
, Z4 \. S0 c7 d I8 z6 C2 G6 o5 M
' {. O( u0 H# V
, g9 j) {0 W' S7 ~7 g1 T
Xen 架构
8 x6 g' m3 l5 |% d. D& v/ m, B' {
, f8 g- a) Y, z$ N* B# z Xen 运行 3 个虚拟机。每个虚拟机与其他虚拟机都独自运行一个来宾操作系统和应用程序,同时共享相同的物理资源。) f" w, i2 c4 i5 u# ?) a. u k
0 V( _' z. N) t* P3 `$ X2、Xen的组件
& d( m0 T2 n$ F. n: N }
5 c; f ]$ T0 @4 m. F9 g( Z- j 1)Xen Hypervisor' ~% M4 i/ n7 E" p: ^( x0 g
7 h. b$ z S! q, j# c 分配cpu、内存、interrupt(中断)( L! S0 p. t6 z* n8 `0 _3 ~) C
+ m% h3 {5 M" _2 ^ 2)Dom0
* l3 A5 e, [0 X7 J8 v. V5 s g; \
; ^ B0 f# s; w q" |' Y: e 特权域,I/O分配:$ @# L2 k% K" q+ p
/ W: I: ` p. I1 a, S2 d1 g
网络设备:net-front(guestOS),net-backend
+ r( c* ^8 q6 O+ V9 _7 t+ d1 }
; R: U( X* K5 {& T3 V- D( G 块设备:block-front(guestOS),block-backend
5 n4 U/ O4 H( {( i4 Y1 r, [4 l
linux kernel:2.6.37支持Dom0 原始支持
( g* ?% v) B0 i) ]
7 s- }: E$ G1 V- }( g3 A1 p5 B 3.0对关键特性进行了优化
# K k: a# o. B& A6 K7 E2 a% D( A9 ]8 f4 D, J4 \
提供管理DomU工具栈,用于实现对虚拟机进行添加,启动,快照,停止,删除等操作
( k4 R* z3 M8 z6 v1 |
% ^) K+ N6 n! H6 x0 H( Y) \ 3)Domu
( A! J n, p2 @- t) v4 S5 q% s, i1 _2 q
非特权域,无权直接访问硬件资源
5 t, f, k% @. e3 r# h- U: p
9 ~7 a4 ^, ]0 Z- Y3 Z 根据其虚拟化方式实现的方式,有多种类型0 G, U# R% p& ~+ K' _) m+ P
: L0 \/ X/ h8 F$ u
PV:半虚拟化
4 v) G: D- o/ K% Z+ O8 c. W
) }" {2 i0 ]- V } HVM:完全虚拟化# k' ]' b8 k4 w3 H# k5 k2 v# i
2 R' I- @) `0 J' o( e* p- ?0 j PV on HVM:I/O半虚拟化但cpu完全虚拟化
; j d3 z; x* {' E% k5 p
# O* \5 }4 T( f: z" z& t, U9 |. x7 `Xen的PV技术:不依赖于CPU的HVM特性,但要求GuestOS的内核作出修改以知晓自己运行于PV环境,
2 N- W0 k( L- [5 K# [ J5 {; K; l; U: V: g2 I5 d0 n* u
运行于DomU中的OS:linux(2.6.24+),NetBSD,FreeBSD,OpenSolaris
) o+ x. ]$ f. _! h* k5 W% A
3 w6 I6 R9 O, I7 W( Z) hXen的HVM技术:依赖于Intel VT或AMD AMD-V,还要依赖于Qemu来模拟IO设备
& z' H& f' h1 h6 `
S7 s7 u4 w" ~7 N 运行于DomU中的OS:几乎所有支持此X86平台的OS
; m; @$ c m# g! ^, c9 z9 J# _# v' M- | s- G* |4 C
PV on HVM:CPU为HVM模式运行,IO设备为PV模式运行
) S+ a3 A3 c( S5 W2 j3 W5 B/ E
0 ^1 l3 d' G; ~8 o; N4 ^6 R8 O; ` 运行于DomU中的OS:只要OS能驱动PV接口类型的IO设备:net-front,block-front
9 |. Z# c8 y( B" ]* s9 Y. U3 E9 ?6 R/ G' p5 n! S t9 o) F
# `1 B2 p+ t# P. G v$ C+ p
7 ` R; I$ ~( i; z
- t* T3 o' D# d1 ?/ s* c$ E4 c0 h; {( n
9 u6 `1 E2 t/ z: Y/ c
* a( `5 i" ^5 }. c% X7 S
" E {6 R+ I9 R d4 ]$ d! h$ x, V
3 q: O$ x+ @4 v+ c6 R/ ?# n' x0 T' j
3、CentOS对Xen的支持1 n, u+ U! D. C# g4 Y
0 Z6 l. T; p: s) u$ t4 _9 ]
RHEL 5.7-:默认的虚拟化技术为xen. v% e1 y: [5 c# {. d
, T2 E" N0 r) ^' Z& p) T8 \( E
kernel version:2.6.18 不能运行在Dom0上,要运行Dom0上需要安装补丁,RHEL提供了安装补丁后的内核 kernel-xen: _# l$ t5 n2 J4 U6 Y- f
- c4 h' q1 s" o8 Q" p+ z' y* O 5.8:同时支持Xen和kvm8 m2 s0 _: A: [( q
7 @; H! ^/ {& U1 V
6+:仅支持kvm
8 N) s7 e3 E6 {6 T2 l+ @# t) R/ k9 `' ?" v% I9 n
Dom0:不支持+ ^/ `5 e7 z+ R) y, p @7 a/ w1 N4 Y
- N9 t/ d$ L$ E& _& K3 h' E! ~
DomU:支持
5 H. W6 m9 v8 g9 a
5 @: Q0 y- T! n0 F/ {那如何在CentOS6上使用Xen?
5 W! J6 p1 n% e8 i; v8 X) m5 f2 r& c# K0 ?( L( B# ]7 [1 n9 [
1)编译3.0以上版本的内核,启动对Dom0的支持8 [( ~1 S1 n) g$ w' J: ]: o: y5 m
) X- y. y4 z* R- J2)编译Xen程序3 F6 J$ H2 a* f$ |2 K: m
2 {* R* f/ {, U制作好相关程序包的项目:
. g: p9 K4 Y4 l& ?9 M5 Z& [; X6 ~3 C4 `/ H$ q: A
xen made easy
0 e, n7 X$ M3 |# b3 B3 N7 L& p2 O# m0 n# {% `$ T
xen4centos:xen官方提供,每个centos镜像站中已经提供了,7 @! f( r2 i8 ]) I1 }, ^) |, q: ?
2 P A) D* {7 t2 `
, ]& s$ F5 T5 A! y' e! V: N, C% b7 v, N. _8 j
我们可以自定义一个yum源
1 ?9 I( r$ G* x, m! V3 s+ L' I; g; o$ Q& v4 O# x: Q& N
[root@BAIYU_175 ~]# cd /etc/yum.repos.d/6 j# m. F, l/ b) o
[root@BAIYU_175 yum.repos.d]# ls
5 P6 y; L ] |) ]' x; _bak Centos-6.repo epel-6.repo Xen-6.repo Xen-6.repo.orig
- x) G' @* ?: S; ~, N' h$ C[root@BAIYU_175 yum.repos.d]# vi Xen-6.repo; x$ x9 w2 H% X) d
[root@BAIYU_175 yum.repos.d]# cat Xen-6.repo$ P# u6 ^5 b6 m9 J- |) V8 {
# CentOS-Base.repo
8 n- d( h& l X, C5 D) A#. q! X0 G' B, [8 w
# The mirror system uses the connecting IP address of the client and the
3 R' v. k) d1 v# update status of each mirror to pick mirrors that are updated to and% @$ b7 f% N) B
# geographically close to the client. You should use this for CentOS updates9 A8 `# F3 k- |$ L! L5 \
# unless you are manually picking other mirrors.
+ ^: v1 T6 H; t- t9 b' m#
) |) X+ e1 N7 U0 j8 v. [, ~. Q& L9 u, ` x# If the mirrorlist= does not work for you, as a fall back you can try the
' l# a$ C$ x# ^$ b' D$ N! c# remarked out baseurl= line instead.
% X( M B- R, }, O" s#
8 a- t; P/ u8 A6 Z#
0 }6 u. V/ O& I/ U3 J" z, ^9 L* l8 M; C0 t+ c7 L& Z! d' |, A
[Xenbase]
+ Y# w* e& I0 D W6 r, b- qname=CentOS-$releasever - Base - mirrors.aliyun.com
# I. h2 b9 c0 Gfailovermethod=priority
9 v' w5 u9 k$ g3 @8 `) hbaseurl=http://mirrors.aliyun.com/centos/6/virt/x86_64/xen-46
* O- G! o. T7 M. J( A#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
8 E) W( S7 {( e3 a- S# M" m#gpgcheck=1/ G) O* l# P1 f/ Z8 t8 t
#gpgkey=
3 w) Y2 o: @# i" n+ e4 H( R6 K1., Z2 W6 g( g* P: e2 [: s$ b
* |1 N" `, B% `* A" r7 {) s
# s1 ]/ A( p9 H9 F& r
依赖关系解决
4 s$ j6 E: Z- P9 u, W
1 y1 _/ b! n. }8 _# T( J2 A9 p7 x: [================================================================================================================
& A! F$ u/ ?! P" x 软件包 架构 版本 仓库 大小- E& {" ?, v2 J) f/ E2 {; E
================================================================================================================3 f) K! k% }# Q9 f I
正在安装:3 Z3 I J: G! F, O3 v+ c! q
xen x86_64 4.6.1-11.el6 Xenbase 111 k
. ?5 x0 u3 ^: |为依赖而安装:" A) h6 v' _6 \- S: P% H+ x
SDL x86_64 1.2.14-7.el6_7.1 base 193 k' v- |9 j, i4 P6 D/ C1 {5 B
glusterfs x86_64 3.7.5-19.el6 base 392 k5 R7 O3 e" e2 ]. \4 P5 {8 G
glusterfs-api x86_64 3.7.5-19.el6 base 56 k; O. q* A4 K/ R
glusterfs-client-xlators x86_64 3.7.5-19.el6 base 942 k
. e( n# R' x* Q% @9 ? glusterfs-libs x86_64 3.7.5-19.el6 base 303 k
7 E" L( `% q. Q q% I: `) [5 F( u kernel x86_64 3.18.34-20.el6 Xenbase 37 M
n6 h9 H& C3 S E! L) ]- o8 ]4 Q libxslt x86_64 1.1.26-2.el6_3.1 base 452 k( n9 P( f0 U' i; x% B* b% ~# l: O
mesa-dri-drivers x86_64 11.0.7-4.el6 base 4.1 M
1 ^( S5 w- f) N) I! Y# j mesa-dri-filesystem x86_64 11.0.7-4.el6 base 17 k
+ v0 Y/ t& r$ D# E0 M mesa-dri1-drivers x86_64 7.11-8.el6 base 3.8 M0 h" V2 C# {6 z6 H' v
mesa-libGL x86_64 11.0.7-4.el6 base 142 k
7 `% ]/ B) e4 o6 G5 `/ ` mesa-private-llvm x86_64 3.6.2-1.el6 base 6.5 M; d4 E8 J7 a: C7 h" _$ I6 c( V
python-lxml x86_64 2.2.3-1.1.el6 base 2.0 M
: _6 ]. k9 D1 Z4 ^6 B( l qemu-img x86_64 2:0.12.1.2-2.491.el6 base 836 k% I7 A+ j. v2 i: f' W. _
usbredir x86_64 0.5.1-3.el6 base 41 k
5 b2 f7 R6 j' Z3 O xen-hypervisor x86_64 4.6.1-11.el6 Xenbase 927 k. R) W7 O! }0 I9 J+ i0 Q
xen-libs x86_64 4.6.1-11.el6 Xenbase 532 k Y8 v" M& O L* g u! r
xen-licenses x86_64 4.6.1-11.el6 Xenbase 85 k
1 S( W' k* m) O; }+ o+ ^ xen-runtime x86_64 4.6.1-11.el6 Xenbase 16 M
1 s S' x" g2 C( Q/ } yajl x86_64 1.0.7-3.el6 base 27 k
' R- c# Q# O" L4 W- W! g+ ^* n为依赖而更新:
, T$ k% t" f8 U) R, t8 F kernel-firmware noarch 3.18.34-20.el6 Xenbase 6.4 M" f$ \0 l( h- y6 Y, v% e, t
libdrm x86_64 2.4.65-2.el6 base 136 k
6 b" t. r1 Z9 @( Z* Y% `* W0 x) G
* V, G0 q5 j" J& O; E$ s! L3 n% n+ N3 B h2 t事务概要
/ d) R+ e9 F& Q. a( ~- Y+ u================================================================================================================# o( x( g. p: a) J+ x; l: T
Install 21 Package(s)- M) s" }$ f0 N
Upgrade 2 Package(s)
% A! ], e7 J" g
+ ]; N9 C$ j% L1 G0 n. T( v& `# [& i1 O v) I: X7 Z
然后修改/etc/grub.conf配置文件
4 O: f1 B! T- B& H: s: x% `1 O5 K' K4 t
[root@BAIYU_175 ~]# cat /etc/grub.conf
' z" {1 k3 j( X b: a7 _/ ^0 ^5 ?+ S# grub.conf generated by anaconda
2 M, j1 t3 u% ?( I) {6 P#
" i; r, s. x9 z( D- P3 R: }* r M# Note that you do not have to rerun grub after making changes to this file+ f; p7 I. E6 v; G
# NOTICE: You have a /boot partition. This means that
: Q! d- w$ U9 z. K) b G) R# all kernel and initrd paths are relative to /boot/, eg." {" i/ g: F6 {+ G: L
# root (hd0,0); k$ h% i) w" o' b
# kernel /vmlinuz-version ro root=/dev/sda2# U$ F4 H7 {# p0 ~& a3 @( F
# initrd /initrd-[generic-]version.img! Z, o$ L# i" j# p5 [! Y
#boot=/dev/sda
1 J9 I- X2 w0 C* U( vdefault=0+ J5 V1 p8 X2 z& V2 Z( q) z
timeout=5
0 e1 N- d. l3 ^splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
5 R4 m7 F0 Y, \' L% ahiddenmenu- G4 d1 W, ~/ A
title (3.18.34-20.el6.x86_64)8 I0 |7 k/ W2 q' L6 H( [3 |
root (hd0,0)
" ]5 ^! Y0 P8 E/ e0 v& F. Z kernel /xen.gz dom0_mem=1024M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin
: S+ F* f/ ~, W" m/ E module /vmlinuz-3.18.34-20.el6.x86_64 ro root=UUID=d393efa7-a8b5-4758-bbf5-2eaead07f8c3 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=zh_CN.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_LVM crashkernel=auto rhgb quiet rd_NO_DM rhgb quiet1 ^4 p- c% Y" w6 B/ T
module /initramfs-3.18.34-20.el6.x86_64.img, m* ]; g% y% e+ y0 i7 l% ?8 X8 M
title CentOS 6 (2.6.32-573.el6.x86_64)
7 h4 E# L5 r* x& U+ F root (hd0,0)
7 O. \7 D5 A% F) p, ]! D L kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=d393efa7-a8b5-4758-bbf5-2eaead07f8c3 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_NO_LVM crashkernel=auto rhgb quiet rd_NO_DM rhgb quiet2 N0 `' a1 W1 C* Z6 f
initrd /initramfs-2.6.32-573.el6.x86_64.img/ ?& @4 y5 Q+ K; F6 y! C6 g
[root@BAIYU_175 ~]#
4 S; J) K) I- H8 c9 p) W5 y, P
/ g/ Q2 G5 Z2 w4 [+ a; @
# G1 Q `& I' t( r然后重启, e& }' Q8 R8 m
D- ]) f1 s7 z0 A& s& e
[root@BAIYU_175 ~]# uname -r7 O/ N& Y. w- p8 h6 X M9 O, c" c
3.18.34-20.el6.x86_64
4 t0 V- y% A# u+ a. N[root@BAIYU_175 ~]# xl list #查看运行的虚拟机,注意此时我们操作的是Dom0,虚拟化平台已经安装完毕,可以创建虚拟机了,
. ~9 B- B. t( P/ p' NName ID Mem VCPUs State Time(s)
$ @( y, G4 [. JDomain-0 0 1024 2 r----- 36.7 R/ A/ D: R# E* [0 k4 W
1.8 V: g# a6 A2 A) e& K; I* n: |; s
2.$ P, o9 V! R: Y& y8 }+ M
3.4 r, k+ k/ M8 H7 `: j7 {
4.1 u+ `# c/ }- K+ C6 U
5.
, T/ R9 I M* z" p6 z) K* t4、Xen的管理工具栈
& ^6 p: K7 O) @. q: e& n
1 P* k% @" I/ r+ S/ p& N9 O# O/ exm/xend:在Xen Hypervisor的Dom0中要启动xend服务,重量级
& H& l* n8 i' G+ c- ~4 E* j# e1 i# C& ?/ b
xm:命令行管理工具,有诸多子命令:
+ N; Q: p% m; u1 w* T* w9 T% s
: V% `2 H5 L5 g8 L7 m4 b' q create,destroy,stop,pause...- k. a; g4 q" v/ |0 d5 y) W
- y" k( ]8 x' ]+ ~7 m" P0 Z3 ~xl:libxenlight提供的Xen的轻量化工具,Xen 4.2 xm和xl同时提供,4.3 xm提示被废弃,) \7 A6 R, c( }
5 |0 Y2 i2 l4 _- ~; Ixe/xapi:提供了对Xen管理的api,因此多用于cloud环境: Xen Server, XCP' I# J1 M# o" t8 p8 t2 M; v7 i
7 w- ?$ M! w( C% |# }* g Lvirsh/libvrit: python语言研发
2 c1 x5 S# m6 y! u7 Y$ K9 W7 d# t3 v O3 @# Z" _+ y/ D0 L9 _
在每一个hyper上安装libvrit库,并启动libvritd服务,就可以用virsh管理它们
4 D2 q- R6 x s3 w1 ]! `5 Q. D; }
7 g8 N. R8 q$ P! |) R* \' t+ p/ k; x9 M. N( K0 ] j# L6 N& s
5、XenSrore. A! v8 @ s3 {1 N& c
, ^) @( u& h2 ^+ H 为各Domain提供的共享信息存储空间:有着层级结构的名称空间:位于Dom0$ M) A, y8 P7 y9 ]6 `! f
1 w1 G( [+ F0 H/ S. g5 ]4 U
3 Z+ U3 P. \6 z/ O+ w
! S2 ]; x, P9 R* J/ u二、Xen的使用' L8 X' K# R* r% _0 d8 z {
. t3 k9 k- ?/ H1、xl命令详解9 O' U, Z! j+ _2 O( [" c. u
; F2 O6 f& h3 e7 C! M% O[root@BAIYU_175 ~]# xl
1 U! R) h9 e+ {; D, e8 AUsage xl [-vfN] <subcommand> [args]
; _7 r, S9 d4 D4 ~- W
. ?$ O1 w( h- Q: L# xxl full list of subcommands: #子命令完整列表. o( S5 h$ H6 t' Z4 G$ g& M
8 j7 J$ Y6 d1 g% h0 @% z
create Create a domain from config file <filename> S1 W: j( Q! S: t
config-update Update a running domain's saved configuration, used when rebuilding the domain after reboot.. [$ r- u5 a6 V6 U! M. S
WARNING: xl now has better capability to manage domain configuration, avoid using this command when possible
/ Z0 k) E' M- i list List information about all/some domains #列出所有或某个Dom的信息
E& S$ S' ~: I! P; { destroy Terminate a domain immediately #之间关掉虚拟机的电源
& |9 P8 i5 T- p/ X) i shutdown Issue a shutdown signal to a domain #正常关机0 {/ v) v- X8 e2 t z2 q3 A
reboot Issue a reboot signal to a domain #正常重启$ J% Z1 S4 U. [4 u! i$ e4 ?3 {
pci-attach Insert a new pass-through pci device #增加一个pci设备,热插拔1 f0 s! r0 H- F& e
pci-detach Remove a domain's pass-through pci device #拆除一个pci设备,热插拔, C& x! n$ K8 Q0 X: t$ f: C% ?$ B
pci-list List pass-through pci devices for a domain #查看虚拟机pci设备,除了网卡,查看网卡有专门的命令3 k8 a( p! ~$ Z9 i/ W
pci-assignable-add Make a device assignable for pci-passthru
8 B; S/ q8 _* W3 Q0 h pci-assignable-remove
" j; r1 N" T8 K% a$ e Remove a device from being assignable9 M* ~- g% S U$ Q3 z. A3 O
pci-assignable-list List all the assignable pci devices k- B! E. N2 _0 Z
pause Pause execution of a domain #暂停虚拟机,保存在内存中$ J+ {& w4 s& F- f$ l R% Y% `
unpause Unpause a paused domain #解除暂停 \, c) ]' }, W) T* R
console Attach to domain's console #连接虚拟机的控制台
& o# P; L5 X* I+ ? vncviewer Attach to domain's VNC server.: t: M- y$ D5 B; s4 y, {: J
save Save a domain state to restore later
W0 W7 ]4 Z$ u D. z& S5 K #将DomU的内存中的数据转至指定的磁盘文件中,相当于挂起% Y8 D) s1 F Y
migrate Migrate a domain to another host#将虚拟机迁移到另一台物理机上, x& @4 y8 R. g; f
restore Restore a domain from a saved state
2 v* t1 }% i0 d #从指定磁盘文件中恢复DomU的内存数据,- M$ m. M; i8 L* w
migrate-receive Restore a domain from a saved state
" ^7 g. v5 U" x: E3 h dump-core Core dump a domain #转存内核?
% e9 }0 H7 r) k cd-insert Insert a cdrom into a guest's cd drive #插入光盘
0 }, r6 v/ d7 I' V4 n+ ~ cd-eject Eject a cdrom from a guest's cd drive #弹出光盘) R, N9 x' h8 r/ u9 a {
mem-max Set the maximum amount reservation for a domain
! Z4 b6 a1 f) Q* f" b #内存最大上限$ F) z2 s7 J4 n: o- D) y& d
mem-set Set the current memory usage for a domain
& Z3 m2 k5 D% }& _# d7 h #内存大小/ z- o/ \8 |3 k2 E+ D
button-press Indicate an ACPI button press to the domain
/ k C0 {/ x8 l# O5 \( i9 G vcpu-list List the VCPUs for all/some domains #显示虚拟cpu
: M& e# f2 p2 X$ a) y. _ vcpu-pin Set which CPUs a VCPU can use9 j: P) O$ s5 R* q9 M: [
vcpu-set Set the number of active VCPUs allowed for the domain
/ W7 ?$ n7 ~5 t% e vm-list List guest domains, excluding dom0, stubdoms, etc.1 g1 B& B. z m
info Get information about Xen host, g- I2 E: Y: ^% l) t9 m
sharing Get information about page sharing% f- u# J$ [( M* i% b2 [* Z$ J
sched-credit Get/set credit scheduler parameters
1 ?$ \* h7 V1 _5 b# I. ^, m4 Z; M sched-credit2 Get/set credit2 scheduler parameters
' F0 Z5 @7 x% y D' `6 ~ sched-rtds Get/set rtds scheduler parameters
9 ], F2 Q5 P8 l. S* \5 e9 Y/ y! W7 U domid Convert a domain name to domain id$ l5 g. i* ^7 {) C/ m) C4 \
domname Convert a domain id to domain name7 J. c* W, I( W
rename Rename a domain #重命名/ b6 Q& Z: P: }
trigger Send a trigger to a domain
# W1 q. v- }. B9 u0 u2 Y: q- S sysrq Send a sysrq to a domain! ^! v* T/ Y: H5 U
debug-keys Send debug keys to Xen: Y- `, E! D& |5 T
dmesg Read and/or clear dmesg buffer #虚拟机启动时的引导信息
, d4 O l. v5 y0 }2 g1 R top Monitor a host and the domains in real time
% r5 F' |( ^) L5 P& |% I; W) b network-attach Create a new virtual network device
2 u1 F& T' p! O# u9 `; x+ L3 `6 s [6 L- g network-list List virtual network interfaces for a domain( U; L% b; s& y S# `
network-detach Destroy a domain's virtual network device
3 @4 b' _/ X+ O2 i$ D# E3 `$ R channel-list List virtual channel devices for a domain7 Q4 v4 X! H0 x1 C+ z
block-attach Create a new virtual block device #增加一块硬盘. K" _3 Q" i3 X& [# O
block-list List virtual block devices for a domain#查看硬盘" Q4 u# ?2 R& |/ y/ }0 g0 y3 C
block-detach Destroy a domain's virtual block device #删除一块硬盘
5 A8 O, Q' P7 ?& Y8 U- E% Y1 h vtpm-attach Create a new virtual TPM device
. X+ G! r( t! ^0 y- B9 J9 R$ k vtpm-list List virtual TPM devices for a domain
/ \% ?5 i) r2 u, p# o" R) j vtpm-detach Destroy a domain's virtual TPM device1 e# r/ M7 t4 K3 o2 Q1 p" N5 Y8 b
uptime Print uptime for all/some domains8 Z# _) J7 b) E0 [! [8 Z" p
claims List outstanding claim information about all domains
7 N- i6 B z. s! v" v1 C9 @) v tmem-list List tmem pools
. F9 K: K, ], D tmem-freeze Freeze tmem pools
. A( s6 q3 c. l( i/ n6 [8 E. H tmem-thaw Thaw tmem pools
5 k4 h7 Y% R f S' ?; j" Z) v tmem-set Change tmem settings s" _. m" H% }' i& C, w& Z
tmem-shared-auth De/authenticate shared tmem pool6 A2 E. @) ?' e( T
tmem-freeable Get information about how much freeable memory (MB) is in-use by tmem. X- Y# E0 I0 |2 m
cpupool-create Create a new CPU pool3 N! [0 o& _- u4 }
cpupool-list List CPU pools on host N2 [8 b4 e1 |, ^
cpupool-destroy Deactivates a CPU pool4 u$ G8 O# \1 ?
cpupool-rename Renames a CPU pool
+ E/ t8 M& E% z b cpupool-cpu-add Adds a CPU to a CPU pool
4 J. E% m+ L4 Z2 F cpupool-cpu-remove Removes a CPU from a CPU pool; t! k4 i L" _. i$ O
cpupool-migrate Moves a domain into a CPU pool
y9 h7 J6 [2 `4 ~ cpupool-numa-split Splits up the machine into one CPU pool per NUMA node
# F/ }# S# [+ B8 K5 { getenforce Returns the current enforcing mode of the Flask Xen security module
8 w8 \; C( A: y% x0 {1 H' i& N setenforce Sets the current enforcing mode of the Flask Xen security module q2 W; U Q- m. a
loadpolicy Loads a new policy int the Flask Xen security module. G L: M0 b! @$ q" @& w0 r
remus Enable Remus HA for domain2 @( K: k. X# i8 h& y1 `% W
devd Daemon that listens for devices and launches backends9 \1 s! ]) a! S5 P6 U0 \
psr-hwinfo Show hardware information for Platform Shared Resource
8 R7 h1 r; n- u5 x psr-cmt-attach Attach Cache Monitoring Technology service to a domain' G, x8 ^" G9 s4 U& x; V
psr-cmt-detach Detach Cache Monitoring Technology service from a domain7 t( h& m! C1 r+ X6 C
psr-cmt-show Show Cache Monitoring Technology information
8 ^, }$ p Y) b5 a/ Q# ^ psr-cat-cbm-set Set cache capacity bitmasks(CBM) for a domain
; g* g8 I1 H) B. x* V0 Y psr-cat-show Show Cache Allocation Technology information
2 Q, W% e* A- `( J: l* A; M. b% Z
: p, m0 g4 H& B- A: [% l ^4 w. A/ F
1)xl list 显示Domain的相关信息
* h$ {; V f/ v4 @6 r' ^; S$ \( B/ B
[root@BAIYU_175 ~]# xl list: c5 s3 S9 ]; p& p! y! A" K* G! F
Name ID Mem VCPUs State Time(s) 运行时间& D& R0 s9 Z6 N7 y+ ~, E
Domain-0 0 1024 2 r----- 65.2
5 Y1 }' _0 j. n5 K- S3 ?1.
" F* b8 a, L5 j; ? d$ o2.
) G& G4 x, q9 h% r. K6 m3./ G, F! C( h9 Q
xen虚拟机状态:3 n: N3 l/ s4 Y) m3 X1 p
: R% S5 F% I1 j3 ir: running
1 |1 l. L9 j% l- G# [* X1 j# D, w1 ~% Y T
b: 阻塞, v' Z4 h u" H# M% ~2 l
5 p) B5 ?6 d3 D! m% z/ m: {
p: 暂停 #并不等同挂起,数据都在内存中没有保存在磁盘中8 `8 e, {* o5 p; m9 h
1 l9 x: u' o2 G$ `
s: 停止 #, p6 J9 e# `& E0 [: d F" E
& L: o. a* D0 O7 ~
c: 崩溃
, Z" j* Z0 S! j0 D+ |
& A B6 i3 k: id: dying, 正在关闭的过程中
. V y) \, j8 S3 u$ f3 p* p, c; J6 Q" s! |: [5 q6 ?- ^) }, R
# n% W- ]8 S6 o7 f4 H
- i; W8 P0 p# I: M
& R) o% d4 ~: H; o9 U; y& r9 xxl的其它常用命令
* }, f2 b- q& k. j7 L% i- r) M E# `5 b
shutdown: 关机+ \$ e; o7 B5 u8 ?: ]$ M% s
7 l f" {6 F! V7 z
reboot:重启
* _: J& ]6 r9 j
1 Z+ W) p( u( K! Hpause: 暂停
% R! O6 V# U3 G0 ^" ?' C0 }& {+ W/ G: f6 t6 R
unpause: 解除暂停 F% I7 b# h# j+ ?2 j
2 I( E# w/ V1 \7 Y1 K
[root@BAIYU_175 ~]# xl pause -h2 w) ^1 ^! q- s4 ^* _
Usage: xl [-vf] pause <Domain>/ l7 P" C! {2 y6 y* e
$ A3 w- W' x/ g" i; z% N, zPause execution of a domain.! h4 n }/ R$ {) ~/ L+ h
) |& t. l- {' j# r9 q- @
[root@BAIYU_175 ~]# xl pause --help0 o; V9 q3 ]% q
Usage: xl [-vf] pause <Domain>
, h5 h! A% V3 B* U1 T) ~, |9 i
7 g/ ?4 p8 R+ J2 {: \6 _% {; U1 x' FPause execution of a domain.
% |* U" \& j/ w" m! h9 O" i5 j
" Y' g# h# x+ k5 B: o[root@BAIYU_175 ~]# xl pause anyfish-0013 O I8 s6 l# y: ?+ @5 u1 d$ M7 G
[root@BAIYU_175 ~]# xl list3 S" s, b: n2 e0 R. u& z
Name ID Mem VCPUs State Time(s)
$ [+ V* F6 K. SDomain-0 0 1024 2 r----- 125.8* a6 |: p7 o7 X5 H# ~1 b
anyfish-001 10 256 2 --p--- 4.22 t( @; t& U: q
anyfish-002 12 256 2 -b---- 8.7; ~4 J+ H0 R- h$ m
9 N ?! C+ a" G$ T g" H
8 S7 U4 N6 \$ P9 w- Y6 }, W
4 D* q7 i3 S B5 |2 m4 U* J8 `save: 将DomU的内存中的数据转存至指定的磁盘文件中;& }. W2 T! O5 Y8 T* X; N8 S
/ V8 v; _. X$ i1 j# h! n9 u% d2 N
xl [-vf] save [options] <Domain> <CheckpointFile> [<ConfigFile>]4 x' y3 x, ~" f4 s6 q* N8 T
y+ y, m+ J7 |- V' f3 {0 k6 Qrestore: 从指定的磁盘文件中恢复DomU内存数据;% P2 B( d. e* O9 \6 C
4 D4 L/ X$ a1 [' Z- |xl [-vf] restore [options] [<ConfigFile>] <CheckpointFile>
/ _7 n! a Y8 M; A3 z* Y8 T
) @8 K' K3 B! ]) t1 H5 |[root@BAIYU_175 ~]# xl save help/ A$ |' _! j6 C# V6 |6 M
'xl save' requires at least 2 arguments.
* {0 S, w9 D2 ^2 H0 \0 i+ k/ d4 M+ K) e2 f" K4 f: F. d. j) s
Usage: xl [-vf] save [options] <Domain> <CheckpointFile> [<ConfigFile>]0 u1 j5 w7 ^9 b. W8 w5 a( F/ K- v) L
& g' n8 i- k( F5 C2 C, k
Save a domain state to restore later.% A! ^+ R; y; Y. b- m2 ~
- R* G6 C+ ?# k4 fOptions:
! H* p& g6 z4 K& B( {8 o4 S% j8 f( j+ l- r5 V' k" D8 }6 ~
-h Print this help.
7 Y+ ^/ f6 p5 L-c Leave domain running after creating the snapshot.
* Q' {* d0 ]3 G5 y% c-p Leave domain paused after creating the snapshot.
3 l. |: t. P" S9 l7 g4 I$ Q+ b8 h( _% B- {& P! y( X
[root@BAIYU_175 ~]# xl save anyfish-002 /tmp/anyfish-002 6 L5 Z4 a( H4 L
Saving to /tmp/anyfish-002 new xl format (info 0x3/0x0/1024)
) h2 ], Q" }+ h- {4 ?" ^xc: info: Saving domain 12, type x86 PV
# v2 m, S1 I$ Y; K5 r1 v6 d7 lxc: Frames: 65536/65536 100%
3 M4 f' T2 h- i6 v! qxc: End of stream: 0/0 0%
5 G: c* {& ?$ | |4 T: D; k! x0 t8 x
* T% W- O' F8 @2 B) @[root@BAIYU_175 ~]# xl restore /tmp/anyfish-002
/ T' z1 b8 P+ k: E) a: e* oLoading new save file /tmp/anyfish-002 (new xl fmt info 0x3/0x0/1024)
! T9 l. ]' A+ }% \! G0 r1 t Savefile contains xl domain config in JSON format8 n/ a1 z4 J' e. [3 T
Parsing config from <saved>2 |# u% B& A! o3 K( B' o
xc: info: Found x86 PV domain from Xen 4.6- @- h7 l- D' K% G
xc: info: Restoring domain+ r) y3 Z! W' z9 V' p
xc: info: Restore successful
) y/ H* E2 j& m, v5 Yxc: info: XenStore: mfn 0x22a3a, dom 0, evt 1% \0 l$ i& X. @# W) w6 P& w
xc: info: Console: mfn 0x22a39, dom 0, evt 2$ R0 N- _, C* \/ ^; c, Q/ y
- r. z4 |% D+ n6 r% N+ f
0 p# n: r- Y( O5 k& O }
e C; J, b9 ?vcpu-list 列出虚拟cpu
$ |! K& H3 |9 s6 ~9 q6 s; a: ]' c
, ^# N: A& y( F3 i$ T. ovcpu-pin 把虚拟cpu固定在物理核心上3 w/ K. A6 l" O, q3 f9 T0 U
6 c" g% }* O- ~& ~
vcpu-set 设置虚拟机的活跃vcpu的个数+ z2 z7 {: o9 g
7 T$ O l" g- l; T9 M; q' \. ?[root@BAIYU_175 ~]# xl vcpu-list -h! Y' o- `# R6 p7 _; C7 v4 L
Usage: xl [-v] vcpu-list [Domain, ...]
}- n( ?: I2 L" x
+ v5 G' e3 A, M4 ^7 F6 U! rList the VCPUs for all/some domains.! i/ @$ o4 s- k1 e: ]0 D
- ~% d% d3 R5 A! ^2 R+ K- O[root@BAIYU_175 ~]# xl vcpu-list
+ O8 q( Y5 @$ R9 u& k( p, OName ID VCPU CPU State Time(s) Affinity(亲和) (Hard / Soft)* w- e) u/ G, s. X$ L6 x
Domain-0 0 0 0 -b- 236.4 0 / all
! t5 h- d, F2 x4 N' p7 KDomain-0 0 1 1 r-- 310.0 1 / all
0 S7 T) j& @: V; Oanyfish-002 17 0 2 -b- 8.9 all / all
, X0 Q+ l9 T1 `! a0 zanyfish-002 17 1 0 -b- 10.5 all / all1 a7 V% D8 v' h7 i* T" p- R: I
anyfish-001 18 0 3 -b- 10.1 all / all
. Z' o; l; ~- n* B9 N$ k7 vanyfish-001 18 1 2 -b- 10.8 all / all; ]) G. y2 O- s1 r/ d
#运行在哪个物理核心上" g! o) ^$ |' E& y; v- i- A& ]
5 A3 O* S6 {' L! M6 G2 ~! D9 {+ X4 S
2 s9 I+ C6 F- n3 H0 {" A
5 K" p. N' k4 a. {& P( m+ s: t
1 I$ S/ \9 A3 X% L- Q# W# Minfo: 当前xen hypervisor的摘要信息
0 A# P% f( D7 C- U8 ?) X3 G e7 b* o W( \- X: x& m
domid
" Y3 Z [0 Y2 s8 V! E# f, r& g- j9 c- R% Q& @7 S/ @: z v
domname
- D1 M( c, Y' s. e) u7 k3 Y! u$ j2 ^6 ~6 F* _# [$ s* T2 n4 l+ S" a/ e
2 c; W9 o' f/ _ Q' v: l" Q3 X
! W* z: O& J3 P, N1 N( ]3 H3 C: p- G/ A
top: 查看domain资源占用排序状态的命令
/ N: D$ d1 X- n$ x6 J. I% x; V" S B% v2 D1 g/ |8 t3 _0 ]3 Y6 N
/ {, u/ ?/ z) j$ z
* ?* e7 W$ f- O5 @$ n6 @network-list: 查看指定域使用网络及接口;: |! l/ J/ n- m. _
N0 F6 k6 b* j8 m1 G/ B
network-attach:热插
6 ?% H: w* V* y8 A1 r% Y' |
& u* F" V0 Y3 \- J; r) Lnetwork-detach:热拔
7 V* k* |" J) Y# [& d" g. H2 l( k# i( f$ \- K- f& o
. I6 M4 S0 _( r' o& n# [# Q
}; v$ y+ ~6 |* ^1 w
block-list: 查看指定域使用的块设备的列表;
/ C0 G& n* I3 Y6 c* u: E( ~, Z3 Y
; x* Z# e: l `4 }; r+ k$ A: Z/ j* ~block-attach4 e1 o+ [- X0 r( J1 `) ^: o! m
) q! G) C% y# }& @block-detach
. k$ \, m6 Q5 @2 t- S3 L; H0 T7 R
" f: B9 ]4 c: Z8 {. o% I
7 l/ a9 q1 |, f+ T0 i
uptime: 运行时长
" q1 o5 l5 a6 `# N9 Y6 R1 Y! J( K$ _! c
7 a# w; d# @# K0 R) J. j+ r
1 q4 Z/ |6 k% U# U* U" K
三、如何创建xen pv模式1 a) e) p* n: ]
8 m5 T5 S; c7 J- V 1)kernel #DomU的内核文件可以放在Dom0中也可以放在DomU中( c8 B8 n B3 H. M: Q2 ?& l
; p8 N: U, _4 i, u1 L
2)initrd或initramfs
' T1 i5 {* B5 R, \+ n3 x- f0 [& g/ d8 h: }
3)DomU内核模块) D2 N X' r- G" A2 W. f) C( W9 B
$ X( o/ y2 J7 R 4)根文件系统
7 ^/ C" {8 ?' u& O& H% h+ x" N0 E& a/ I: V% p+ W4 W) j1 S
5)swap设备
# Z) U2 X9 D: @0 Z( P0 |! I4 @ c4 W- l; g$ z) C" J1 Y2 g
将上述内容定义在DomU的配置文件- k% j2 @+ Q$ w) f3 k: e4 L8 `
# @4 y+ q! L( G$ b. H0 Q, h
注意:xm与xl启动DomU使用的配置文件略有不同;! J' p! C$ b7 w
. w! o. x( |* C# C" K2 V0 J4 _. i xl.conf是xl命令的通用配置文件
7 @! w3 [- f) [; l& _, C H& ~$ y3 M. |3 P* \9 u: ]0 b
xl.cfg是启动某个DomU虚拟机的配置文件! H( y3 a- o, n- N
, z& _% }3 m% ^" t* F+ J
对于xl而言,其创建DomU使用的配置指令可通过“man xl.cfg”获取
( z; y' ~/ \3 B% O. I
( |& q8 U' u2 @5 z$ c# ^常用指令:
$ K2 n7 @8 w; [: W$ L d
, T) k* q- V- ~& l1 s- tname: 域惟一的名称
- w- X5 j, a% ^/ A' ?. C$ S$ s- D" y1 d3 S! O: l9 h
builder:指明虚拟机的类型,generic表示pv,hvm表示hvm
# i3 H6 f* v6 N1 J9 D* R- Y& E. X1 T L) g/ p2 G! E$ h
vcpus:虚拟cpu个数;
9 a5 V) z5 {7 ?5 U
; y4 W* t/ M+ Y1 K5 r1 S. B% wmaxcpus:最大虚拟cpu个数
6 S1 N9 r3 P# i: h9 \0 ]% |/ S
! ~+ T* A" ?! e1 ncpus:vcpu可运行于其上物理CPU列表
D& t: p% ^% L4 l' _
+ U B" R9 a- M. ^% x* z' \memory=MBYTES: 内存大小, a; P5 B) g- n! _
8 O1 k& P s( X0 y4 ~maxmem=MBYTES:可以使用的最大内存空间
1 A+ V D. [) z
7 y1 ^0 l0 G, M5 c! |on_poweroff:指明关机时采取的action
! }: m1 F! G/ ]7 O4 F! l- j1 ]( @; M8 O# v4 r
destroy 断电, restart 重启, preserve 保留域' N1 x. \8 w- t% j
. |0 U" |4 y4 [9 {( qon_reboot="ACTION": 指明“重启”DomU时采取的action
% [: m3 ?" E# o5 [# n. U) l- _5 n. ]5 B. _- f0 c5 ]$ t
on_crash="ACTION":虚拟机意外崩溃时采取的action3 B/ g2 V6 _6 z
4 ^, {! G( u, S3 ~uuid:DomU的惟一标识; #不是必选项 M+ _2 H1 K2 Z* b& ~" Z
' C3 {: L: p0 s& x0 H6 ~) jdisk=[ "DISK_SPEC_STRING", "DISK_SPEC_STRING", ...]: 指明磁盘设备,列表,
3 H. u: L+ }4 C- j! u" s$ b( L
2 p+ {8 l0 s3 H0 I1 H- Avif=[ "NET_SPEC_STRING", "NET_SPEC_STRING", ...]:指明网络接口,列表,
$ j$ Y+ r& [7 t: k; Y: G2 S5 O" A, L* B0 M* Y& [/ ]
vfb=[ "VFB_SPEC_STRING", "VFB_SPEC_STRING", ...]:指明virtual frame buffer(显示设备),列表;
0 Q2 H% ^. ?: [2 s& y: W& s$ z8 f* |3 r& s8 n% l% m3 H) J
pci=[ "PCI_SPEC_STRING", "PCI_SPEC_STRING", ... ]: pci设备的列表9 u1 X# a: D# L5 {/ c0 Z( C, k
/ v8 g* ], Y* Z6 X" ]" m: {
" V$ q! N2 f7 y9 W8 j+ s% R' |! {( }! K. f( S
PV模式专用指令:
2 g6 Y+ H0 K: c# r9 a' ^# A% X8 u% @0 E" Q1 @
kernel="PATHNAME":内核文件路径,此为Dom0中的路径;
8 a9 J6 a) a5 {$ u
7 e8 J8 T" |, ?! V8 }: Z5 @ramdisk="PATHNAME":为kernel指定内核提供的ramdisk文件路径;
$ g+ S% m2 l. N! j5 X6 m# C8 t$ Q$ h3 h. j% C
root="STRING":指明根文件系统;
$ F) \) Q" w* i* E! U: V2 {! N* l
; G0 c2 k! F5 X3 }: }extra="STRING":额外传递给内核引导时使用的参数;' ^6 }* S, H4 ]+ `
) M+ X' v% x+ k9 A( m2 `; x5 {2 ^
# \7 ?+ I% ]8 v# G
5 _# @. R. _3 p9 ~; K) i bootloader="PROGRAM":如果DomU使用自己的kernel及ramdisk,此时需要一个Dom0中的应用程序来实现其bootloader功能;; u* _5 \" g2 b
; r9 E/ g( _. c1 Z' T# r- L/ i' ~
4 q5 }, D/ y# z0 I
+ ?: e" x1 o4 Y/ \0 x
磁盘参数指定方式:
9 n/ h( [% n( I9 A. w
3 r8 B: O1 L) S% G- x6 ?官方文档:http://xenbits.xen.org/docs/unst ... k-configuration.txt; U4 O7 F' ^3 o; H: h. w
+ I6 e4 Z& r6 R- k+ n* @: m3 W[<target>, [<format>, [<vdev>, [<access>]]]]
; C7 g* | ^: ^9 l
3 O" K8 V% V5 n, X6 ]+ q4 {<target>表示磁盘映像文件或设备文件路径:/p_w_picpaths/xen/linux.img,/dev/myvg/linux
% ~: m1 L4 s* u4 @) t# S5 V+ Z/ J9 j3 }) o& [0 w
<format>表示磁盘格式,如果映像文件,有多种格式,例如raw, qcow, qcow2. Y/ }1 L, e ]8 L
* |% T# r7 K2 \1 f
vdev: 此设备在DomU被识别为硬件设备类型,支持hd[x], xvd[x], sd[x]* {; k9 e$ b# i1 X: M
5 |+ N) D* b5 h1 v8 n7 H
access: 访问权限,
# _7 v0 d, {4 `
/ R( O+ o6 e6 wro, r: 只读/ O$ J: \6 o9 c5 d4 L( n# b
+ W* J) i- u; f- s! h
rw, w: 读写
6 q3 Q- D$ `1 _" K$ `# ]" M# u, m9 [5 m5 g0 x8 E' g1 I8 p
例如:5 r J u3 M/ Y( f0 W# B* r
# o; k9 z/ _/ B& r
disk=[ "/p_w_picpaths/xen/linux.img,raw,xvda,rw", ]
0 M8 e4 h9 G; ?6 O5 n* e, E/ `7 e6 z* ~" l
|5 l/ G: |+ s6 t. D
5 h8 y& O3 }7 W
使用qemu-img管理磁盘映像:
% i x' S% j6 V, C3 E
2 y# ?3 @" \8 L: Jcreate [-f fmt] [-o options] filename [size]
+ Y1 h+ s8 j. Y6 t0 d" F5 s8 l1 P) `- ?4 h" K5 f7 y
-f 指明创建磁盘的格式
8 N$ }7 N, A$ J8 U; z5 m
8 v: R& E5 d# b) d T -o 特定格式支持的选项, `& V- d/ Q9 V# T) U* G
! E" I3 a4 e5 Z7 d) c6 g& [, U/ Y
可创建sparse格式的磁盘映像文件,慢慢扩展到指定的大小( _; g2 T: S0 {1 X y& Q
$ E$ e/ K+ I* S0 R
" X2 e* I4 A- A6 }* d
3 t. ^) x/ c) b5 y! z4 F1 X0 a3 u2、创建一个pv格式的vm2 M8 m' v- t. k" a6 Z; z
% Z3 p3 ]# Q4 u% Q- C* E+ f6 [
(1) 准备磁盘文件
r% [8 n3 w: M0 S5 S( g9 _
( [4 @/ f# B+ q! E' Q* \ qemu-img create -f raw -o size=2G /p_w_picpaths/xen/busybox.img
3 j- i( K$ t( W2 Q" {3 i, A
+ _! u8 d( q9 X% R8 x" y2 N mke2fs -t ext2 /p_w_picpaths/xen/busybox.img$ O8 n; M. k x" R$ b
' V" U. n! s7 z3 J6 u4 X- G5 D% p[root@BAIYU_175 ~]# mkdir /p_w_picpaths/xen/busybox.img -pv9 U5 O& c0 i; A [/ s, S
mkdir: 已创建目录 "/p_w_picpaths"
. Q ]' y$ G# t) J; n1 f T8 Imkdir: 已创建目录 "/p_w_picpaths/xen"
" W1 x* p6 ]& J% q" Smkdir: 已创建目录 "/p_w_picpaths/xen/busybox.img"6 x3 { K# ~9 d! \9 [, Q
[root@BAIYU_175 ~]# qemu-img create -f raw -o size=2G /p_w_picpaths/xen/busybox.img
3 Y- o7 C0 v s: @/ O' w! eFormatting '/p_w_picpaths/xen/busybox.img', fmt=raw size=2147483648
8 y3 D ]' w+ [. |/ u/ U5 p[root@BAIYU_175 ~]# ls /p_w_picpaths/xen/
( {# Z: D* g3 y! b9 V- C9 H/ Vbusybox.img
! P! a$ j+ F' Z$ n5 b0 M9 X[root@BAIYU_175 ~]# ll /p_w_picpaths/xen/: G: r5 h) e6 f# Y1 k
总用量 0+ r7 ~+ }; G* W
-rw-r--r-- 1 root root 2147483648 7月 14 23:52 busybox.img
! O* c" o6 U$ @2 ~5 O4 T" Q$ W2 B6 t9 j% J( h. r/ B1 R
. y! f8 i+ D3 ^
: u( f. l9 x( X( N$ N[root@BAIYU_175 xen]# mke2fs -t ext2 busybox.img #为什么要用ext2格式?& r% ^% d( Z; q" \
! O/ k5 r' O" j; {: a `[root@BAIYU_175 xen]# du -sh busybox.img ; w4 U8 Y2 @; P, s7 G# ]
97M busybox.img
- u; C/ J6 f- e0 G. t5 u; D" {% ^
* F$ {: V U a- R8 }- D4 l, C; W& K" g2 D6 {; u
" c4 T6 h" i- t' R$ S; t
[root@BAIYU_175 xen]# mount -o loop /p_w_picpaths/xen/busybox.img /mnt
% m2 \7 M8 S+ v9 s1 Z[root@BAIYU_175 xen]# ls /mnt1 j: W) \6 g) i5 {! Z1 P5 \
lost+found
( {, z! E( }5 P3 O8 k8 Q( o+ ?& ?4 y, a: m2 Q" j l
. s7 b" q: k9 L: g
) K& `; R6 a) U( Y t
(2) 提供根文件系统5 d7 c& Y" j0 F+ V7 {, B$ O
" N' ~5 T s" f# O. R: H. s
编译busybox,并复制到busybox.img映像中; c5 I8 ` Z/ K# A' B' |- ]8 Y4 j1 X l( }
{) X' S) |% m# c3 W' C# ncp -a $BUSYBOX/_install/* /mnt
1 t. }6 H* b' @5 n8 F( y; z& M7 y7 Z, a- ^
mkdir /mnt/{proc,sys,dev,var}
' Y7 q0 E9 c. H" W u& g) w
3 t9 Y1 L: A) t3 y- y) }% w7 j: `[root@BAIYU_175 busybox-1.22.1]# yum groupinstall "Development tools" "Server Platform Development" #安装编译过程中可以用到的包
6 b2 C2 u- {( y0 X2 X[root@BAIYU_175 busybox-1.22.1]# yum install glibc-static #为了方便移植busybox,把busybox编译成静态链接格式,不让它依赖额外的其它库,需要依赖这个包8 L2 G9 w3 ?$ i; q" W y. R
[root@BAIYU_175 busybox-1.22.1]# make menuconfig% D) z3 R- G6 h' M
1.# I% x& F* I' p+ A* W7 a- ^
2.
9 j( ]- K- K6 f. l3.
3 f, B8 O E, _1 o' R& T& r' w
0 [3 T$ I' X2 w, s6 c* }" Y: z2 n: s
勾选编译成静态链接格式1 o7 G* q# F% m6 F. t- s' y
& G( w* E" @9 x[root@BAIYU_175 busybox-1.22.1]# make
. h& e+ n& n7 a+ W6 ^3 y[root@BAIYU_175 busybox-1.22.1]# make install
" F2 r$ O" O4 p z/ I W4 g! ~, G( j! I/ N/ s) ~
[root@BAIYU_175 busybox-1.22.1]# ls
# a% b' Z. q( T3 _% Z& RAUTHORS Makefile.flags applets busybox_unstripped debianutils include miscutils scripts. ?- q7 _! ^* r) y( O" q
Config.in Makefile.help applets_sh busybox_unstripped.map docs init modutils selinux
/ y2 ?9 ^7 _/ W" Q, J& ~INSTALL README arch busybox_unstripped.out e2fsprogs libbb networking shell
4 \$ R4 m& a; S. W0 rLICENSE TODO archival configs editors libpwdgrp printutils sysklogd$ F- h6 U$ p+ N7 ?, o* r
Makefile TODO_unicode busybox console-tools examples loginutils procps testsuite4 F1 {) x3 Z2 t7 _
Makefile.custom _install busybox.links coreutils findutils mailutils runit util-linux N3 D$ E) P, b
[root@BAIYU_175 busybox-1.22.1]# ls _install/ #默认安装的目录
. |' n2 V. A9 kbin linuxrc sbin usr
) v0 ]# ` I' \- i+ k: \: l' ~$ p5 {5 l( K. ~- J+ x
4 _1 Q0 _8 T3 {/ Q4 z2 a
复制文件到/mnt目录下( K* T/ p9 ~: _: _4 b7 P5 {# @
8 d" r8 ~. w; `[root@BAIYU_175 busybox-1.22.1]# cp -a _install/* /mnt
$ F! X' Y# H, g9 Y: y& s' t[root@BAIYU_175 busybox-1.22.1]# ls /mnt! \5 }" ?+ t2 l @# o; V) E8 N
bin linuxrc lost+found sbin usr
3 l4 j8 M7 {1 t1 j" k$ k2 Q* X[root@BAIYU_175 busybox-1.22.1]# cd /mnt! f9 j) Z8 o. ?% K9 r
[root@BAIYU_175 mnt]# mkdir proc sys dev etc var boot home
5 r/ ]+ s j9 E. v/ T) S[root@BAIYU_175 mnt]# ll
) }) P, z+ x2 L; R$ stotal 56$ V8 b: T, m2 {2 _% D& W$ P
drwxr-xr-x 2 root root 4096 Jul 15 12:22 bin1 v! Z7 B6 K$ T( S& u2 m4 h- |5 O
drwxr-xr-x 2 root root 4096 Jul 15 12:25 boot
0 R& }& m1 k; @" l( U, V* g+ tdrwxr-xr-x 2 root root 4096 Jul 15 12:25 dev #一定需要# R0 v- \+ p: x. H: d
drwxr-xr-x 2 root root 4096 Jul 15 12:25 etc #一定需要
6 p9 j1 ?. O) h2 B0 C3 F& W( a0 |drwxr-xr-x 2 root root 4096 Jul 15 12:25 home, Z9 G3 [9 T& {* p7 }5 L2 S- m
lrwxrwxrwx 1 root root 11 Jul 15 12:22 linuxrc -> bin/busybox+ F% K* J5 H1 u/ T' I+ s" j3 _
drwx------ 2 root root 16384 Jul 15 11:01 lost+found
1 w0 c& [- ~* u+ }drwxr-xr-x 2 root root 4096 Jul 15 12:25 proc #一定需要/ V- D1 `: L7 z# A- [$ W
drwxr-xr-x 2 root root 4096 Jul 15 12:22 sbin
4 F/ d* D; X( b3 g4 @: O& e( Hdrwxr-xr-x 2 root root 4096 Jul 15 12:25 sys #一定需要: t1 t3 P$ d& b# T- {0 D# @& g4 Q
drwxr-xr-x 4 root root 4096 Jul 15 12:22 usr& m5 I4 T% u! y9 s
drwxr-xr-x 2 root root 4096 Jul 15 12:25 var
7 T9 e: ~! g0 U/ r" S; v9 O7 g9 x6 {0 L0 `+ K+ Q5 \! A1 Z
[root@BAIYU_175 mnt]# chroot /mnt /bin/sh
6 }8 y8 R' {+ A/ # ls
! f$ d* Z6 o4 ~! zbin dev home lost+found sbin usr6 D7 f2 c# J/ ~
boot etc linuxrc proc sys var
3 [* }) Q/ l+ x- {9 L7 E: s; D/ ?/ # ls boot/
- |* u5 f' O4 @3 ^/ # ls dev; D+ g1 l! e8 M1 o+ F
/ # exit #能正常使用说明这个根文件系统创建成功7 h6 P& K" [# |, K/ q
4 B- N1 d: b" T) k7 I2 C
4 E; l/ \7 G% s- C- u N
: q6 E1 P; r9 o& q- B2 z(3) 提供配置DomU配置文件: ~5 |) A6 H) \! d- h) v2 w- ^
( z( r; ~- |7 t- Jname = "busybox-001"0 A! k* d: {5 x4 K6 l" J7 N8 e0 }
% S7 N: h; Q2 r2 i3 t' v3 B
kernel = "/boot/vmlinuz"3 i% X" s- z& [7 S; N# J- ^+ d
- B9 j& h# r# Z- e
ramdisk = "/boot/initramfs.img"
% b' t- [" A4 ~& V" P7 k! L9 k: G* _6 [ M& J
extra = "selinux=0 init=/bin/sh"
* q' S, ]: q' S8 Q6 L8 G- v3 m5 }4 C0 T( Q8 [; T
memory = 256
- [' G# ?; D) C3 E5 s! S2 \$ ?0 O5 G3 K4 \
vcpus = 23 R( H# t8 s2 u9 q) i& G; @" S
& q# E1 [3 W$ x+ s2 s) d% A
disk = [ '/p_w_picpaths/xen/busybox.img,raw,xvda,rw' ], |. q% Z( `+ K7 |/ l
; @: @6 _3 k6 \! o$ s' Yroot = "/dev/xvda ro"
\2 [( l1 ?2 e0 ?! O" I# z
( r9 @ z* N) }6 n- P& t[root@BAIYU_175 ~]# cd /boot
" W) c% f* h- `5 d8 \" T[root@BAIYU_175 boot]# ll9 b1 J3 `* u2 z/ ?! O: X0 r8 d2 s
total 76456
- x$ P, s. l( C/ M" Z) x-rw-r--r--. 1 root root 2585052 Jul 24 2015 System.map-2.6.32-573.el6.x86_64
; y( D' o3 _+ @7 O% \! V B# d-rw-r--r-- 1 root root 3208657 May 27 20:18 System.map-3.18.34-20.el6.x86_64
! [" ?( D/ ~: |. S+ d4 ?-rw-r--r--. 1 root root 107134 Jul 24 2015 config-2.6.32-573.el6.x86_64% J& o3 p+ [' e E/ B
-rw-r--r-- 1 root root 155205 May 27 20:18 config-3.18.34-20.el6.x86_64
6 ^, U M8 e+ u# k$ ldrwxr-xr-x. 3 root root 4096 Oct 24 2015 efi2 y! |! R4 x# I* m- |9 {$ z
drwxr-xr-x. 2 root root 4096 Jul 14 23:47 grub
( H" k/ `" y: S2 U( \& K-rw-------. 1 root root 27609239 Oct 24 2015 initramfs-2.6.32-573.el6.x86_64.img' w: m: C; Z) |; D. T
-rw------- 1 root root 29366666 Jul 14 18:07 initramfs-3.18.34-20.el6.x86_64.img
: G' m5 O' y$ x/ _-rw------- 1 root root 4330884 Jan 2 2016 initrd-2.6.32-573.el6.x86_64kdump.img% U5 J7 k8 h6 D4 D
drwx------. 2 root root 16384 Oct 24 2015 lost+found) A3 Z$ L/ }: \" f u- s4 Z" ^
-rw-r--r--. 1 root root 205998 Jul 24 2015 symvers-2.6.32-573.el6.x86_64.gz( _, `' f- {1 Z5 Y d6 u- C
-rw-r--r-- 1 root root 285315 May 27 20:18 symvers-3.18.34-20.el6.x86_64.gz. y( T. P: K. j! p: }, [0 ^2 Y
-rwxr-xr-x. 1 root root 4220560 Jul 24 2015 vmlinuz-2.6.32-573.el6.x86_64
% _& w# L% n1 m: G: y$ v-rwxr-xr-x 1 root root 5267744 May 27 20:18 vmlinuz-3.18.34-20.el6.x86_64' ]7 K! `7 Q% s1 g
-rw-r--r-- 1 root root 893598 May 26 18:58 xen-4.6.1-11.el6.gz
: u n& w. A* V+ M+ ^lrwxrwxrwx 1 root root 19 Jul 14 18:06 xen-4.6.gz -> xen-4.6.1-11.el6.gz
% P* t# r) F' H1 c3 olrwxrwxrwx 1 root root 19 Jul 14 18:06 xen.gz -> xen-4.6.1-11.el6.gz- T5 ^1 J. W; o8 S0 f
[root@BAIYU_175 boot]# ln -sv vmlinuz-2.6.32-573.el6.x86_64 vmlinuz
0 O3 [$ Q' G& v W`vmlinuz' -> `vmlinuz-2.6.32-573.el6.x86_64'/ ?' u% s! Z# x. E# n
[root@BAIYU_175 boot]# ln -sv initramfs-2.6.32-573.el6.x86_64.img initramfs.img3 e8 J. `3 n. ]7 i) V
`initramfs.img' -> `initramfs-2.6.32-573.el6.x86_64.img'
7 m# {: \. m d' y1 O[root@BAIYU_175 boot]# ll
. I$ N( U( c1 i2 L/ M( d0 x$ a) Ptotal 764560 ~5 { Y& `/ _8 Y* z9 l, b& P
-rw-r--r--. 1 root root 2585052 Jul 24 2015 System.map-2.6.32-573.el6.x86_64$ S. ?# g& ~- f
-rw-r--r-- 1 root root 3208657 May 27 20:18 System.map-3.18.34-20.el6.x86_64
) b7 P& S3 N q; o# F$ V-rw-r--r--. 1 root root 107134 Jul 24 2015 config-2.6.32-573.el6.x86_644 b- n# W5 K8 S
-rw-r--r-- 1 root root 155205 May 27 20:18 config-3.18.34-20.el6.x86_64
+ [: r) ?% `3 q; R! o0 h& Ldrwxr-xr-x. 3 root root 4096 Oct 24 2015 efi( z% l2 l7 m+ R+ n! t$ R
drwxr-xr-x. 2 root root 4096 Jul 15 13:57 grub( ^: C# _1 A# T, {# P# g4 i" L
-rw-------. 1 root root 27609239 Oct 24 2015 initramfs-2.6.32-573.el6.x86_64.img$ o& e( h6 b2 b- j# B7 O, ~- ~# O$ z
-rw------- 1 root root 29366666 Jul 14 18:07 initramfs-3.18.34-20.el6.x86_64.img; M h. z5 I: O7 N$ w3 W5 v
lrwxrwxrwx 1 root root 35 Jul 15 13:59 initramfs.img -> initramfs-2.6.32-573.el6.x86_64.img
# J7 n+ [, D# E% p( v/ i. n" @9 j-rw------- 1 root root 4330884 Jan 2 2016 initrd-2.6.32-573.el6.x86_64kdump.img. U4 @8 Q7 p. a) O4 f
drwx------. 2 root root 16384 Oct 24 2015 lost+found2 B' C! ]8 k% w5 X- m+ A) V
-rw-r--r--. 1 root root 205998 Jul 24 2015 symvers-2.6.32-573.el6.x86_64.gz3 D% v8 a- F( ^3 Q! G
-rw-r--r-- 1 root root 285315 May 27 20:18 symvers-3.18.34-20.el6.x86_64.gz: W1 p" t- V S$ @. W4 z
lrwxrwxrwx 1 root root 29 Jul 15 13:57 vmlinuz -> vmlinuz-2.6.32-573.el6.x86_64
) c. v0 ^3 H3 ?8 Q-rwxr-xr-x. 1 root root 4220560 Jul 24 2015 vmlinuz-2.6.32-573.el6.x86_644 T' D7 ?& M8 R/ y
-rwxr-xr-x 1 root root 5267744 May 27 20:18 vmlinuz-3.18.34-20.el6.x86_642 y& I2 ?$ y* S$ P6 _: I
-rw-r--r-- 1 root root 893598 May 26 18:58 xen-4.6.1-11.el6.gz5 e" {! d. y) m' H* h
lrwxrwxrwx 1 root root 19 Jul 14 18:06 xen-4.6.gz -> xen-4.6.1-11.el6.gz
( [ Y, {! M; @( E3 Ulrwxrwxrwx 1 root root 19 Jul 14 18:06 xen.gz -> xen-4.6.1-11.el6.gz
# i% [/ x" D1 v% c- j6 T' Y, T. g
0 ?2 u }! H$ t M根据xen给定的pv示例配置文件修改:% D, e1 q9 J- e( E7 v- S
0 `/ ?- n3 M: |7 I1 K9 z
[root@BAIYU_175 boot]# cd /etc/xen/
- w! ^/ p! B0 m9 G[root@BAIYU_175 xen]# ls
: u5 W0 ~# P" ~auto cpupool scripts xl.conf xlexample.hvm xlexample.pvlinux
5 R; v. b9 l' l, d9 h; F+ _. ][root@BAIYU_175 xen]# cp xlexample.pvlinux busybox
0 m$ t0 v7 p/ R! ~! |: y' Q" y9 a# E6 B- z3 W
[root@BAIYU_175 xen]# grep -v '^#\|^$' busybox #修改后的配置参数
: Q4 o O6 b/ r. \+ X7 X2 s Y( uname = "anyfish-001"" {3 Z3 F/ h5 M c. ?9 e$ V5 s
kernel = "/boot/vmlinuz"; c2 B2 E+ K" h9 S( a% f6 A5 M2 b
ramdisk = "/boot/initramfs.img"
1 B" {2 ]( c" Uextra = "selinux=0 init=/bin/sh"
; ^9 S8 G H8 ?4 C- }memory = 521
2 o" E5 E* m6 E: \vcpus = 2
9 H& f# L) j; e7 K+ x0 r$ evif = [ '' ]
/ i! m2 }" S) tdisk = [ '/p_w_picpaths/xen/busybox.img,raw,xvda,rw' ]" c! J/ N: Z8 h: V3 n" R- ^
root = "/dev/xvda ro"
3 h& R3 C( M) n$ Q1 [9 {
/ E* j$ s% C( U& b7 C
4 H3 L& w: V& B6 l% Q: @$ B(4) 启动实例
9 ?5 m1 G& L1 V# X# j( a
5 T/ e- h3 [" G# [$ {xl [-v] create <DomU_Config_file> -n
, c1 D. J( C6 v+ C/ ]6 u) Y$ Q: A0 V5 B5 [3 A
xl create <DomU_Config_file> -c7 k( q; a+ Y4 X4 ?
5 O. L$ [; M' V$ v
[root@BAIYU_175 xen]# xl help create7 s M6 \4 E k
Usage: xl [-vfN] create <ConfigFile> [options] [vars]
0 ]8 Y2 Q9 i x+ i2 t#-v 表示详细信息,. f9 g6 g4 i5 ]0 C
-f 指定xl命令的配置文件
- x7 s; ?: T2 x2 g: @: ?, P ConfigFile 是DomU的配置文件7 ~& b6 }5 c: S$ k' Q; I
Create a domain from config file <filename>.9 h. V M0 \) u0 W2 G" R2 }0 ~
7 A# ]6 O: M6 A9 B' ?4 u* d
Options:
Q) A! ^3 \6 G, l9 G. C# R
1 L) x9 K, w. _ K-h Print this help.2 p3 G' Y2 H0 \; s& G% \' |. ]0 z4 l5 V
-p Leave the domain paused after it is created.* U/ U3 K9 G5 F* d* l+ s
-c Connect to the console after the domain is created.
$ c* i3 h* E: b1 o6 s( V+ w-f FILE, --defconfig=FILE
, {6 h/ w% L# [7 [, r Use the given configuration file.4 _0 K$ A( {' V2 ~7 Y* d
-q, --quiet Quiet.3 g6 {( a( b! Y& q9 @% O
-n, --dryrun Dry run - prints the resulting configuration #并不真正创建虚拟机,只是空跑一遍,就是测试咯,
2 I# c7 t% z4 Z, Z# g (deprecated in favour of global -N option).
/ R/ H& _, a# \) l4 e-d Enable debug messages.
( H. ^9 J) b4 A/ J' `-F Run in foreground until death of the domain.
, l8 ~3 T% Q; E' S7 I( a-e Do not wait in the background for the death of the domain.# e; X$ H% K. G; c) Y! D3 M
-V, --vncviewer Connect to the VNC display after the domain is created.
+ }9 ~/ o: g$ p1 C-A, --vncviewer-autopass; ] x- W, w/ C! @5 j! d% `/ A
Pass VNC password to viewer via stdin.
0 ]7 v# Y6 C2 R- s, J6 X4 A) [8 [" V2 I) ]. l& ?+ I [2 T
[root@BAIYU_175 ~]# umount /mnt - Y6 B) S( I2 R, m
[root@BAIYU_175 xen]# xl -v create /etc/xen/busybox - q% G9 ?% w8 m; r
[root@BAIYU_175 xen]# xl list
, ~7 X4 ]7 a7 l9 ?- m1 vName ID Mem VCPUs State Time(s)
9 A- `2 h" g$ |Domain-0 0 1024 2 r----- 85.7! L& f# E# E( g
anyfish-001 24 256 2 -b---- 1.4) ?, P3 T! ~4 v z6 K7 ]/ V# o
[root@BAIYU_175 xen]# xl console anyfish-001 #连接虚拟控制台
W& M% h1 ]& @/ # ls
( B* u7 Y+ a4 vbin dev home lost+found sbin usr* |! o" v; b4 ]/ M G* E
boot etc linuxrc proc sys var 按crtl + ]退回到Dom0,输入exit会删除掉anyfish-001这个虚拟机
7 s2 M7 n! P* u; Z' h; r& L+ t4 i: n/ Z
( ?" c3 ?6 E( D# B/ P9 N, d
(5)添加网卡
( O+ E R2 _/ {0 O% g% v- I1 m5 Z
/ D+ x5 T3 a4 ^. [% K1 `如何配置网络接口?
# Y# V. \. o: L, [/ ]% ~
: O+ N, q2 e q) x8 Evif = [ '<vifspec>', '<vifspec>', ... ]. Q( L4 m* S# {0 [! w8 n
9 y# a4 S+ U' s9 F4 D. a
vifspec: [<key>=<value>|<flag>,]3 R( q* k7 [% H' J
. d) y! O' U5 ?2 u4 S( ]常用的key:
& }! T2 k' ?3 }2 m- l3 v F1 f
; r% L: D# C5 T+ bmac=:指定mac地址,要以“00:16:3e”开头;
' Y! A/ m$ l$ x! K% e8 L3 d
, x/ Q6 K- e0 C+ }& \bridge=<bridge>:指定此网络接口在Dom0被关联至哪个桥设备上;
. V9 H9 R$ ?" A- [0 g+ m/ f
( a G% @7 }7 H+ k; ~0 gmodel=<MODEL>:
0 L# X- O% M& n' y. v7 T: l9 B! W, {* u& @; L) u3 w1 h
vifname=: 接口名称,在Dom0中显示的名称;9 f# L4 {% x7 s, j
7 [. J4 R8 i! V# {
script=:执行的脚本;8 j- l8 `3 V R* r$ b1 p6 O
5 r/ [) ~- N5 \) `- k! {ip=:指定ip地址,会注入到DomU中;
8 [! C# f. n: Y- j9 t( N0 N2 @0 B! S, H% _5 V) ~
rate=: 指明设备传输速率,通常为"#UNIT/s"格式, j& {; r: `+ z' J+ V
1 Y$ o/ T, b4 w8 lUNIT: GB, MB, KB, B for bytes.: n3 R7 A) R e0 H! {) [
9 V! `. u; q5 @8 z/ m) s/ v Gb, Mb, Kb, b for bits.- e9 ^! |' S2 `6 q+ b% b9 c, {
: e% F& T& p3 z- T- f& K; g$ ~- I1)创建xenbr0
. ~- V- h3 E% S$ ~( e6 p" ^2 w# X7 D+ ]8 X6 T; c
& ], b+ X/ h. p, E( ], e) e+ ?
# brctl addbr br0
" f' u( ~" h- @% t+ e- Z' D: w* J- c' |0 a0 E+ F& Y
# brctl stp br0 on
( Z& n# c& B3 d& x
+ K; z0 _8 |; u/ {1 b# X# ifconfig eth0 0 up
3 \; h' Y% }8 H! S1 ]9 L4 q2 L1 Z
1 X1 Y4 Z+ {3 S9 p# brctl addif br0 eth0
+ E. ^3 x8 D5 D; ^- i) Z) q0 \( [& d1 e
# ifconfig br0 IP/NETMASK up
3 k. L5 T. O) ?" j$ w7 ]3 J- j3 {! B; k0 C+ { k7 E
# route add default gw GW
1 s: P5 A- p2 N$ k5 P: U
0 k0 X& V, U2 ~* {2 R[root@BAIYU_175 ~]# brctl show. w1 D" L: b' u) v, k5 K
bridge name bridge id STP enabled interfaces# _$ Z3 w s( }0 V
xenbr0 8000.000c29efbbd4 yes eth0
6 _# B9 Z/ y# r4 n3 ^8 c" b- F#在这步后,系统死机了,可能3.18的内核bridge功能有bug,用3.7.4版本的内核没问题
/ j L4 |' U. r- d7 v1.+ j: q7 ^; y. m
2.
6 H; Y2 W7 S; Z: w7 T a' E/ t3.( I% h4 {! l: Q/ [2 _& \9 p6 n8 |
4.0 R( v/ ~1 ~- ]+ Q9 C b# |, L
2)在配置文件/etc/xen/busybox中添天网卡相关配置,并复制驱动程序到DomU中
. H3 V4 _" \* I K" I4 M6 I) g0 ?7 ^, F8 C
vif = [ 'bridge=xenbr0' ]
6 S3 i$ O& ~3 Z1.
: J4 n4 ~1 W0 `[root@BAIYU_175 ~]# cd /lib/modules/2.6.32-573.el6.x86_64/kernel/drivers/ #驱动文件的路径4 ]+ b& A: b: e/ K
[root@BAIYU_175 drivers]# ls3 z' n* J/ f1 }8 M1 \6 @
acpi char gpio infiniband mfd platform serial vhost
% `% i* m7 U# |/ Z" q1 y9 @ata cpufreq gpu input misc power ssb video. ^3 B' X9 ^2 s' {4 i/ D7 j" V
atm crypto hid isdn mmc powercap staging virtio) k* Y: r3 K& i- s. ]0 v
auxdisplay dca hv leds mtd pps target watchdog5 K" G5 t0 ~' K Y6 ^" m; r0 M2 M7 R
bcma dma hwmon md net ptp thermal xen: a, ^. r8 J2 q% D- X1 W& K
block edac i2c media parport regulator uio
0 U _: s. M1 L' @2 `) _bluetooth firewire idle memstick pci rtc usb: Q2 j& s+ M7 C7 y& }
cdrom firmware ieee802154 message pcmcia scsi uwb$ l! F) S+ v8 J( R) q1 Z6 r0 |
[root@BAIYU_175 drivers]# cd net/0 Q0 O5 R8 F1 F: J( T7 @; g
[root@BAIYU_175 net]# ls5 K; j* S+ b2 C6 E1 @
3c59x.ko cnic.ko ifb.ko netxen r6040.ko tg3.ko
0 K0 B% J) |% j! Y2 n) ?& p$ d3 m8139cp.ko cxgb3 igb niu.ko r8169.ko tlan.ko" ~9 C) w! i1 b: M4 Q) C% ^
8139too.ko cxgb4 igbvf ns83820.ko s2io.ko tulip
* _$ ~3 F" J. q' a4 L6 T8390.ko cxgb4vf ipg.ko pch_gbe sc92031.ko tun.ko
. k7 ~# Q( [/ E7 ~( vacenic.ko dl2k.ko ixgb pcmcia sfc typhoon.ko6 r' O& ?7 j3 G) Q) z/ W0 v! z: Z
amd8111e.ko dnet.ko ixgbe pcnet32.ko sis190.ko usb! K: F7 T. n0 R% \8 S
atl1c dummy.ko ixgbevf phy sis900.ko veth.ko
0 V4 H( H% B5 Fatl1e e1000 jme.ko ppp_async.ko skge.ko via-rhine.ko: F" Y- v& o& G$ M
atlx e1000e macvlan.ko ppp_deflate.ko sky2.ko via-velocity.ko" z/ x+ n9 f: `5 b& ~
b44.ko e100.ko macvtap.ko ppp_generic.ko slhc.ko virtio_net.ko
- P: U$ E3 [- z: k! `2 Kbenet enic mdio.ko ppp_mppe.ko slip.ko vmxnet3
1 K- r: E% ~8 i0 Pbna epic100.ko mii.ko pppoe.ko smsc9420.ko vxge9 T0 |& ^$ u9 K) U1 F
bnx2.ko ethoc.ko mlx4 pppol2tp.ko starfire.ko vxlan.ko$ {0 J. c7 d1 `/ `6 y
bnx2x fealnx.ko mlx5 pppox.ko sundance.ko wan
( D9 V. r# `: _2 Pbonding forcedeth.ko myri10ge ppp_synctty.ko sungem.ko wimax! K+ k' i* L" [
can hyperv natsemi.ko qla3xxx.ko sungem_phy.ko wireless' b" i2 X2 w9 Q. f
cassini.ko i40e ne2k-pci.ko qlcnic sunhme.ko xen-netfront.ko3 u7 S1 J7 e. I4 F
chelsio i40evf netconsole.ko qlge tehuti.ko
8 D( l" B: ^6 T6 `! ?[root@BAIYU_175 net]# modinfo xen-netfront.ko 0 N0 B$ ?$ l6 @1 v) K1 p
filename: xen-netfront.ko8 e) |. c) ]: ~$ b1 i* R
alias: xennet
9 I+ B( H! w# o' x& ^alias: xen:vif0 o n) F5 K" ?$ T" F
license: GPL
+ N( m/ D* F: t( Hdescription: Xen virtual network device frontend+ t% |& {0 n; M# C4 r, m
srcversion: 5C6FC78BC365D9AF81352016 z" q8 `' e! N% {$ ` ]8 S# b
depends: #查看此模块依赖的模块,如果有要一起复制过去
7 j* c$ M% H& Q V! J8 ?! Q+ P) ?vermagic: 2.6.32-573.el6.x86_64 SMP mod_unload modversions
0 u$ ?9 u0 H1 D {6 l[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/l! x" U* S d7 H. ~; q8 `
linuxrc lost+found/ 8 _& w& A2 c! o7 J, H! ]
[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/l
! b+ H( j1 I$ ~% t6 B6 T+ T2 J" Xlinuxrc lost+found/ - [' f- ]& ^3 [) ~# f
[root@BAIYU_175 net]# mkdir -pv /mnt/lib/modules, ?8 P( S* S4 j! f
mkdir: 已创建目录 "/mnt/lib"
* x* y) r. y jmkdir: 已创建目录 "/mnt/lib/modules": W; {4 b( o- Q \' X
[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/lib/modules
; d/ r7 W1 D; Y f1 [ jmkdir: 已创建目录 "/mnt/lib/modules") ~; y; z5 I! u) L, x6 Z( @# ?
[root@BAIYU_175 net]# cp xen-netfront.ko /mnt/lib/modules) q! ]6 t1 d, ]! G# ^' ^
[root@BAIYU_175 net]# umount /mnt
% T1 S' m& b( C# S# d. D& o[root@BAIYU_175 net]# xl create /etc/xen/busybox -c# f/ i; F+ ?4 L' s; K: O# S
/ # insmod /lib/modules/xen-netfront.ko #手动装载驱动程序
( C# j3 \" q/ j" z* YInitialising Xen virtual ethernet driver.+ R( ~( u' M2 o- S
/ # ifconfig
. O% }% }8 a1 V, ]/ # ifconfig -a
# R+ L4 y9 ]" Qeth0 Link encap:Ethernet HWaddr 00:16:3E:50:D3:20
% \$ l1 g; ?5 R+ I# C: m' U' ?6 J BROADCAST MULTICAST MTU:1500 Metric:1' @, A6 ~" u, D2 P8 ~3 s
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
1 s3 G* w' P; [0 ? TX packets:0 errors:0 dropped:0 overruns:0 carrier:04 }0 X! E+ B- H3 F6 z/ X2 |/ d
collisions:0 txqueuelen:1000 $ U" A+ c7 w2 u
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
: d5 M* D; J+ J8 E- w Interrupt:18
; N% X8 {9 |( S9 X3 n! i9 H6 R. X0 u+ D6 w6 Z
lo Link encap:Local Loopback
) X1 ]3 Q- z7 s; z! O, G+ Q3 ]8 A LOOPBACK MTU:65536 Metric:1, G' ?# B9 y' |1 C
RX packets:0 errors:0 dropped:0 overruns:0 frame:05 [; y, B" y$ B; w. ?
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0) Z) k& C( k( @& M- u1 p) y
collisions:0 txqueuelen:0 ) z( U& ]8 j; j1 |' P f0 |3 g4 P
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
% u) V( X: `: A+ H6 r
! y; Y& g" z- H
) ~+ p$ S5 u( ]* N. K8 O2 x此时在Dom0上也可以看到虚拟机网卡的后半段( f9 ?8 o( J1 S" b
% S; v9 Y% n' o* @5 B3 x7 M$ U5 F9 a[root@BAIYU_175 ~]# xl list
! x% C* j* T! pName ID Mem VCPUs State Time(s)
, [4 O# s6 v% PDomain-0 0 1024 2 r----- 78.6
! c' s+ l( c3 K4 j- Panyfish-001 9 256 2 -b---- 3.0
" r; W# \2 V& G3 X' }' Y[root@BAIYU_175 ~]# brctl show1 Y0 F5 z% ?$ D% a) g* L: \
bridge name bridge id STP enabled interfaces
3 k4 ?! H3 p) b2 A; {xenbr0 8000.000c29efbbd4 yes eth0
- X: b% q& a1 S+ A' a" P vif9.0
2 I# ]2 i% ^! {5 c+ y, s[root@BAIYU_175 ~]# ifconfig
Y' p; G9 J8 \+ N' o! Beth0 Link encap:Ethernet HWaddr 00:0C:29:EF:BB:D4
& B) Q! p0 [7 q8 s inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link# {( n/ B' n8 I. }
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1) G- x# S/ b, U5 k: O
RX packets:20797 errors:0 dropped:0 overruns:0 frame:07 Q+ y! P" \, _6 n4 G( | x2 w
TX packets:563 errors:0 dropped:0 overruns:0 carrier:0+ e* g! t( }1 W: R, d" K: ?
collisions:0 txqueuelen:1000
. g0 Q) B- z; j' T: [ RX bytes:1332243 (1.2 MiB) TX bytes:62352 (60.8 KiB)& [! m, _3 b, f0 k: D: z
; U. M; O- c9 A
eth1 Link encap:Ethernet HWaddr 00:0C:29:EF:BB:DE ; o5 m e2 D+ P6 i# e
inet addr:172.16.11.199 Bcast:172.16.11.255 Mask:255.255.255.0
) Q& p' b7 p7 L' c$ b F& }$ P! J! C inet6 addr: fe80::20c:29ff:feef:bbde/64 Scope:Link
t/ O& Z) d; D9 z UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1, F1 q# A# r5 f" _
RX packets:26507 errors:0 dropped:0 overruns:0 frame:0
" T. r+ n/ U4 O5 R$ A V3 S/ x TX packets:3142 errors:0 dropped:0 overruns:0 carrier:0
5 b7 n5 H5 m4 D% b' U- c collisions:0 txqueuelen:1000 9 t+ v7 F9 u$ k( `
RX bytes:2899642 (2.7 MiB) TX bytes:457705 (446.9 KiB)
: O! m& K7 \9 d! r8 n% x3 X( l8 s9 m+ x. d% n; Q: a8 l8 v% {
lo Link encap:Local Loopback - |4 \9 X4 d) _* R
inet addr:127.0.0.1 Mask:255.0.0.00 S3 ?5 h- ~# \/ d7 J' z
inet6 addr: ::1/128 Scope:Host
* j4 ~& S& E+ g: P" ^* D% G7 } UP LOOPBACK RUNNING MTU:65536 Metric:1
6 ^0 L+ W* f% q( B4 e1 j RX packets:0 errors:0 dropped:0 overruns:0 frame:0: F$ ~. z# Y }4 w" a
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0$ {# }! h; A# V; y3 _! a2 x% v
collisions:0 txqueuelen:0 9 U% U( x: j* U$ u$ N, Z7 e- Q& a
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)+ V, Z) M( I# @1 Q, k( Z0 E6 n. O
6 m: {3 B+ I$ ?; V0 d; Rvif9.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF #9是虚拟机的ID号,.0表示第一块网卡$ n8 X6 w5 Z" F; i1 d- S5 z
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link8 u0 G5 \( h: d
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1& ]8 e; f: f. E+ c
RX packets:0 errors:0 dropped:0 overruns:0 frame:0. W' ^, Q9 k) u& V$ E: Q- j
TX packets:46 errors:0 dropped:0 overruns:0 carrier:0* Z0 K4 W: B. A( s6 A3 I( q
collisions:0 txqueuelen:32 / Q# t+ d& ]* {6 h* b ? y0 u8 S( @
RX bytes:0 (0.0 b) TX bytes:2548 (2.4 KiB)
$ ]! K, a! O2 M! A. m6 W# B, k* B K* F. V* F s" f
xenbr0 Link encap:Ethernet HWaddr 00:0C:29:EF:BB:D4 : n$ [8 `: o" t# `5 [5 C' i }4 O
inet addr:192.168.100.175 Bcast:192.168.100.255 Mask:255.255.255.0
5 ~. j! D3 b y; J& c& H/ N6 T8 f inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link
* f5 Y3 j. z; @; i8 F UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1( N0 F2 u P" b1 O' R
RX packets:727 errors:0 dropped:0 overruns:0 frame:0
" n# U! i0 f2 `2 F7 R$ y7 e8 ^, p1 } TX packets:292 errors:0 dropped:0 overruns:0 carrier:0
4 j; V$ C3 R8 t collisions:0 txqueuelen:0
5 d" W% r" ^9 R! y$ u RX bytes:55541 (54.2 KiB) TX bytes:18796 (18.3 KiB)2 m" J( H( L# t3 _
" z3 X/ K' K1 x4 F
#DomU上,, r# Q1 }3 ]1 z; k- |
/ # ping 192.168.100.180- [ L7 p3 _1 }! D% j! |7 P5 V
PING 192.168.100.180 (192.168.100.180): 56 data bytes
, O* G( ?! c2 G) Jping: sendto: Network is unreachable
8 I" w4 j8 P/ ]+ P! C/ V; q/ # ifconfig eth0 192.168.100.1810 \& f* U! \) R1 }% E
/ # ping 192.168.100.1805 e1 ]/ v1 Q) r6 L/ {+ b
PING 192.168.100.180 (192.168.100.180): 56 data bytes# n2 T8 ^+ e( p- J1 X$ U/ e9 I
64 bytes from 192.168.100.180: seq=0 ttl=64 time=16.589 ms
9 I, s: h+ d* x: F( [64 bytes from 192.168.100.180: seq=1 ttl=64 time=0.912 ms
' w2 H7 C" j" W$ }" I4 {
1 U; p6 V' T+ w8 @& V0 q6 b7 T8 g3 ]$ F1 X
上面这种方式创建的网卡是桥接,那我们怎么创建一个虚拟通道呢(相当于VMware Workstation网卡设置中的VMnet1,...VMnet19)?
& T+ a& S6 \3 q; I5 u% a) m6 x" l! L0 q) n2 M
[root@BAIYU_175 ~]# xl list
5 G( L1 o1 E& P! u; sName ID Mem VCPUs State Time(s)
* q( |9 R. ]# [' SDomain-0 0 1024 2 r----- 100.7
4 _; a- |( ^2 D0 @) r) j2 C# L. \anyfish-001 9 256 2 -b---- 12.5" y- u2 R5 r$ m8 O" T+ |5 R1 E9 n
[root@BAIYU_175 ~]# xl destroy anyfish-001 #立即终止域,相当于拔电源
8 c7 j2 [0 |( w0 X[root@BAIYU_175 ~]# xl list$ M7 _0 k! X2 U: B7 _+ p$ q
Name ID Mem VCPUs State Time(s)4 L& ?' E7 L" @3 D
Domain-0 0 1024 2 r----- 101.4
" u3 b5 z4 M. {+ `8 J[root@BAIYU_175 ~]# cp /p_w_picpaths/xen/busybox.img /p_w_picpaths/xen/busybox2.img
! w- R6 T3 n# [/ |, ~! _[root@BAIYU_175 ~]# ls /etc/xen/
4 q( ?- b) L- k; d/ P* X: |) i& Wauto busybox.orig scripts vm2.orig xlexample.hvm
7 C6 [3 J S5 Nbusybox cpupool vm2 xl.conf xlexample.pvlinux
0 B/ e4 m, q# [6 q[root@BAIYU_175 ~]# brctl add xenbr1
) b$ O6 b+ N$ t* v1 e[root@BAIYU_175 ~]# ifconfig xenbr1 up1 E, z6 x& ^; }: u k4 d* e! I$ H" F
[root@BAIYU_175 ~]# ifconfig" i/ \9 z+ k- a8 ~8 \' l1 H; {
eth0 Link encap:Ethernet HWaddr 00:0C:29:EF:BB:D4
- Z8 T& u2 Q& U2 n2 F inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link
/ ^/ r) X' N6 w0 F+ [ UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 l9 ^0 v }. ~1 H
RX packets:30305 errors:0 dropped:0 overruns:0 frame:06 ?4 j" ?: y0 v
TX packets:4219 errors:0 dropped:0 overruns:0 carrier:0, n0 ^, X3 ]' g6 E. O: t6 Q
collisions:0 txqueuelen:1000 , h4 |7 q: O: b' O" w- y8 ?
RX bytes:2008392 (1.9 MiB) TX bytes:387507 (378.4 KiB)6 s$ Q+ A4 O# }- {! n
u* h9 m0 B5 z5 L1 c* leth1 Link encap:Ethernet HWaddr 00:0C:29:EF:BB:DE ! ~: _9 P: V: s0 d5 V. M
inet addr:172.16.11.199 Bcast:172.16.11.255 Mask:255.255.255.04 E$ p9 h# T W3 W% b$ Y
inet6 addr: fe80::20c:29ff:feef:bbde/64 Scope:Link! n6 G% `' ^2 c/ m, O1 p+ B
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:14 C" J& Z8 R* U' R$ w' p
RX packets:34311 errors:0 dropped:0 overruns:0 frame:0
/ @; V/ k5 c; A9 B+ _$ D TX packets:3552 errors:0 dropped:0 overruns:0 carrier:04 E; l. A2 U6 m, c
collisions:0 txqueuelen:1000
" c# }3 p3 G. ]* T( {# q RX bytes:3744076 (3.5 MiB) TX bytes:501793 (490.0 KiB)
8 |6 s" y' g& @3 W* U w4 H3 i! S! _* G
lo Link encap:Local Loopback
' `1 j; n% s( `6 \4 O inet addr:127.0.0.1 Mask:255.0.0.06 u, b! @: i+ n: z% Z- \- t4 w4 _
inet6 addr: ::1/128 Scope:Host
0 l: |) ? A+ y. k. _ UP LOOPBACK RUNNING MTU:65536 Metric:1
% v! r1 l L0 Q* [ RX packets:0 errors:0 dropped:0 overruns:0 frame:0& r, }. `; \% M$ M, q
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
7 R" h) Y; w# l0 L7 s2 E collisions:0 txqueuelen:0
8 \7 F7 W9 I4 | RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
, b0 T( x+ f n5 j5 [6 G6 x! k# S# B% w7 k; |; k
xenbr0 Link encap:Ethernet HWaddr 00:0C:29:EF:BB:D4
" T/ y4 M, l& D U) o2 I' I inet addr:192.168.100.175 Bcast:192.168.100.255 Mask:255.255.255.04 E% o& O6 e. l: u3 b7 W- i: W
inet6 addr: fe80::20c:29ff:feef:bbd4/64 Scope:Link
* p* G& w- f/ T' o UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
. a. N# ~& m9 u4 Z RX packets:2656 errors:0 dropped:0 overruns:0 frame:03 A8 M# G' X* R3 \/ Z; F( t
TX packets:994 errors:0 dropped:0 overruns:0 carrier:0
/ k, ^2 Z9 m. P+ c7 i% d$ { collisions:0 txqueuelen:0 : G) u0 x3 ^2 A6 E1 Q
RX bytes:163430 (159.5 KiB) TX bytes:111633 (109.0 KiB)( @& e% s: B* Y. V' l, P
; C# S M3 ]: d" n! \
xenbr1 Link encap:Ethernet HWaddr 42:5B:43:45:2B:D2
1 ~. p j1 m1 _' Q" c" ?/ O4 @ inet6 addr: fe80::405b:43ff:fe45:2bd2/64 Scope:Link
: |3 H' K1 u3 V6 u7 C% a: z4 q' ~ UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1/ R/ |& a! n: }/ J
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
3 _% y" A$ {8 X# `" h TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 L) q; |1 r/ U: ]) B: ]/ R) L) o
collisions:0 txqueuelen:0
9 M1 J, X. V7 g v# _ [ RX bytes:0 (0.0 b) TX bytes:168 (168.0 b)
9 a2 D; L" L: a& x" D
- \. t' f9 t, a" J7 Q) D[root@BAIYU_175 ~]# cp /etc/xen/busybox /etc/xen/busybox2% p9 B% B* ~& [
[root@BAIYU_175 xen]# vi busybox: |+ ]% F. C8 E. D$ A; Z' d; e
[root@BAIYU_175 xen]# grep -v '^#\|^$' busybox
; k1 }" r) k0 t: h0 |! ]* F3 Xname = "anyfish-001", {8 t, Z$ l R' }& `( K1 k# J
kernel = "/boot/vmlinuz"
3 u6 ]4 T) }6 Eramdisk = "/boot/initramfs.img"
2 v3 L1 `* J- q4 c# J4 Nextra = "selinux=0 init=/bin/sh"7 R6 R8 W% V2 X) U
memory = 256
: ~7 J) s8 v/ x; d( G; Z, zvcpus = 2
& u5 ^+ p% O4 W7 S& }4 vvif = [ 'bridge=xenbr1' ]
1 p$ R1 M; a' t: {- {disk = [ '/p_w_picpaths/xen/busybox.img,raw,xvda,rw' ]6 a* T8 J, ? l0 \* ~
root = "/dev/xvda ro"
* _* Z% J- @9 y! s6 Y[root@BAIYU_175 xen]# vi busybox2
. Y% i) N- m/ {3 ]0 a: d: W[root@BAIYU_175 xen]# grep -v '^#\|^$' busybox2
1 q. I8 f% h0 m$ B4 Rname = "anyfish-002"2 t3 O" p; @* O: b% y/ V
kernel = "/boot/vmlinuz". S5 \% e, ?* p; |9 J
ramdisk = "/boot/initramfs.img"
" A+ z" g+ G/ W0 C) ?7 I3 @extra = "selinux=0 init=/bin/sh"4 p2 K. I9 u! l+ @7 U4 L
memory = 256
" X; d( K z# I0 D( Qvcpus = 22 i9 p6 x A) Y( s; p8 T X4 V7 B
vif = [ 'bridge=xenbr1' ]
' T. [ X" p, sdisk = [ '/p_w_picpaths/xen/busybox2.img,raw,xvda,rw' ]
; [0 \/ d0 h2 ]& K1 _ I. xroot = "/dev/xvda ro"
! M$ z0 ~* g+ _3 [' U[root@BAIYU_175 xen]# xl create /etc/xen/busybox$ E% K0 K1 [# U
Parsing config from /etc/xen/busybox
+ t4 A) J. {) ]( s[root@BAIYU_175 xen]# xl create /etc/xen/busybox2
6 n2 ]0 L8 w# O6 GParsing config from /etc/xen/busybox2
1 [4 a& U Q* w9 i; J[root@BAIYU_175 xen]# xl list1 m2 q t8 P9 G: s
Name ID Mem VCPUs State Time(s), E+ o* P% k. k6 {
Domain-0 0 1024 2 r----- 112.8
; ~9 j9 W, b, u: N3 o- j) r3 uanyfish-001 10 256 2 -b---- 1.2
8 U. x# C. z' yanyfish-002 12 256 2 -b---- 1.2 0 y4 \9 I1 u4 x0 u8 b U0 j$ E1 o
; {0 \% o! p! e# M9 D
[root@BAIYU_175 xen]# xl console anyfish-001
+ ~; C- F' z( c+ j% c, [# ifconfig -a
6 i/ F' Q# m' b: V; G0 S4 Glo Link encap:Local Loopback 7 j5 k; @) b6 p# g4 G3 r" n4 Z: t
LOOPBACK MTU:65536 Metric:1
; c1 I5 t( ?+ J$ y RX packets:0 errors:0 dropped:0 overruns:0 frame:0* D( Q% T; }) Z9 p0 I+ F
TX packets:0 errors:0 dropped:0 overruns:0 carrier:06 H* M( A# n$ W2 y: W+ Q
collisions:0 txqueuelen:0
1 E. Q. t3 x; j5 k% p0 p6 X8 h RX bytes:0 (0.0 B) TX bytes:0 (0.0 B): W4 w. Z; ?+ I( \7 D, X
6 A, `5 Q$ ?2 G9 C6 M, c/ # insmod /lib/modules/xen-netfront.ko + v( ]! {* b8 y9 @
Initialising Xen virtual ethernet driver.8 v' x+ I1 p: ]6 S
/ # ifconfig -a
1 \$ N( x4 X, @! `eth0 Link encap:Ethernet HWaddr 00:16:3E:7C:8B:F0
" Y C( \0 T% e) U% I BROADCAST MULTICAST MTU:1500 Metric:1' z& n1 H, W i4 d! n9 x4 {4 `) p
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
! x. T) [8 m9 A' w" ]. ^7 j/ f- P1 U/ @ TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
. M5 L% @4 U+ b) M# I collisions:0 txqueuelen:1000 0 ^) i7 Z! B0 s8 y
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- b% t D% S& } Interrupt:18 2 H) o) G+ U0 Y; v1 F# r2 v* {
" z( Z) \$ R: g# S; f6 _/ tlo Link encap:Local Loopback
5 n$ S4 L; T3 x8 @8 [ LOOPBACK MTU:65536 Metric:1% L3 y- S# } j/ g9 j% B
RX packets:0 errors:0 dropped:0 overruns:0 frame:0$ h. v" _4 Q" D" [
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
1 Z: ]/ ]9 J3 `9 y( ?8 p6 ] collisions:0 txqueuelen:0
$ T7 ^5 z& `5 \/ [) F# T$ A+ } RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)8 X* A% _ O9 t$ X" M
+ c, ?* l& \7 T. c8 H
/ # ifconfig eth0 192.168.100.181 up U" R. \* K+ N
/ # ifconfig
: `! P' n- n- Y, o0 L0 Teth0 Link encap:Ethernet HWaddr 00:16:3E:7C:8B:F0
2 s! b: m f5 D# x" y inet addr:192.168.100.181 Bcast:192.168.100.255 Mask:255.255.255.0
. V% F4 Y+ X9 D5 s2 h UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:10 s: @, s' l$ l2 {
RX packets:6 errors:0 dropped:0 overruns:0 frame:0" o1 @2 u) c! P% T+ E/ B4 |6 t
TX packets:0 errors:0 dropped:0 overruns:0 carrier:07 K# R9 [+ h7 h* R6 h/ p
collisions:0 txqueuelen:1000 / F; A8 F. f2 c1 C; o
RX bytes:384 (384.0 B) TX bytes:0 (0.0 B)$ ]1 l* y% J- P; m; ?% R9 _
Interrupt:18
3 U+ I& ]7 O2 h9 \
1 b# y- e8 Y9 O3 E( s/ # ifconfig -a" c- S4 |- W. ^6 x$ w
eth0 Link encap:Ethernet HWaddr 00:16:3E:7C:8B:F0
, u( y1 U0 [# K/ ?# F: ^+ I( |, N inet addr:192.168.100.181 Bcast:192.168.100.255 Mask:255.255.255.00 v9 c1 |$ T8 `+ r: r$ S) \6 v
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1+ c2 R; K- I; A0 C0 m7 l8 m
RX packets:6 errors:0 dropped:0 overruns:0 frame:0. V( V$ @4 u7 d' I: ]( o; x
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0$ \) w1 Z8 X& Y- q7 U3 z/ a3 d
collisions:0 txqueuelen:1000
, i m2 s: q# S9 i# g! b9 g: s RX bytes:384 (384.0 B) TX bytes:0 (0.0 B)
* |2 `! w4 u! A6 _# }2 i Interrupt:18 + I) J9 }, ]8 H2 k
# J* W# U% q4 D4 ]6 D
lo Link encap:Local Loopback
" k* c: u6 r+ S! G, s/ N LOOPBACK MTU:65536 Metric:1
+ a( C: f' F& h) F8 G6 H RX packets:0 errors:0 dropped:0 overruns:0 frame:0
5 o4 z- J4 s' f D' |7 N7 `6 `( R TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
# t; ~9 A2 N" a9 c' s% n N collisions:0 txqueuelen:0
3 P, e% N$ @9 R. M$ K RX bytes:0 (0.0 B) TX bytes:0 (0.0 B). |: W+ U* n+ m( b) | O% o
$ i, Y4 O) O1 u
/ # ifconfig1 R( B5 [3 c) A& }+ f
eth0 Link encap:Ethernet HWaddr 00:16:3E:7C:8B:F0
F2 }; A% D. ~. J3 J inet addr:192.168.100.181 Bcast:192.168.100.255 Mask:255.255.255.02 E6 Z. @9 z6 ]* A# I0 x# U
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:17 \7 J7 v/ `6 M7 @! Q
RX packets:6 errors:0 dropped:0 overruns:0 frame:0
! ?+ r, d8 s8 y2 _' U; A TX packets:0 errors:0 dropped:0 overruns:0 carrier:0) Z% ^9 _% Y+ A; Q9 l: ? d
collisions:0 txqueuelen:1000
2 J. @! ~! L0 ~ RX bytes:384 (384.0 B) TX bytes:0 (0.0 B)
' ?: ?4 p9 U ^' R5 F( b Interrupt:18
# e1 U& b( I/ a, e5 |9 e+ @1 M$ _
[root@BAIYU_175 ~]# xl console anyfish-002 ' [* ^* G! ~7 q4 \9 K8 s& w+ ^
/ # insmod /lib/modules/xen-netfront.ko
0 q, H- r/ {1 L; vInitialising Xen virtual ethernet driver.. e1 h* ^7 k/ t& ^$ O( t" l& n
/ # ifcofnig eth0 192.168.100.182) `; N9 Q3 s2 g5 {8 v
/bin/sh: ifcofnig: not found
- z1 n5 s7 K$ X8 q/ # ifconfig eth0 192.168.100.182 up( d1 W4 |) P2 o y
/ # ping 192.168.100.1818 ~& z* l/ h. u& H. Q8 U
PING 192.168.100.181 (192.168.100.181): 56 data bytes* G1 e F' s2 X
64 bytes from 192.168.100.181: seq=0 ttl=64 time=3.144 ms
, @% k# B. w: b7 M! c# ]1 R+ {6 L6 e64 bytes from 192.168.100.181: seq=1 ttl=64 time=0.567 ms
! y( s5 x4 C! ?. n
2 }+ [2 Y) H! m+ l: B! D3 W% M此时虚拟通道创建完成,虚拟机之间可以互相通信,而虚拟机不能和物理机及外界通信
) |$ {/ v" I& w+ D9 b* t& T- X2 O1 g8 n4 t5 l
" p; f3 A/ v3 u |
|