GekkoFS is a file system capable of aggregating the local I/O capacity and performance of each compute node in a HPC cluster to produce a high-performance storage space that can be accessed in a distributed manner.
Research Lines:
Contacte:
License:
MIT License
Primary tabs
MIT License (Latest Version)
Midterm ADMIRE version of GekkoFS
Release Notes
Changelog
All notable changes to GekkoFS project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
New
truncate()
added (!159FLOCK
andfcntl
functions for locks to interception albeit not supported by GekkoFS and returning the corresponding error code (!133).find_package()
, whereas source-only dependencies are found usinginclude_from_source()
. This new function integrates a dependency provided its source code is available atGKFS_DEPENDENCIES_PATH
. If it's not, it will try to automatically download it from its git repository using CMake'sFetchContent()
.gkfs_feature_summary()
to allow printing a summary of all GekkoFS configuration options and their values. This should help users when building to precisely see how a GekkoFS instance has been configured.O_APPEND
(!164).Changed
Removed
Fixed
unlink
now fails if it is a directory unless theAT_REMOVEDIR
flag is used (POSIX compliance) (!139).clang-format
tool (!66). A new script is available inscripts/check_format.sh
for easy of use.GKFS_METADATA_MOD
macro has been added allowing the MetadataModule to be logged, among others (!98).path_util
(!102).Changed
constexpr
(!75).Removed
Boost_preprocessor
.Fixed
path_util
that caused the compilation to fail was fixed (!115).ls
failed because newer kernels usefstatat()
withEMPTY_PATH
(!116).LOG_OUTPUT_TRUNC
did not work as expected (!118).[0.8.0] - 2020-09-15
New
-P|--rpc-protocol
and--auto-sm
have been added to the daemon to this effect. This configuration options are propagated to clients when they initialize and contact daemons.ofi+psm2
RPC protocol. Note that this requireslibfabric
's version to be greater than1.8
as well aspsm2
to be installed in the system. Clients must setFI_PSM2_DISCONNECT=1
to be able to reconnect once the client is shut down once. Known limitations: Client reconnect doesn't always work. Apparently, if clients reconnect too fast the servers won't accept the connections. Also, currently more than 16 clients per node are not supported.GekkoFWD
that allows GekkoFS to run as a user-level I/O forwarding infrastructure for applications. In this mode, I/O operations from an application are intercepted and forwarded to a single GekkoFS daemon that is chosen according to a pre-defined distribution. In the daemons, the requests are scheduled using the AGIOS scheduling library before they are dispatched to the shared backend parallel file system.fsync()
system call is now fully supported.Improved
readdir()
implementation has been refactored and improved.Fixed
ls
on some architectures.errno
propagation.[0.7.0] - 2020-02-05
Added
eventfd()
andeventfd2()
system calls.Changed
LIBGKFS_*
) and which affect the daemon (GKFS_DAEMON_*
).LIBGKFS_LOG
, while the desired output channel is controlled withLIBGKFS_LOG_OUTPUT
. Additional options such asLIBGKFS_LOG_OUTPUT_TRUNC
,LOG_SYSCALL_FILTER
andLOG_DEBUG_VERBOSITY
can be used to further control messages. Run the client withLIBGKFS_LOG=help
for more details.Fixed
fcntl()
.CMSG_DATA
inrecvmsg()
.[0.6.2] - 2019-10-07
Added
/sys
,/proc
) are forwarded directly to the kernel and internal path resolution will be skipped. Be aware that also paths like/sys/../tmp/gkfs_mountpoint/asd
will be forwarded to the kernelCREATE_CHECK_PARENTS
to controls if the existance of the parent node needs to be checked during the creation of a child node.Changed
Fixed
[0.6.1] - 2019-09-17
Added
LOG_SYSCALLS
to enable/disable syscall logging.getdents
.Changed
Fixed
--version
/--help
cli flags.loff_t
on new version of GCC.[0.6.0] - 2019-07-26
Added
-DUSE_SHM:BOOL=OFF
Changed
Removed
hosts file
for out of bound communication--listen
instead)--hosts
cli have been removedFixed
[0.5.0] - 2019-04-29
Changed
[0.4.0] - 2019-04-18
First GekkoFS public release
This version provides a client library that uses GLibC I/O function interception.
[0.3.1] - 2018-03-04
Changed