热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS5.X系统安装xen虚拟机及配置

使用背景:最近做项目测试,每项业务需要运行独立的环境中,手头又无多余的服务器,决定在现有一台HPDL380G6的服务器上创建几个虚拟机以满足项目测试的需求Xen的半虚拟化: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< [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"
修改为
sed -i 's#DocumentRoot "/var/www/html"#DocumentRoot "/mnt/cdrom"#' /etc/httpd/conf/httpd.conf
sed -i 's###' /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 才能??绦?br /> # --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 #可以显示某虚拟机的控制台
    xm reboot|shutdown #可以重起和关闭id 为domid 的虚拟机
    xm destroy #可以销毁id 为domid 的虚拟机
    xm console fc5 #从终端或控制台登录正在运行的虚拟操作系统
    xm save # 存储正在运行的虚拟操作系统的状态
    xm restore # 唤醒虚拟操作系统
    xm pause #停止正在运行的虚拟操作系统
    xm unpause #激活停止的虚拟操作系统
    xm mem-set #调整虚拟平台/虚拟操作系统的占用内存
    xm shutdown 虚拟操作系统的Name或DomID #关闭被虚拟的系统
    xm destroy #立即停止虚拟的系统 (重要);
    xm vcpu-set #调整虚拟平台及虚拟操作系统的虚拟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


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ... [详细]
author-avatar
实现毛_424
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有