Как мы организовали хранилище данных дешевле Amazon Simple Storage Service на 35%

в 7:06, , рубрики: amazon, AWS, s3, Блог компании ТЕХНОСЕРВ, облако, облачное хранение данных, облачное хранилище, облачные сервисы, СХД, хранение данных

Как мы организовали хранилище данных дешевле Amazon Simple Storage Service на 35% - 1

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

На втором этапе мы стали использовать объектное хранение, то есть хранение без иерархии каталогов. Все данные лежат на одном уровне, и каждый файл может быть доступен по своему ключу. Метаданные хранятся рядом с файлом. Для доступа используются простые команды уровня PUT — GET — MODIFY, есть возможность обратиться к каждому файлу по собственному URI, обеспечены лёгкость управления правами и лёгкость размещения самых разных данных и доступа к ним.

Минус данных решений — невозможность обращения к части (сегменту) файла, поэтому для приложений вроде баз данных такие хранилища не используются. Оптимальное применение — сложить туда картинки веб-сайта, файловую помойку, архивы или бэкап данных. На базе объектного хранилища мы построили свой S3 — систему хранения не очень часто изменяемых данных. С прямой совместимостью с Amazon S3.

А ещё классические протоколы доступа, использующиеся внутри компаний для файлового доступа (CIFS или NFS), не предназначены для обмена большими данными через сеть Интернет. Это ещё одна из причин, почему и зачем мы создали своё объектное хранилище.

Стояла задача сделать его не просто работающим отовсюду, но и дешёвым.

С чего началось

Когда заказчики начали массово мигрировать с западных облачных провайдеров в Россию, была очень востребована совместимость с Amazon API. В частности, для хранения данных. У очень многих прикладное ПО было написано для работы с объектными хранилищами и пользовалось их универсальностью, то есть работало с файлами как файлами и не особо заморачивалось, откуда они приходят и где лежат. Естественно, переписывать свой софт из-за нового облачного провайдера никто не торопился. Поэтому была нужна объектная система хранения данных.

Процесс развития портфеля услуг можно сравнить со строительством дома. Сначала закладывается фундамент, необходимый для твёрдой основы и последующего строительства комнат, этажей, балкона, гаража и т. д. Так же и портфель услуг формируется постепенно. С появлением новых услуг всё чаще появлялись вопросы по организации хранения. Заказчики спрашивали:
— У нас отчётность хранится годами. Можно что-то придумать, чтобы хранить её дешевле?
— Мы используем write-only-бэкап. В смысле за пять лет его ни разу не использовали. Можно его хранить дешевле?
— А можно бэкап пойдёт автоматически, но храниться будет не в общей хранилке?
— А у вас можно просто хранить данные? А то у нас есть фотобанк для маркетинга, который…

И внутренний вопрос был в том, можно ли сделать горизонтально масштабируемую платформу. Для решения мы сделали отдельное хранилище, которое ориентировано на низкую стоимость хранения, доступ к данным как изнутри облака Техносерв, так и через Интернет. Ещё решение имеет интерфейс предоставления доступа, уже принятый рынком, имеющий поддержку в продуктах, используемых нашими заказчиками. Читай — S3. Потому что были реальные запросы.

Нативная S3-совместимость

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

Рассматривались как опенсорсные, так и коммерческие решения. Всего было опробовано (проведено стендирование и тестирование основных функций) шесть с половиной решений. В итоге выбрали Cloudian HyperStore. Вот почему.

  • Гарантированная производителем 100%-я совместимость с протоколом Amazon S3 API. Cloudian гарантирует, что HyperStore имеет 100%-ю совместимость с API Amazon S3, и это позволяет нашим заказчикам, которые ранее использовали сервисы хранения Amazon или имеют решения, поддерживающие работу по S3, использовать наш сервис без каких-либо доработок или корректировок программного обеспечения.

