Neporozumel jsem asi presne jak je to s tema serverama, ale budes-li mit ten prvni, tak doporucuju xen
Dom0 + DomU rooty na ten raid 1 (73.4G scsi)
Veskera user data na ten raid5 (patrne planujes 5ku)
ukazu ti nejake sve *examply bez blizsiho vysvetleni:
#/home/kvm/chroot/opt/qemu-kvm-0.13_final/bin/qemu-system-x86_64
#/home/kvm/chroot/opt/qemu-kvm-last-unstable/bin/qemu-system-x86_64
/home/kvm/chroot/opt/qemu-kvm-xx2/bin/qemu-system-x86_64 \
-drive file=/home/kvm/openindiana/openindiana.img,index=0,media=disk,cache=writeback \
-cdrom /home/kvm/+images/oi-dev-148-x86.iso -boot c \
-m 2048 -smp 2 -localtime -vga std -vnc :9 -k en-us \
-monitor unix:/home/kvm/openindiana/instance,server,nowait \
-net nic,model=e1000,macaddr="00:50:56:ba:5e:74",vlan=1 \
-net tap,ifname=oi0,script=no,vlan=1 &
sleep 2;
ip l set oi0 up;
ip a a 192.168.99.1/24 dev oi0;
echo 1 >/proc/sys/net/ipv4/ip_forward;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
iptables -A FORWARD -s 192.168.99.0/24 -o eth0 -j ACCEPT;
iptables -A FORWARD -p tcp --dport 10022 -i eth0 -j ACCEPT;
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10022 -j DNAT --to 192.168.99.99:22;
echo "all done";
name="mydomx"
memory=1024
maxmem=1024
vcpus=1
on_poweroff="destroy"
on_reboot="destroy"
on_crash="destroy"
localtime=0
keymap="en-us"
builder="linux"
kernel="/var/xen/boot/vmlinuz-xen"
ramdisk="/var/xen/boot/initrd-xen"
extra=" install=ftp://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/11.2/repo/oss/ netdevice=eth0 textmode=1 showopts "
disk=[ 'phy:/dev/scsi_raid/apache,xvda,w', 'phy:/dev/sata_raid/apache_storage,xvdb1,w' ]
vif = [ 'bridge=xenbr0' ]
vfb=[ 'type=vnc,vncdisplay=7,vnclisten=127.0.0.1' ]
# -*- mode: python; -*-
#============================================================================
# Example Python setup script for Debian guest installation.
#============================================================================
#
# Standard options are configured as normal. Only a subset are included below.
# See /usr/share/doc/xen-utils-common/examples for full examples.
#
# After standard options are configure use
# xm create xm-debian.cfg install=true"
# to start the Debian Installer.
#
# In the installation case the following additional variables exist:
#
# COMMON OPTIONS
# install-method: "cdrom" or "network"
# install-arch: which architecture to install. e.g. i386 or amd64
# install-installer: URL or path to the Debian Installer bits. By
# default for a network install these are located under
# install-mirror. For a CDROM install the default is a fixed path on
# the CD.
# install-kernel, install-ramdisk: URL/path to the installer kernel and
# ramdisk to use, by default these are located via install-installer.
# install-extra: extra command line arguments
#
# CDROM SPECIFIC OPTIONS
# install-media: Path to the Debian install media (i.e. an ISO)
# install-cdrom-device: Name of the CD-ROM device within the guest.
#
# NETWORK SPECIFIC OPTIONS
# install-suite: which Debian version to install. e.g. lenny, squeeze or sid
# install-mirror: which Debian mirror to use
# e.g. http://ftp.uk.debian.org/debian
#============================================================================
## launching command:
# xm create xm-debian.cfg install=true install-method=network install-arch=i386 install-suite=lenny install-mirror=http://ftp.cz.debian.org/debian/ install-kernel=/var/xen/boot/vmlinuz-lenny install-ramdisk=/var/xen/boot/initrd-lenny install-extra=" DEBIAN_FRONTEND=newt "
#----------------------------------------------------------------------------
# Standard variables
# Initial memory allocation (in megabytes) for the new domain.
memory = 256
maxmem = 256
# A name for your domain. All domains must have different names.
name = "debian_lenny"
# 128-bit UUID for the domain. The default behavior is to generate a new UUID
# on each call to 'xm create'.
#uuid = "06ed00fe-1162-4fc4-b5d8-11993ee4a8b9"
# List of which CPUS this domain is allowed to use, default Xen picks
#cpus = "" # leave to Xen to pick
#cpus = "0" # all vcpus run on CPU0
#cpus = "0-3,5,^1" # run on cpus 0,2,3,5
# Number of Virtual CPUS to use, default is 1
vcpus = 1
localtime=0
keymap="en-us"
builder="linux"
on_poweroff="destroy"
on_reboot="destroy"
on_crash="destroy"
#----------------------------------------------------------------------------
# Define network interfaces.
# By default, no network interfaces are configured. You may have one created
# with sensible defaults using an empty vif clause:
#
# vif = ['']
#
# or optionally override backend, bridge, ip, mac, script, type, or vifname:
#
# vif = ['mac=00:16:3e:00:00:11, bridge=xenbr0']
#
# or more than one interface may be configured:
#
# vif = ['', 'bridge=xenbr1']
vif = ['bridge=xenbr0']
#----------------------------------------------------------------------------
# Define the disk devices you want the domain to have access to, and
# what you want them accessible as.
# Each disk entry is of the form phy:UNAME,DEV,MODE
# where UNAME is the device, DEV is the device name the domain will see,
# and MODE is r for read-only, w for read-write.
#
# NB: Only xvd devices are supported by the kernel in Debian Lenny and later.
disk = ['phy:/dev/sdb8,xvda,w']
#----------------------------------------------------------------------------
# Define frame buffer device.
#
# By default, no frame buffer device is configured.
#
# To create one using the SDL backend and sensible defaults:
#
# vfb = [ 'type=sdl' ]
#
# This uses environment variables XAUTHORITY and DISPLAY. You
# can override that:
#
# vfb = [ 'type=sdl,xauthority=/home/bozo/.Xauthority,display=:1' ]
#
# To create one using the VNC backend and sensible defaults:
#
vfb = [ 'type=vnc,vncdisplay=11,vnclisten=0.0.0.0' ]
#
# The backend listens on 127.0.0.1 port 5900+N by default, where N is
# the domain ID. You can override both address and N:
#
# vfb = [ 'type=vnc,vnclisten=127.0.0.1,vncdisplay=1' ]
#
# Or you can bind the first unused port above 5900:
#
# vfb = [ 'type=vnc,vnclisten=0.0.0.0,vnunused=1' ]
#
# You can override the password:
#
# vfb = [ 'type=vnc,vncpasswd=MYPASSWD' ]
#
# Empty password disables authentication. Defaults to the vncpasswd
# configured in xend-config.sxp.
#============================================================================
# Debian Installer specific variables
def check_bool(name, value):
value = str(value).lower()
if value in ('t', 'tr', 'tru', 'true'):
return True
return False
global var_check_with_default
def var_check_with_default(default, var, val):
if val:
return val
return default
xm_vars.var('install', use='Install Debian, default: false', check=check_bool)
xm_vars.var("install-method",
use='Installation method to use "cdrom" or "network" (default: network)',
check=lambda var, val: var_check_with_default('network', var, val))
# install-method == "network"
xm_vars.var("install-mirror",
use='Debian mirror to install from (default: http://ftp.debian.org/debian)',
check=lambda var, val: var_check_with_default('http://ftp.debian.org/debian', var, val))
xm_vars.var("install-suite",
use='Debian suite to install (default: squeeze)',
check=lambda var, val: var_check_with_default('squeeze', var, val))
# install-method == "cdrom"
xm_vars.var("install-media",
use='Installation media to use (default: None)',
check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-cdrom-device",
use='Installation media to use (default: xvdd)',
check=lambda var, val: var_check_with_default('xvdd', var, val))
# Common options
xm_vars.var("install-arch",
use='Debian mirror to install from (default: i386)',
check=lambda var, val: var_check_with_default('i386', var, val))
xm_vars.var("install-extra",
use='Extra command line options (default: None)',
check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-installer",
use='Debian installer to use (default: network uses install-mirror; cdrom uses /install.ARCH)',
check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-kernel",
use='Debian installer kernel to use (default: uses install-installer)',
check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.var("install-ramdisk",
use='Debian installer ramdisk to use (default: uses install-installer)',
check=lambda var, val: var_check_with_default(None, var, val))
xm_vars.check()
if not xm_vars.env.get('install'):
bootloader="pygrub"
elif xm_vars.env['install-method'] == "network":
import os.path
print "Install Mirror: %s" % xm_vars.env['install-mirror']
print "Install Suite: %s" % xm_vars.env['install-suite']
if xm_vars.env['install-installer']:
installer = xm_vars.env['install-installer']
else:
installer = xm_vars.env['install-mirror']+"/dists/"+xm_vars.env['install-suite'] + \
"/main/installer-"+xm_vars.env['install-arch']+"/current/images"
print "Installer: %s" % installer
print
print "WARNING: Installer kernel and ramdisk are not authenticated."
print
if xm_vars.env.get('install-kernel'):
kernelurl = xm_vars.env['install-kernel']
else:
kernelurl = installer + "/netboot/xen/vmlinuz"
if xm_vars.env.get('install-ramdisk'):
ramdiskurl = xm_vars.env['install-ramdisk']
else:
ramdiskurl = installer + "/netboot/xen/initrd.gz"
import urllib
class MyUrlOpener(urllib.FancyURLopener):
def http_error_default(self, req, fp, code, msg, hdrs):
raise IOError("%s %s" % (code, msg))
urlopener = MyUrlOpener()
try:
print "Fetching %s" % kernelurl
kernel, _ = urlopener.retrieve(kernelurl)
print "Fetching %s" % ramdiskurl
ramdisk, _ = urlopener.retrieve(ramdiskurl)
except IOError, _:
raise
elif xm_vars.env['install-method'] == "cdrom":
arch_path = { 'i386': "/install.386",
'amd64': "/install.amd" }
if xm_vars.env['install-media']:
print "Install Media: %s" % xm_vars.env['install-media']
else:
raise OptionError("No installation media given.")
if xm_vars.env['install-installer']:
installer = xm_vars.env['install-installer']
else:
installer = arch_path[xm_vars.env['install-arch']]
print "Installer: %s" % installer
if xm_vars.env.get('install-kernel'):
kernelpath = xm_vars.env['install-kernel']
else:
kernelpath = installer + "/xen/vmlinuz"
if xm_vars.env.get('install-ramdisk'):
ramdiskpath = xm_vars.env['install-ramdisk']
else:
ramdiskpath = installer + "/xen/initrd.gz"
disk.insert(0, 'file:%s,%s:cdrom,r' % (xm_vars.env['install-media'],
xm_vars.env['install-cdrom-device']))
bootloader="pygrub"
bootargs="--kernel=%s --ramdisk=%s" % (kernelpath, ramdiskpath)
print "From CD"
else:
print "WARNING: Unknown install-method: %s." % xm_vars.env['install-method']
if xm_vars.env.get('install'):
# Figure out command line
if xm_vars.env['install-extra']:
extras=[xm_vars.env['install-extra']]
else:
extras=[]
# Reboot will just restart the installer since this file is not
# reparsed, so halt and restart that way.
extras.append("debian-installer/exit/always_halt=true")
extras.append("--")
extras.append("quiet")
console="hvc0"
try:
if len(vfb) >= 1:
console="tty0"
except NameError, e:
pass
extras.append("console="+ console)
extra = str.join(" ", extras)
print "command line is \"%s\"" % extra
^^ tohle je odnekud stazeny a mozna i upraveny (nepamatuju si jak), v hlavicce to ma ``# Example Python setup script for Debian guest installation.''
name="vbox-domain"
memory=2048
maxmem=2048
vcpus=2
on_poweroff="destroy"
on_reboot="destroy"
on_crash="destroy"
localtime=0
keymap="en-us"
builder="linux"
bootloader="/usr/bin/pygrub"
extra="(hd0,1)/boot/grub/menu.lst"
disk=[ 'phy:/dev/scsi_raid/vbox,xvda,w', 'phy:/dev/sata_raid/vbox_storage,xvdb1,w' ]
vif =[ 'bridge=xenbr0,mac=00:16:3e:5f:69:5f' ]
vfb=[ 'type=vnc,vncdisplay=9,vnclisten=127.0.0.1' ]
#!/bin/bash
#
#
# /etc/init.d/myXEN
# and its symbolic link
# /usr/sbin/rcmyFW
#
### BEGIN INIT INFO
# Provides: myXEN
# Required-Start: $ALL
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: myXEN provides a launching of xen guests
### END INIT INFO
start_xen() {
xm sched-credit -d "Domain-0" -w 512;
if [ -z "$1" ]; then
xm create samba-domain;
xm create vbox-domain;
xm create apache-domain;
else
while [ "$#" -gt "0" ]; do
xm create "$1";
shift;
done
fi
exit 0;
};
stop_xen() {
exit_stop_xen() {
while sleep 2; do
echo -n ".";
if ! xm list | egrep $@ >/dev/null; then
break;
fi
done
echo;
};
if [ -z "$1" ]; then
echo -n "stopping xen domains ";
xm shutdown samba-domain;
xm shutdown vbox-domain;
xm shutdown apache-domain;
exit_stop_xen 'samba-domain|vbox-domain|apache-domain';
else
while [ "$#" -gt "0" ]; do
echo -n "stopping $1 domain ";
xm shutdown "$1";
exit_stop_xen "$1";
shift;
done
fi
exit 0;
};
status_xen() {
xm list;
exit 0;
};
## if passed some parametr, it's definitely ran by user
if [ ! -z $1 ]; then
case $1 in
start) shift; start_xen $@;;
stop) shift; stop_xen $@;;
status) status_xen;;
*) echo -e "usage: myXEN start|stop|status [domain]"; exit=1;;
esac;
exit 0;
fi
## if not, it's run by init, so:
## determines if we're in startmode (^S) or killmode (^K)
mode=$(echo $0 | sed 's@^.*/\(.\).*$@\1@');
case $mode in
S) start_xen;;
K) stop_xen;;
*) echo "use one of start, stop or status"; exit=1;;
esac;
## weird-end
echo "it should never print this ..";
exit 99;
^^ tenhle posledni skript je nutne upravit ... psal jsem si ho jen pro svou potrebu