Coder Social home page Coder Social logo

Comments (11)

gigawhitlocks avatar gigawhitlocks commented on August 14, 2024

@hickeng, I had a discussion w/ the Lifecycle team regarding this, and received this response "you probably want to directly consume bits of disklib, ala diskTool. Writing useful state into the VMDK requires some tool that understands ext4. I vaguely recall the tools team having some code that inspects VMDK content invasively, but don't know the details"

Further asking about ext4 seems to indicate that there's no ext4 partitioning available on ESX, however this sort of thing could be done from inside of a Linux VM (I'm sure this is not surprising). Further discussion with Mike Hall seems to indicate that we might be out of luck as far as doing this in an application running directly on ESX but a service VM (or maybe just a process running on the VCH) should be able to perform these actions in a way that's more efficient/performant than our current approach, through the use of loopback block devices.

I tend to agree that performing these operations on the host directly would at the very least be considerably more challenging than performing them inside of a VM.

from vic.

hickeng avatar hickeng commented on August 14, 2024

We're currently performing the manipulation inside a VM, and that introduces either bottlenecks or significant throughput degradation; the latter could just require optimization, that's TBD.

Presenting the disk as a true block device in the VM requires attach/detach operations, which are serial and expensive as they entail a fast-suspend-resume, and you are limited to 4 scsi controllers and 15 disks per controller. You could partially address the serial element with clever operation batching, but the latency isn't going to improve.

If you mount the datastore directly (via 9p for example) then you bypass the need for attach/detach (see BON-26) however throughput was significantly lower. If the throughput performance could be improved and the security implications addressed then this latter approach becomes viable.

from vic.

gigawhitlocks avatar gigawhitlocks commented on August 14, 2024

Yeah, @mlh78750 and I discussed the current drawbacks with the current 'true block device' approach, @mlh78750 can you weigh in on this discussion?

from vic.

mlh78750 avatar mlh78750 commented on August 14, 2024

The thought I had was could we use something disklib and create a VMDK on a normal filesystem on a guest. Then loopback mount it as a block device and use the normal linux tools to format and lay the archives on that filesystem. Then unmount and move that VMDK (file) to the datastore.

from vic.

fdawg4l avatar fdawg4l commented on August 14, 2024

@mlh78750 loopback to what? You create the vmdk in the hypervisor or in the guest? If in the guest, sure, but is there a driver for that which doesn't rely on FUSE?

from vic.

mlh78750 avatar mlh78750 commented on August 14, 2024

I was under the assumption we had no support to format ext4 and mount it on the host. If that is not the case and we can, then that is a better solution. If we cannot, then yes, I was thinking of something using FUSE to mount that image.

from vic.

fdawg4l avatar fdawg4l commented on August 14, 2024

@hickeng do you have a pointer to the bonneville 9p code? I recall there are bits that live in the daemon (but could be wrong) and bits that live in esx (but could be wrong). A pointer to both/either would be appreciated.

from vic.

fdawg4l avatar fdawg4l commented on August 14, 2024

This looks mostly like BON-147, BON-148, and BON-149. FYI in case we want to close those jira issues as this should probably subsume them.

from vic.

dougm avatar dougm commented on August 14, 2024

Parent issue: #38

from vic.

gigawhitlocks avatar gigawhitlocks commented on August 14, 2024

Is this still relevant? @hickeng

from vic.

hickeng avatar hickeng commented on August 14, 2024

@gigawhitlocks still relevant, just not in plan for the near future - this requires an ESX agent and should be deferred until we have got the VMCI/vSocket communication work in place (that will supply the necessary basics and is higher priority).

from vic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.