Skip to main content

GeeseFS

GeeseFS is a program used to mount a bucket to a device or server and work with it as if it were a regular folder. GeeseFS is suitable for working with a large number of objects, each up to 1 MB in size. GeeseFS supports Linux, Windows, and macOS.

Configure GeeseFS

  1. Configure S3 access.
  2. Install the client.
  3. Create a configuration.

1. Configure access to S3

Access can be configured by the Account Owner or a user with the iam.admin role.

  1. Create a service user with a role with access to S3. If you use a service user with the s3.user, object_storage_user or s3.bucket.user role, the bucket must have a configured access policy and its rules must allow access to this user.
  2. Issue an S3 key to the user.

2. Install the client

  1. Ensure that utilities for working with FUSE are installed by default:

    apt list --installed | grep fuse
  2. If the utilities are not installed, install them:

    sudo apt-get install fuse
  3. Download and install GeeseFS:

    wget https://github.com/yandex-cloud/geesefs/releases/latest/download/geesefs-linux-amd64
    chmod a+x geesefs-linux-amd64
    sudo cp geesefs-linux-amd64 /usr/bin/geesefs

3. Create a configuration

  1. Open the CLI.

  2. Create a directory where the file with the S3 key will be stored:

    mkdir ~/.aws
  3. Create the credentials file:

    nano ~/.aws/credentials
  4. Add the S3 key:

    [default]
    aws_access_key_id = <access_key>
    aws_secret_access_key = <secret_key>

    Specify:

    • <access_key> — value of the Access key field from the S3 key;
    • <secret_key> — value of the Secret key field from the S3 key.
  5. Press Ctrl + X → Y → Enter.

Mount the bucket

  1. Create a folder for mounting:

    mkdir /mnt/<folder_name>

    Specify <folder_name> — the name of the folder where the bucket will be mounted.

  2. Mount the bucket:

    sudo geesefs
    --endpoint https://<s3_domain>
    --region <pool>
    --profile <profile_name>
    <bucket_name> /mnt/<folder_name>

    Specify:

    • <s3_domain> — S3 API domain depending on the pool where the bucket is located;
    • <pool> — pool where the bucket is located;
    • <bucket_name> — name of the bucket to mount;
    • <profile_name> — profile name, default is default;
    • <folder_name> — name of the folder you created in step 1.
  3. Ensure that the bucket is mounted:

    df -hT /mnt/<folder_name>

    Specify <folder_name> — the name of the folder you created in step 1.

Unmount the bucket

The unmounting method depends on how the bucket was mounted: once or automatically.

Unmount the bucket:

sudo umount /mnt/<local_folder>

Specify <local_folder> — the path to the folder where the bucket is mounted.