Как мы организовали хранилище данных дешевле Amazon Simple Storage Service на 35% - 2

  • Масштабирование. HyperStore позволяет создать децентрализованную облачную платформу хранения данных с возможностью гранулярного управления различными политиками, например, отчётности и администрирования. Решение способно масштабироваться до тысяч узлов и миллиардов объектов в одной корзине и в кратчайшие сроки может быть гибко масштабировано до требуемого количества петабайтов.
  • Безопасность и шифрование. HyperStore даёт шифровать данные при передаче и хранении. Предусмотрены функционал настройки прав доступа и логирование всех операций с файлами, а также возможность шифрования данных на стороне хранилища ключом клиента.
  • Поддержка изолированных доменов (MULTI-TENANCY). Надо передавать управление ресурсами заказчику, потому что это повышает скорость исполнения базовых операций (например, завести нового пользователя, оценить объём потребляемых ресурсов и т. д.) и снижает нагрузку на службу эксплуатации, которой не надо отвлекаться на простые операции. Изначальная поддержка изолированных доменов в продукте позволяет обеспечить безопасное разделение ресурсов между клиентами и гарантировать, что пользователи не смогут своими действиями повлиять на работу других клиентов. В смысле нам не надо забивать костыли в код, и это прекрасно.
  • Управление уровнем сервиса (QoS). Для каких-то клиентов требуется выделить гарантированную полосу или поток операций для соблюдения работы их сервисов, а у кого-то, наоборот, нет требований, да ещё и неоптимизированный сервис является очень «голодным» и будет «кушать» столько, сколько сможет получить.
  • Динамическое резервирование с использованием Реплик и ERASURE CODING. HyperStore поддерживает несколько уровней резервирования с использованием Реплик и Erasure Coding (ЕС).

Как мы организовали хранилище данных дешевле Amazon Simple Storage Service на 35% - 3

Количество реплик задаётся самостоятельно и может достигать трёх. ЕС позволяет задавать уровень резервирования в довольно широком диапазоне и дополнительно регулировать требуемый уровень надёжности.

Как мы организовали хранилище данных дешевле Amazon Simple Storage Service на 35% - 4

Уровень защиты задаётся гранулярно, то есть на определённый сегмент данных, нет ограничения, что на всю систему требуется выбрать единую политику защиты. По умолчанию для нашей системы выбрана политика резервирования 5+3, что связано с текущей конфигурацией нашей платформы.

Гранулярность защиты очень удобна для эксплуатации. К примеру, у нас есть заказчик, который размещает десяток миллионов ну очень маленьких файлов (буквально 10–30 Кб каждый), в случае использования ЕС мы столкнулись с большим ростом метаинформации и проседанием части операций для этих данных. Перевод защиты с использованием копий позволил исправить ситуацию и снизить общую нагрузку на систему (в части операций данного заказчика).

А что со стоимостью?

Ниже Amazon, начиная с определённого объёма потребления. То есть для среднего и крупного бизнеса — выгоднее западных решений.

Платформа стала базовой для части наших сервисов. Она существует как самостоятельная услуга для внешних заказчиков STaaS (Storage as a Service, к примеру, размещение архивов, копий или контента для интернет-сайтов), как базовое хранилище внутренних долгосрочных архивов и холодных данных, как хранилище резервных копий услуги BaaS (Backup as a Service). Конфигурация BaaS и форматы взаимодействия с объектным хранилищем достойны отдельного рассказа, если интересно — могу рассказать детали.

Текущая конфигурация платформы состоит из восьми серверов хранения Dell R730xd и двух серверов балансировки на базе HAproxy. Серверы имеют следующие характеристики:

  • 2 процессора E5-2620 v4 (8 ядер, 2.1 ГГц);
  • 128 ГБ ОЗУ;
  • адаптер NIC (Ethernet) Intel X520 2 ports 10 Gbps;
  • адаптер NIC (Ethernet) Broadcom 5720 4 ports 1 Gbps;
  • 12 жёстких дисков SATA 8 Тб;
  • 2 диска SSD 480 Гб.

Как мы организовали хранилище данных дешевле Amazon Simple Storage Service на 35% - 5

Эта конфигурация позволяет обеспечить до 20 Gbps (на основании нагрузочного тестирования) потока данных и имеет возможность увеличения показателей за счёт масштабирования.

Сейчас есть два основных тарифа, соответствующих вариантам предоставляемого хранилища. Базовые варианты — «Горячий доступ» и «Холодный доступ». Тариф «Горячий доступ» для хранения файлов, к которым предполагается частое обращение, а также большого количества мелких файлов (<500 Кбайт). При выборе данного тарифа для хранения файлов будет использоваться политика хранения «Реплика 3», то есть хранение файлов в трёх копиях. В системе (панели управления услугой) обозначается как R3.

В отличие от предыдущего тарифа, «Холодный доступ», наоборот, предназначен для хранения файлов, к которым не требуется частое обращение. Как правило, это резервные копии. При выборе данных для хранения файлов используется политика хранения «Erasure Coding 5+3», то есть любой файл кодируется на восемь частей на разные серверы, причём для считывания файла достаточно любых пяти частей.

