diff --git a/en_US.ISO8859-1/books/handbook/virtualization/Makefile b/en_US.ISO8859-1/books/handbook/virtualization/Makefile new file mode 100644 index 0000000000..4c89488e9c --- /dev/null +++ b/en_US.ISO8859-1/books/handbook/virtualization/Makefile @@ -0,0 +1,15 @@ +# +# Build the Handbook with just the content from this chapter. +# +# $FreeBSD$ +# + +CHAPTERS= virtualization/chapter.sgml + +VPATH= .. + +MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX} + +DOC_PREFIX?= ${.CURDIR}/../../../.. + +.include "../Makefile" diff --git a/en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml b/en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml new file mode 100644 index 0000000000..23141cbc46 --- /dev/null +++ b/en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml @@ -0,0 +1,485 @@ + + + + + + + Murray + Stokely + Contributed by + + + + + + Virtualization + + + Synopsis + + Virtualization software allows multiple operating systems + to run simultaneously on the same computer. Such software + systems for PCs often involve a host operating system which runs + the virtualization software and supports any number of guest + operating systems. + + After reading this chapter, you will know: + + + + The difference between a host operating system and a + guest operating system. + + + + How to install FreeBSD on Linux with Xen. + + + + How to install FreeBSD on an Intel-based Apple Macintosh + computer. + + + + How to tune a FreeBSD system for best performance under + virtualization. + + + + + Before reading this chapter, you should: + + + + Understand the basics of &unix; and FreeBSD (). + + + Know how to install FreeBSD (). + + Know how to set up your network connection (). + + Know how to install additional third-party + software (). + + + + + + + + FreeBSD as a Guest OS + + + Parallels on MacOS + + Parallels Desktop for Mac is a commercial software product + available for Intel based Apple Mac computers running MacOS + 10.4.6 or higher. FreeBSD is a fully supported guest + operating system. Once Parallels has been installed on MacOS + X, the user must configure a virtual machine and then install + the desired guest operating system. + + + Installing FreeBSD on Parallels/MacOS X + + The first step in installing FreeBSD on MacOS + X/Parallels is to create a new virtual machine for + installing FreeBSD. Select 'FreeBSD' as the Guest OS Type + when prompted, and choose a reasonable amount of disk and + memory depending on your plans for this virtual FreeBSD + instance. 4GB and 512MB of RAM work well for most uses of + FreeBSD under Parallels. + + After your FreeBSD virtual machine has been created, + you will need to install FreeBSD on it. This is best done + with an official FreeBSD CDROM or with an ISO image + downloaded from an official FTP site. When you have the + appropriate ISO image on your local Mac filesystem or a + CDROM in your Mac's CD drive, click on the disc icon in the + bottom right corner of your FreeBSD Parallels window. This + will bring up a window that allows you to associate the + CDROM drive in your virtual machine with an ISO file on + disk or with your real CDROM drive. + + Once you have made this association with your CDROM + source, reboot your FreeBSD virtual machine as normal by + clicking the reboot icon. Parallels will reboot with a + special BIOS that first checks if you have a CDROM just as a + normal BIOS would do. In this case it will find the FreeBSD + installation media and begin a normal sysinstall based + installation as described in . You + may install, but do not attempt to configure X-Windows at + this time. When you have finished the installation, reboot + into your newly installed FreeBSD virtual machine. + + + + + Configuring FreeBSD on MacOS X/Parallels + + After FreeBSD has been successfully installed on MacOS + X with Parallels, there are a number of configuration + steps that can be taken to optimize the system for + virtualized operation. + + + + Set boot loader variables. + + The most important step is to reduce the + tunable to reduce the CPU utilization + of FreeBSD under the Parallels environment. This is + accomplished by adding the following line to + /boot/loader.conf: + + kern.hz=100 + + Without this setting, an idle FreeBSD parallels guest + OS will use roughly 15% of the cpu of a single + processor iMac. After this change the usage will be + closer to a mere 5%. + + + + Create a new kernel configuration file. + + You can remove all of the SCSI, firewire, and USB + device drivers. Paralells provides a virtual network + adapter used by the driver, so + all other network devices except for + and can be + removed from the kernel. + + + + Setup networking. + + The most basic networking setup involves simply + using DHCP to connect your virtual machine to the same + local area network as your host Mac. This can be + accomplished by adding + ifconfig_ed0="DHCP" to + /etc/rc.conf. More advanced + networking setups are described in . + + + + + + + + + + + + Fukang + Chen (Loader) + Contributed by + + + + + + FreeBSD with Xen on Linux + + The Xen hypervisor is an open source paravirtualization + product which is now supported by the commercial XenSource + company. Guest operating systems are known as domU domains, + and the host operating system is known as dom0. The first + step in running a virtual FreeBSD instance under Linux is to install + Xen for Linux dom0. + + + Setup Xen 3 on Linux Dom0 + + + + Download Xen 3.0 from XenSource + + Download xen-3.0.4_1-src.tgz + from . + + + + + Unpack the tarball + + &prompt.root; cd xen-3.0.4_1-src +&prompt.root; KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world +&prompt.root; make install + + + To re-compile the kernel for Dom0: + + &prompt.root; cd xen-3.0.4_1-src/linux-2.6.16.33-xen0 +&prompt.root; make menuconfig +&prompt.root; make +&prompt.root; make install + + Older version of Xen may need to specify + make ARCH=xen menuconfig + + + + + Add a menu entry into Grub menu.lst + + &prompt.root; vi /boot/grub/menu.lst + + title Xen-3.0.4 +root (hd0,0) +kernel /boot/xen-3.0.4-1.gz dom0_mem=262144 +module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro + + + + Reboot your computer into Xen + + &prompt.root; vi /etc/xen/xend-config.sxp + +(network-script 'network-bridge netdev=eth0') + + &prompt.root; /etc/init.d/xend start +&prompt.root; /etc/init.d/xendomains start + + &prompt.root; xm list +Name ID Mem VCPUs State Time(s) +Domain-0 0 256 1 r----- 54452.9 + + + + + + FreeBSD 7-CURRENT domU + + Download the FreeBSD domU kernel for Xen 3.0 and + disk image from http://www.fsmware.com/ + + + + kernel-current + + + + mdroot-7.0.bz2 + + + + xmexample1.bsd + + + + Put the config file xmexample1.bsd + into /etc/xen/ and modify the related + entries about where stores the kernel and the disk image, + it should look like this: + + kernel = "/opt/kernel-current" +memory = 256 +name = "freebsd" +vif = [ '' ] +disk = [ 'file:/opt/mdroot-7.0,hda1,w' ] +#on_crash = 'preserve' +extra = "boot_verbose" +extra += ",boot_single" +extra += ",kern.hz=100" +extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a" + + mdroot-7.0.bz2 should be + uncompressed + + And also in the kernel-current, + fix the __xen_guest section to add the VIRT_BASE that + Xen 3.0.3 requires, + + &prompt.root; objcopy kernel-current -R __xen_guest +&prompt.root; perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp +&prompt.root; objcopy kernel-current --add-section __xen_guest=tmp + + &prompt.root; objdump -j __xen_guest -s kernel-current + +kernel-current: file format elf32-i386 + +Contents of section __xen_guest: + 0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G + 0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd, + 0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE + 0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS + 0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA + 0050 53453d30 78433030 30303030 3000 SE=0xC0000000. + + &prompt.root; xm create /etc/xen/xmexample1.bsd -c +Using config file "/etc/xen/xmexample1.bsd". +Started domain freebsd +WARNING: loader(8) metadata is missing! +Copyright (c) 1992-2006 The FreeBSD Project. +Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. All rights reserved. +FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 + kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF +WARNING: DIAGNOSTIC option enabled, expect reduced performance. +Xen reported: 1796.927 MHz processor. +Timecounter "ixen" frequency 1796927000 Hz quality 0 +CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU) + Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 + Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH, + DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> + Features2=0x4400<CNTX-ID,<b14>> +real memory = 265244672 (252 MB) +avail memory = 255963136 (244 MB) +xc0: <Xen Console> on motherboard +cpu0 on motherboard +Timecounters tick every 10.000 msec +[XEN] Initialising virtual ethernet driver. +xn0: Ethernet address: 00:16:3e:6b:de:3a +[XEN] +Trying to mount root from ufs:/dev/xbd769a +WARNING: / was not properly dismounted +Loading configuration files. +No suitable dump device was found. +Entropy harvesting: interrupts ethernet point_to_point kickstart. +Starting file system checks: +/dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation) +Setting hostname: demo.freebsd.org. +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 + inet6 ::1 prefixlen 128 + inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 + inet 127.0.0.1 netmask 0xff000000 +Additional routing options:. +Mounting NFS file systems:. +Starting syslogd. +/etc/rc: WARNING: Dump device does not exist. Savecore not run. +ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib +a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout +Starting usbd. +usb: Kernel module not available: No such file or directory +Starting local daemons:. +Updating motd. +Starting sshd. +Initial i386 initialization:. +Additional ABI support: linux. +Starting cron. +Local package initialization:. +Additional TCP options:. +Starting background file system checks in 60 seconds. + +Sun Apr 1 02:11:43 UTC 2007 + +FreeBSD/i386 (demo.freebsd.org) (xc0) + +login: + + &prompt.root; uname -a +FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006 +kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386 + + + &prompt.root; ifconfig xn0 10.10.10.200 netmask 255.0.0.0 +&prompt.root; ifconfig +xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500 + inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255 + ether 00:16:3e:6b:de:3a +lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 + inet6 ::1 prefixlen 128 + inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 + inet 127.0.0.1 netmask 0xff000000 + + On Dom0 Slackware: + + &prompt.root; ifconfig +eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2 + inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0 + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:815 errors:0 dropped:0 overruns:0 frame:0 + TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB) + +lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + UP LOOPBACK RUNNING MTU:16436 Metric:1 + RX packets:99 errors:0 dropped:0 overruns:0 frame:0 + TX packets:99 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB) + +peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0 + TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB) + Base address:0xc000 Memory:ef020000-ef040000 + +vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:1400 errors:0 dropped:0 overruns:0 frame:0 + TX packets:815 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB) + +vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:3 errors:0 dropped:0 overruns:0 frame:0 + TX packets:2 errors:0 dropped:157 overruns:0 carrier:0 + collisions:0 txqueuelen:1 + RX bytes:140 (140.0 b) TX bytes:158 (158.0 b) + +xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF + UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 + RX packets:4 errors:0 dropped:0 overruns:0 frame:0 + TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:112 (112.0 b) TX bytes:0 (0.0 b) + + &prompt.root; brctl show +bridge name bridge id STP enabled interfaces +xenbr1 8000.feffffffffff no vif0.1 + peth0 + vif1.0 + + + + + + VMWare on Windows/Mac/Linux + + This section has yet to be written. + + + + + + + FreeBSD as a Host OS + + FreeBSD is not officially supported by any virtualization + package as a host operating system at this time, but many people + use older versions of VMWare in this capacity. Work is also + ongoing in getting Xen to work as a host environment on + FreeBSD. + + + + + +