Building From Sources¶
BeeGFS can easily be built from sources. Depending on the system, different options may be used in
the build process, and page is only intended to summarize the general procedure. For full details
refer to the project’s README.md. The
following steps require/use git
and will walk through downloading the public sources and
building packages that can be installed using your operating system’s package manager. Optionally
you can also build without packaging.
Clone the source repository from GitHub:
$ git clone https://github.com/ThinkParQ/beegfs.git
Go into the directory
beegfs
:$ cd beegfs
Install the prerequisites listed in the project’s README.md:
# yum install ...
Build by following either
the Building Packages section below.
the Building Without Packaging section.
Install the packages you need on your machines:
# rpm -i ./packages/libbeegfs-ib*.rpm \ ./packages/beegfs-{common,mgmtd,storage,meta,utils}*.rpm \ ./packages/beegfs-client-7*.rpm
Install the other packages on the machines according to your needs.
Check the System Design to continue with the installation.
Building Packages¶
BeeGFS comes with a Makefile capable of building packages for the system on which it is executed. These include all services, the client module and utilities.
To build RPM packages, run
$ make package-rpm PACKAGE_DIR=packages
You may also enable parallel execution with
$ make package-rpm PACKAGE_DIR=packages RPMBUILD_OPTS="-D 'MAKE_CONCURRENCY <n>'"
where <n>
is the number of concurrent processes.
For DEB packages use this command:
$ make package-deb PACKAGE_DIR=packages
Or start with <n>
jobs running in parallel:
$ make package-deb PACKAGE_DIR=packages DEBUILD_OPTS="-j<n>"
This will generate individual packages for each service (metadata and storage) as well as the client kernel module and administration tools.
The above examples use packages
as the output folder for packages, which must not exist and will
be created during the build process. You may specify any other non-existent directory instead.
Note, however, that having PACKAGE_DIR
on a NFS or similar network share may slow down the build
process significantly.
Building Without Packaging¶
To build the complete project without generating any packages, simply run
$ make
The sub-projects have individual make targets, for example, storage-all
, meta-all
, etc.
To speed things up, you can use the -j
option of make
.
Additionally, the build system supports distcc
:
$ make DISTCC=distcc