mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
domain_create allows CPU to be specified. defaults file binds domain to CPU (vmid % num_cpus).
97 lines
3.1 KiB
Plaintext
97 lines
3.1 KiB
Plaintext
|
|
##### Edit this python file to reflect the configuration of your system
|
|
|
|
##### This example script expects a variable called 'vmid' to be set.
|
|
|
|
def config_usage ():
|
|
print >>sys.stderr,"""
|
|
The config file '%s' requires the following variable to be defined:
|
|
vmid -- Numeric identifier for the new domain, used to calculate
|
|
the VM's IP address and root partition. E.g. -Dvmid=1
|
|
""" % config_file
|
|
|
|
|
|
try:
|
|
vmid=int(vmid) # convert to integer
|
|
except:
|
|
print >>sys.stderr,"%s: This script expects 'vmid' to be set using -D vmid=X" % config_file
|
|
assert()
|
|
|
|
if vmid == 0:
|
|
print >>sys.stderr,"%s: 'vmid' must be greater than 0" % config_file
|
|
assert()
|
|
|
|
|
|
# STEP 1. Specify kernel image file and otional ramdisk. Can be gzip'ed.
|
|
image = "../../../install/boot/xenolinux.gz"
|
|
ramdisk = ""
|
|
#ramdisk = "/boot/initrd.gz"
|
|
builder_fn='linux' # this is a linux domain
|
|
|
|
# STEP 2. The initial memory allocation (in megabytes) for the new domain.
|
|
mem_size = 64
|
|
|
|
# STEP 3. A handy name for your new domain.
|
|
domain_name = "This is VM %d" % vmid
|
|
|
|
# STEP 4. Which CPU to start domain on?
|
|
#cpu = -1 # leave to Xen to pick
|
|
cpu = vmid # set based on vmid (mod number of CPUs)
|
|
|
|
|
|
# STEP 5. Specify IP address(es), for the new domain. You need to
|
|
# configure IP addrs within the domain just as you do normally. This
|
|
# is just to let Xen know about them so it can route packets
|
|
# appropriately.
|
|
|
|
#vfr_ipaddr = ["111.222.333.444","222.333.444.555"]
|
|
vfr_ipaddr = [xenctl.utils.add_offset_to_ip(xenctl.utils.get_current_ipaddr(),vmid),
|
|
xenctl.utils.add_offset_to_ip('169.254.1.0',vmid),]
|
|
|
|
|
|
# STEP 6. Identify any physcial partitions or virtual disks you want the
|
|
# domain to have access to, and what you want them accessible as
|
|
# e.g. vbd_list = [ ('phy:sda1','sda1', 'w'),
|
|
# ('phy:sda%d' % (3+vmid), 'hda2', 'r'),
|
|
# ('vd:as73gd784dh','hda1','w'),
|
|
# ('phy:cdrom','hdd','r')
|
|
|
|
vbd_list = [ ('phy:sda%d'%(7+vmid),'sda1','w' ),
|
|
('phy:sda6','sda6','r') ]
|
|
|
|
|
|
|
|
# STEP 5b. Set the VBD expertise level. Most people should leave this
|
|
# on 0, at least to begin with - this script can detect most dangerous
|
|
# disk sharing between domains and with this set to zero it will only
|
|
# allow read only sharing.
|
|
|
|
vbd_expert = 0
|
|
|
|
|
|
# STEP 7. Build the command line for the new domain. Edit as req'd.
|
|
# You only need the ip= line if you're NFS booting or the root file system
|
|
# doesn't set it later e.g. in ifcfg-eth0 or via DHCP
|
|
# You can use 'extrabit' to set the runlevel and custom environment
|
|
# variables used by custom rc scripts (e.g. VMID=, usr= )
|
|
|
|
netmask = xenctl.utils.get_current_ipmask()
|
|
gateway = xenctl.utils.get_current_ipgw()
|
|
nfsserv = '169.254.1.0'
|
|
|
|
cmdline_ip = "ip="+vfr_ipaddr[0]+":"+nfsserv+":"+gateway+":"+netmask+"::eth0:off"
|
|
cmdline_root = "root=/dev/sda1 ro"
|
|
#cmdline_root = "root=/dev/nfs nfsroot=/full/path/to/root/directory"
|
|
cmdline_extra = "4 VMID=%d usr=/dev/sda6" % vmid
|
|
|
|
|
|
# STEP 8. Set according to whether you want the script to watch the domain
|
|
# and auto-restart it should it die or exit.
|
|
|
|
auto_restart = False
|
|
#auto_restart = True
|
|
|
|
# STEP 9. (Optional) Define a console port number for the new domain.
|
|
|
|
# console_port = 9610+vmid
|