找回密码
 注册
查看: 520|回复: 0

xen 安装过程介绍

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-3-13 15:33:59 | 显示全部楼层 |阅读模式
一、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( ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:23 , Processed in 0.023778 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表