-
Notifications
You must be signed in to change notification settings - Fork 2
A distributed FUSE filesystem optimized for large-scale software development
License
aristanetworks/quantumfs
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
QuantumFS is a distributed, branchable filesystem built on FUSE and heterogeneous object stores. See the Documentation directory for more information. Dev Environment Setup --------------------- 1) Ensure your GOPATH environment variable is correctly pointed such that this README's folder path is $GOPATH/src/github.com/aristanetworks/quantumfs/README 2) Fetch vendored dependencies. Populate the vendor subdirectory with the required dependency versions, independent of any present in $GOPATH/src. cd $GOPATH/src/github.com/aristanetworks/quantumfs make fetch 3) Compile and install the Google CityHash library. A version was downloaded by `make fetch` to the vendor/cityhash directory. cd vendor/cityhash ./configure --enable-sse4.2 make all check CXXFLAGS="-g -O3 -msse4.2" sudo make install cd ../.. 4) Install protobufs: sudo yum install protobuf-devel 5) Install some other necessary libraries: sudo yum install glibc-static libstdc++-static glibc.i686 6) Follow the instructions in QFSClient/README to install the prerequisites for building QFSClient. 7) If you want to generate an RPM, you must also install fpm (https://fpm.readthedocs.io). Vendoring Dependencies ---------------------- This build environment uses `dep` to manage dependency copies in the vendor subdirectory. The documentation for `dep` can be found at: https://github.com/golang/dep This tool helps us ensure that we have a record of the precise versions of every go dependency in use by the QuantumFS build environment - especially when preparing RPMs for releasde. Any package present in the vendor directory will be used instead of an equivalent available elsewhere (eg under $GOPATH/src). Use `make fetch` to refresh the content of the vendor directory based on the versions recorded in Gopkg.lock. `dep` will be installed if necessary. Use `make update` to check for updates to existing dependencies, or where new dependencies are referenced in the code. This will attempt to resolve any conflicting version requirements, and record the updated versions in use in Gopkg.lock. If there are updates, ensure tests are passing, and then commit the updated Gopkg.*. Instructions ------------ * to compile: make all * to generate an RPM: make fetch make rpm Limits ------ * Maximum supported file size is 28.4 terabytes * Maximum size of an atomic DIRECT_IO write is 128KB. Writes larger than 128KB are split into a set of 128KB writes by the kernel. Signals ------- Sending SIGUSR1 to quantumfsd will cause the read cache to be dropped and further additions disallowed. This puts QuantumFS into a lower memory mode. This is useful, for example, when attempting to gracefully upgrade QuantumFS to a newer version without forcefully terminating existing users. Sending SIGUSR2 to quantumfsd will result in it printing debug information to its qlog. This information can be used for testing and debugging purposes.
About
A distributed FUSE filesystem optimized for large-scale software development
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published