The only issue with this solution seems to be that now you have vm_cache on the host different that the "empty" vm_cache on the server. On my combination of server/client version I'm testing with this hasn't been a problem, the empty one is never redownloaded or anything wiping out the persistence.
Marius On Wed, Jul 1, 2015 at 2:27 PM, Marius Millea <[email protected]> wrote: > Hi Rom, > > So if I understand correctly, with vm_cache.vdi marked immutable, VBox > makes a differencing VDI. To persist this, we would need to pick this file > up and copy it to projects/, then on the next run load *it* up instead of > vm_cache? If so this seems unnecessarily complicated, why not just have > vm_cache.vdi be mutable and simply attach it to the VM straight from the > projects/ folder? In practice, it would be marked NOT <copy_file/> so we > get a softlink to it in slots, vboxwrapper follows this to projects/ and > attaches the VM, so it would seem in line with the logic you'd expect from > an app dealing with a softlinked file. > > Thanks, > > Marius > > > On Mon, Jun 29, 2015 at 12:11 PM, Rom Walton <[email protected]> wrote: > >> Vboxwrapper.cpp:673 would be the place you would want to start with any >> local changes. >> >> >> >> I think we wanted to go one step further when removing the <copy_file/> >> flag and also mark the VDI as immutable. That would cause VirtualBox to >> create a differencing disk in the local slot directory and avoid the disk >> image copy operation to the slot directory. >> >> >> >> Doing so will probably lead to some bigger changes though. >> >> >> >> ----- Rom >> >> >> >> *From:* Marius Millea [mailto:[email protected]] >> *Sent:* Monday, June 29, 2015 1:30 AM >> *To:* Rom Walton <[email protected]>; [email protected] >> >> *Subject:* Re: [boinc_dev] is there a way to persist files on the host >> >> >> >> Hi Rom, >> >> >> >> I saw your commits regarding the scratch directory. Thanks for the >> amazingly quick response! >> >> >> >> Unfortunately, I now realize its not going to work out as I initially >> imaged it (see this discussion >> <https://forums.docker.com/t/how-does-boot2docker-persistence-work/2077> >> with one of the boot2docker guys). Basically, the docker directory can't be >> on a VBox shared folder due to insufficiencies of vboxfs. >> >> >> >> I should have realized that the correct way to do this is via >> boot2docker's normal way of persistence, which just uses a VDI disk. >> Essentially a persistent VDI would live in the BOINC project/ directory, >> and vboxwrapper would attach that same one each time to the VM (meaning you >> can only have 1 of these kinds of tasks running at a time, granted that was >> always the case without properly installing the docker client on each >> host). This is in fact *almost* exactly what the wrapper currently does. >> The only change needed would be to allow vm_cache.vdi to not have >> <copy_file/> and to have vboxwrapper correctly follow this link (I don't >> think it currently does). I'm wondering what you think about possibly >> adding an option to do that? I feel bad having you take the time for this >> other scratch directory feature which was not really needed by me (I think >> it might still be useful to some anyway), plus I acknowledge I don't know >> what other road blocks I might hit. If you wanted to just point me to where >> I might make this change myself, I'm happy to do it. >> >> >> >> In any case, I had been hoping I could avoid changes to vboxwrapper so >> that I could have the convenience of using the precompiled versions you >> guys put up. Since that doesn't look like its going to be possible, is >> there any help you could give me on cross compiling? What does your setup >> look like? (I've never done this before) >> >> >> >> Thanks, >> >> >> >> Marius >> >> >> >> >> >> On Thu, Jun 25, 2015 at 4:40 PM, Marius Millea <[email protected]> >> wrote: >> >> Thanks for the interest. Thus far just Linux, although a Windows >> machine is waiting once any of this kind of works. The way I currently >> envisage it (which could well change), there would be no forking >> vboxwrapper required. Basically I modified the boot2docker ISO to act as >> "multi purpose app" (in the language of >> http://boinc.berkeley.edu/trac/wiki/VboxApps) so on boot it mounts >> shared/ and from there runs some boinc_app script. That script then calls >> "docker run..." etc.. so its all happening inside the VM, the host system >> never needs to interact directly with the docker daemon. It could certainly >> be done other ways too though. >> >> >> >> And agreed, the boot image size is very enticing. There is also the size >> of the docker image that gets run, but there are decent to good base images >> in the 5-100Mb range, and with this persistence thing working it would be a >> one time download (and thank's to Docker, if you're running different >> images all based on the same base image, you only download the changes). >> >> >> >> Marius >> >> >> >> On Thu, Jun 25, 2015 at 4:18 PM, Rom Walton <[email protected]> wrote: >> >> Marius, >> >> What host platform are you testing against? >> >> ----- Rom >> >> -----Original Message----- >> From: boinc_dev [mailto:[email protected]] On Behalf Of >> Rom Walton >> Sent: Thursday, June 25, 2015 5:43 PM >> To: Marius Millea <[email protected]> >> Cc: [email protected] >> Subject: Re: [boinc_dev] is there a way to persist files on the host >> >> Well, that is an interesting idea. >> >> Ultimately I think there will need to be a fork of vboxwrapper that knows >> how to handle the docker daemon as well as VirtualBox. >> >> A 27MB boot image is pretty enticing. >> >> ----- Rom >> >> From: Marius Millea [mailto:[email protected]] >> Sent: Thursday, June 25, 2015 4:43 PM >> To: Rom Walton <[email protected]> >> Cc: [email protected] >> Subject: Re: [boinc_dev] is there a way to persist files on the host >> >> Yea sorry ambiguous what I meant by host there. The idea is that BOINC >> clients are running VBoxwrapper which loads up boot2docker inside of which >> I run my Docker apps. >> >> Marius >> >> On Thu, Jun 25, 2015 at 1:38 PM, Rom Walton <[email protected]<mailto: >> [email protected]>> wrote: >> Hosts or guests? >> >> Using VirtualBox implies that your docker application would be running >> within a Linux guest. >> >> ----- Rom >> >> From: Marius Millea [mailto:[email protected]<mailto: >> [email protected]>] >> Sent: Thursday, June 25, 2015 4:10 PM >> To: Rom Walton <[email protected]<mailto:[email protected]>> >> Cc: [email protected]<mailto:[email protected]> >> >> Subject: Re: [boinc_dev] is there a way to persist files on the host >> >> Hi Rom, >> >> Yea, I think that's exactly what I'd need. I had started looking at the >> source for vboxwrapper, but if that's something you could add officially to >> BOINC then that'd be amazing, thanks! >> >> My end goal btw is to have hosts running Docker, and this would allow >> persisting images between tasks. We'll see if there's any other road >> blocks... >> >> Marius >> >> >> >> >> >> On Thu, Jun 25, 2015 at 12:25 PM, Rom Walton <[email protected]<mailto: >> [email protected]>> wrote: >> I can add another shared directory that points to a scratch area in the >> project's directory. >> >> Would that work for you? >> >> ----- Rom >> >> -----Original Message----- >> From: boinc_dev [mailto:[email protected]<mailto: >> [email protected]>] On Behalf Of Marius Millea >> Sent: Thursday, June 25, 2015 2:27 PM >> >> To: [email protected]<mailto:[email protected]> >> Subject: Re: [boinc_dev] is there a way to persist files on the host >> >> (sorry if this screws up the threading, I can't figure out how to reply >> to a specific message given I receive only the digest?) >> >> >> I see, that makes a lot of sense, thanks. I suppose a followup problem is >> that this is a VBox app, which AFAIK only gets access to the mounted >> shared/ folder. Is there any way around this? >> >> Marius >> >> >> The easiest way is to not tell BOINC about the file - >> > just create it in the project directory, and look for it there in >> > subsequent jobs. >> > >> > The app can get the project dir from the APP_INIT_DATA: >> > http://boinc.berkeley.edu/trac/wiki/StatusApi >> > >> > -- David >> > >> > >> > On 25-Jun-2015 2:10 AM, Marius Millea wrote: >> > > Suppose the result of a computation yields a large file which I >> > > would >> > like >> > > >> > > 1) to remain on host >> > > 2) to be used in subsequent computations >> > > 3) to not be uploaded >> > > >> > > I think I know how to do 1), if I have the file in the output >> > > template I can add the <copy_file> flag. Is there actually any way >> > > to do 2 or 3 though? >> > > >> > > Thanks, >> > > >> > > Marius >> _______________________________________________ >> boinc_dev mailing list >> >> [email protected]<mailto:[email protected]> >> >> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev >> To unsubscribe, visit the above URL and >> (near bottom of page) enter your email address. >> >> >> _______________________________________________ >> boinc_dev mailing list >> [email protected] >> http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev >> To unsubscribe, visit the above URL and >> (near bottom of page) enter your email address. >> >> >> >> >> > > _______________________________________________ boinc_dev mailing list [email protected] http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev To unsubscribe, visit the above URL and (near bottom of page) enter your email address.
