Kernel configuration
This article summarises various kernel configuration issues.
Please make sure the following config options are enabled in your kernel .config file before compilation process:
CONFIG_SCHED_VCPU=y CONFIG_FAIRSCHED=y
CONFIG_SIM_FS=m CONFIG_VZ_QUOTA=m # CONFIG_VZ_QUOTA_UNLOAD is not set CONFIG_VZ_QUOTA_UGID=y
CONFIG_VE=y CONFIG_VE_CALLS=m CONFIG_VZ_GENCALLS=y CONFIG_VE_NETDEV=m CONFIG_VE_ETHDEV=m CONFIG_VZ_DEV=m CONFIG_VE_IPTABLES=y CONFIG_VZ_WDOG=m
CONFIG_VZ_CHECKPOINT=m
Note: On architectures that do not currently support checkpointing (i.e. ppc and sparc) CONFIG_VZ_CHECKPOINT should be set to n
|
ACPI sleep
It is a bit tricky to make ACPI sleep and OpenVZ work together.
ACPI sleep is enabled by ACPI_SLEEP
kernel option. The following dependencies are declared in kernel configs:
ACPI_SLEEP depends on X86 && (!SMP || SUSPEND_SMP) SUSPEND_SMP depends on HOTPLUG_CPU && X86 && PM FAIRSCHED depends on SCHED_VCPU
And SCHED_VCPU
is incompatible with HOTPLUG_CPU
:
./kernel/cpu.c:#error "CONFIG_HOTPLUG_CPU isn't supported with CONFIG_SCHED_VCPU"
On a non-SMP machine, you may disable SMP
, this will resolve the conflict.
If you have an SMP machine, you can only disable FAIRSCHED
and SCHED_VCPU
. It will reduce some isolation between VEs (CPU scheduling will be performed per-task, not per-VE, and cpuunits
and cpulimit
settings will not take effect), but it is an acceptable solution if your VEs are trusted (and it's hard to imagine untrusted VEs on a notebook.)