This is an old revision of the document!
iRDOS Fuse lite (irodsfs)
General Information
Linux users are able to mount iRODS collections and data objects (i.e. the iRODS version of directories and files) in their local directory hierarchy by using irodsfs
, a FUSE implementation of the iRODS client that you can download here: https://github.com/cyverse/irodsfs.
In this way, you can access data stored on an iRODS system, in our case on the RDMS, via the local directory hierarchy. This also allows you to use common Linux tools, e.g. rsync
, cp
, mkdir
or vi
, to transfer, read, and/or organize the files present on the RDMS.
The irodsfs
package is pre-installed on the (virtual) Linux workplace and can be invoked by running the irodsfs
command from the terminal.
For other Linux systems, the developer of irodsfs
provides pre-built binaries which you can download from Releases on the official Github instance of the project (https://github.com/cyverse/irodsfs/releases).
Setup of irodsfs
To install and set up irodsfs
on your personal Linux environment, follow steps 1-4. If you use the LWP instead, irodsfs
is already preinstalled, and steps 1 and 2 can be skipped.
1. Download the correct irodsfs
version from Github (https://github.com/cyverse/irodsfs), either via browser or terminal. In this example, the download is performed using wget
and the file is downloaded to the user's home directory.
$ cd $ wget https://github.com/cyverse/irodsfs/releases/download/vX.X.X/irodsfs-vX.X.X-linux-amd64.tar.gz
Be sure that you substituted vX.X.X
with the current version, and also change amd64
to the correct parameters for the CPU that you are using.
Alternatively, the following command can be used to check for the newest version and download the .tar.gz
to the current working directory:
$ curl -s https://api.github.com/repos/cyverse/irodsfs/releases/latest | grep "browser_download_url.*amd64.tar.gz\"" | cut -d ':' -f 2,3 | tr -d \" | wget -i -
2. Extract the downloaded .tar.gz
file:
tar -xvf irodsfs-vX.X.X-linux-amd64.tar.gz
The extracted irodsfs
binary can be run from every location when the path is specified, but can also added to the user's $PATH
environment variable to make it available globally. In this tutorial, we will not put our binary in a location contained in the $PATH
environment variable.
3. Create a configuration file for the use with irodsfs
:
$ touch ~/.irods/config.yaml
Open the created config.yaml
file and paste the following content in it and save the file:
host: rdms-prod-icat.data.rug.nl port: 1247 proxy_user: <username>@rug.nl client_user: <username>@rug.nl zone: rug password: auth_scheme: "pam" ssl_ca_cert_file: "/etc/ssl/certs/ca-bundle.crt" ssl_encryption_key_size: 32 ssl_encryption_algorithm: "AES-256-CBC" ssl_encryption_salt_size: 8 ssl_encryption_hash_rounds: 16 path_mappings: - irods_path: /rug/home/<username> mapping_path: / resource_type: dir
Attention!
In irodsfs
versions prior to v0.8.3, the configuration file used autscheme
instead of auth_scheme
. Please keep this in mind when using the above example configuration file!
Alsp, please take care that the correct username is specified in the configuration file.
You also need to create an empty mount point in your Linux system. This can be done with:
$ mkdir ~/irods_mount/
which will create an empty directory irods_mount/
in the user's home directory which will be used as mount point in the last step.
Mounting and unmounting iRODS collections with irodsfs
To mount your RDMS/iRODS collection to your local file system, run:
$ ~/irodsfs --config ~/.irods/config.yaml ~/irods_mount/
You will be prompted for your password, and if no error messages are shown, you can now access your personal iRODS directory is mounted at ~/irods_mount/
If you want to use the version that is preinstalled on the LWP, you do not need to specify the absolute path to irodsfs
, the command to mount the drive therefore becomes
$ irodsfs --config ~/.irods/config.yaml ~/irods_mount/
To unmount a previously mounted collection, in this example ~/irods_mount/
, the following command can be used:
$ fusermount -u ~/irods_mount/
Additional tips
irodsfs
also allows to map multiple RDMS collections to the mount point. This behavior can be adjusted by changing the `path_mapping` in the config.yaml
file that contains the irodsfs
configuration.
The following configuration will mount the users personal RDMS Home Drive at ~/irods_mountpoint/RDMS_Home
, but also a RDMS Team Drive at ~/irods_mountpoint/RDMS_Team
.
host: rdms-prod-icat.data.rug.nl port: 1247 proxy_user: <username>@rug.nl client_user: <username>@rug.nl zone: rug password: authscheme: "pam" ssl_ca_cert_file: "/etc/ssl/certs/ca-bundle.crt" sslencryption_key_size: 32 ssl_encryption_algorithm: "AES-256-CBC" ssl_encryption_salt_size: 8 ssl_encryption_hash_rounds: 16 path_mappings: - irods_path: /rug/home/<username>@rug.nl mapping_path: /RDMS_Home resource_type: dir - irods_path: /rug/home/<Team_Drive_Name> mapping_path: /RDMS_Team resource_type: dir
It is also possible to use irodsfs
inside the Peregrine HPC cluster. Just connect via ssh
and follow the manual as if working on your local Linux machine.
It is also possible to provide the user password directly in the config.yaml
file, but it is not recommended to do so.
irodsfs
can be also installed and used in the Windows Subsystem for Linux (WSL).