安装xen必须的包
```apt-get install xen-linux-system xen-tools xenwatch libbeecrypt7 libterm-readline-gnu-perl reiserfsprogs```
编辑配置
```nano /etc/xen/xend-config.sxp```
去掉下面这行前面的#
```(dom0-min-mem 256)``````nano /etc/default/grub```
添加一行
```GRUB_CMDLINE_XEN="dom0_mem=256M"```
删除原有的内核(可选)
```apt-get remove linux-image-2.6.32-5-amd64```
更新grub
```mv /etc/grub.d/10_linux /etc/grub.d/50_linux``````update-grub2```
重启服务器。
```nano /etc/xen-tools/xen-tools.conf```
去掉下面这行前面的#
```dir = /home/xen```
设置桥接网络
```/etc/init.d/xend stop``````nano /etc/xen/xend-config.sxp```
取消下面这行前面的#
```(network-script network-bridge)``````/etc/init.d/xend start```
建立虚拟机
debian7 64位
```xen-create-image --hostname debian --gateway 网关 --netmask 掩码 --ip ip地址 --pygrub --dist wheezy --arch amd64 --size 100Gb --memory 512Mb --swap 1024Mb --genpass=1 --verbose --vcpus=2```
--genpass=1 表示生成随机root密码,虚拟机建立完成后会显示root密码,或者到/var/log/xen-tools/下查看相应的日志文件。
启动虚拟机并连接到控制台,不连接控制台可不加-c
```xm create -c /etc/xen/debian.cfg```
虚拟机启动后连接控制台
```xm console debian```
关闭虚拟机
```xm shutdown debian```
固定cpu
```xm vcpu-pin debian 0 0``````xm vcpu-pin debian 1 1```
查看虚拟机cpu
```xm vcpu-list```
调整cpu优先级
```xm sched-credit -d debian -w 65535``````xm sched-credit -d debian -c 200```
查看虚拟机列表
```xm list```
建立centos6虚拟机,默认模板没有centos6,需要做一些改动。
```cp -a /usr/lib/xen-tools/centos-5.d /usr/lib/xen-tools/centos-6.d``````nano /usr/lib/xen-tools/centos-6.d/10-dev-urandom``````#!/bin/sh
#
# Ensure the chroot has /dev/random and /dev/urandom
#
# Dan Kegel
# --
#
# Get the root of the chroot.
#
prefix=$1
#
# Ensure it exists.
#
if [ ! -d "${prefix}" ]; then
echo "Serious error - the named directory doesn't exist."
exit
fi
#
# Ensure we have /dev
#
if [ ! -d "${prefix}/dev" ]; then
mkdir "${prefix}/dev"
fi
#
# Create the nodes
#
echo " Creating random devices in /dev"
if [ ! -e "${prefix}/dev/random" ]; then
mknod -m 666 "${prefix}/dev/random" c 1 8
chown root:root "${prefix}/dev/random"
fi
if [ ! -e "${prefix}/dev/urandom" ]; then
mknod -m 666 "${prefix}/dev/urandom" c 1 9
chown root:root "${prefix}/dev/urandom"
fi``````cp -a /usr/lib/rinse/centos-5 /usr/lib/rinse/centos-6``````nano /etc/rinse/centos-6.packages``````acl
acpid
attr
audit
audit-libs
authconfig
basesystem
bash
binutils
bzip2
bzip2-libs
ca-certificates
centos-release
checkpolicy
chkconfig
coreutils
coreutils-libs
cpio
cracklib
cracklib-dicts
crda
cronie
cronie-anacron
crontabs
curl
cyrus-sasl
cyrus-sasl-lib
dash
db4
db4-utils
dbus-glib
dbus-libs
dbus-python
dhclient
dhcp-common
diffutils
dracut
dracut-kernel
e2fsprogs
e2fsprogs-libs
elfutils
elfutils-libelf
elfutils-libs
ethtool
expat
file
file-libs
filesystem
findutils
fipscheck
fipscheck-lib
gamin
gawk
gdbm
glib2
glibc
glibc-common
gmp
gnupg2
gpgme
gpg-pubkey-c105b9de
grep
groff
grub
grubby
gzip
hwdata
info
initscripts
iproute
iptables
iptables-ipv6
iputils
iw
kbd
kbd-misc
kernel
kernel-firmware
keyutils-libs
krb5-libs
less
libacl
libattr
libblkid
libcap
libcap-ng
libcom_err
libcurl
libdrm
libedit
libffi
libgcc
libgcrypt
libgpg-error
libidn
libnih
libnl
libpciaccess
libselinux
libselinux-utils
libsemanage
libsepol
libss
libssh2
libstdc++
libusb
libuser
libutempter
libuuid
libxml2
logrotate
lsof
lua
m4
MAKEDEV
man
mingetty
mlocate
module-init-tools
mysql-libs
nano
ncurses
ncurses-base
ncurses-libs
net-tools
newt
newt-python
nspr
nss
nss-softokn
nss-softokn-freebl
nss-sysinit
nss-tools
nss-util
openldap
openssh
openssh-clients
openssh-server
openssl
pam
passwd
pciutils
pciutils-libs
pcre
pinentry
plymouth
plymouth-core-libs
plymouth-scripts
policycoreutils
popt
postfix
procps
psmisc
pth
pygpgme
python
python-ethtool
python-iniparse
python-iwlib
python-libs
python-pycurl
python-urlgrabber
readline
redhat-logos
rootfiles
rpm
rpm-libs
rpm-python
rsync
rsyslog
sed
selinux-policy
selinux-policy-targeted
setup
setuptool
shadow-utils
slang
sqlite
stunnel
sudo
system-config-firewall-base
system-config-firewall-tui
system-config-network-tui
sysvinit-tools
tar
tcp_wrappers-libs
traceroute
tzdata
udev
unzip
upstart
usermode
ustr
util-linux-ng
uuid
vim-minimal
wget
which
wireless-tools
xinetd
xz
xz-libs
xz-lzma-compat
yum
yum-metadata-parser
yum-plugin-fastestmirror
yum-utils
zlib``````nano /etc/rinse/rinse.conf```
添加
```[centos-6]
mirror = http://mirror.centos.org/centos/6/os/i386/Packages/
mirror.amd64 = http://mirror.centos.org/centos/6/os/x86_64/Packages/```
建立64位centos6,512m的内存,1g的swap,100g的硬盘
```xen-create-image --hostname centos --gateway 网关 --netmask 掩码 --ip ip地址 --dist centos-6 --arch amd64 --size 100Gb --memory 512Mb --swap 1024Mb --genpass=1 --verbose --vcpus=2 --install-method=rinse```
其他操作同上。