RustFS: своё S3-хранилище на сервере вместо MinIO
RustFS это открытое S3-хранилище на Rust: Docker, веб-консоль, версионирование, шифрование и erasure coding. Разбираем, чем оно может заменить MinIO, что в нём ещё молодо и как проверить его на своих данных до переезда.
Зачем бизнесу своё S3-хранилище
Типичная история: интернет-магазин накопил сорок тысяч фотографий товаров, студия хранит видеоисходники, а бухгалтерия каждую ночь выгружает копии базы. Всё лежит в облаке, и в конце месяца приходит счёт за гигабайты и за исходящий трафик. Чем популярнее сайт, тем больше счёт.
Свой сервер с дисками снимает эту зависимость. Приложения умеют говорить с хранилищем на языке S3, и им всё равно, где оно стоит: у облачного провайдера или у вас в стойке. Меняется адрес и пара ключей, код остаётся прежним. Подробно, как это устроено, я разбирал в статье про MinIO как своё S3-хранилище. Здесь речь о ещё одном кандидате.
Что такое RustFS
RustFS написан на языке Rust и развивается в открытом репозитории github.com/rustfs/rustfs. По данным GitHub на 4 октября 2026: около 34 тысяч звёзд, чуть больше 1,5 тысячи форков, репозиторий создан в ноябре 2023 года, последний коммит сделан в день проверки. Лицензия Apache-2.0: её можно использовать в коммерческих проектах без обязанности открывать свой код.
Авторы описывают проект как хранилище, которое умеет сосуществовать с MinIO и Ceph и облегчает переезд с них. Из возможностей, которые в README помечены как доступные (Available):
- версионирование объектов и Object Lock, то есть запрет на удаление и перезапись на заданный срок;
- шифрование на стороне сервера, ключи можно держать в Vault или AWS KMS;
- правила жизненного цикла: удалять старые копии, переносить данные на другое хранилище;
- репликация между бакетами и между площадками;
- пользователи, политики доступа, вход через OIDC;
- веб-консоль, квоты на бакеты, журнал аудита, метрики;
- доступ по SFTP и WebDAV.
Как устроена отказоустойчивость
Данные защищает erasure coding, код Рида-Соломона. Объект режется на части, к ним добавляются части для восстановления, и всё это раскладывается по разным дискам. Потеря диска не означает потери файла: недостающее считается из оставшегося. Для набора из восьми и более дисков по умолчанию четыре диска отдаются под восстановление, то есть переживается выход из строя до четырёх дисков набора. Для четырёх-пяти дисков по умолчанию две избыточные части. Это следует из технической документации в репозитории.
Контрольные суммы замечают тихую порчу данных, а фоновое лечение восстанавливает повреждённые части. Один сервер с несколькими дисками уже получает такую защиту, хотя падение сервера целиком остановит доступ. Для переживания потери узла нужны несколько узлов, и схему стоит продумать заранее: README предупреждает, что одну машину с одним диском расширять нельзя, на большую схему придётся переезжать копированием данных.
Как поставить
Самый короткий путь, из README:
mkdir -p data logs
chown -R 10001:10001 data logs
docker run -d -p 9000:9000 -p 9001:9001 \
-v $(pwd)/data:/data -v $(pwd)/logs:/logs \
rustfs/rustfs:1.0.1
Порт 9000 принимает S3-запросы, на 9001 живёт веб-консоль. Контейнер запускается от обычного пользователя с номером 10001 вместо root, поэтому каталоги надо подготовить заранее. Логин и пароль по умолчанию в документации указаны rustfsadmin, и их нужно сменить до того, как порты станут видны из интернета. Если сервера у вас ещё нет, начните с материала про свой VPS с Docker, nginx и HTTPS: перед хранилищем нужен шифрованный вход.
RustFS или MinIO
Репозиторий MinIO на GitHub заархивирован, последнее изменение в нём от 24 апреля 2026, а в начале README стоит пометка, что репозиторий больше не поддерживается, с отсылкой на коммерческие редакции AIStor. Если у вас стоит MinIO из открытого репозитория, обновлений оттуда ждать не стоит, и план замены нужен.
RustFS заявляет совместимость и описывает режим чтения форматов MinIO на диске, но в README этот режим помечен как предварительный (Preview), включается отдельным флагом и не входит в стандартную сборку. Там же оговорено: объекты, зашифрованные MinIO, RustFS прочитать не сможет. Поэтому надёжный путь миграции такой: поднять RustFS рядом и перенести данные по S3 обычными инструментами копирования.
Про скорость: авторы публикуют нагрузочное сравнение с MinIO на небольшой машине в 2 ядра и 4 ГБ памяти, и по их словам RustFS выигрывает. Это заявлено самими авторами, независимой проверки я не видел. На ваших дисках и файлах цифры получатся другие, мерить надо самим.
Что важно учесть
- Проекту около трёх лет, а стабильная версия 1.0.0 вышла в середине сентября 2026, перед ней был ряд предварительных сборок. Опыта долгой работы на больших объёмах мало.
- Совместимость с S3 авторы сами называют широкой для поддерживаемых функций, но не полной. Матрица в репозитории содержит и непройденные тесты. Критичный для вас клиент или программу проверьте до переезда.
- Режим S3 Tables помечен как предварительный.
- Ключи шифрования в режимах Local и Static предназначены только для разработки, для боевой работы в README названы Vault и AWS KMS.
- Копия внутри одного сервера резервной копией не считается. Хранилище на одной машине всё равно надо дублировать на другую площадку, подробнее в материале про резервные копии.
Что можно сделать уже сейчас
- Поднимите RustFS на тестовом сервере по команде выше и смените пароль. Создайте бакет и загрузите туда пару гигабайт реальных файлов.
- Подключите программу, которой пользуетесь, например сайт или клиент резервного копирования. Хороший сценарий для проверки: настроить Duplicati на отправку шифрованных копий в этот бакет и восстановить из них файл.
- Выдёрните диск из набора или остановите контейнер, и посмотрите, как ведут себя чтение и лечение. Лучше увидеть это в тесте.
- Только после этого решайте, переносить ли туда рабочие данные, и оставляйте прежнее хранилище работать параллельно, пока не убедитесь в стабильности.
Частые вопросы
Можно ли переехать с MinIO прямо сейчас?
Технически да, через копирование по S3. Для рабочих данных разумнее сначала месяц гонять оба хранилища параллельно, сверять объекты и только потом переключать приложения.
Сколько нужно серверов и дисков?
Для проверки хватит одной машины с одним диском, но защиты от поломки диска там нет. Для настоящей защиты нужно несколько дисков в одном наборе, а лучше несколько узлов. Точную схему я подбираю под объём данных и бюджет, универсального минимума под любой проект не существует.
Заменяет ли хранилище резервные копии?
Нет. Оно защищает от поломки диска, но не от ошибки человека, вируса-шифровальщика или пожара в серверной. Для этого нужны версионирование, блокировка удаления и копия на другой площадке.
Коротко о главном
RustFS выглядит серьёзным проектом: свободная лицензия, быстрый выпуск версий, широкий набор возможностей. Против него работает молодость, и пускать его сразу под единственный экземпляр критичных данных рано. Как второе хранилище, как цель для бэкапов и как замена архивированному MinIO он годится после теста на ваших данных.
Мы разворачиваем хранилище и настраиваем копии под ключ: подбираем сервер и диски, ставим RustFS или другое решение, выдаём доступы, переносим файлы из облака и проверяем восстановление. Подробнее на странице DevOps и инфраструктура. Напишите мне в Telegram кодовое слово «ХРАНИЛИЩЕ», и я отвечу по вашей ситуации.
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


