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