CentOS5.6下安装配置XEN虚拟机

简介:

使用背景:
最近做项目测试,每项业务需要运行独立的环境中,手头又无多余的服务器,决定在现有一台HP DL380G6的服务器上创建几个虚拟机以满足项目测试的需求

Xen的半虚拟化:
Xen通过一种叫做半虚拟化的技术获得高效能的表现(较少的效能损失,典型的情况下大约损失 2%,在最糟的情况下会有 8% 的效能耗损;与其它使用完全的虚拟化却造成最高到 20% 损耗的其他解决方案形成一个明显的对比),甚至在某些与传统虚拟技术极度不友好的架构上(x86),Xen也有极佳的表现。与那些传统透过软件模拟实现硬件的虚拟机不同,在3.0版本及在Intel VT-X支援前的Xen需要让客座作业系统(guest operating systems)与Xen API进行连接。到目前为止,这样连结已经可以运用在NetBSD,GNU/Linux,FreeBSD和贝尔实验室的Plan 9系统上。在Brainshare 2005会议上,Novell展示了NetWare与 Xen的连通。与Windows XP连通的技术曾在Xen开发初期进行,但微软的协议未能允许它发布。Sun微系统公司也正积极研究Solaris与Xen的连结,使其能在Xen平台上运作。

Xen的完全虚拟化:
Intel对Xen贡献修改以支持其VT-X 架构扩展,而AMD则修改以支持其AMD-V架构扩展。如系统处理器支持虚拟硬件扩展(Intel和AMD对本地支持虚拟化的扩展),这项技术将允许未修改的客操作系统运行在Xen虚拟机中。事实上,那意味着性能的提升,并且你可以在没有进行任何协议不允许的修改的情况下对Windows进行虚拟。

虚拟机的迁移:
Xen虚拟机可以在不停止的情况下在多个物理主机之间即时迁移(live migration)。在操作过程中,虚拟机在没有停止工作的情况下内存被反复的复制到目标机器。虚拟机在最终目的地开始执行之前,会有一次60-300毫秒的非常短暂的暂停以执行最终的同步化,给人无缝迁移的感觉。类似的技术被用来暂停一台正在运行的虚拟机到磁盘,并切换到另外一台,第一台虚拟机在以后可以恢复。

系统平台支持:
Xen目前可以运行在x86及x86-64系统上,并正在向IA64、PPC移植。移植到其他平台从技术上是可行的,未来有可能会实现


#服务器信息
HP DL380 G6

#系统环境
CentOS 5.6 64位

#组件安装
Base
Development Libraries
Development Tools
Editors
Text-based Internet

#update yum
cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.bak
cat >>/etc/yum.repos.d/CentOS-Base.repo<<EOF
[base]
name=CentOS-$releasever - Base
baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#released updates 
[updates]
name=CentOS-$releasever - Updates
baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
baseurl=http://centos.ustc.edu.cn/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-5
EOF

#set ntp
yum -y install ntp
echo "* 3 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1" >> /etc/crontab
service crond restart

#set ulimit
echo "ulimit -SHn 65535" >> /etc/rc.local

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

#安装支持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

#修改默认以支持xen的内核启动
vi /boot/grud/grub.conf
default=0

#重启系统
reboot

#检查内核
uname -r
2.6.18-238.9.1.el5xen

#查看xen是否启动

#============================= 安装xen虚拟机 ==========================

#制作安装源
#挂载系统光盘
mkdir -p /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

#安装httpd
yum -y install httpd

#修改httpd默认目录
vi /etc/httpd/conf/httpd.conf
将DocumentRoot "/var/www/html"修改为DocumentRoot "/mnt/cdrom"
将<Directory "/var/www/html">修改为<Directory "/mnt/cdrom">
sed -i 's#DocumentRoot "/var/www/html"#DocumentRoot "/mnt/cdrom"#' /etc/httpd/conf/httpd.conf
sed -i 's#<Directory "/var/www/html">#<Directory "/mnt/cdrom">#' /etc/httpd/conf/httpd.conf

#重启httpd
service httpd restart

#制作客户机主要磁盘
mkdir -p /data/vm
dd if=/dev/zero of=/data/vm/web_001.img bs=2k seek=4096k count=1

#制作客户机交换磁盘
#dd if=/dev/zero of=/data/vm/swap.img bs=2k seek=512k count=1

virt-install -n web_001 -r 512 --vcpus=1 --nographic -f /data/vm/web_001.img  -l http://192.168.9.220 -x "ip=192.168.9.221 netmask=255.255.255.0 gateway=192.168.9.1"

# -n :后面接虚拟机名称,配置 /etc/xen 底下
# -r :后面接分配的内存大小,至少需要 256MB 才能夠執行
# --vcpus : 分配多少个cpu
# -f :后面接新建的磁盘文件!
# --nographics :不使用图形化安装;
# -p : 半虚拟化
# -s : 虚拟机的硬盘空间
# -l :后面接安装源。写法为:
#   NFS :   nfs:主机IP:目录
#   WWW :   http://主机IP/目录
#   FTP :   ftp://主机IP/目录

#然后根据系统提示安装系统,使用文本模式安装,安装过程跟真实机一样,虚拟机的配置文件存放在 /etc/xen 下面


#安装完成后,查看真实机上的虚拟机列表
xm list

#附相关操作命令:
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
 
#真实机开机如何自动启动虚拟机
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

#查看虚拟机列表及各虚拟机网络测试
xm list



本文转自king_819 51CTO博客,原文链接:http://blog.51cto.com/kerry/559899,如需转载请自行联系原作者

相关文章
|
5月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
2219 3
|
9月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
894 87
|
7月前
|
编解码 网络协议 网络安全
OpenWrt x86 虚拟机VMware ESXi安装
OpenWrt x86 虚拟机VMware ESXi安装
|
11月前
|
缓存 Linux 调度
【YashanDB数据库】VMware虚拟机使用默认安装,在掉电之后数据库无法启动
VMware虚拟机使用默认安装,在掉电之后数据库无法启动
|
11月前
|
IDE 测试技术 数据库
【YashanDB知识库】使用vmware虚拟机安装的YashanDB,本机无法访问
在 VMware 虚拟机中安装并测试 YashanDB,数据库及虚拟机运行正常,但本地 IDE 工具无法连接虚拟机中的数据库。问题可能与 VMware 网络适配器配置或网络模式(如 NAT、桥接)有关,导致网络通信异常。需检查虚拟机网络设置、IP 地址配置以及防火墙规则,确保本地与虚拟机间网络连通性。目前无明确修复版本。
|
7月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
225 16
|
7月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
596 9
|
9月前
|
人工智能 安全 虚拟化
企业级Win11纯净部署指南|VMware虚拟机安装+GPT分区优化+绕过限制详解(小白必看)
Windows 11 是微软推出的新一代操作系统,以其直观交互和 AI 技术为核心升级亮点。界面采用圆角设计与居中任务栏布局,支持多窗口贴靠分屏、虚拟桌面功能,大幅提升多任务处理效率。系统深度集成了 Copilot 智能助手,提供语音写作、照片编辑等便捷功能,并通过 DirectStorage 和 DirectX 12 Ultimate 技术优化游戏体验。本文详细介绍 Windows 11 的下载、U盘制作及安装步骤,帮助用户快速上手全新系统。
1427 37
|
9月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
2014 29