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

CentOS系统安装配置Xen虚拟机

#XEN虚拟机复制#关闭运行中的虚拟机xmshutdownweb_001#复制虚拟机的镜像文件和配置文件cp/data/vm/web_001.img/data/vm/web_002.imgcp/etc/xen/web_001/etc/xen/web_002#修改新

#=============================== 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

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

使用背景:

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

推荐阅读
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • Linux双网卡绑定技术详解与实践
    本文详细介绍了如何在Linux系统中实现双网卡绑定,即将两块物理网卡合并为一个逻辑网卡,以提高网络性能和可靠性。文中不仅涵盖了基本的概念,还提供了具体的配置步骤和测试方法。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • CentOS 系统管理基础
    本文介绍了如何在 CentOS 中查询系统版本、内核版本、位数以及磁盘分区的相关知识。通过这些命令,用户可以快速了解系统的配置和磁盘结构。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文深入探讨了 PHP 实现计划任务的方法,包括其原理、具体实现方式以及在不同操作系统中的应用。通过详细示例和代码片段,帮助开发者理解和掌握如何高效地设置和管理定时任务。 ... [详细]
  • 本文介绍如何配置SecureCRT以正确显示Linux终端的颜色,并解决中文显示问题。通过简单的步骤设置,可以显著提升使用体验。 ... [详细]
  • 如何在Linux环境下通过Java代码获取主机IP地址
    本文详细介绍了在Linux系统中利用Java编程语言来获取当前主机的IP地址的方法。包括了如何处理网络接口以及选择合适的IP地址等关键步骤。 ... [详细]
author-avatar
手机用户2502859733
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有