Fedora15+Xen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Xen Setup On LoveLock
1. yum install xen libvirt python-virtinst(*) virt-manager(*this is selective just for GUI users) kvm(*qemu) virt-viewer(*) virt-mem(*) //* selective
1) Xen package reels in the hypervisor itself along with libraries and command line tools (like xl and xm).
2) Libvirt gives us easy access to VM management with the virsh command.
3) python-virtinst gives us the handy virt-install command to make OS installations easy.
4) virt-manager: this is selective just for GUI users
2. /boot/grub/menu.lst
title Xen@FC (2.6.40.6-0.fc15.i686.PAE)
root (hd0,2)
kernel /boot/xen.gz
module /boot/vmlinuz-2.6.40.6-0.fc15.i686.PAE ro root=/dev/sda3
module /boot/initramfs-2.6.40.6-0.fc15.i686.PAE.img
3. /etc/sysconfig/kernel
UPDATEDEFAULT=no
4. reboot
5. xm dmesg | head -n 5
6. /etc/init.d/libvirtd start
chkconfig libvirtd on
7. xm list
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Xen Suite
/usr/sbin/xend //Xen Start Script
/usr/sbin/xm //Xen Manage Tools.
/etc/xen/xend-config.sxp
Xen Configuration File, Including domain-0 Type, Network Links, domain-0 Mem/CPU etc., Whether Connect to domain-U using Vnc. Actually the default-value is enough.
/etc/xen/
Includes serveral domain-U's configuration docs, like : xmexample1, xmexample.hvm (this is a fully template for domain-U).
/etc/xen/auto
Set auto start domain-U. Make a "ln" to this folder.
e.g.:
[root@linux ~]# cd /etc/xen/auto
[root@linux auto]# ln -s ../xmexample.hvm .
/etc/xen/scripts
Starting Script for virtual device/network/switch
4. additional info
Qemu(kvm) VMs' image location : /var/lib/libvirt/images
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DomU: Installation
1.
# dd if=/dev/zero of=/home/will/OS/DomU/vmdisk0 bs=1k seek=20480k count=1
# mkfs -t ext4 vmdisk0
2.
Download the pxeboot kernel of Fedora 15 for installation.
Download vmlinuz-PAE and initrd-PAE.img from here:
http://ftp.twaren.net/Linux/Fedora/linux/releases/15/Fedora/i386/os/images/pxeboot/
3.
Create an installation profile vm0.install:
name="F15"
vcpus=1
memory=1025
disk = ['file:/home/will/OS/DomU/vmdisk0,xvda,w' ]
// what about this ? disk = ['tap:aio:/lhome/xen/f11install/vmdisk0,xvda,w' ]
vif = [ 'bridge=virbr0' ]
kernel = "/home/will/OS/DomU/vmlinuz-PAE"
ramdisk = "/home/will/OS/DomU/initrd-PAE.img"
on_reboot = 'restart'
on_crash = 'restart'
4. Install VM0
# xm create -c vm0.install //-c :console
5. Start DomU
Create a profile vm0.run:
name="F15"
vcpus=1
memory=1025
disk = ['file:/home/will/OS/DomU/vmdisk0,xvda,w' ]
vif = [ 'bridge=virbr0' ]
on_reboot = 'restart'
on_crash = 'restart'
# xm create vm0.run
6. Connect to DomU
# xm console F15
7. Connect to internet
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
#ifup eth0
~~~~~~~~~~~Following method is not validated~~~~~~~~~~~
[virt-install]
1. dd if=/dev/zero of=/disk2/xen/centos5.virt.img bs=1M count=4096
2. chcon -t xen_image_t /disk2/xen/centos5.virt.img
3. virt-install -n centos5_virt \
-r 256 \
-f /disk2/xen/centos5.virt.img \
--nographics \
-l \
-x "ip=192.168.1.2 netmask=255.255.255.0 dns=192.168.1.1 gateway=192.168.1.1"
[Parameters]
-n VM Name, whose configuration will be put into /etc/xen
-r Memory size (>=256M)
-f File system
--nographics
-l Install server link
NFS nfs:hostIP:directory_can_be_installed
WWW
FTP ftp://HostIP/FullPathDirectory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xm
1. xm COMMAND [ARGS...]
console 连接至虚拟机的控制台
create 建立一个 Domain-U 的虚拟机
destroy 删除一个 Domain-U 的虚拟机
list 列出 Domain
mem-set 重新设置 Domain-U 的内存大小
pause 暂停 Domain-U 虚拟机的执行
reboot 重新启动某一个虚拟机
restore 还原虚拟机
save 存储虚拟机的状态
Shutdown关闭虚拟机
top 监控虚拟机的执行状态
unpause 取消暂停,亦即继续执行虚拟机
uptime 显示虚拟机的 uptime
vcpu-set 修改虚拟机的 CPU 数量
[List]
xm list [ --long | --label ] [DOMAIN...]
--long:以完整的格式显示该虚拟机的详细信息。
--label:显示虚拟机的安全卷标 (Security Label)。
[output meaning]
Name:这个字段显示虚拟机的名称。
ID:这是虚拟机的标识符。
Mem:虚拟机目前使用多少的内存。
VCPUs:虚拟机目前使用的 CPU 数量。
State:虚拟机的状态。这个字段中,若显示若干标签,则每一个标签代表的意义如下。
r:代表该虚拟机正在执行中(Running)。
b:该虚拟机因等候 I/O 而被阻断(Block)。
p:该虚拟机已被暂停(Pause)。
s:该虚拟机已被关闭(Shutdown)。
c:虚拟机宕机(Crash)。
d:虚拟机正在结束中(Dying)。
Time:虚拟机执行共花费多少时间。
[Create]
xm create [-c] CONFIGFILE [NAME=VALUE...]
CONFIGFILE: 虚拟机配置文件(通常会按照/etc/xen/xmexample.hvm中的写法来写),后面的参数是虚拟机内核启动参数。
[Destroy]
xm destroy DOMAIN-U
[Console]
Remote: xm console DOMAIN-U
Back: Ctrl +D
[Monitor]
Xentop
Delay D 修改显示更新频率,单位为秒
Networks N 修改显示网络的状态
vBds B 切换是否显示虚拟磁盘的状态
VCPUs V 切换是否显示虚拟中央处理器信息
Repeat header R 切换是否在每一个虚拟机前显示表格字段
Sort S 切换排序的字段
Quit Q 结束 xm top,回到 Shell
[Modify VMs]
1. 调整内存大小
xm mem-set DOMAIN MEM //修改虚拟机内存的目前使用量, 值不能超过mem-max; Mem为内存的大小,单位为MB
xm mem-max DOMAIN MEM //修改内存的最大值
2. 调整 CPU 数量
xm vcpu-set DOMAIN-U VCPU // VCPU是虚拟机CPU的数量。
[Shutdown, Reboot, Pause]
xm pause Domain-U //暂停虚拟机
xm unpause Domain-U //取消暂停
xm shutdown [option] Domain-U //关闭
xm reboot [option] Domain-U //重启
[option]
-a, --all //全部VMs
w, --wait //等候多少时间
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
virsh [COMMAND] [ARGS...]
Direct Mode
Interactive Mode
【COMMAND】
help 显示该命令的说明
quit 结束 virsh,回到 Shell
connect 连接到指定的虚拟机服务器
create 启动一个新的虚拟机
destroy 删除一个虚拟机
start 开启(已定义的)非启动的虚拟机
define 从 XML 定义一个虚拟机
undefine 取消定义的虚拟机
dumpxml 转储虚拟机的设置值
list 列出虚拟机
reboot 重新启动虚拟机
save 存储虚拟机的状态
restore 回复虚拟机的状态
suspend 暂停虚拟机的执行
resume 继续执行该虚拟机
dump 将虚拟机的内核转储到指定的文件,以便进行分析与排错
shutdown 关闭虚拟机
setmem 修改内存的大小
setmaxmem 设置内存的最大值
setvcpus 修改虚拟处理器的数量
【Management】
Domain:
domstate查看虚拟机目前的状态
dominfo 查看虚拟机的信息
domid 查看虚拟机的标识符
domname 查看虚拟机的名称
domuuid 查看虚拟机的 UUID
VM Dump: 允许把某一个虚拟机目前的设置值存储备份下来,以供日后恢复该设置配置.
virsh dumpxml DOMAIN
DOMAIN:可以使用虚拟机的name、id或是UUID来指定
e.g.:
virsh dumpxml vm00 (显示配置的xml文件)
virsh dumpxml vm00 > vm00.virsh.xml
(转存,vm00.virsh.xml与anaconda-ks.cfg Desktop/ install.log install.log.syslog 构成“设置数据备份文件”)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DomU Clone
1. Shutdown F15 //F15 is the original vm(with a dhcp configuration)
2. dd if=/home/will/OS/DomU/vmdisk0.img of=/home/will/OS/DomU/vmdisk1.img bs=1M
//2. cp /home/will/OS/DomU/vmdisk0.img /home/will/OS/DomU/vmdisk1.img
3. cp /etc/xen/F15 /etc/xen/F15_1
4. vi /etc/xen/F15_1
name
disk
vif (mac)
5. xm create -c FC_1
6. 修改Hostname
#hostname will_1
#vim /etc/sysconfig/network
#vim /etc/hosts
7. 修改ip, mac...
#vim /etc/sysconfig/network-script/ifcfg-eth0
#ifup eth0 //or #service network restart (*not validated)
8. restart original F15