As mentioned in #151, if we restart the stargz-snapshotter process, all the related containers need to be restarted because the fuse goroutine is killed.
Some Ideas
For solving this we can use a separate FUSE manager daemon to handle all FUSE servers.
An new implementation of FileSystem interface in snapshot/snapshot.go can be made, which calls FUSE manager daemon through gRPC, so FUSE servers will be managed by manager daemon. Then after snapshotter's restart, containers don't need to be restarted, and stargz images don't need to be restored.
Some Worries
Same issue will happen again when we want to restart the FUSE manager
cc: @ktock
As mentioned in #151, if we restart the stargz-snapshotter process, all the related containers need to be restarted because the fuse goroutine is killed.
Some Ideas
For solving this we can use a separate FUSE manager daemon to handle all FUSE servers.
An new implementation of FileSystem interface in snapshot/snapshot.go can be made, which calls FUSE manager daemon through gRPC, so FUSE servers will be managed by manager daemon. Then after snapshotter's restart, containers don't need to be restarted, and stargz images don't need to be restored.
Some Worries
Same issue will happen again when we want to restart the FUSE manager
cc: @ktock