设为首页 收藏本站
查看: 1203|回复: 0

[经验分享] xen虚拟机操作整理

[复制链接]

尚未签到

发表于 2015-4-13 12:54:49 | 显示全部楼层 |阅读模式
  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  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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56677-1-1.html 上篇帖子: xen虚拟化部署遇到的问题 下篇帖子: 修改XEN中block-sync.c磁盘写函数报错解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表