File Services
The file services of the computer operating group are basically divided into home directories (homes) and volumes. Homes are intended for storing personal data and volumes for shared data. Both are limited in size by quotas.
Home directory
Internal Home
A home is created for each account to store private files, e.g. the .bashrc
or private SSH keys. For projects with other users or locally installed software, Volumes should be used. The home is available everywhere within TechFak and is mounted by Netboot under /homes/USER
by default. For security reasons, it cannot be accessed externally. However, the remote
directory exists for this purpose.
remote
directory
- The
remote
directory is a normal and therefore permanent directory. - It is always located under
/media/remote/USER.
- It plays a special role in connection with
files.techfak.de
, as only this directory is accessible from outside the TechFak network. - The memory consumption is added to that of the
home
directory.
GPU cluster
On the GPU cluster there is a separate home on its own file server. This is encapsulated from the other home and from all PCs with Netboot. The separate file server enables a significantly higher data throughput with lower latency.
Volume
Volumes can be used in two different ways, either as a project volume or as a software volume. They are always located in the directory /vol/
and are usually linked to a Unix group of the same name.
Project volume
This is simple storage space that different people can share, e.g. to work together on a project or exercises. There are virtually no limits on when or for what a volume can be requested.
To apply for a project volume, simply send an email to support@techfak.net. A volume usually has a Unix group containing the people who can access the volume. It therefore makes sense to send a list of the people who should be in the group at the same time.
Software volume
A software volume is intended for programs that are not available in the standard package sources of Ubuntu
- are not available at all,
- are only available in an older version,
- are only available in an insufficient or faulty version (possibly for functions that must be explicitly activated when compiling) or
- cannot be available for licensing reasons (i.e. non-free software such as Adobe products).
Each software volume includes an RCINFO package to make it as easy as possible for users to select the software.
Software that is used by more than one user should never be used other than via a volume and RCINFO! If you set environment variables manually, the entire account may no longer function correctly if the software is changed. If a program is integrated via RCINFO, you can repair the corresponding variables for all subscribers.
Quota
To ensure that our storage space is always sufficient for all users, homes and volumes have so-called quotas. These are storage limits that prevent more than the allocated storage space from being used. However, to ensure that everyone always has enough storage space, employees can request a quota of 100 GiB. All they need to do is send an email to support@techfak.net. The quotas are currently as follows:
Category | Quota |
---|---|
Student Homes | 25 GiB |
Employee Homes | 25 GiB |
On request 100 GiB | |
Volume | 10 GiB - 5 TiB, depending on demand. |
You will receive a warning by e-mail before the quota is reached.
The current quota for a directory can be displayed with the command df -h /path/to/directory
and is specified as 'size'. For example:
juser@host$df -h /vol/ghc
Filesystem Size Used Avail Use% Mounted on
vol.nfs.fs.cit-ec.net:/vol/ghc 100G 8.4G 92G 9% /vol/ghc
Request volume
If you need a software or project volume, you can request it by sending an e-mail to support@techfak.uni-bielefeld.de. A volume will then be set up in which you can install the relevant software or save data. Further information specifically for software volumes can be found below:
Software volume
You are the contact person for users in case of problems with the software you provide and ensure that updates within the version are provided promptly.
Structure
Software volumes are structured according to the usual FHS scheme:
bin/ |
programs of the software package |
lib/ |
libraries of the software package |
man/ |
man pages for the corresponding binaries |
share/applications/ |
.desktop files to integrate GUI software into the menu |
doc/ |
documentation of the software package |
src/ |
source code including local patches |
In addition to these directories, there is also the TechFak-specific .rcinfo
with the following content
.rcinfo/description |
description of the volume (72 characters), which you get when you select the RCINFO package for this volume |
.rcinfo/maintainer |
TechFak username who is responsible for this volume |
.rcinfo/environment |
environment variables which are needed to use the software |
To install into this structure, in most cases it is sufficient to use the --prefix
switch in the compiler set:
./configure --prefix="/vol/acme" && make && make install
Environment variables
To allow users to choose between different versions of the software, RCINFO uses small packages that define the environment variables required to run the software.
The default package we provide looks like this (where ${RCINFO_PACKAGE_NAME}
is replaced by the name of your volume):
PATH=/vol/${RCINFO_PACKAGE_NAME}/bin
MANPATH=/vol/${RCINFO_PACKAGE_NAME}/man
XDG_DATA_DIRS=/vol/${RCINFO_PACKAGE_NAME}/share
If it is unavoidable that your volume configuration deviates from this standard environment, you can overwrite the defaults; this also allows you to define additional variables or omit those that are not required:
PATH="/vol/chaosvolume/ACME Programs"
LD_LIBRARY_PATH="/vol/chaosvolume/ACME Libraries"
JAVA_HOME="/vol/chaosvolume/ACME Java"
Usual variables:
Variable | Function |
---|---|
PATH |
search path for program binaries |
LD_LIBRARY_PATH |
search path for program libraries |
MANPATH |
search path for manpages |
XDG_DATA_DIRS |
Search path for menu entries of the graphical user interface |
#### Newer versions |
For new versions, you will receive an additional volume (e.g. /vol/NAME-1.2.3
) for parallel operation on request. The default /vol/NAME
should always point to the version that most users need and should not be changed during a semester or before important dates such as project demos.
Alternative structure
My (proprietary) software bundle is not structured, but comes flat (everything in one directory). Can't I just get a flat volume?
**No
Flat volumes for software packages make it unnecessarily difficult to maintain the volumes and associated RCINFO packages.
Non-maintained RCINFO packages lead to users starting programs directly from the subdirectories or copying the long paths into their configuration, with the corresponding negative consequences when changes are made (e.g. upgrades or renaming of binaries).
The resulting errors not only affect the corresponding software, but also lead to faulty operation of the entire system. The problems often remain undetected for a long time, so that the connection cannot be established immediately, or the condition is considered normal by users (''Firefox always crashes, so I use Opera™'').
If your software is unstructured, we recommend placing it in a subdirectory in the lib/
directory:
/vol/acme/lib/all-in-all-15.0_en
and set a symlink to the available binaries in bin/
:
/vol/acme/bin/firered
→ /vol/acme/lib/all-in-all-15.0_en/firered-en-15.0.98
/vol/acme/bin/marineblau
→ /vol/acme/lib/all-in-all-15.0_en/marineblau-en-15.0.22
Of course, short bash scripts can also be used as starters.