Comments (9)
@JeroenSoeters what do you think about using cloud-hypervisor for this?
I think we should create a nice interface and then write an implementation, that leverages cloud-hypervisor underneath. This way we could replace cloud-hypervisor with something else later on. Also, I'd like to have support for classical VMs - which would be a problem with firecracker, as it just supports a very limited set of (virtual) hardware.
from aurae.
I think this example should give us what we need to run a simple linux kernel and schedule auraed
as /bin/init
https://github.com/rust-vmm/linux-loader
from aurae.
So here is where I think we start.
- Check out the
try_from
function here
It looks like we can pass Boot Arguments and Init Arguments to the linux loader crate which gives us the ability to define our init process similar to any bootloader.
We can hook in here and generate the string to boot a nested auraed as a guest for a pod.
from aurae.
I was going to take a shot at this. Wondering, though, if it makes sense to just implement the VmsService and then build the PodSandbox
stuff on top. This keeps the scope somewhat contained and we need it anyways. Happy to create a new issue for that work, and link that issue here. Thoughts?
from aurae.
Issue for VmsService which we can then leverage for the "Pod Sandbox": #439
from aurae.
Can we maybe create a good abstraction so we can replace the virtualization implementation later on?
I have great sympathy for Firecracker as this is used in production by AWS. When I look at the current state of the aurae project, I think we should try to not get distracted by implementing/extending a hypervisor.
from aurae.
I think staying out of the hyper visor details is a good move for right now -- I do think it should remain compiled into the auraed binary -- but ideally we should be able to consider other hypervisor implementations at compile time
from aurae.
The more I look at the FC code, the more I do not want to implement our own hypervisor :) I will create an RFC once I have better organized my thoughts around this topic. I'm currently exploring Dragonball, which might or might not suit our needs better. https://github.com/kata-containers/kata-containers/tree/main/src/dragonball
Can we maybe create a good abstraction so we can replace the virtualization implementation later on?
This is what kata containers does as well, they abstract the hypervisor and make it pluggable.
from aurae.
Last time I looked at this cloud-hypervisor seemed like the best choice yea because of what you mention as well as vhost-net
support. I had started some of that work around an interface, I believe the next step was creating TUN/TAP devices from out networking code.
from aurae.
Related Issues (20)
- Clone init::Context into AuraeRuntime HOT 2
- Implement Cache for CRI HOT 5
- Formalize Nivenly Foundation
- RFC: eBPF architecture HOT 5
- Cargo.nix Why does it need to live here? HOT 12
- Execution Authentication HOT 1
- Concerns About CPU Quota Implementation HOT 2
- What does "Pod Sandbox" mean to Aurae? HOT 12
- Utilize `deno_runtime::MainWorker` to enable more Deno features when running AuraeScript files HOT 1
- Create "Container Service" HOT 1
- Implement the VmsService HOT 2
- TAP devices and virtio sock for guest auraed HOT 4
- RUSTSEC-2023-0018 - Package remove_dir_all vulnerable
- Generate New TLS Material for Secure Communication with Nested Auraed Cells HOT 1
- Cargo check deny (Security Advisories)
- Inefficient Builds (15 mins) HOT 4
- libcontainer dependency was updated and our cargo.toml is only pinned to the branch, not the commit HOT 2
- SPDX License Identifiers in the Source Code HOT 2
- buf update breaks many things HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aurae.