This repository was archived by the owner on Aug 2, 2023. It is now read-only.
This repository was archived by the owner on Aug 2, 2023. It is now read-only.
Virtual folder API #28
Closed
Description
Provide a virtual folder API. Users can create virtual folders with limited storage and mount them when launching kernel sessions by passing the list of virtual folders via options.
- Write an initial master-agent negotiation step to get mount information
- This is done via etcd.
- Test mounting mounted SMB volumes into docker containers
- This works like a charm with Azure FileShare storage.
- Test mounting mounted NFS volumes into docker containers
- A quick googling shows that mounting from the container does not work without privileged mode. Mounting in the host seems to work.
- Have a look at docker volume NFS extension or NetApp docker volume plugin?
- Configurations (separate NFS host or a local root directory)
- CRUD of virtual folder instances with a database schema
- Each folder has a unique ID, filesystem alias, ownership and ACL, size/file limits.
- Filesystem alias cannot start with dots.
- sorna-agent should skip mounted virtual folders when uploading output files in
/home/work
of kernel containers
- Deploy a backend NFS/SMB server - later, we would migrate to Amazon EFS or other similar NFS-compatible storage services for scalability
- How could we dynamically mount/unmount subtree of the NFS? Fuse?
- The NFS server itself may use the standard kernel-side NFS daemon, but should use a separate EBS volume for ease of management and backups.
- UPDATE: This is done using Azure File Share. It has some latency due to geographic distances, so later we will revisit for performance optimization using closer locations if available.
- Implement mounting of virtual folders to agent instances and kernels
We should keep each virtual folder exclusively mounted. (not shared among multiple kernels even for a single user) -- release this limitation later? (it's NFS's responsibility to keep filesystem consistency anyway)- Filesystem-level synchronization should be handled by the NFS/SMB server.