--- wikisrc/ports/xen/howto.mdwn 2016/12/20 18:53:23 1.126 +++ wikisrc/ports/xen/howto.mdwn 2016/12/20 19:25:35 1.127 @@ -136,11 +136,22 @@ Xen command program Early Xen used a program called xm to manipulate the system from the dom0. Starting in 4.1, a replacement program with similar behavior called xl is provided, but it does not work well in 4.1. In 4.2, both -xm and xl work fine. 4.4 is the last version that has xm. You must -choose one or the other, because it affects which daemons you run. -However, the rc.d scripts provided by xentools packages expect a -particular version, and you should use the version used by the -scripts. +xm and xl work fine. 4.4 is the last version that has xm. + +You must make a global choice to use xm or xl, because it affects not +only which command you use, but the command used by rc.d scripts +(specifically xendomains) and which daemons should be run. The +xentools packages provide xm for 3.1, 3.3 and 4.1 and xl for 4.2 and up. + +In 4.2, you can choose to use xm by simply changing the ctl_command +variable. + +With xl, virtual devices are configured in parallel, which can cause +problems if they are written assuming serial operation (e.g., updating +firewall rules without explicit locking). + +There is now locking for xl startup, but as of 201612 it has not been +adequately tested. NetBSD ------ @@ -349,9 +360,11 @@ Installation of Xen ------------------- In the dom0, install sysutils/xenkernel42 and sysutils/xentools42 from -pkgsrc (or another matching pair). -See [the pkgsrc -documentation](http://www.NetBSD.org/docs/pkgsrc/) for help with pkgsrc. +pkgsrc (or another matching pair). See [the pkgsrc +documentation](http://www.NetBSD.org/docs/pkgsrc/) for help with +pkgsrc. Ensure that your packages are recent; the HOWTO does not +contemplate old builds. + For Xen 3.1, support for HVM guests is in sysutils/xentool3-hvm. More recent versions have HVM support integrated in the main xentools @@ -403,8 +416,14 @@ and other than dom0 memory and max_vcpus necessary. As with non-Xen systems, you should have a line to boot /netbsd (a -kernel that works without Xen) and fallback versions of the non-Xen -kernel, Xen, and the dom0 kernel. +kernel that works without Xen). Consider a line to boot /netbsd.ok (a +fallback version of the non-Xen kernel, updated manually when you are +sure /netbsd is ok). Consider also a line to boot fallback versions +of Xen and the dom0 kernel, but note that non-Xen NetBSD can be used +to resolve Xen booting issues. + +Probably you want a default=N line to choose Xen in the absence of +intervention. Now, reboot so that you are running a DOM0 kernel under Xen, rather than GENERIC without Xen. @@ -433,30 +452,25 @@ There will be no domUs, and none can be to configure the dom0 daemons. The daemons which should be run vary with Xen version and with whether -one is using xm or xl. The Xen 3.1 and 3.3 packages use xm. Xen 4.1 -and higher packages use xl. While is is possible to use xm with some -4.x versions (TODO: 4.1 and 4.2?), the pkgsrc-provided rc.d scripts do -not support this as of 2014-12-26, and thus the HOWTO does not support -it either. (Make sure your packages are reasonably recent.) +one is using xm or xl. The Xen 3.1, 3.3 and 4.1 packages use xm. Xen +4.2 and up packages use xl. To use xm with 4.2, edit xendomains to +use xm instead. + -For "xm" (3.1 and 3.3), you should enable xend and xenbackendd (but -note that you should be using 4.x): +For "xm", you should enable xend and xenbackendd: xend=YES xenbackendd=YES -For "xl" (4.x), you should enabled xend and xencommons (xenstored). -Trying to boot 4.x without xencommons=YES will result in a hang; it is +For "xl", you should enable xend and xencommons (xenstored). Trying +to use xl without xencommons=YES will result in a hang; it is necessary to hit ^C on the console to let the machine finish booting. -TODO: explain why xend is installed by the package. +TODO: Check if xend really should be used, and if not why it is +installed. + xend=YES xencommons=YES -The installation of NetBSD should already have created devices for xen -(xencons, xenevt), but if they are not present, create them: - - cd /dev && sh MAKEDEV xen - TODO: Recommend for/against xen-watchdog. After you have configured the daemons and either started them (in the @@ -483,6 +497,13 @@ make this work, one should not expect to (and thus xencommons). There is currently no reason to expect that this will get fixed any time soon. +### No-longer needed advice about devices + +The installation of NetBSD should already have created devices for xen +(xencons, xenevt, xsd_kva), but if they are not present, create them: + + cd /dev && sh MAKEDEV xen + anita (for testing NetBSD) -------------------------- @@ -730,10 +751,10 @@ for the first virtual disk for the domU the file serves two purposes. One is that preallocating the contents improves performance. The other is that vnd on sparse files has failed to work. TODO: give working/notworking NetBSD versions for -sparse vnd. Note that the use of file/vnd for Xen is not really -different than creating a file-backed virtual disk for some other -purpose, except that xentools handles the vnconfig commands. To -create an empty 4G virtual disk, simply do +sparse vnd and gnats reference. Note that the use of file/vnd for Xen +is not really different than creating a file-backed virtual disk for +some other purpose, except that xentools handles the vnconfig +commands. To create an empty 4G virtual disk, simply do dd if=/dev/zero of=foo-xbd0 bs=1m count=4096 @@ -767,6 +788,13 @@ guest, one can create /dev/hda1 in /dev, The third element is "w" for writable disks, and "r" for read-only disks. +Note that NetBSD by default creates only vnd[0123]. If you need more +than 4 total virtual disks at a time, run e.g. "./MAKEDEV vnd4" in the +dom0. + +Note that NetBSD by default creates only xbd[0123]. If you need more +virtual disks in a domU, run e.g. "./MAKEDEV xbd4" in the domU. + Virtual Networking ------------------