MinIO – объектное хранилище, совместимое с протоколом Amazon S3 и предназначенное для хранения и управления неструктурированными данными, такими как изображения, видео, резервные копии и т.п. MinIO может работать как на локальном сервере, так и в облачной инфраструктуре, обеспечивая надёжный доступ к данным через веб-интерфейс или API.
В статье разберём, как настроить S3-хранилище с использованием MinIO на виртуальном выделенном сервере под управлением Windows Server.
Как настроить S3-хранилище с использованием MinIO на Windows Server
Использование S3-хранилища для личных или производственных целей зачастую подразумевает применение под его организацию узла, обладающего достаточным объёмом дискового пространства. В случае сохранения данных на сервере или компьютере, который работает на Windows, логичным выглядит выделение под хранение информации отдельного тома, отличного от системного диска C:\. Для личного архива и при небольших его объёмах допустимо использование системного раздела. Однако в отношении данных ощутимого размера и представляющих ценность для команды логично выделение специального дискового устройства. Для виртуальных серверов на хостинге RUVDS доступна услуга «Большой Диск». Подключение данной услуги как раз и обеспечивает VPS дополнительным физическим разделом, отличным от системного. Размер такого диска можно выбрать при заказе виртуальной машины на процессоре с тактовой частотой 2.2 ГГц и варьируется он от 1 до 18 ТБ.

После запуска нового сервера, если в качестве ОС выбрана Windows Server, с подключённой услугой «Большой Диск» необходимо настроить отображение дополнительного раздела в системе. Для этого подключитесь к серверу по RDP и в Server Manager, который запускается автоматически, перейдите Tools 🠖 Computer Management 🠖 Disc Management. Здесь в строке, соответствующей подключённому диску, нажмите правую кнопку мыши и кликните Online.

Затем закрепите за подключённым разделом букву диска, например, D:\. Для этого в поле самого раздела нажмите правую кнопку мыши и выберите Change Drive Letter and Path.

Далее кликните Add и в строке Assign the following drive letter выберите букву диска. Для сохранения изменений нажмите OK.

Таким образом, в системе создан раздел D:\, который может быть использован S3-хранилищем в качестве тома для данных.
Первоначальный запуск MinIO
Для настройки S3-хранилища с использованием MinIO перейдите по ссылке для загрузки исполняемого файла для 64-хбитной Windows-системы.
Полученный exe-файл поместите на диск C:\, например, в папку minio. После чего откройте командную строку (Win R 🠖 cmd) и при помощи следующей команды перейдите в данный каталог:
cd C:\minio
Затем выполните команду, которая запустит MinIO с параметром, определяющим расположение сохраняемых данных как диск D:\:
minio.exe server D:\
Вывод команды в нашем примере выглядит следующим образом:

В данном случае команда сообщает нам, что основной S3 API-интерфейс, через который сторонние приложения типа Duplicati и Nextcloud смогут подключаться к хранилищу, доступен через TCP-порт 9000. В качестве значений Access key и Secret key для такого подключения используется пара minioadmin:minioadmin. Веб-панель MinIO, к которой можно подключиться через браузер, доступна по порту 57406. Чтобы подключиться к веб-панели извне, необходимо использовать ссылку http://45.8.229.99:57406. Для подключения в вашем случае замените 45.8.229.99 на IP-адрес своего VPS. Логин и пароль для подключения к веб-панели – minioadmin и minioadmin. Также для управления S3-хранилищами, в том числе и MinIO, можно использовать утилиту mc. В выводе приведён пример команды для подключения при помощи данной утилиты. Кроме того, вывод содержит предупреждение об использовании дефолтных логина и пароля и необходимости их смены.
На данный момент можно открыть браузер на удалённом рабочем столе сервера и проверить возможность подключения к веб-панели при помощи ссылки http://127.0.01:57406 и пары логин-пароль, предлагаемых по умолчанию.
Для завершения работы команды используйте комбинацию клавиш Ctrl C.
При этом следует учитывать тот факт, что при каждом следующем запуске команда будет предлагать другие и всегда разные порты для подключения к веб-интерфейсу MinIO. Данную проблему поможет решить запуск MinIO в качестве системной службы.
Запуск MinIO как службы
Чтобы не запускать MinIO каждый раз вручную из командной строки, логичным выглядит запуск сервиса в качестве системной службы. В Windows наиболее простой способ сделать это – создать новую службу при помощи утилиты NSSM. Данная утилита позволяет запускать любое обычное приложение как службу. Она подходит для тех случаев, когда программа сама не умеет работать в виде сервиса. Кроме того, использование NSSM позволяет определить конкретный номер порта для подключения к веб-панели. В нашем примере мы определим данный порт как TCP-порт 9999.
Дистрибутив NSSM доступен на своей официальной странице. Перейдите на его страницу релизов и загрузите на сервер zip-архив, из которого извлеките каталог nssm-2.24 на диск C:\. Затем откройте командную строку (Win R 🠖 cmd) и перейдите в папку win64 каталога NSSM:
cd C:\nssm-2.24\win64
Находясь там, запустите команду, в которой MinIO Service – название создаваемой службы:
nssm install "MinIO Service"
В открывшемся окне NSSM в разделе Application укажите полный путь к исполняемому файлу MinIO, полный путь к папке MinIO и параметры запуска MinIO с указанием директории хранения данных и порта, по которому будет доступна веб-панель. Номер порта при запуске MinIO из командной строки можно указать при помощи опции --console-address :9001, где 9001 – номер порта. Данная настройка в строке Arguments указывается таким же образом.

