yandex-cloud / geesefs

Finally, a good FUSE FS implementation over S3
Other
691 stars 45 forks source link

Cluster Mode #76

Closed daniil-ushkov closed 1 year ago

daniil-ushkov commented 1 year ago

Attempt to implement cluster mode for geesefs.

Cluster mode helps achieve consistent file system access when several geesefs instances works with same S3.

The main idea is that each file (or directory) placed on single geesefs instance called owner. During the runtime owner of file can be changed by mechanism of stealing. It means that geesefs instance can try to take file ownership from another instance. So if instance works exclusively with file, there is a great chance that it owns this file and access performance is not worse than vanilla geesefs has.

The implementation tries to be a wrapper for internal geesefs code, working with inode tree and S3 API, to use its optimizations as much as possible.

Not implemented yet

daniil-ushkov commented 1 year ago

Set of flags was changed. For example, if you want to start two nodes, you should type something like this:

node 1

geesefs --cluster --cluster-me=1:localhost:1337 --cluster-peer=1:localhost:1337 --cluster-peer=2:localhost:1338

node 2

geesefs --cluster --cluster-me=2:localhost:1338 --cluster-peer=1:localhost:1337 --cluster-peer=2:localhost:1338
vitalif commented 1 year ago

OK, thanks for your work! Probably not the final version yet, but let's merge it and make further improvements in separate PRs :)