VmApps: vm_email.txt

File vm_email.txt, 29.4 kB (added by davea, 8 months ago)

email correspondence as of Mar 09

Line 
1 THE HISTORY OF THE "BOINC_VM PROJECT" IN SELECTED EMAILS SINCE SEPTEMBER 2008 (B. Segal):
2
3
4 From: David Anderson <davea@ssl.berkeley.edu>
5 Date: 15 September 2008 18:26:41 GMT+02:00
6 To: Ben Segal <b.segal@cern.ch>
7 Cc: Bruce Allen <bruce.allen@aei.mpg.de>, Kevin Reed <knreed@us.ibm.com>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Daniel Lombraña González <teleyinex@gmail.com>, David Weir <david.weir03@imperial.ac.uk>, Predrag Buncic <Predrag.Buncic@cern.ch>
8 Subject: Re: BOINC client strategies for virtualized jobs
9
10 Ben:
11
12 BOINC VM apps will be important to lots of people,
13 and we definitely need to coordinate efforts.
14 I suggest that we use the following Wiki page for the evolving design:
15 http://boinc.berkeley.edu/trac/wiki/VmApps
16 If you send me a doc in another format I can put it there.
17
18 I can devote resources to working on this over the next year,
19 i.e. BOINC client changes and/or the VM wrapper.
20
21 -- David
22
23
24
25 From: Daniel Lombraña González <teleyinex@gmail.com>
26 Date: 9 January 2009 12:30:41 GMT+01:00
27 To: David James Weir <david.weir03@imperial.ac.uk>
28 Cc: Predrag Buncic <Predrag.Buncic@cern.ch>, Ben Segal <B.Segal@cern.ch>
29 Subject: Re: [Fwd: Re: A BOINC-VM question]
30
31 Hi David, Predag and Ben,
32
33 Thanks for sending me your suggestions about BOINC and virtualization. Your comments are really interesting, all of them seem to point into the right direction. However I have some minor suggestions or comments. The use of VMware Server is the best solution, but volunteers could be afraid of installing that software (remember that you have to register yourself in vmware.com in order to obtain a free serial number). So I don't know if the solution of VMware Server is good enought for all. Therefore, we should bear in mind always both approaches: institutions like Cern or Universities and Volunteers.
34
35 The rest of your implementation sounds really good and I would like to test it in our infrastructure, obviously if you are interested. If you have a public repository where I can check out the source code it will be interesting to start some minor tests with your code. At the same time we are going to try also the HTTP solution for getting the output files from the VM.
36
37 That's all, thanks for your comments and happy new year ;)
38
39 Daniel
40
41 ******************
42
43 On Sun, Jan 4, 2009 at 3:09 PM, David James Weir <david.weir03@imperial.ac.uk> wrote:
44 Hi Daniel (and Predrag),
45
46 Ben suggested I forward to you these notes I made about BOINC with Virtual Machines. It incorporates his thinking with my experience trying to get the various bits to work together.
47
48 I'm at the stage where I will be trying out the approach I give below in shortly (as soon as I have some spare time!). I think the major hurdles are now overcome; the big question is whether the approach I outline below will be useful to anyone!
49
50 Kind regards,
51
52 David Weir
53
54 ******************
55
56 On 2 janv. 09, at 21:38, David James Weir wrote:
57 I've had a couple more days to work on the BOINC-VM code; with  VMWare server 1 (as discussed earlier) I've got BOINC, VMWare and a  wrapper talking to each other, though I haven't (yet) tried running  it as a workunit because of issues with 64-bit Linux on my work  desktop.
58
59 Daniel's idea is very good, and best of all doesn't assume too much  about the virtualisation method. We can probably do better with  VMWare Server, though: we can use VixVM API calls like  FileExistsInGuest() and CopyFileFromGuestToHost(), eliminating the  HTTP server altogether! Furthermore, this might be able to  eliminate the dependence on any form of network connection between  guest and host -- simplifying the configuration of VMWare Server.
60
61 I think, though, that the exact way in which we do this is strongly  dependent on the "target audience" -- is it still the porting of  applications? I'm aware that what follows is essentially a rewrite  of the implementation you suggested to me a month or two back, but  as I have become familiar with the capabilities of the VIX API I've  been able to flesh out some of the details.
62
63 Assumptions: no "inner BOINC client", inner application does not  link against BOINC libraries, inner application is small with very  few dependencies not included in a basic virtual machine. No  assumptions are made about whether the inner application would need  access to the network, but the wrapper XML standard could be  extended to include a field indicating whether this is necessary.
64
65 1. We deploy a virtual machine image over BOINC, with the VMWare  Tools installed. This need only be done once for our hypothetical  project, with different programs being sent as part of the workunit.
66
67 2. The VMWare-aware wrapper powers up the virtual machine, checks  for a snapshot relevant to the current workunit with  VixVM_GetNamedSnapshot() and VixVM_RevertToSnapshot() (this is our  checkpointing recovery step). If so, we skip to stage 4.
68
69 3. For a given workunit, the wrapper XML standard is then used to  send a package containing a non-BOINCified program and dependencies  (suppose a RPM for the CernVM). This is installed using a call to  RunProgramInGuest() by the VMWare-aware wrapper. This is then also  used to start the program running.
70
71 4 (main loop). The wrapper polls the process handle returned by  RunProgramInGuest() to see if the workunit has finished. It also  calls boinc_time_to_checkpoint(); then runs VixVM_CreateSnapshot()  to create a snapshot as a checkpoint, if necessary.
72
73 5. Upon successful completion of the inner job, we must copy out  the results, uninstall the workunit package in the VM and move the  checkpointed snapshot. The results are then sent back to the BOINC  server. We can get the CPU time easily inside the virtual machine  by calling the executable through time(1), say, but it may turn out  to be more reasonable to use the cputime estimate made by the core  client itself.
74
75 Note: For issuing partial credit on long processes we could require  the inner program to update a file inside the VM (say /tmp/ creditreport) giving the number of floating point and integer  operations done so far. This could then be polled in step 4 (the  main loop), and the results returned to the core client. The same  thing would be necessary for reporting the fraction done. We could  even re-implement fraction_done() and ops_cumulative(), writing a  "fake" BOINC library to be used when compiling projects to run  inside virtual machines.
76
77 ******************
78
79 From: Kevin Reed <knreed@us.ibm.com>
80 Date: 20 January 2009 20:34:29 GMT+01:00
81 To: Ben Segal <b.segal@cern.ch>
82 Cc: Bruce Allen <bruce.allen@aei.mpg.de>, David Anderson <davea@ssl.berkeley.edu>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Francois Grey <francois.grey@cern.ch>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Daniel Lombraña González <teleyinex@gmail.com>
83 Subject: Re: BOINC client strategies for virtualized jobs
84
85 Ben et all,
86
87 For your reference, I am attaching what I produced for my operating system course in regards to looking at virtual machines and using them with BOINC. The premise of the paper and study is a little flaky, but the work using the VIX API was decent. There are some rough thoughts about how BOINC could use this but there are a lot of issues out there.
88
89 (See attached file: project_reed21.pdf)       ***** NOTE FROM BEN:  THIS IS NOW AVAILABLE ON THE BOINC WIKI ************
90
91 Set up details and code:
92
93 http://home.comcast.net/~kevin_reed/
94
95 worth a little look. It still needs some maturity in my mind (like VMware server had processes that would stop running periodically).
96
97 Kevin Reed
98 . . . . . . . . . . . . . . . . . . . . . . . . .
99 i b m i n t e r a c t i v e
100 71 S. Wacker Dr
101 Chicago, IL, 60606-4637
102
103 312 529 2802 office
104 knreed@us.ibm.com email
105
106 unknown.gif šBen Segal ---01/20/2009 01:29:46 PM---Dear Dave (and BOINC colleagues),
107
108 1__#$!@%!#__unknown.gif š
109 From:
110 2__#$!@%!#__unknown.gif š
111 Ben Segal <b.segal@cern.ch>
112 3__#$!@%!#__unknown.gif š
113 To:
114 4__#$!@%!#__unknown.gif š
115 David Anderson <davea@ssl.berkeley.edu>
116 5__#$!@%!#__unknown.gif š
117 Cc:
118 6__#$!@%!#__unknown.gif š
119 Bruce Allen <bruce.allen@aei.mpg.de>, Kevin Reed/Chicago/IBM@IBMUS, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Daniel Lombraña González <teleyinex@gmail.com>, David Weir <david.weir03@imperial.ac.uk>, Predrag Buncic <Predrag.Buncic@cern.ch>, Francois Grey <francois.grey@cern.ch>, Derrick Kondo <derrick.kondo@inria.fr>
120 7__#$!@%!#__unknown.gif š
121 Date:
122 8__#$!@%!#__unknown.gif š
123 01/20/2009 01:29 PM
124 9__#$!@%!#__unknown.gif š
125 Subject:
126 10__#$!@%!#__unknown.gif š
127 Re: BOINC client strategies for virtualized jobs
128
129 Dear Dave (and BOINC colleagues),
130
131 It's been a while (4 months) since our last exchange on this topic  
132 but now I can happily report some progress. David Weir has found some  
133 spare time from his PhD studies and is building a test implementation  
134 of a "VM wrapper" along the lines we proposed. He has just put up  
135 initial documentation on the Wiki page you created for us: http://boinc.berkeley.edu/trac/wiki/VmApps
136
137 Daniel (in Spain) and we at CERN are looking forward to testing  
138 David's code when it's ready.
139
140 Any comments from any of you will be welcome!
141
142 Best wishes to all and Happy New Year,
143
144 Ben
145
146 ******************
147
148 From: David James Weir <david.weir03@imperial.ac.uk>
149 Date: 20 January 2009 20:38:10 GMT+01:00
150 To: Kevin Reed <knreed@us.ibm.com>
151 Cc: Ben Segal <b.segal@cern.ch>, Bruce Allen <bruce.allen@aei.mpg.de>, David Anderson <davea@ssl.berkeley.edu>, Derrick Kondo <derrick.kondo@inria.fr>, Francois Grey <francois.grey@cern.ch>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Daniel Lombraña González <teleyinex@gmail.com>
152 Subject: Re: BOINC client strategies for virtualized jobs
153
154 Hi Kevin,
155
156 Kevin Reed wrote:
157 Set up details and code:
158 http://home.comcast.net/~kevin_reed/
159
160 It seems to me you've already done almost exactly what I was proposing!
161
162 (I've just read your followup email... we have!)
163
164 David
165
166 ******************
167
168 From: Daniel Lombraña González <teleyinex@gmail.com>
169 Date: 21 January 2009 09:29:48 GMT+01:00
170 To: Kevin Reed <knreed@us.ibm.com>
171 Cc: Ben Segal <b.segal@cern.ch>, Bruce Allen <bruce.allen@aei.mpg.de>, David Anderson <davea@ssl.berkeley.edu>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Francois Grey <francois.grey@cern.ch>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
172 Subject: Re: BOINC client strategies for virtualized jobs
173
174 Hi all,
175
176 At the end we have two similar solutions, that's good :). I have been
177 reading Kevin's paper. The proposal for integrating BOINC and VMware
178 sounds really good.
179
180 For me there is only an small issue with using VMware Server and
181 volunteers. Probably, some users will not join us due to the fact that
182 they have to register themselves on vmware.com in order to download
183 the vmware server 2.0 (correct me if I'm wrong). Besides this, the
184 VMware solution is by far, the best solution for institutions like
185 universities or companies, as for them it will be very easy to deploy
186 such configuration.
187
188 As Ben said before, we would like to try this solution with some
189 problems that we have already tested with our previous approach of
190 Vmware Player and BOINC. So, as soon we have tried it we will comment
191 out the results.
192
193 Regards,
194
195 Daniel
196
197 ******************
198
199 From: Daniel Lombraña González <teleyinex@gmail.com>
200 Date: 21 January 2009 09:34:00 GMT+01:00
201 To: David James Weir <david.weir03@imperial.ac.uk>
202 Cc: Ben Segal <b.segal@cern.ch>, Predrag Buncic <Predrag.Buncic@cern.ch>, Francois Grey <francois.grey@cern.ch>
203 Subject: Re: BOINC client strategies for virtualized jobs
204
205 Hi,
206
207 We have now a new point for working on. The solution proposed by Kevin
208 seems really good as it was yours. At the end, both of them are pretty
209 similar, so I think that we can collaborate in order to improve  the
210 code in one direction. Right now, Kevin's solution only works on
211 windows machines (the most used OS), however it will be interesting to
212 add support for Linux and Mac. Thus, it will be interesting to add
213 this work to Kevin's code.
214
215 Additionally, it will be possible to start discussing if it will be
216 interesting to modify BOINC for supporting VMware, or we prefer to
217 modify only the wrapper job.xml file to support VMs. I think this is a
218 really good discussion, so what do you think?
219
220 Regards,
221
222 Daniel
223
224 ******************
225
226 On Tue, Jan 20, 2009 at 9:30 PM, David James Weir
227 <david.weir03@imperial.ac.uk> wrote:
228 Hi Ben,
229
230 Ben Segal wrote:
231
232 What a surprise! I hope you're not too ticked off about this.
233
234 Not at all bothered! He also has his own ideas about how to integrate this
235 with BOINC.
236
237 On the positive side it nicely confirms our approach (and shows that
238 VMware Server 2 is OK to use). But it wasn't very comradely of Kevin to have
239 sent no information on his work out to the list or to the Wiki. But it's a
240 very nice job and also a fine discussion of many of the issues, including
241 those around BOINC configuration and management.
242
243 Since we've been caught on the back foot, I'm attaching what I've done so
244 far to make a working VMWare wrapper, and I've put the necessary
245 configuration examples below. It's more or less exactly what Kevin's done.
246 The wrapper should compile with the standard wrapper makefile, adding
247 -lvmware-vix if any of you are interested.
248
249 There's much left to be done in my code: error checking, checkpointing,  and
250 correct BOINC handling of output files -- the code itself represents an
251 afternoon of thinking and an afternoon of work, more or less.
252
253 Note that I reindented the code (by mistake!) so running diff against the
254 original code may not give helpful output!
255
256 David
257
258 ----
259
260 (inner.sh)
261
262 #!/bin/sh
263 #
264 cd /tmp
265 cat foo.dat > bar.dat
266
267 (job.xml)
268
269 <job_desc>
270    <task>
271        <vm>cernvm-1.01-x86/cernvm-1.01-x86</vm>
272        <user>djw03</user>
273        <password>guestpass</password>
274        <datadir>/tmp</datadir>
275        <innerjob>inner.sh</innerjob>
276        <partial_credit>0</partial_credit>
277        <snapshots>0</snapshots>
278        <data>foo.dat</data>
279        <output>bar.dat</output>
280    </task>
281 </job_desc>
282
283
284 (sample run)
285
286 vmwrapper: starting
287 Connected to server.
288 Processing task 0.
289 Task 1.
290 ========
291
292 VM file root is cernvm-1.01-x86/cernvm-1.01-x86
293 Registered virtual machine with the server.
294 Got handle.
295 VM is now on (if it wasn't already).
296 Logged in. Preparing job...
297 Copying in input...
298 Processing: foo.dat
299 Running main program: done.
300 Copying out output...
301 Processing: bar.dat
302 Sanitising virtual machine...
303 Removing: foo.dat
304 Removing executable.
305 called boinc_finish
306
307
308 ******* NOTE FROM BS:  DAVID'S CODE IS AVAILABLE AT:  http://www.cern.ch/ben/DW_Wrapper_VM.rtf  ****************
309
310 ******************
311
312 From: David Anderson <davea@ssl.berkeley.edu>
313 Date: 2 March 2009 20:15:17 GMT+01:00
314 To: Kevin Reed <knreed@us.ibm.com>
315 Cc: Daniel Lombraña González <teleyinex@gmail.com>, Ben Segal <b.segal@cern.ch>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
316 Subject: Re: BOINC client strategies for virtualized jobs
317
318 I'd like to move forward with BOINC support for VM apps.
319 In particular, I'd like to add code to the client to detect the
320 presence/version of VM executives and report them to the server.
321
322 Was a concensus reached on which VM executive to use for BOINC VM apps?
323 (i.e., one with an API for suspend/resume and for moving files in and out)
324
325 Recent postings suggest that the leading candidate is VMWare Server 2,
326 with the VIX API.
327 This has the drawback that its installation process
328 (which volunteers will have to perform) is targeted at IT professionals,
329 and may intimidate average volunteers.
330
331 -- David
332
333
334 ******************
335
336 From: Ben Segal <b.segal@cern.ch>
337 Date: 2 March 2009 20:37:36 GMT+01:00
338 To: David Anderson <davea@ssl.berkeley.edu>
339 Cc: Kevin Reed <knreed@us.ibm.com>, Daniel Lombraña González <teleyinex@gmail.com>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Predrag Buncic <Predrag.Buncic@cern.ch>
340 Subject: Re: BOINC client strategies for virtualized jobs
341
342 Hi David,
343
344 We'd also like to move forward with this but have no programming effort at the moment.
345
346 Yes, the consensus is what you say: VMware Server 2 and VIX.
347
348 For your information, a copy of David Weir's Linux code, based on his "Proposal" in the BOINC Wiki, is at:
349
350 http://www.cern.ch/ben/DW_Wrapper_VM.rtf
351
352 This nicely complements Kevin's Windows code (developed independently!).
353
354 All the best,
355
356 Ben
357
358 ******************
359
360 From: David James Weir <david.weir03@imperial.ac.uk>
361 Date: 2 March 2009 21:00:54 GMT+01:00
362 To: Ben Segal <b.segal@cern.ch>
363 Cc: David Anderson <davea@ssl.berkeley.edu>, Kevin Reed <knreed@us.ibm.com>, Daniel Lombraña González <teleyinex@gmail.com>, Derrick Kondo <derrick.kondo@inria.fr>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Predrag Buncic <Predrag.Buncic@cern.ch>
364 Subject: Re: BOINC client strategies for virtualized jobs
365
366 Hi all,
367
368 I should warn you that the above code was just a couple of afternoons of playing around, and I gave up when I realised I was reinventing someone else's wheel!
369
370 If we have some forward momentum, I'm happy to lend a hand with whatever  eventually happens -- in between doing my PhD.
371
372 Cheers,
373
374 David
375
376 ******************
377
378 From: Daniel Lombraña González <teleyinex@gmail.com>
379 Date: 3 March 2009 08:32:33 GMT+01:00
380 To: David James Weir <david.weir03@imperial.ac.uk>
381 Cc: Ben Segal <b.segal@cern.ch>, David Anderson <davea@ssl.berkeley.edu>, Kevin Reed <knreed@us.ibm.com>, Derrick Kondo <derrick.kondo@inria.fr>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>, Predrag Buncic <Predrag.Buncic@cern.ch>
382 Subject: Re: BOINC client strategies for virtualized jobs
383
384 Hi all,
385
386 Adding code to detect which virtual hypervisor is using the PC will be
387 an interesting step on moving forward.
388
389 The detection is the first step on integrating VMs and BOINC.
390
391 As Ben has said: VMware Server is the best solution just right now,
392 but as you have pointed out it will a bit difficult for average
393 volunteers. The main problem, from my point of view, is that you need
394 to register yourself on vmware.com, and I think that some volunteers
395 will not like to register on VMware.
396
397 Daniel
398
399 ******************
400
401 From: Kevin Reed <knreed@us.ibm.com>
402 Date: 3 March 2009 16:52:26 GMT+01:00
403 To: Daniel Lombraña González <teleyinex@gmail.com>, Ben Segal <b.segal@cern.ch>, David Anderson <davea@ssl.berkeley.edu>, David James Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
404 Subject: Re: BOINC client strategies for virtualized jobs
405
406 David,
407
408 As you look at implementing this I would like to suggest a different approach. I propose that the BOINC client views a particular host as having a set of 'Resources' and a set of 'Capabilities'. A 'Resource' are things like Ram, Processing Cores, Disk Space, GPU capabilities. Resources are fundamental to the client's task scheduling and management logic. A 'Capability' on the other hand, is something that the client has that may or may not allow it to run certain types of jobs. Examples of capabilities are the version of java it can run, the version of perl installed or a particular virtual machine being installed on the client.
409
410 I think that the BOINC client should have embedded logic that allows it to detect Resources. However, it should also be designed so that each project can provide a small application that will detect the 'Capabilities' of the machine. This app would have a certain API that would report to the core client the set of capabilities that the host has and these capabilities would be reported back to the project on each scheduler request. I would expect that BOINC would provide a sample app that detects some common things and then projects can extended it as needed. For each additional capability there will likely be a 'wrapper' application developed that would support that capability. Hopefully projects would contribute their detection logic and wrapper applications back to BOINC and a very nice library could evolve over time.
411
412 The reason that this is attractive is that the number of capabilities that projects may wish to use will change frequently. Adding each possibility to the core client will likely also result in a lot of bloat in the client over time as well as the client will be constantly behind in the features that projects are looking to use.
413
414 So if we took this approach the changes that would be needed are:
415 Modify the client to look for the test application if available from a project (needs to handle the multi-platform logic)
416 If one is available, run it after it is downloaded and start reporting the capabilities (which would use the existing server logic to match applications with clients (i.e. like for GPU))
417 Create a example version of this sample application that can detect VMWare Server 2.0
418 Create a wrapper application that can run the VMWare Server 2.0
419
420 Once this is done,if projects want to go a different route and use different capabilities, all they need to do is add the logic for items #3 and #4.
421
422 For example, Carl over at Quake Catcher network would implement 3 and 4 to see if the client has the appropriate device for detection and then the wrapper to monitor it.
423
424 Just my 2 cents
425
426 Kevin Reed
427 . . . . . . . . . . . . . . . . . . . . . . . . .
428 i b m i n t e r a c t i v e
429 71 S. Wacker Dr
430 Chicago, IL, 60606-4637
431
432 312 529 2802 office
433 knreed@us.ibm.com email
434
435 ******************
436
437 From: David Anderson <davea@ssl.berkeley.edu>
438 Date: 3 March 2009 17:19:27 GMT+01:00
439 To: Kevin Reed <knreed@us.ibm.com>
440 Cc: Daniel Lombraña González <teleyinex@gmail.com>, Ben Segal <b.segal@cern.ch>, David James Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
441 Subject: Re: BOINC client strategies for virtualized jobs
442
443 I think this is the right approach.
444 The key distinction is that a "resource" is something for which
445 there can be contention,
446 so that the client needs to know about it and do some kind of scheduling
447 (e.g., allow only one GPU job to run at a time)
448 whereas a "capability" has no contention.
449
450 The changes for the "test application" approach are all server-side
451 and should be fairly minor; I'll work on it.
452
453 --------
454
455 I'll contact VMWare and ask for their cooperation,
456 e.g. to get a special version of VMWare Server 2 that is a 1-click
457 install and is smaller than 560 MB.
458 Of course, it would be better to use an open-source VM system;
459 if anyone hears of interesting development let us know.
460
461 -- David
462
463 ******************
464
465 From: Daniel Lombraña González <teleyinex@gmail.com>
466 Date: 3 March 2009 17:34:23 GMT+01:00
467 To: David Anderson <davea@ssl.berkeley.edu>
468 Cc: Kevin Reed <knreed@us.ibm.com>, Ben Segal <b.segal@cern.ch>, David James Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
469 Subject: Re: BOINC client strategies for virtualized jobs
470
471 I agree with David and Kevin,  detecting "capabilities" will be the
472 key step for running within clients Python applications, R scripts or
473 whatever is needed. An interesting feature could be to allow BOINC
474 clients to auto-install needed packages in clients by accepting a
475 check-box or something similar that warn users about needed 3rd party
476 software.
477
478 For example, imagine that a project needs Python installed on the clients:
479 1.- The client detect if the Python interpreter is installed (as Kevin
480 has explained)
481 2.- If it is not installed, ask the user if BOINC can automatically
482 install it from a software repository.
483
484 The interesting approach of this behavior is that, BOINC can install
485 (with the user permissions) dependencies for running experiments,
486 opening BOINC to more researchers. For security reasons, it will be
487 interesting to support a bunch of applications that are digitally
488 signed by BOINC or something similar, to avoid security failures or
489 malware.
490
491 I don't know if it will be better to have a central repository or the
492 BOINC server's project has to act as a software repository for their
493 clients. This last solutions sounds really interesting, as researches
494 can define which are the "capabilities" requirements for running their
495 experiments.
496
497 Daniel
498
499 ******************
500
501 From: David Anderson <davea@ssl.berkeley.edu>
502 Date: 3 March 2009 20:15:51 GMT+01:00
503 To: Ben Segal <b.segal@cern.ch>
504 Cc: Kevin Reed <knreed@us.ibm.com>, Daniel Lombraña González <teleyinex@gmail.com>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Predrag Buncic <Predrag.Buncic@cern.ch>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
505 Subject: Re: BOINC client strategies for virtualized jobs
506
507 I'll add a "test application" mechanism
508 to allow projects to probe host capabilities.
509 Let's postpone thinking about how to automatically install capabilities;
510 let's assume that the user has to do it manually,
511 and we can notify them via messages in the BOINC manager
512 if they need to do so.
513
514 The next steps are to develop the app to probe VM presence/version,
515 and to develop the wrapper (which seems to be largely done).
516 However, to finish either of these we need to nail down the choice of VM system.
517 VMWare Server 2 is the only one we've identified that meets our needs,
518 but its installation process is too involved
519 (and the 560MB download is probably too big) for volunteers.
520 It's conceivable that VMWare could provide us with a
521 "VMWare Lite" tailored to the needs of BOINC.
522
523 I know Mendel Rosenblum, who developed VMWare but has since left the company.
524 I just sent him an email asking him for contacts in VMWare,
525 and asking him if he knows of viable alternatives.
526
527 If anyone else knows of VMWare alternatives, please let us know.
528
529 -- David
530
531 ******************
532
533 From: Predrag Buncic <Predrag.Buncic@cern.ch>
534 Date: 3 March 2009 22:31:38 GMT+01:00
535 To: David Anderson <davea@ssl.berkeley.edu>
536 Cc: Ben Segal <b.segal@cern.ch>, Kevin Reed <knreed@us.ibm.com>, Daniel Lombraña González <teleyinex@gmail.com>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
537 Subject: Re: BOINC client strategies for virtualized jobs
538
539
540 Perhaps Sun's VirtualBox (http://www.virtualbox.org/) could qualify as
541 an alternative to VMware - its is cross platform (Windows, Linux, MacOS,
542 Solaris) and Open Source Edition would probably be good enough for what
543 we want to do. It has a command line as well as Web service API. The
544 download size is 30-36 MB (depending on a platform)
545 <http://www.virtualbox.org/>and memory footprint is ~17 MB. As a bonus,
546 it can use the same image format as VMware (without VMware tools
547 installed). The drawback is that it is still a bit more complicated to
548 install and configure than VMware.
549
550 Regarding installation of software packages, we can handle that using
551 'thin virtual machine' approach (like we do in CernVM) where all
552 software is made available to VM just in time by means of a special file
553 system that takes care of efficient downloading, caching and possibly
554 sharing software components...
555
556 Predrag
557
558 ******************
559
560 From: Daniel Lombraña González <teleyinex@gmail.com>
561 Date: 4 March 2009 10:26:40 GMT+01:00
562 To: Predrag Buncic <Predrag.Buncic@cern.ch>
563 Cc: David Anderson <davea@ssl.berkeley.edu>, Ben Segal <b.segal@cern.ch>, Kevin Reed <knreed@us.ibm.com>, David Weir <david.weir03@imperial.ac.uk>, Derrick Kondo <derrick.kondo@inria.fr>, Reinhard Prix <Reinhard.Prix@aei.mpg.de>, Rom Walton <rwalton@ssl.berkeley.edu>
564 Subject: Re: BOINC client strategies for virtualized jobs
565
566 I have been re-reading the papers that Kevin send us. The technical
567 report: "Using Virtual Machines in Desktop Grid Clients for
568 Application Sandboxing" from the CoreGrid team proposes to use
569 Qemu+KQEMU.
570
571 After re-reading it, it seems a good option to use qEmu+KQEMU. One of
572 the main benefits is that run on Windows and GNU/Linux, it is small (6
573 to 9 MB depending on the platform), and it seems that it is possible
574 to access and control it via a socket. Additionally it is GPL, so it
575 is possible to integrate the code with BOINC. It has some drawbacks
576 like it is slower than VMware, and setting up an ethernet connection
577 could be more difficult to the user than installing VMware Software.
578
579 When I started with Qemu+KQEMU and VMware at CERN, the KQEMU
580 accelerator was not GPL. Thus, we didn't use it because: 1) you have
581 to install 3 packages: Qemu, KQEMU, and OpenVPN in Windows machines
582 for having ethernet connection; 2) it wasn't GPL and 3) the set up of
583 the ethernet connection is more complex than in VMware.
584
585 I think that we can continue with VMware server, but on the other hand
586 we should re-check Qemu and see if it is a good solution for the
587 future.
588
589 What do you think?
590
591 PS: Adjoining is the technical report.
592
593 Daniel
594
595 ******************

If this page is incomplete or incorrect, please edit it or add it to the wiki to-do list. To do this, you must be logged in; click Login or Register above.