Чтобы создать и запустить новую службу, нажмите Install service.
Смена дефолтных логина и пароля
Для предотвращения несанкционированного подключения к веб-панели с применением общедоступных учётных данных (minioadmin:minioadmin) необходимо изменить дефолтные значения на свои. Чтобы сделать это, запустите на сервере командную оболочку PowerShell (Win R 🠖 powershell), где выполните команды:
setx MINIO_ROOT_USER your-user /M
setx MINIO_ROOT_PASSWORD your-password /M
В данных командах:
your-user– новое имя пользователя для подключения к веб-панели MinIO;your-password– новый пароль пользователя для подключения к веб-панели MinIO/M– опция, означающая сохранение переменных в системном разделе реестра, а не только для текущего пользователя.
Затем откройте полный перечень служб, для чего используйте сочетание клавиш Win R, где введите services.msc и нажмите OK.

В списке отыщите службу MinIO Service, откройте её и нажмите кнопку Start, чтобы запустить службу. При этом в строке Startup type должно присутствовать значение Automatic. Данная настройка указывает службе необходимость запуска при каждом старте системы.

После запуска закройте окно службы, нажав кнопку OK.
Настойка доступа к MinIO в брандмауэре Windows
Чтобы обеспечить возможность подключения к веб-панели MinIO, необходимо разрешить доступ к серверу через указанный при создании службы TCP-порт. Для этого откройте брандмауэр Windows: Пуск 🠖 Control Panel 🠖 System and Security 🠖 Windows Defender Firewall. В интерфейсе брандмауэра кликните Advanced Settings.

Затем перейдите в Inboubd Rules и нажмите New Rule в разделе Actions.

В стартовом окне открывшего мастера добавления правила выберите опцию Port.

В следующем окне выберите протокол TCP и укажите порт 9001 в Specific local ports.

Далее отметьте Allow the connection.

Затем выберите профиль, соответствующий используемому сетевому подключению, либо отметьте все профили, чтобы правило применялось к подключениям во всех сетях.

В финальном окне мастера введите имя создаваемого правила, например, MinIO - Inbound Rule. Для сохранения нового правила нажмите Finish.

Проверка доступности веб-панели MinIO
Теперь откройте браузер на своём локальном компьютере и перейдите к веб-панели MinIO по ссылке вида http://X.X.X.X:9001, где вместо X.X.X.X используйте IP-адрес вашего сервера. Для подключения используйте логин и пароль, указанные в командах, выполненных ранее в PowerShell.

В веб-панели вы можете создавать бакеты – контейнеры для хранения файлов, похожие на папки, но с дополнительными настройками доступа и политиками. После создания бакета можно загружать файлы вручную через кнопку Upload, скачивать их, копировать ссылки для скачивания, а также управлять правами доступа. Например, можно настроить общедоступный бакет, чтобы файлы внутри него были доступны по прямым URL.
