`

xen操作搜集

 
阅读更多

1,登陆物理机器

2,查看物理机建立虚拟机的列表

root:~ # xm li
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0 49450     8     r-----  52615.6
vm0001                                      83  2048     2     -b----     86.7
vm0004                                       1  4096     8     -b---- 3545138.5
vm1001                                       3  2048     2     -b----    625.1

3,查看物理机对应各自虚拟机存放的路径(比如我想查看vm1001具体存放在哪个磁盘)

root:~ # xm li -l |grep "vm1001"
    (name vm1001)
            (uname file://opt/xen/image/vm1001.img)
            (uname file://opt/xen/image/vm1001.log.img)

可以看到具体的存放路径

4,如果么台机器挂死,想重启该机器

root:~ # xm shutdown vm1001   或者直接用ID号来取代名字 比如vm1001对应的id号就是3  xm shutdown 3

5,如果机器想强制重启,将上面的步骤由shutdown 换成 destroy 即可

6,如果创建虚拟机,创建脚本示例如下

Usage: ./createvm.sh hostname ip disksize[G] memory[M](./createvm.sh vmtest 10.6.2.199 10 512)

脚本内容

#!/bin/bash

function mk_img_log() {
    dname=$1
    ddsize=$2
    if [ -e "$dname" ] ; then
        echo "$dname exist"
        exit -1
    fi

    if [ "$ddsize" -gt "0" ] ; then
        dd if=/dev/zero of="$dname" bs=1G count=0 seek=$ddsize
        mkfs -t reiserfs -f -q "$dname"
    fi
}

function mk_img_disk() {
    dname=$1
    ddsize=$2

    if [ -e "$dname" ] ; then
        echo "$dname exist"
        exit -1
    fi

    if [ "$ddsize" -gt "0" ] ; then
        dd if=/dev/zero of="$dname" bs=1G count=$ddsize
        mkfs -t reiserfs -f -q "$dname"
        sed -i "s/^#//" $diskpath/etc/vm*.sxp
    fi
}


hostname=$1
vmip=$2
dsize=$3
msize=$4
vcpus=2
logsize=50
pfvmip=`echo "$vmip" | awk -F. '{print $4}'`

[ "$#" -ne "4" ] && echo "Usage: $0 hostname ip disksize[G] memory[M]" && exit

diskpath=`pwd`
gw=$(echo $vmip|sed 's/[0-9]*$/1/')  #局域网网关
vmmac=00:16:$(echo $vmip|awk -F'.' '{printf("%02X:%02X:%02X:%02X",$1,$2,$3,$4)}')
vmname=vm$(echo $vmip|awk -F'.' '{print ($2* 1000 + $4)}')
os_disk="/$diskpath/image/${vmname}.img"
data_disk="/$diskpath/image/${vmname}.disk.img"
log_disk="/$diskpath/image/${vmname}.log.img"

mkdir -p etc image mnt

#下面一直到End-of-sxp为sxp文件内容
cat > etc/${vmname}.sxp <<End-of-sxp
name="${vmname}"
memory=$msize
vcpus=$vcpus
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=0
builder="linux"
bootloader="/usr/bin/pygrub"
bootargs=""
extra=" "

disk=[ 'file:$os_disk,xvda,w',
#'file:$data_disk,xvdd1,w',
'file:$log_disk,xvde1,w',
'file:/vm/iso/SLES-11-SP1-x86_64.iso,xvdb:cdrom,r',
]

vif=[ 'mac=${vmmac}',]
vfb=['type=vnc,vncunused=1']

End-of-sxp

tar zxvf /vm/suse11-x64.img.tar.gz
mv `pwd`/vm/suse11-x64.img $diskpath/image/$vmname.img
mk_img_disk "$diskpath/image/$vmname.disk.img" $dsize
mk_img_log "$diskpath/image/$vmname.log.img" $logsize

mount -o loop,offset=1069286400 image/$vmname.img mnt
sed -e "s/\(^IPADDR=.*\)/IPADDR=\"$vmip\"/" -i mnt/etc/sysconfig/network/ifcfg-eth0

echo "xen.independent_wallclock = 1" >> mnt/etc/sysctl.conf
sed -e "/\(^## server xx.*\)/a server 10.0.0.3\nserver pool.ntp.org" -i mnt/etc/ntp.conf
echo "default $gw - -" > mnt/etc/sysconfig/network/routes #默认网关
echo $hostname > mnt/etc/HOSTNAME

umount mnt
rm -r mnt

 其中mount -o loop,offset=? image/$vmname.img mnt是把虚拟系统磁盘挂载到mnt目录下,进入mnt目录下可以直接操作虚拟机的系统文件。loop代表光盘格式,offset计算方法如下,为系统分区所在img的偏移。

root:/xen # fdisk -lu suse11-x64.img
You must set cylinders.
You can do this from the extra functions menu.

Disk suse11-x64.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes

             Device Boot      Start         End      Blocks   Id  System
suse11-x64.img1              63     2088449     1044193+  82  Linux swap / Solaris
suse11-x64.img2   *     2088450    18860309     8385930   83  Linux
Partition 2 has different physical/logical endings:
     phys=(1023, 254, 63) logical=(1173, 254, 63)

#2088450 * 512 = 偏移

7,创建成功后,要启动虚拟机,找到对应的配置文件,默认在当前创建脚本目录的etc 目录下

xm create vm1001.sxp    或者后面直接跟全路径

8,创建成功后,发现网络不通 或者其他什么原因 导致远程ssh 连不上该机器

先用xm li 查看系统虚拟机对应的ID 号

xm console ID号 或者名字(输入Ctrl+']'跳出)

9,sxp 文件详解

name="vm1001"     #虚拟机名字
memory=1024	  #虚拟机内存1G
vcpus=1	  #虚拟机cpu个数
on_poweroff="destroy"	#强制关闭虚拟机指令
on_reboot="restart"	 #重启虚拟机指令
on_crash="destroy"
localtime=0
builder="linux"
bootloader="/usr/lib/xen/boot/domUloader.py"
bootargs="--entry=xvda2:/boot/vmlinuz-xen,/boot/initrd-xen"
extra=" "

disk=[ 'file://disk/62b53a33-e8d9-49ae-b7b9-97024d64ef1c/image/vm1001.img,xvda,w',
'file://disk/62b53a33-e8d9-49ae-b7b9-97024d64ef1c/image/vm1001.log.img,xvde1,w',
'file:/vm/iso/SLES-11-SP1-x86_64.iso,xvdb:cdrom,r',
]

vif=[ 'mac=00:16:0A:06:02:6D',] #虚拟机MAC地址,保证局域网内唯一性
vfb=['type=vnc,vncunused=1']

 参考网页如下:

使用 Virtual Machine Manager 管理虚拟机

如何快速创建 Xen 虚拟机镜像

XEN配置参数解释

分享到:
评论

相关推荐

    c语言监控xen虚拟机

    在IT行业中,Xen是一种流行的开源虚拟化技术,它允许在一个物理服务器上运行多个独立的操作系统实例,称为虚拟机(VMs)。C语言是系统级编程的常用工具,因此使用C语言来监控Xen虚拟机可以实现高效且灵活的监控解决...

    Xen-4.0.1虚拟机API接口

    Xen是一款强大的开源虚拟化平台,它为操作系统级虚拟化提供了高效且灵活的基础。Xen 4.0.1版本的API接口是开发者进行虚拟机管理和编程的重要工具,主要用于创建、配置、控制以及管理运行在Xen Hypervisor上的虚拟机...

    linux虚拟机xen之v3.0用户手册[收集].pdf

    Xen采用para-virtualization技术,这意味着需要操作系统内核特别为Xen进行优化。尽管如此,安装过程与安装新硬件类似,但更为简化,因为虚拟机架构与底层硬件相似。目前,Xen主要支持那些经过修改以适应Xen接口的...

    Xen如何创建DomainU

    Xen 是一种开源的虚拟机监视器,它可以创建多个虚拟机(DomainU),每个虚拟机都是一个独立的操作系统环境。本文将分析 Xen 是如何创建 DomainU 的,这个过程是深入了解 Xen 的必备知识。 DomainU 创建流程 ...

    xen环境下的监控管理库

    在IT领域,虚拟化技术是不可或缺的一部分,Xen作为一个开源的虚拟化平台,为用户提供了一个高效且灵活的环境来运行多个操作系统实例。本篇将详细阐述"Xen环境下的监控管理库",以及如何利用这一工具进行高效监控。 ...

    performance analysis in virtualization/Xen

    在Xen架构中,存在一个特权级别较高的域0(Domain0),它运行一个经过修改的操作系统实例,负责管理和调度其他非特权级别的域。每个非特权域(如HVM0)运行未经修改的客户操作系统。 Xen通过使用前端驱动和后端驱动...

    基于Xen的X86虚拟机性能调优.pdf

    与全虚拟化技术不同,Xen并不完全模拟硬件,而是要求 guest OS(虚拟机操作系统)进行少量的修改,以配合虚拟机管理器(VMM)的工作。这种半虚拟化方法减少了指令翻译的开销,提高了运行效率。Xen最初不支持未经修改...

    网络游戏-一种Xen虚拟化环境下虚拟机网络数据的监控方法.zip

    1. Xen虚拟化技术:Xen是一种全虚拟化的解决方案,允许在一个物理主机上同时运行多个独立的操作系统实例,每个实例称为一个域(Domain)。Xen通过特殊的虚拟化层——Hypervisor,使得操作系统认为自己是直接运行在...

    网络游戏-一种基于相关性剪枝神经网络的Xen虚拟机恶意进程识别系统及方法.zip

    Xen是一种开源的全虚拟化技术,它允许在一个物理主机上运行多个独立的操作系统实例,每个实例称为一个虚拟机。在网络游戏环境中,Xen虚拟机常被用来提供游戏服务器,确保游戏服务的隔离性和安全性。然而,虚拟机可能...

    xen-collector:从 XAPI 获取信息的 Python 脚本

    XEN API是XEN项目提供的一个接口,允许管理员和开发者通过编程方式与XEN管理程序交互,执行各种操作,如创建、启动、停止虚拟机,获取虚拟机的状态和性能数据等。使用Python的XenAPI库,我们可以轻松地与XEN环境进行...

    xencente在centos8下监控插件xe-guest-utilities

    6. /etc目录:这是系统配置文件的存放地,例如服务启动脚本(/etc/init.d)、系统初始化文件(/etc/rc.d)以及应用程序的配置文件(如 xe-guest-utilities的配置可能位于/etc/xen/xenguest/)。 7. 安装和启用服务...

    XenApp 6.5 for Windows Server

    - **规划数据收集器**:数据收集器用于监控和收集系统性能数据,规划其位置和配置对于维护系统的健康状况非常重要。 - **为XenApp部署设计区域**:设计合理的区域结构有助于提高系统性能和可用性。 - **规划Web ...

    Xenapp详细介绍

    8. **Citrix Receiver**:这是一个统一的轻量级客户端,可在多种操作系统上运行,如Windows、Mac和Linux,以及智能手机。Receiver具有WAN加速、单点登录和语音通信功能。 9. **Hosted和Streamed应用程序**:XenApp...

    trace_types.rar_trace

    XEN是一个开源的全虚拟化解决方案,广泛应用于云计算和数据中心,它允许在一个单一的操作系统上运行多个独立的虚拟机。在XEN中,跟踪(trace)技术是非常重要的工具,它可以帮助开发者和运维人员理解虚拟机和物理...

    虚拟化迁移操作指导书-VMware.docx

    **系统迁移信息收集**是迁移前的重要步骤,需要参照专门的指导文档收集源系统的硬件配置、软件环境、网络设置等信息,确保迁移过程的顺利进行。 **V2V迁移方式**主要适用于已经存在的VMware虚拟机。首先,需要将...

    Kexec,Linux kernel dump

    **崩溃转储分析**(Crash-Dump Analysis)是指当操作系统发生崩溃时,通过收集系统在崩溃时刻的状态信息进行分析的过程。这一过程对于诊断问题原因、改进系统稳定性至关重要。 1. **用户空间核心转储**: - 当应用...

    Novell与英特尔助力虚拟技术Linux上直接运行Windows.pdf

    具体来说,他们提供新的半虚拟化网络和块设备驱动程序,使得未经修改的Microsoft Windows Server 2000/2003/XP操作系统可以在Novell的SUSE Linux Enterprise Server 10的Xen虚拟环境中运行。这个企业平台本身运行在...

    信息安全监控系统研究.doc

    Xen虚拟化技术作为开源虚拟机监视器,能在单一物理硬件上运行多个独立的操作系统实例,即虚拟机。这一技术的优势在于它能实现高效的数据整合和稳定的性能扩展,而且不需要高规格的硬件配置。在Xen架构中,VMM...

Global site tag (gtag.js) - Google Analytics