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