RustFS – высокопроизводительное объектное хранилище с поддержкой S3-совместимого API, предназначенное для развёртывания на собственных серверах и VPS. Проект написан на языке Rust. Это позволяет обеспечивать высокую надёжность, безопасность памяти и предсказуемое поведение под нагрузкой. RustFS может использоваться как альтернатива MinIO для хранения резервных копий, медиафайлов, логов и других неструктурированных данных.
Одной из основных особенностей RustFS является ориентация на простоту установки и эксплуатации. Сервер запускается из одного бинарного файла, не требует внешних зависимостей и может работать как системный сервис. Для хранения данных используются обычные каталоги файловой системы, которые передаются серверу как volumes, что упрощает масштабирование и перенос данных.
В статье разберём, как установить RustFS на VPS, работающий под управлением Ubuntu 24.04.
Как установить RustFS на Ubuntu 24.04
Поскольку объектное хранилище рассчитано на работу с большими объёмами данных, размещать его на системном разделе сервера зачастую нецелесообразно или невозможно. Для решения этой задачи хостинг RUVDS предоставляет услугу «Большой Диск». Данная услуга позволяет подключить к виртуальному серверу дополнительный накопитель необходимого объёма. После подключения диск можно разметить, смонтировать в файловую систему и использовать в качестве тома для размещения объектов и данных RustFS.
Создание пользователя и каталогов для RustFS
Перед установкой создайте для RustFS системного пользователя. Данный пользователь не должен иметь возможности входа в систему, поскольку предназначен для безопасного запуска RustFS как фонового сервиса:
$ sudo useradd -r -s /usr/sbin/nologin rustfs
В данной команде используются следующие опции:
- флаг
-rуказывает, что создаётся системный пользователь, а не обычная учётная запись для входа в систему; - параметр
-sзадаёт оболочку пользователя/usr/sbin/nologin, использование которой запрещает данному пользователю интерактивное подключение к системе.
Затем создайте каталог, в котором будет размещён исполняемый файл RustFS:
$ sudo mkdir -p /opt/rustfs
А также создайте каталог для конфигурации и переменных RustFS:
$ sudo mkdir -p /etc/rustfs
Далее назначьте пользователя и группу rustfs владельцем каталога с исполняемым файлом и каталога, предназначенного для хранения данных:
$ sudo chown -R rustfs:rustfs /opt/rustfs /mnt/datastore
Установка RustFS
Непосредственно для установки RustFS перейдите в каталог /opt/rustfs:
$ cd /opt/rustfs
В него загрузите архив с последней версией RustFS:
$ sudo wget https://dl.rustfs.com/artifacts/rustfs/release/rustfs-linux-x86_64-musl-latest.zip
Для извлечения файлов из загруженного zip-архива понадобится консольная утилита unzip, которая по умолчанию отсутствует в образе Ubuntu 24.04. Следующая команда устанавливает данную утилиту в систему:
$ sudo apt install unzip
Затем при помощи утилиты unzip распакуйте загруженный архив:
$ sudo unzip rustfs-linux-x86_64-musl-latest.zip
После чего сделайте исполняемым извлечённый из архива файл rustfs:
$ sudo chmod +x rustfs
Создание конфигурации RustFS
В каталоге /etc/rustfs/ создайте файл переменных окружения, который будет использоваться для хранения и передачи настроек RustFS при его запуске как системного сервиса:
$ sudo nano /etc/rustfs/rustfs.env
Вставьте в файл следующее содержимое:
RUSTFS_ADDRESS=0.0.0.0:9000
RUSTFS_CONSOLE_ENABLE=true
RUSTFS_CONSOLE_ADDRESS=:9001
RUSTFS_ACCESS_KEY=admin
RUSTFS_SECRET_KEY=Y0urP@ssword
RUSTFS_VOLUMES=/mnt/datastore
RUSTFS_LOG_LEVEL=info
В данном случае:
RUSTFS_ADDRESS=0.0.0.0:9000– адрес для API RustFS, через который клиенты будут отправлять запросы для загрузки, скачивания и управления файлами;RUSTFS_CONSOLE_ENABLE=true– параметр, включающий веб-консоль управления RustFS: значениеtrueозначает, что консоль доступна;RUSTFS_CONSOLE_ADDRESS=:9001– параметр, который задаёт адрес и порт для веб-консоли, а поскольку IP-адрес не указан явно, то консоль доступна на всех интерфейсах;RUSTFS_ACCESS_KEY=admin– основной логин для подключения к серверу RustFS;RUSTFS_SECRET_KEY=Y0urP@ssword– секретный ключ для авторизации вместе сRUSTFS_ACCESS_KEY, а по сути, пароль для доступа к серверу;RUSTFS_VOLUMES=/mnt/datastore– путь к директории на диске, которую RustFS будет использовать как хранилище объектов;RUSTFS_LOG_LEVEL=info– уровень логирования: в данном случаеinfoозначает, что будут выводиться информационные сообщения и выше, например, предупреждения и ошибки.
Закройте файл с сохранением внесённых изменений и назначьте его владельцем пользователя rustfs и группу rustfs:
$ sudo chown rustfs:rustfs /etc/rustfs/rustfs.env
Чтобы только владелец файла смог читать и редактировать rustfs.env, измените права доступа к файлу:
$ sudo chmod 600 /etc/rustfs/rustfs.env
Настройка RustFS для работы в качестве системного сервиса
Чтобы RustFS работал постоянно и в фоновом режиме, необходимо настроить его работу в качестве системного сервиса. Для этого следует создать юнит-файл для новой службы:
$ sudo nano /etc/systemd/system/rustfs.service
В юнит-файл поместите следующее содержимое:
[Unit]
Description=RustFS Object Storage
After=network-online.target
Wants=network-online.target
[Service]
User=rustfs
Group=rustfs
EnvironmentFile=/etc/rustfs/rustfs.env
ExecStart=/opt/rustfs/rustfs \
--address ${RUSTFS_ADDRESS} \
--console-enable \
--console-address ${RUSTFS_CONSOLE_ADDRESS} \
${RUSTFS_VOLUMES}
Restart=always
RestartSec=5
LimitNOFILE=65536
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Сохраните файл и закройте его. После чего запустите команду, которая заставит систему инициализации перечитать свои конфигурационные файлы:
$ sudo systemctl daemon-reload
Затем поместите новую службу в автозагрузку, чтобы она запускалась вместе со стартом системы:
$ sudo systemctl enable rustfs
После чего запустите службу RustFS:
$ sudo systemctl start rustfs
Чтобы проверить корректность работы службы, выведите на экран её текущее состояние:
$ systemctl status rustfs
В выводе команды не должно быть сообщений о каких-либо ошибках.

Проверка работоспособности RustFS
Для корректной работы хранилища откройте в брандмауэре порты 9000 и 9001, используемые RustFS:
$ sudo ufw allow 9000/tcp
$ sudo ufw allow 9001/tcp
После чего запустите браузер и перейдите по ссылке вида http://X.X.X.X:9001, где вместо X.X.X.X укажите IP-адрес сервера.

Для подключения к веб-интерфейсу RustFS введите логин и секретный ключ, указанные в файле /etc/rustfs/rustfs.env.

