1,登陆物理机器

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

root:~ # xm li
Name ID Mem VCPUs State Time(s)
Domain-0 0 49450 8 r----- 52615.6
centos1 83 2048 2 -b---- 86.7
centos5 1 4096 8 -b---- 3545138.5
centos3 3 2048 2 -b---- 625.1 其中
State:
r -> 运行状态
b -> 阻塞状态,未占用cpu时间片(如等待IO)或不可运行(启动失败)
p -> 暂停状态(一般是xm pause),仍消耗内存,但不会被虚拟机调度
s -> 正在关闭状态(reboot/destroy/shutdown)
d -> dying state,没有完全关闭

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

root:~ # xm li -l |grep "centos1"
(name centos1)
(uname file://opt/xen/image/centos1.img)
可以看到具体的存放路径

4,如果某台虚拟机挂死,想重启该机器

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

5,如果想强制重启机器,将上面的步骤由shutdown 换成 destroy 即可,这个可以在sxp文件配置

6,如果想创建虚拟机,可用创建脚本如下

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

脚本内容
#!/bin/bash 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
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)}') #配置mac地址
vmname=$hostname
os_disk="/$diskpath/image/${vmname}.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" #全虚拟化和半虚拟化的bootloader配置不同!
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 mount -o loop,offset=1069286400 image/$vmname.img mnt
sed -e "s/\(^IPADDR=.*\)/IPADDR=\"$vmip\"/" -i mnt/etc/sysconfig/network/ifcfg-eth0 #配置ip echo "xen.independent_wallclock = 1" >> mnt/etc/sysctl.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 vmtest.sxp    或者后面直接跟全路径

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

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

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

9,sxp 文件详解

name="vmtest"     #虚拟机名字
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:/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']

10,其中虚拟镜像img文件的制作方法有好几种

方法1,参照“如何快速创建 Xen 虚拟机镜像”中提到的打包一个现有系统解压到空img文件
tar cvpzf centos.tar.gz –exclude=/centos.tar.gz –exclude=/lost+found –exclude=/media /
dd if=/dev/zero of=centos.img bs=1 count=1 seek=10G
mount centos.img /mnt
然后解压centos.tar.gz到/mnt目录,然后umount即可
方法2,在linux图形界面使用virt-manager或命令行virt-install创建虚拟机,最终生成centos.img文件(推荐)
方法3,在linux/mac/windows上用qemu创建虚拟机(qemu性能比较差,该项目后来发展为virtualbox,很久未更新了)
#创建虚拟磁盘
qemu-img.exe create f:\vm\centos.img 8G
#加载安装操作系统
qemu.exe -kernel-kqemu -L . -m 512 -hda f:\vm\centos.img -cdrom f:\TDDOWNLOAD\CentOS-6.4-i386-minimal.iso -boot d
#启动检查
qemu.exe -kernel-kqemu -L . -m 512 -hda f:\vm\centos.img -boot c

参考网页如下:
使用 Virtual Machine Manager 管理虚拟机
如何快速创建 Xen 虚拟机镜像
XEN配置参数解释
the_book_of_xen.pdf

