Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible working mode supported by nydus-snapshotter #471

Open
jiangliu opened this issue May 7, 2023 · 1 comment
Open

Possible working mode supported by nydus-snapshotter #471

jiangliu opened this issue May 7, 2023 · 1 comment

Comments

@jiangliu
Copy link
Contributor

jiangliu commented May 7, 2023

Recently we are trying to enhance nydus-snapshotter with EROFS with tarfs mode, which can be used to:

  • speed up OCIv1 image handling
  • provide runtime data integrity for OCIv1 images
  • support data integrity for confidential containers

With this new features and requirements, nydus-snapshotter need to support different working modes as below:

<style> </style>
Scenario Kernel Device Filesystem Lazy Loading Need Daemon Shared Daemon
Lazy loading/data dedup for runC fusedev FUSE-RAFS Yes Yes Optional
To be defined fusedev FUSE-RAFS No Yes Optional
Lazy loading/data dedup for runC fscache EROFS on host Yes Yes Must
Tarfs for runC/confidential containers blockdev EROFS on host/guest No No N/A
Lazy loading for Kata/runD nodev EROFS in guest Yes No N/A

Currently we useDaemonMode and FsDriver to control the working mode. We need to extend/refine the configuration file format to support new usage models. How about the new configuration format

[modes]
default = "fscache"
[modes.fusedev]
enabled = true
shared = true
nydusd_config = "/etc/nydus/nydusd-config.fusedev.json"
recover_policy = "restart"
threads_number = 4
[modes.fscache]
enabled = false
nydusd_config = "/etc/nydus/nydusd-config.fscache.json"
recover_policy = "restart"
threads_number = 4
[modes.blockdev]
enabled = true
nydusd_config = "/etc/nydus/nydusd-config.blockdev.json"
[modes.nulldev]
enabled = true
nydusd_config = "/etc/nydus/nydusd-config.nulldev.json"

DaemonMode and FsDriver will still be supported for backward compatibility and transition, and eventually will be deprecated in v1.0.

@changweige
Copy link
Member

changweige commented May 9, 2023

Are multiple shared nydusd daemons running simultaneously or only one nydusd is allowed for shared mode?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants