CentOS5.6下安装XEN虚拟机

   关于虚拟化方面的东西,公司用的是esxi5.x,今天休息,了解一下XEN方面的知识,先虚拟一个系统出来,

前提是你的机器要支持虚拟化,如何看呢,用下面命令:

如果看到输出中有 pae,那么cpu就支持半虚拟化,如果输出中同时有pae和vmx/svm(注:vmx为intel,svm为amd),那么cpu支持全虚拟化

cat /proc/cpuinfo |egrep '(flags|vmx)'

[root@localhost ~]# cat /proc/cpuinfo |egrep '(flags|vmx)'

flags           : fpu tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc pni vmx ssse3 cx16 sse4_1 lahf_lm

flags           : fpu tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc pni vmx ssse3 cx16 sse4_1 lahf_lm

flags           : fpu tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc pni vmx ssse3 cx16 sse4_1 lahf_lm

flags           : fpu tsc msr pae cx8 apic mtrr cmov pat clflush mmx fxsr sse sse2 ss syscall nx lm constant_tsc pni vmx ssse3 cx16 sse4_1 lahf_lm 

1.#安装支持Xen的Linux内核和 Xen

yum -y install xen kernel-xen xen-lib virt-manager python-virtinst

kernel-xen:修改的 Linux 核心,使可以跑 Xen 的环境 

xen:主要的 xen 套件,包括配置文件、启动脚本和一些函数库 

xen-libs:Xen 所需要的函数库 

python-virtinst:提供终端安装的软件 

virt-manager:用于图形界面管理xen

2.#修改默认以支持xen的内核启动

vi /boot/grud/grub.conf

default=0

3.#重启系统

reboot

4.#检查内核

uname -r

2.6.18-238.9.1.el5xen

5.#查看xen是否启动

[root@localhost ~]# xm list

Name                                      ID Mem(MiB) VCPUs State   Time(s)

Domain-0                                   0     3470     4 r-----     70.0

web_001                                    1      512     1 -b----  

 123.1

6.#制作客户机主要磁盘

mkdir -p /data/vm

dd if=/dev/zero of=/data/vm/CentOS_001.img bs=2k seek=4096k count=1

7.#制作客户机交换磁盘

#dd if=/dev/zero of=/data/vm/swap.img bs=2k seek=512k count=1

 

参数说明:

if 文件输入位置

of 创建磁盘文件

bs 设置磁盘大小

seek 描述 bs 每一块的单位

count 复制的块数

 

8.virt-install -n Centos_001 -r 512 --vcpus=1 --nographic -f /data/vm/web_001.img  -l http://10.20.220.22/centos 

# -n :后面接虚拟机名称,配置 /etc/xen 底下

# -r :后面接分配的内存大小,至少需要 256MB 才能��绦�

# --vcpus : 分配多少个cpu

# -f :后面接新建的磁盘文件!

# --nographics :不使用图形化安装;

# -p : 半虚拟化

# -s : 虚拟机的硬盘空间

# -l :后面接安装源。写法为:

#   NFS :   nfs:主机IP:目录

#   WWW :   http://主机IP/目录

#   FTP :   ftp://主机IP/目录

 

下面就和给真机安装系统一样样的了

 

 

#附相关操作命令:

ls /etc/xen           #xen配置文件目录

xm list               #查看各个域状态

xm shutdown web_001   #关闭web_001这个虚拟机

xm console web_001    连接web_001控制台,连接到虚拟机上面可以用组合键  ctrl + ] 键切换到物理机

#如果配置了IP,可以用ssh -l username IP 来连接

xm create web_001     启动web_001

#真实机开机如何自动启动虚拟机

chkconfig --add xendomains

ln -s /etc/xen/web_001 /etc/xen/auto/web_001 

#也可以直接把配置文件拷贝到/etc/xen/auto/

cp -r /etc/xen/web_001 /etc/xen/auto/

               

XM命令:

    xm create vm1 #其中vm1 为虚拟机的配置文件,位于/etc/xen/vm/vm1

    xm create -c vm1 #如果需要启动控制台,则可以运行命令

    xm list #可以列出所有的虚拟机

    xm console <domid> #可以显示某虚拟机的控制台

    xm reboot|shutdown <domid> #可以重起和关闭id 为domid 的虚拟机

    xm destroy <domid> #可以销毁id 为domid 的虚拟机

    xm console fc5 #从终端或控制台登录正在运行的虚拟操作系统

    xm save <DomId> <File> # 存储正在运行的虚拟操作系统的状态

    xm restore <File> # 唤醒虚拟操作系统

    xm pause <DomId> #停止正在运行的虚拟操作系统

    xm unpause <DomId> #激活停止的虚拟操作系统

    xm mem-set <DomId> <Mem> #调整虚拟平台/虚拟操作系统的占用内存

    xm shutdown 虚拟操作系统的Name或DomID #关闭被虚拟的系统

    xm destroy <DomId> #立即停止虚拟的系统 (重要);

    xm vcpu-set <DomId> <VCPUs> #调整虚拟平台及虚拟操作系统的虚拟CPU个数

    xm top 或 xentop # 查看虚拟系统运行的状态

    xm save VM1 VM1.chk # stop the domain and save its current state into a file called VM1.chk

    xm restore VM1.chk #resume execution of this domain