То есть один набор данных хранится в восьми разных местах и любые три из этих мест можно потерять.

При пользовании услугой «Облачное объектное хранилище» оплата может осуществляться по системе Pay as you go — в этом случае оплата осуществляется только за фактически потреблённые ресурсы согласно выбранному тарифу. Другой вариант предоставления услуги — по системе фиксированного объёма. При данной схеме использования пользователю предоставляется строго фиксированный объём дискового пространства, который он оплачивает согласно выбранному тарифу.

Немного о самих ценах:

Наименование Цена за единицу, с НДС, руб./мес.
Тариф «Частый доступ»
Хранение информации, Гб 1,65
Скачивание информации, за Гб 2,36
Запросы PUT/POST, пакет по 10 000 шт. 3,54
Запросы GET/HEAD, пакет по 10 000 шт. 0,28
Тариф «Редкий доступ»
Хранение информации, Гб 1,06
Скачивание информации, за Гб 7,38
Запросы PUT/POST, пакет по 10 000 шт. 7,08
Запросы GET/HEAD, пакет по 10 000 шт. 0,71

Стоит заметить, что запросы тарифицируются по пакетам по 10 000 шт. Рассмотрим пример. Пользователь в месяц сегментировал 156 250 PUT-запросов на тарифе «Редкий доступ». Таким образом, в данном случае считается, что пользователь использовал 16 пакетов, за которые заплатит 113,28 рубля.

Важно! В ближайшее время планируется пересмотр тарифной сетки в сторону снижения стоимости.

Наконец мы вплотную подошли к сравнению тарифов Amazon и Техносерв для случая, когда клиент планирует использовать Облачное Хранилище для хранения контента сайта. В данном случае целесообразнее использовать тарифы «Частый доступ» от Техносерв и Стандартное хранилище S3 от Amazon (Восток США, Северная Вирджиния).

Наименование Техносерв Amazon
Тариф «Частый доступ» Amazon стандарт
Стоимость хранения 1 Гб информации 1,65 1,45
Стоимость скачивания 1 Гб информации 2,36 5,36
Стоимость пакета запросов put, 10 000 шт. 3,54 3,15
Стоимость пакета запросов get, 10 000 шт. 0,28 0,2
Наименование Кол-во Техносерв Amazon
Тариф «Частый доступ» Amazon стандарт
Объём хранимой в месяц информации, гб 100 000 165 000 144 900
Объём скачиваемой в месяц информации, гб 40 000 94 400 214 200
Количество запросов PUT в месяц, шт. 50 000 000 17 700,00 15 750,00
Количество запросов GET в месяц, шт. 40 000 000 1 120,00 1 008,00
Cтоимость в месяц 278 220 375 858

Дальше — формирование геораспределённого и георезервированного решения. Объектное хранилище из-за простоты API очень хорошо реплицируется и горизонтально масштабируется, поэтому возможно простое георезервирование (геокластер), данные «из коробки» могут мигрировать и синхронизироваться между площадками. Классические массивы менее адаптированы под горизонтальное масштабирование.

Важно, что объектная хранилка презентуется не только на облако, но и для предоставления файлов наружу. В частности, это важно, когда нужна толстая труба через Интернет — сейчас через Интернет мы не можем ходить классическими корпоративными протоколами (CIFS или NFS), поскольку это превращается в цепочку гейтов-конвертеров и невероятно замедляется, особенно когда речь идёт про шифрованный VPN. Всё это почти идеально обходится объектными хранилищами. Собственно, в результате мы патчим Интернет — используем объектные протоколы для обмена. Когда нужен классический файловый доступ, можно поставить маленький клиент, который реализует протоколы CIFS или NFS и дальше презентует данные внутри компании.

Конечно, с развитием Интернета ситуация поменяется. Однажды мы поборем пережитки 80-х годов и стандарты, завязанные на ширину крупа лошади, и у нас будет быстрый обмен данными. Уже скоро. Но пока вот такой патч.

Из-за блокировок пострадал очень большой пул адресов Amazon Web Services. Кто-то испытывал только неудобства или нестабильность работы, а кто-то полностью лишался доступа к bussines-critical-системам и нёс финансовые потери. Следствием этой ситуации стали лавинообразный спрос на размещение в российских облаках и возможность использования нативных протоколов (в частности, S3), что позволило проводить миграцию без изменения систем новых заказчиков. Так что оказалось очень полезно иметь нативный S3.

Автор: Artdem

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js