Changes between Version 121 and Version 122 of VboxApps
- Timestamp:
- Apr 6, 2022, 2:37:47 PM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
VboxApps
v121 v122 22 22 VM apps have the following limitations: 23 23 24 * Commercial operating systems like Windows and Mac OS X 25 have a per-user license, so in general you can't use them 26 (or other pay-per-user software such as Matlab) in the VM image. 24 * Only a fraction of volunteer computers have VirtualBox installed. 27 25 * !VirtualBox runs only on Intel-compatible processors. 28 26 If you want to support other processors (such as ARM, SPARC, etc.), … … 30 28 * Currently you can't run GPU applications in !VirtualBox VMs. 31 29 32 === 32/64 bit issues === 33 34 A VM image is called 32- or 64-bit depending on the operating system it contains. 35 The BOINC host population includes 32-bit and 64-bit hosts. 36 64-bit hosts can run 32-bit VMs, but not conversely. 37 You can choose to provide 32- or 64-bit VM images, or both. 38 39 Possible reasons for using 64-bit VM images: 40 * The 64-bit version of your app runs significantly faster than the 32-bit version. 41 * Your app uses more than 3 GB of virtual address space. 42 43 If you provide only 32-bit VM images, 44 you must still create separate 32- and 64-bit app versions, 45 using the same VM image but different '''vboxwrapper''' executables. 46 '''vboxwrapper''', supplied by BOINC, interfaces between the BOINC client and the !VirtualBox system; 47 it's a C++ program and has different executables 48 for each platform, include 32- and 64-bit; these are available below. 49 The 32-bit vboxwrapper will generally not work on a 64-bit machine. 30 VM apps use a program called "vboxwrapper" that connects 31 the BOINC client to VirtualBox. 50 32 51 33 === Packaging options === 52 34 53 35 There are two ways to package VM apps. 54 NOTE: in the following, we use'''application''' and '''application version'''55 with their[AppVersion BOINC-specific meanings];56 we'll use '''executable''' to referto the program that runs within the VM.36 NOTE: in the following, '''application''' and '''application version''' 37 have [AppVersion BOINC-specific meanings]; 38 '''executable''' refers to the program that runs within the VM. 57 39 58 40 * '''Single-purpose app''': Include the executable with the application version. … … 67 49 You must [AppVersionNew create app versions] for each platform you want to support; 68 50 the app versions differ in which '''vboxwrapper''' executable they use. 69 If you use both 32- and 64-bit VMs,70 the versions will also differ in the VM image and the application executable.71 51 72 52 You must associate a [AppPlan plan class] with each app version, 73 such as "vbox 32" (for 32-bit machines) or "vbox64" (for 64-bit machines).74 To enable multiple cores use the plan classes "vbox32_mt" and"vbox64_mt".75 By default it will cause the server toassign 2 threads (virtual cores) per VM task.53 such as "vbox64" (for 64-bit machines). 54 To enable multiple cores use "vbox64_mt". 55 By default this will assign 2 threads (virtual cores) per VM task. 76 56 77 57 For single-purpose apps, an app version includes the following files: 78 58 79 * The VM image, in !VirtualBox format. 59 * The VM image, in !VirtualBox format. See "Multiattach mode" below. If you don't use this mode, the image: 80 60 * Must have logical name "vm_image.vdi". 81 61 * Must have the '''copy_file''' attribute. … … 98 78 This reduces network traffic and client disk usage. 99 79 100 === Multiattach mode disk images === 101 102 {{{ 103 #!comment 104 The vboxwrapper version number needs to be added once the new version is available. 105 }}} 106 As of version xxxxx '''vboxwrapper''' can deal with multiattach-mode/differencing disk images as described in the [https://www.virtualbox.org/manual/ch05.html#diffimages VirtualBox manual]. This avoids the need to copy a huge "vm_image.vdi" file to the worker slot each time a fresh WU starts. Instead the vdi image remains in the project directory, is opened read-only and used for all WUs referring to it. !VirtualBox transparently ensures that all disk '''writes''' go to a separate vdi file within the slot directory of a WU. That "differencing image" is usually much smaller than the parent vdi image. 107 108 To enable this mode add '''<multiattach_vdi_file>filename_version.vdi</multiattach_vdi_file>''' to vbox_job.xml with filename_version.vdi being the name of the parent vdi image in the project directory. 80 === Multiattach mode === 81 82 As of version 26204, '''vboxwrapper''' can deal with multiattach-mode/differencing disk images as described in the [https://www.virtualbox.org/manual/ch05.html#diffimages VirtualBox manual]. 83 This avoids the need to copy a large "vm_image.vdi" file to the worker slot each time a task starts. 84 Instead the vdi image remains in the project directory, is opened read-only and used for all tasks referring to it. 85 !VirtualBox transparently ensures that all disk '''writes''' go to a separate vdi file within the slot directory of a task. 86 That "differencing image" is usually much smaller than the parent vdi image. 87 88 To enable this mode add '''<multiattach_vdi_file>filename_version.vdi</multiattach_vdi_file>''' to vbox_job.xml 89 with filename_version.vdi being the name of the parent vdi image in the project directory. 109 90 Compared to the setup above the app version needs to be configured slightly different: 110 91 … … 113 94 * The copy_file attribute should '''not''' be set to avoid copying the vdi file to the slot directory. 114 95 * Should have the sticky attribute set. 115 * During contextualization/creation of the vdi image this mode must not be used96 * During contextualization/creation of the vdi image, multi-attach mode must not be used. 116 97 117 98 === The Vbox job description file === … … 140 121 [ <job_duration>X</job_duration> ] 141 122 [ <minimum_checkpoint_interval>N</minimum_checkpoint_interval> ] 123 [ <multiattach_vdi_file>filename_version.vdi</multiattach_vdi_file> ] 142 124 [ <network_bridged_mode/> ] 143 125 [ <pf_guest_port>N</pf_guest_port> ] … … 151 133 [ <vm_disk_controller_model>LSILogic|LSILogicSAS|BusLogic|IntelAHCI|PIIX3|PIIX4|ICH6|I82078</vm_disk_controller_model> ] 152 134 [ <vm_disk_controller_type>ide|sata|scsi|floppy|sas</vm_disk_controller_type> ] 153 [ <multiattach_vdi_file>filename_version.vdi</multiattach_vdi_file> ]154 135 [ <vm_graphics_controller_type>VBoxSVGA|VBoxVGA|VMSVGA</vm_graphics_controller_type> ] 155 136 [ <vram_size_mb>N</vram_size_mb> ] … … 211 192 '''minimum_checkpoint_interval''':: Minimum number of seconds before a checkpoint/snapshot can be created. 212 193 Defaults to 10 minutes. (v26086+) 194 '''multiattach_vdi_file''':: Enables multiattach-mode/differencing vdi images to be used. 195 The filename given here becomes the parent image. It is expected to be in the projects directory. 196 The filename should have a version number to avoid conflicts when an app version gets updated. 213 197 '''network_bridged_mode''':: If '''enable_network''' is set, use bridged mode; default is NAT mode. 214 198 '''pf_guest_port''':: Enable port forwarding to port N within the VM. … … 228 212 '''vm_disk_controller_model''':: Which disk controller model to emulate. As of version xxxx vboxwrapper uses <vm_disk_controller_model>IntelAHCI</vm_disk_controller_model> together with <vm_disk_controller_type>sata</vm_disk_controller_type> as default setting. 229 213 '''vm_disk_controller_type''':: Which disk controller type to emulate. As of version xxxx vboxwrapper uses <vm_disk_controller_model>IntelAHCI</vm_disk_controller_model> together with <vm_disk_controller_type>sata</vm_disk_controller_type> as default setting. 230 '''multiattach_vdi_file''':: Enables multiattach-mode/differencing vdi images to be used.231 The filename given here becomes the parent image. It is expected to be in the projects directory.232 The filename should have a version number to avoid conflicts when an app version gets updated.233 214 '''vm_graphics_controller_type''':: Which graphics controller type to emulate. For details see [https://www.virtualbox.org/manual/ch03.html#settings-display VirtualBox manual]. Vboxwrapper as of version xxxx uses VBoxVGA as default. 234 215 '''vram_size_mb''':: The amount of video memory allocated by the virtual graphics controller, in megabytes. VirtualBox allows it to be between 8 and 128 MB. For Linux VMs using VBoxVGA 16 MB is the recommended minimum. This value is used by default. … … 366 347 x64: [http://boinc.berkeley.edu/dl/vboxwrapper_26198_x86_64-pc-linux-gnu.zip vboxwrapper_26198_x86_64-pc-linux-gnu.zip] 367 348 368 x86: [http://boinc.berkeley.edu/dl/vboxwrapper_26178_i686-pc-linux-gnu.zip vboxwrapper_26178_i686-pc-linux-gnu.zip]369 370 == Premade vboxmonitor executables ==371 372 Linux:373 374 x86: [http://boinc.berkeley.edu/dl/vboxmonitor_26086_i686-pc-linux-gnu.zip vboxmonitor_26086_i686-pc-linux-gnu.zip]375 376 x64: [http://boinc.berkeley.edu/dl/vboxmonitor_26086_x86_64-pc-linux-gnu.zip vboxmonitor_26086_x86_64-pc-linux-gnu.zip]377 378 349 == Premade Linux VM Images == 379 350 … … 381 352 They contain Debian 4.0, without GCC or any build tools installed. 382 353 They contain the example startup script. 383 384 x86: [http://boinc.berkeley.edu/dl/vmimage_x86.zip vmimage_x86.zip]385 354 386 355 x64: [http://boinc.berkeley.edu/dl/vmimage_x64.zip vmimage_x64.zip]