xen虚拟机操作整理的更多相关文章

  1. Xen虚拟机磁盘镜像模板制作(四)—CentOS 7

    在<Xen虚拟机磁盘镜像模板制作(三)—CentOS 7>一文中,我们已经成功制作出了 CentOS7 磁盘镜像.下面我们说明下如何通过它来生成目标虚拟机,同时测试下之前制作好的虚拟机磁盘 ...

  2. Xen虚拟机磁盘镜像模板制作(二)—Windows Server 2008(2012)

    在<Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)>一文中,我们已经成功制作出了Windows Server磁盘镜像.下面我们说明下如何通过它来生成 ...

  3. xen虚拟机安装实践

    xen虚拟机环境安装,用了2天的时间摸索,终于出来了,给大家分享一下. 1.安装宿主环境,我使用的是Centos6.3 2.安装xend,参考了一篇老外的文章,基本比较顺利. 地址:http://xe ...

  4. Linux 桌面玩家指南:07. Linux 中的 Qemu、KVM、VirtualBox、Xen 虚拟机体验

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  5. 给xen虚拟机添加硬盘分区格式化

    给xen虚拟机添加硬盘磁盘分区----xenserver .添加硬盘500G .fdisk -l #在虚拟机上查看一下是否添加上 .fdisk /dev/xvdb(n-p--w) #开始分区,xvdb ...

  6. SQL不同服务器数据库之间的数据操作整理(完整版)

    ---------------------------------------------------------------------------------- -- Author : htl25 ...

  7. 在 Xen 虚拟机下修改系统当前时间

    在 Xen 虚拟机下修改系统当前时间 Xen 虚拟机默认不允许不同的虚拟机使用不同的系统时间,因此所有虚拟机的系统时间都会同宿主机的系统时间严格同步,用 date 命令修改虚拟机系统时间时虽然提示成功 ...

  8. Xen虚拟机克隆实战

    导读 在我们使用Xen虚拟化的时候,会经常创建虚拟机(VM),每次安装创建步骤比较繁琐,本文介绍通过virt-clone命令克隆xen虚拟机实战. 查看virt-clone命令是否存在 rpm -qa ...

  9. Xen虚拟机磁盘镜像模板制作(一)—Windows Server 2008(2012)

    这段时间一直在研究如何制作一个适合Xen虚拟化的Windows Server 2008(2012)磁盘镜像,中间虽然遇到了一些阻挠,不过最终还是顺利解决,成功制作出了Xen Windows Serve ...

随机推荐

  1. 善于 调用Windows API

    前一段时间看见别人做的一个自动填写信息并且点击登录的程序,觉得很有意思. 其实就是在程序中调用Windows的API,那么如何调用,下面就做个简单的介绍. 写的简单粗暴, 不喜轻喷. 0.首先引入名称 ...

  2. Hadoop经典面试题(转)

    单项选择题 1. 下面哪个程序负责 HDFS 数据存储. a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. ...

  3. svn和ftp的区别

    svn和ftp的区别是: ftp修该文件后就会替换原来的内容无法恢复.如果要回复,还需要自己在替换前做备份.如果遇到多人同时操作同一文件就会很头疼.且无法对相应修改进行记录. svn可以将你每一次的修 ...

  4. Ubuntu Server忘记密码后,单用户模式修改密码进去不了桌面的无奈

    俗话说的好,好记性不如烂笔头.有时候脑子一热,就想不起来之前设置过的密码是什么了.我可怜地忘了我的Ubuntu Server的密码,回忆了n种组合都不行,于是只能进行单用户模式的修改密码了. 以下的操 ...

  5. 微信平台BAE

    http://www.2cto.com/kf/201405/299487.html http://blog.csdn.net/lyq8479/article/details/26104667 http ...

  6. 网络上USB后面跟AF或AM接口的意思

    AM to micro 5pin或AF to micro 5pin 这里的AM或AF是Type a male和Type a female的简写 Type a male:A型男士 Type a fema ...

  7. 7篇Model View和4篇双缓冲

    http://www.cnblogs.com/SkylineSoft/category/299475.html

  8. Html 小插件6 百度新闻插件

    新闻免费代码"http://news.baidu.com/newscode.html ,便可在输入希望订阅的关键词后,根据相关选项的设置,百度便非常快的在当前页面的文本编辑框内生成相关代码. ...

  9. spring 资源加载使用说明

    Spring 提供了一个强大加载资源的机制,不但能够通过“classpath:”.“file:” 等资源地址前缀识别不同的资源类型,还支持Ant 风格带通配符的资源地址. 首先,我们来了解一下Spri ...

  10. c 跟字符串有关的函数

    1.字符串查找 strstr char * strstr(const char *s1, const char *s2); 在s1中查找s2,如果找到返回首个s2的首地址 char * strcase ...