#如果觉得手动安装虚拟机比较麻烦,可以手动到 http://stacklet.com/去下载已经装好的镜像文件

#===============================  XEN虚拟机复制  ============

#关闭运行中的虚拟机

xm shutdown web_001

#复制虚拟机的镜像文件和配置文件

cp /data/vm/web_001.img /data/vm/web_002.img

cp /etc/xen/web_001 /etc/xen/web_002

#修改新复制虚拟机的配置文件

vi /etc/xen/web_002

#原内容为:

name = "web_001"

uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fa"

maxmem = 512

memory = 512

vcpus = 1

bootloader = "/usr/bin/pygrub"

on_poweroff = "destroy"

on_reboot = "restart"

on_crash = "restart"

disk = [ "tap:aio:/data/vm/web_001.img,xvda,w" ]

vif = [ "mac=00:16:36:64:98:f1,bridge=xenbr0,script=vif-bridge" ]

#修改后的内容为:

name = "web_002"

uuid = "21e3bccf-4778-747e-c3b7-a87cadfa29fd"

maxmem = 512

memory = 512

vcpus = 1

bootloader = "/usr/bin/pygrub"

on_poweroff = "destroy"

on_reboot = "restart"

on_crash = "restart"

disk = [ "tap:aio:/data/vm/web_002.img,xvda,w" ]

vif = [ "mac=00:16:36:64:98:f5,bridge=xenbr0,script=vif-bridge" ]

#保证name、uuid、mac的唯一性,还有就是disk路径

#启动并进入新复制的虚拟机

xm create -c web_002

#修改主机名

vi /etc/hosts

将web_001修改为web_002

vi /etc/sysconfig/network

将web_001修改为web_002

#修改IP

vi /etc/sysconfig/network-scripts/ifcfg-eth0

# Xen Virtual Ethernet

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.9.255

HWADDR=00:16:36:64:98:f5

IPADDR=192.168.9.222

NETMASK=255.255.255.0

NETWORK=192.168.9.0

ONBOOT=yes

 

 

xendomains服务器的启动/停止/重启/状态查询命令:

一般的情况下,xend服务器启动了,xenweb_0s也会自动启动。

# /etc/init.d/xend start 启动xend

# /etc/init.d/xend stop 停止xend

# /etc/init.d/xend restart 重启xend

# /etc/init.d/xend status 查看xend状态

# /etc/init.d/xendomains start 启动xenweb_0s

# /etc/init.d/xendomains stop 停止xenweb_0s

# /etc/init.d/xendomains restart 重启xenweb_0s

# /etc/init.d/xendomains status 查看xenweb_0s状态

XEN控制虚拟主机的常用命令:

虚拟主机列表

# xm list

关闭虚拟主机,web_001为虚拟主机名,也可用id代替

# xm shutdown web_001

启动一个虚拟主机,web_001为虚拟主机名

# xm create web_001

通过-c 参数调用 console 启动并跟踪虚拟主机状态

# xm create web_001 -c

显示虚拟机的控制台

# xm console web_001

重起虚拟机

# xm reboot web_001

销毁并立即停止虚拟机,类似关掉电源一样关机

# xm destroy web_001

存储正在运行的虚拟作系统的状态

# xm save web_001 <File>

唤醒虚拟操作系统

# xm restore <File>

暂停正在运行的虚拟操作系统

# xm pause web_001

激活停止的虚拟操作系统

# xm unpause web_001

调整虚拟平台/虚拟操作系统的占用内存

# xm mem-set web_001  128

调整虚拟平台及虚拟操作系统的虚拟CPU个数

# xm vcpu-set web_001 2

查看虚拟系统运行的状态

# xm top

# xentop

常见错误描述及解决办法

通过http或NFS安装客户机操作系统出现 Unable to retrieve 错误:....

多数原因是防火墙造成的,如果使用http安装方式时可以先停止防火墙,也可以采用以下方式解决

通过/etc/init.d/iptables status命令查询是否有打开80端口

或通过 sudo netstat -antup  命令查看网络端口状态

修改vi /etc/sysconfig/iptables添加以下代码开放80端口:

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

执行 /etc/init.d/iptables restart 激活操作

出现类似下面的错误:

POST operation failed: xend_post: error from xen daemon: (xend.err 'Error creating web_0: I need 262144 KiB, but dom0_min_mem is 262144 and shrinking to 262144 KiB would leave only 244672 KiB free.')

说明新增的虚拟主机内存设置过高了,需要调小些

 

 

你可能感兴趣的:(虚拟机,安装,centos,xen,centos5.6)