mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
Add an optional parameter (vcpus) to the xc_linux_build function replacing the getenv() previously used and removing the requirement of using maxcpus kernel parameter to limit the number of virtual cpus a guest uses. The value can now be controlled in the domain configuration files. The default value of 1 is set in XenDomainInfo.py but is overridden by parsing the config value. Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
124 lines
4.1 KiB
Python
124 lines
4.1 KiB
Python
# -*- mode: python; -*-
|
|
#============================================================================
|
|
# Example Python setup script for 'xm create'.
|
|
# This script sets the parameters used when a domain is created using 'xm create'.
|
|
#
|
|
# This is a relatively advanced script that uses a parameter, vmid, to control
|
|
# the settings. So this script can be used to start a set of domains by
|
|
# setting the vmid parameter on the 'xm create' command line. For example:
|
|
#
|
|
# xm create vmid=1
|
|
# xm create vmid=2
|
|
# xm create vmid=3
|
|
#
|
|
# The vmid is purely a script variable, and has no effect on the the domain
|
|
# id assigned to the new domain.
|
|
#============================================================================
|
|
|
|
# Define script variables here.
|
|
# xm_vars is defined automatically, use xm_vars.var() to define a variable.
|
|
|
|
# This function checks that 'vmid' has been given a valid value.
|
|
# It is called automatically by 'xm create'.
|
|
def vmid_check(var, val):
|
|
val = int(val)
|
|
if val <= 0:
|
|
raise ValueError
|
|
return val
|
|
|
|
# Define the 'vmid' variable so that 'xm create' knows about it.
|
|
xm_vars.var('vmid',
|
|
use="Virtual machine id. Integer greater than 0.",
|
|
check=vmid_check)
|
|
|
|
# Check the defined variables have valid values..
|
|
xm_vars.check()
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Kernel image file.
|
|
kernel = "/boot/vmlinuz-2.6.9-xenU"
|
|
|
|
# Optional ramdisk.
|
|
#ramdisk = "/boot/initrd.gz"
|
|
|
|
# The domain build function. Default is 'linux'.
|
|
#builder='linux'
|
|
|
|
# Initial memory allocation (in megabytes) for the new domain.
|
|
memory = 64
|
|
|
|
# A name for the new domain. All domains have to have different names,
|
|
# so we use the vmid to create a name.
|
|
name = "VM%d" % vmid
|
|
|
|
# Which CPU to start domain on?
|
|
#cpu = -1 # leave to Xen to pick
|
|
cpu = vmid # set based on vmid (mod number of CPUs)
|
|
|
|
# Number of Virtual CPUS to use, default is 1
|
|
#vcpus = 1
|
|
vcpus = 4 # make your domain a 4-way
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Define network interfaces.
|
|
|
|
# Number of network interfaces. Default is 1.
|
|
#nics=1
|
|
|
|
# Optionally define mac and/or bridge for the network interfaces.
|
|
# Random MACs are assigned if not given.
|
|
#vif = [ 'mac=aa:00:00:00:00:11, bridge=xen-br0' ]
|
|
|
|
#----------------------------------------------------------------------------
|
|
# 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.
|
|
|
|
# This makes the disk device depend on the vmid - assuming
|
|
# that devices sda7, sda8 etc. exist. The device is exported
|
|
# to all domains as sda1.
|
|
# All domains get sda6 read-only (to use for /usr, see below).
|
|
disk = [ 'phy:sda%d,sda1,w' % (7+vmid),
|
|
'phy:sda6,sda6,r' ]
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Set the kernel command line for the new domain.
|
|
# You only need to define the IP parameters and hostname if the domain's
|
|
# IP config doesn't, e.g. in ifcfg-eth0 or via DHCP.
|
|
# You can use 'extra' to set the runlevel and custom environment
|
|
# variables used by custom rc scripts (e.g. VMID=, usr= ).
|
|
|
|
# Set if you want dhcp to allocate the IP address.
|
|
#dhcp="dhcp"
|
|
# Set netmask.
|
|
#netmask=
|
|
# Set default gateway.
|
|
#gateway=
|
|
# Set the hostname.
|
|
#hostname= "vm%d" % vmid
|
|
|
|
# Set root device.
|
|
root = "/dev/sda1 ro"
|
|
|
|
# Root device for nfs.
|
|
#root = "/dev/nfs"
|
|
# The nfs server.
|
|
#nfs_server = '169.254.1.0'
|
|
# Root directory on the nfs server.
|
|
#nfs_root = '/full/path/to/root/directory'
|
|
|
|
# Sets runlevel 4 and the device for /usr.
|
|
extra = "4 VMID=%d usr=/dev/sda6" % vmid
|
|
|
|
#----------------------------------------------------------------------------
|
|
# Set according to whether you want the domain restarted when it exits.
|
|
# The default is 'onreboot', which restarts the domain when it shuts down
|
|
# with exit code reboot.
|
|
# Other values are 'always', and 'never'.
|
|
|
|
#restart = 'onreboot'
|
|
|
|
#============================================================================
|