В блог

Объектное хранилище S3 в Кибер Хранилище. Примеры использования

Обзоры 04.03.2026 11 мин
Поделиться
Ссылка скопирована
картинка блога

Введение

Кибер Хранилище  это универсальная программная система, которая разрабатывается по принципу аппаратной независимости и может быть развернута на стандартных серверных платформах архитектуры x86-64 без каких-либо ограничений по производителям оборудования, поколениям процессоров, типам и скоростным характеристикам накопителей (HDD, SSD, NVMe). Подобный подход обеспечивает максимальную гибкость при построении инфраструктуры хранения и позволяет эффективно использовать как новое, так и существующее оборудование, минимизируя совокупную стоимость владения (TCO).

Кибер Хранилище объединяет диски серверов в единый кластер хранения. На его базе можно создавать: объектные (S3), блочные (iSCSI), файловые (NFS) хранилища, а также специализированное хранилище резервных копий. Последнее интегрировано с Кибер Бэкапом и Кибер Бэкапом Облачным через проприетарный протокол BGW.

Основные отличия между аппаратными и программно-определяемыми системами хранения данных мы обсудили в статье «СХД или SDS: практическое руководство по выбору для ИТ-специалистов». Основным сценариям использования программно-определяемой СХД был посвящен обзор «Ключевые сценарии использования SDS».

Общее устройство

Объектное хранилище в экосистеме Кибер Хранилища реализовано как полноценный сервис с двухуровневой архитектурой. Уровень управления инфраструктурой — конфигурирование кластера, настройка политик репликации и восстановления, управление ёмкостью, мониторинг узлов и распределение данных — полностью осуществляется через единый административный интерфейс Кибер Хранилища. Это обеспечивает централизованный контроль над всей инфраструктурой хранения независимо от типа предоставляемых сервисов.

Для конечных потребителей данных — будь то автоматизированные процессы, прикладные приложения, утилиты командной строки (например, awscli, s3cmd) или клиентские программы с графическим интерфейсом — объектное хранилище предоставляется как стандартный совместимый S3-сервис. Доступ к данным и управление ими осуществляются исключительно через программный интерфейс AWS S3 API (включая поддержку основных операций: загрузка/выгрузка объектов, управление корзинами, политики доступа, версионирование). Такая реализация гарантирует максимальную совместимость с существующей экосистемой инструментов и приложений, не требуя их модификации для работы с платформой Кибер Хранилище. Визуализация данной архитектуры представлена на следующей диаграмме.

scheme

В данном обзоре мы познакомимся с основными операциями в объектном (S3) хранилище, развернутом на базе Кибер Хранилища. Для выполнения этих операций будем использовать интерфейс командной строки (CLI). Но сначала посмотрим на основные настройки инфраструктуры и сервиса средствами Кибер Хранилища.

Обзор стенда

Начнем с того, что подключимся к Кибер Хранилищу и посмотрим на основные настройки сервиса S3. Левая панель содержит четыре раздела: «Мониторинг»,  «Сервисы хранилища», «Инфраструктура» и «Настройки». К разделу «Мониторинг» мы вернемся позднее, когда у нас появятся какие-то операции с хранилищем, сейчас же зайдем в раздел «Сервисы хранилища». Здесь есть подраздел «Обзор» и другие подразделы, относящиеся к каждому типу хранилища  «Резервные копии», «Блочное хранилище», «S3» и «NFS». Нас интересует подраздел «S3». 

screen1

На вкладке «Серверы» мы видим, что у нас уже есть сервер с именем и IP-адресом. Вкладка «Пользователи» отображает список пользователей, которым доступен наш сервис. Пользователей можно создавать, отключать, повторно подключать и удалять. 

Пользователь у нас уже создан и для него сформированы 2 ключа  ID ключа доступа (Access Key ID) и Секретный ключ доступа (Secret Access Key). Эти ключи нам понадобятся для подключения к хранилищу.

screen2

На вкладке «Корзины» будут показаны корзины, созданные нами в S3-хранилище. Об этом  чуть ниже. Остальные вкладки пока пропустим и откроем «Настройки». Здесь нас интересует «DNS», где прописано доменное имя нашего сервиса.

screen3

 

Скопируем его и перейдем на вкладку «Протокол». Здесь мы указываем какой протокол  http, https или оба будет поддерживаться для подключения к нашему сервису S3. Мы будем использовать оба протокола, и для целей тестирования нам вполне подойдет самостоятельно сгенерированный сертификат.

screen4

 

В подразделе «Инфраструктура. Диски» мы можем посмотреть на каких дисках работает наше хранилище.

screen5

 

