4 | | Using virtual machine technology with the BOINC client presents an interesting challenge to projects. Projects not only have to follow the rules BOINC requires projects to follow but they also have to follow the rules that the virtual machine technology requires as well. With this document we hope to provide a general outline of how to utilize the VirtualBox virtual machine technology within a BOINC based project. |
5 | | |
6 | | For the purposes of this document we are going to assume that a task instance only requires the use of a single CPU and no network communication is required during the execution of the task instance. |
7 | | |
8 | | |
9 | | === Configuring Application Version === |
| 3 | Using virtual machine technology with the BOINC client presents an interesting challenge to projects. Projects not only have to follow the rules BOINC requires projects to follow but they also have to follow the rules that the virtual machine technology requires as well. With this document we hope to provide a general outline of how to utilize the !VirtualBox virtual machine technology within a BOINC-based project. |
| 4 | == Usage Scenarios == |
| 5 | There are basically two usage scenarios supported by the stock BOINC !VboxWrapper: |
| 6 | |
| 7 | * Network-focused VM |
| 8 | |
| 9 | * Task-focused VM |
| 10 | |
| 11 | === Network-Focused VM === |
| 12 | A network- focused VM usually launches its own task agent which downloads work to be processed and eventually shuts down when completed. |
| 13 | |
| 14 | Requirements: !VboxWrapper, VM job description file, and VM Image. |
| 15 | |
| 16 | NOTES: Network communication can be hampered if the host machine is sitting behind a restrictive firewall or proxy server. |
| 17 | |
| 18 | === Task-Focused VM === |
| 19 | A task-focused VM launches a single job downloaded by the BOINC client software and then shuts down. |
| 20 | |
| 21 | Requirements: !VboxWrapper, VM job description file, and VM Image, startup script, worker application |
| 22 | |
| 23 | NOTES: All network communication is disabled for the VM. |
| 24 | |
| 25 | == Configuring the BOINC Server == |
| 26 | Using !VirtualBox requires the use of two plan classes: |
| 27 | |
| 28 | * '''vbox32''': Is the application version assigned to 32-bit machines. |
| 29 | |
| 30 | * '''vbox64''': Is the application version assigned to 64-bit machines. |
| 31 | |
| 32 | NOTES: The bitness of the !VboxWrapper and VM image should match which plan class they are assigned too. A 32-bit wrapper cannot properly detect or use Virtual Box on a 64-bit machine. |
| 33 | |
| 34 | A typical installation would look like this: |
| 35 | {{{ |
| 36 | apps/uppercase/ |
| 37 | 6.18 |
| 38 | windows_intelx86__vbox32 |
| 39 | version.xml |
| 40 | ... |
| 41 | windows_x86_64__vbox64 |
| 42 | version.xml |
| 43 | ... |
| 44 | }}} |
| 45 | |
| 46 | === Application Version Record === |