А в подразделе «Инфраструктура. Сети» убедиться в том, что внешний обмен данными с точкой доступа S3 включен.

screen6

Нам осталось только добавить в файл hosts запись, ассоциирующую IP-адрес сервиса с доменным именем.

127.0.0.2 s3-demo.local

Это следует сделать для той машины, с которой будет происходить доступ к корзине и/или объектам. 

Теперь мы готовы использовать S3-хранилище. Для выполнения последующих операций будем использовать утилиту командной строки AWS CLI. Это позволит нам не только разобрать основные команды для управления S3-хранилищем, но и убедиться в том, что Кибер Хранилище полностью совместимо с программным интерфейсом AWS.

Подключение к сервису S3

После установки утилиты AWS CLI запустим ее из консоли, выполним команду aws configure. Это  первая и основная команда, которую запускают для работы с Amazon Web Services через терминал (командную строку).

Укажем значения для двух ключей доступа, которые мы обсудили, когда были в интерфейсе Кибер Хранилища на вкладке «Пользователи». 

aws configure
AWS Access Key ID []: ХХХХХХХХХХХ
AWS Secret Access Key []: ХХХХХХХХХХХХХХХХХХХХХХХХХХ
Default region name []: 
Default output format [json]:

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

Создание корзины

AWS CLI поддерживает 2 типа команд  низкоуровневые команды с префиксом s3api, которые предоставляют прямой доступ к операциям на уровне S3 API (через S3 REST API) с гранулярным контролем операции и высокоуровневые команды с префиксом s3, которые являются упрощенным вариантом команд для выполнения типовых задач. Где это возможно, будем использовать оба варианта.

Первое, что нам необходимо сделать для использования хранилища  это создать в нашем хранилище корзину. Корзина (bucket) в S3 — это контейнер для хранения объектов (файлов). Это базовая единица организации данных в S3, аналогичная папке в файловой системе. Корзина хранит объекты  внутри нее размещаются файлы (документы, изображения, видео) и их метаданные. Вложенность имитируется через префиксы в именах ключей. Права доступа к данным настраиваются на уровне корзины через политики (bucket policies) и списки контроля доступа (ACL).

Выполним команду create-bucket и получим ответ в формате JSON (как и указали при подключении):

aws s3api create-bucket --bucket 'my-bucket' --endpoint-url http://s3-demo.local

{

    "Location": "/my-bucket"

}

 

Обратите внимание на параметр endpoint-url  с его помощью мы указываем, к какому сервису S3 необходимо адресовать запрос. Если этот параметр опустить, AWS CLI будет «стучаться» на один из сервисов Amazon  в нашем случае это us-east-1 и, естественно, с указанными ключами доступа мы подключиться не сможем.

Чтобы получить список всех доступных корзин выполним команду list-buckets и получим следующий ответ от сервиса:

aws s3api list-buckets --endpoint-url http://s3-demo.local

{

    "Buckets": [

        {

            "Name": "my-bucket",

            "CreationDate": "2026-02-12T07:58:27+00:00"

        }

    ],

    "Owner": {

        "DisplayName": "admin-s3",

        "ID": "ab219c9e18a30013"

    },

    "Prefix": nul
}

Видим название корзины, дату ее создания и владельца  того самого, чьи ключи мы указали при подключении к сервису.

Давайте посмотрим как выглядит корзина в интерфейсе Кибер Хранилища. Переходим на вкладку «Сервисы хранилища. S3. Корзины»

screen7

Загрузка файла

В сервисе S3 внутри корзин хранятся объекты (их еще называют BLOB  Binary Large Object и хотя этот термин пришел из СУБД, он часто используется как синоним объекта). Объект  это базовая единица хранения данных в сервисе объектного хранилища. Каждый объект состоит из трех ключевых компонентов: 

  • Данные (Data)  файл любого типа и размера (до 5 ТБ): документ, изображение, архив, видео и т.д.
  • Ключ (Key)  уникальный идентификатор объекта в корзине (фактически — путь к файлу)
  • Метаданные (Metadata)  дополнительная информация в формате «ключ-значение»: тип контента, размер, пользовательские теги и пр.

Обратите внимание на следующие отличия объектного хранилища от файловой системы:

  • В хранилище нет иерархической файловой структуры («папки» — лишь визуальная абстракция через разделитель / в ключе)
  • Объекты доступны напрямую по уникальному URL (после настройки прав)
  • Объекты версионируются  можно хранить несколько версий одного объекта
  • Для объектов поддерживаются политики жизненного цикла

 

Выполним s3-команду cp для загрузки документа:

aws s3 cp Documents/Leaflet_KI_2025.pdf s3://my-bucket/ --endpoint-url http://s3-demo.local

И получим подтверждение об успешной загрузке:

upload: Documents/Leaflet_KI_2025.pdf to s3://my-bucket/Leaflet_KI_2025.pdf

Теперь используем s3api-команду put-object:

aws s3api put-object --bucket 'my-bucket' --key 'document' --body 'Documents/Leaflet_KI_2025.pdf' --endpoint-url http://s3-demo.local

И также получим подтверждение об успешной загрузке:

{

    "ETag": "\"3a00fbbf8ae3f0554dacaa1fd31a1d3f\""

}

ETag  уникальный идентификатор объекта в корзине

Теперь проверим проверим наличие файла в корзине выполнив команду s3 ls:

aws s3 ls s3://my-bucket --endpoint-url http://s3-demo.local

2026-02-13 13:11:04   16972303 Leaflet_KI_2025.pdf

2026-02-13 16:06:29   16972303 document

То же самое можно сделать и s3api-командой:

aws s3api list-objects-v2 --bucket 'my-bucket' --endpoint-url http://s3-demo.local

{

    "Contents": [

        {

            "Key": "document",

            "LastModified": "2026-02-13T13:06:29+00:00",

            "ETag": "\"3a00fbbf8ae3f0554dacaa1fd31a1d3f\"",

            "Size": 16972303,

            "StorageClass": "STANDARD"

        }

    ],

    "RequestCharged": null,

    "Prefix": ""

Просмотр файла

Можно загрузить файл и затем дать права доступа к нему (это  одна из тем следующей статьи), либо дать к нему публичный доступ прямо при загрузке  для этого необходимо выполнить s3-команду cp, указав в явном виде права с помощью параметра s3:

aws s3 cp Leaflet_KI_2025.pdf s3://my-bucket/ --acl public-read  --endpoint-url http://s3-demo.local

Загруженный нами файл находится по следующему адресу:

http://s3-demo.local/my-bucket/Leaflet_KI_2025.pdf

После того как права настроены, мы можем открыть файл в браузере:

screen8

Скачивание файла

Для скачивания файла выполним s3-команду cp:

aws s3 cp s3://my-bucket/Leaflet_KI_2025.pdf Leaflet_KI_2025.pdf --endpoint-url http://s3-demo.local

И получим подтверждение об успешной загрузке:

download: s3://my-bucket/Leaflet_KI_2025.pdf to ./Leaflet_KI_2025.pdf

Также мы можем воспользоваться s3api-командой get-object:

aws s3api get-object --bucket 'my-bucket' --key 'document' Leaflet_KI_2025.pdf  --endpoint-url http://s3-demo.local

{

    "LastModified": "2026-02-13T13:06:29+00:00",

    "ContentLength": 16972303,

    "ETag": "\"3a00fbbf8ae3f0554dacaa1fd31a1d3f\"",

    "Metadata": {},

    "StorageClass": "STANDARD",

    "TagCount": 0

}

Удаление файла

Удалим файл s3-командой rm:

aws s3 rm s3://my-bucket/Leaflet_KI_2025.pdf --endpoint-url http://s3-demo.local

Получим подтверждение:

delete: s3://my-bucket/Leaflet_KI_2025.pdf

и командой ls убедимся что корзина пуста.  

Удаление корзины

Удалим нашу корзину s3-командой rb:

aws s3 rb s3://my-bucket/ --endpoint-url http://s3-demo.local

Получим подтверждение:

remove_bucket: my-bucket

И убедимся в отсутствии корзины через интерфейс Кибер Хранилища:

screen9

С помощью s3api команды корзина удаляется так:

aws s3api delete-bucket --bucket s3://my-bucket/ --endpoint-url http://s3-demo.local

Мы рассмотрели набор базовых операций с S3-хранилищем: создание корзины, загрузка и выгрузка файла, удаление файла и удаление корзины. В следующей части поговорим о правах доступа, версионировании и дугих возможностях.

Попробуйте сами

Вы можете самостоятельно познакомиться с возможностями Кибер Хранилища. У нас на сайте можно скачать пробную версию продукта, а также познакомиться с документацией

Кибер Хранилище можно развернуть и посмотреть даже на ноутбуке, но для более серьезного знакомства лучше использовать серверные платформы. Знакомство с возможностями продукта можно начать, развернув его на одном сервере — в этом случае доменом отказа будет диск.

 

 

sbscrIconLight.png
Подпишитесь на нашу рассылку Будьте в курсе всех новостей и событий Подписаться
Вы успешно подписались на рассылку Киберпротект!
Читать также