С сегодняшнего дня мы публикуем серию статей об объектном хранилище.
В этой серии статей мы начнем с широкого описания технологии хранения объектов, которая в настоящее время используется в Scaleway.
В следующие недели появятся две другие статьи о внутреннем управлении хранилищем объектов и инфраструктурой хранилищ объектов. Оставайтесь в курсе!
Проблемы с традиционным хранением
Предполагая, что вы хотите хранить большое количество статических файлов, таких как видео, фотографии и документы, на локальном NAS. С традиционными технологиями хранения вы столкнетесь со следующими проблемами:
1. Ограниченное дисковое пространство: все диски имеют ограниченное пространство. Как только ваши диски заполнятся, вам нужно добавить новый и перенастроить вашу систему. Вы можете распределить между несколькими дисками на нескольких машинах, но ваши расходы на управление в вашей инфраструктуре возрастают.
2. Аппаратный сбой. Предположим, у вас есть несколько дисков, на которых хранятся ваши данные. Поскольку ваши диски имеют ограниченный срок службы, они будут случайным образом выходить из строя через определенное время. В качестве контрмеры вы можете использовать такие системы, как RAID, чтобы ограничить потерю данных. Однако этот параметр ограничен вашей машиной. Если ваша машина станет недоступной, все данные, расположенные на ней, также будут недоступны. Отключение будет продолжаться до тех пор, пока вы не сможете восстановить эту машину в нужном состоянии.
3. Затраты. Итак, теперь давайте предположим, что у вас есть работающий RAID-массив с реплицированными настройками. При такой конфигурации вы платите как за использованное, так и за неиспользуемое пространство. Кроме того, вам придется потратить значительное количество времени на администрирование, обновление и устранение нарушений безопасности.
4. Проблемы масштабируемости: ваши настройки популярны среди ваших друзей и родственников, и в результате они хотели бы сохранить свои данные в вашем решении. То, что работало для вас в определенный момент, может не сработать, так как ваши требования растут. Технический выбор, который вы сделали для хранения 3 ТБ в неделю, определенно не такой, как если бы вы хотели хранить 3 ТБ в день или час. Значительное увеличение использования может стать реальной проблемой с решениями для хранения данных, а затраты времени и энергии на изменение вашей архитектуры мучительны. Кроме того, IOPS ограничены на носителе. Большие нагрузки операций ввода / вывода могут привести к отказу оборудования, так как компоненты не поспевают за скоростью.
5. Интеграция в ваше приложение. Такие интерфейсы, как файловые системы или промежуточное программное обеспечение хранилища, могут сталкиваться с множеством проблем при работе на большом кластере машин с большим объемом хранимых данных. Такие технологии также могут страдать от снижения производительности при увеличении объема хранимых данных.
Решения для хранения объектов
Традиционные архитектуры становятся менее подходящими для удовлетворения потребностей современных приложений. Хранение объектов в Scaleway предоставляет реальное решение для решения задач современной инфраструктуры.
Масштабируемое хранилище по требованию
Технологии Object Storage предназначены для хранения больших объемов данных (например, сотен петабайт).
Для этого объектное хранилище полагается не на одну машину, а на несколько взаимосвязанных машин. По мере роста спроса на мощность, стандартизированные машины добавляются регулярно.
Встроенная устойчивость
Чтобы обеспечить доступность ваших данных, мы обладаем достаточной квалификацией для обеспечения отказоустойчивости оборудования и безопасности данных.
Мы гарантируем лучшую долговечность ваших данных, сохраняя объекты на нескольких дисках на разных машинах. Это позволяет нам предотвратить потерю данных в случае аппаратных сбоев.
Эти копии распространяются, чтобы мы были лучше доступны. Например, если одна часть вашего файла повреждена или отсутствует, мы можем легко восстановить ее из исправной части кластера.
У нас также есть эффективные процессы вмешательства в отношении физической инфраструктуры, в случае аппаратного сбоя или недоступности. Мы обеспечиваем надежную связь со специальными командами для быстрого решения проблемы.
Кроме того, мы тратим много времени и усилий на наше решение для мониторинга, которое позволяет нам более активно работать над состоянием работоспособности кластера.
Что касается программного обеспечения, мы разработали распределенное и надежное решение, которое гарантирует, что клиент не сможет создать полную недоступность платформы. Действительно, разные промежуточные программы отвечают за аутентификацию каждого из запросов. Каждый из запросов создает связанные подпроцессы (такие как проверка учетных данных или операторы выставления счетов), которые должны поддерживать 100% нагрузки в любой момент времени (для нагрузки, значительно превышающей 100 миллионов запросов в день).
Модель с оплатой за использование
Вам выставлен счет только за то хранилище, которое вы фактически используете. Цена, которую вы платите, может быть легко рассчитана в зависимости от ваших потребностей хранения. Вам не нужно беспокоиться о настройке и настройке (конфигурация RAID, требования к файловой системе).
Избавьтесь от необходимости администрировать свои машины и устранять нарушения безопасности, запуск производства и так далее. Все эти знания и расходы полностью делегируются вашему поставщику.
Стандартный интерфейс
Интерфейс прикладного программирования (API)
Несколько протоколов позволяют взаимодействовать с хранилищем объектов.
Два протокола, которые доминируют на рынке, это S3 и SWIFT.
Мы выбрали протокол S3, потому что он широко интегрирован в сторонние приложения. Кроме того, это позволяет нам занимать стратегическую позицию на этом рынке, сводя к минимуму модификации, необходимые для использования нашего облака.
На практике в конфигурации нужно внести всего несколько изменений, чтобы сэкономить половину затрат на хранение. Обязательно проверьте функции, необходимые для запуска вашего приложения. Большая часть нашей работы заключается в реализации всех функций, предлагаемых конкурентами (AWS S3, облачное хранилище GCP, хранилище BLOB-объектов Azure и т. Д.).
Хранение объекта через S3 — это протокол HTTP, т. Е. Вы можете напрямую взаимодействовать с ним с помощью команды curl, которая возвращает формат XML. Общаться с необработанными HTTP-вызовами может быть очень утомительно, поэтому наши клиенты в основном используют SDK или CLI-клиенты (например, rclone), а также потому, что в них интегрировано множество механизмов, которые упростят вашу жизнь (повтор, синхронизация и другие).
Управление файлами
Хранилище объектов превращает файлы в объекты. Содержимое вашего файла не имеет никакого отношения к тому, как оно хранится. Будь то видео, фотографии, текстовые или двоичные данные, они будут сохранены одинаково.
Данные не размещаются в иерархии каталогов. Они живут в плоском адресном пространстве.
Приложения идентифицируют дискретные объекты данных по их уникальному адресу.
Объекты собраны в ведра, которые представляют пространство, где объекты расположены вместе.
Имя сегмента должно быть уникальным идентификатором, который позволяет нам предоставлять такие функции, как местоположение сегмента или гео-репликация.
В вашем ведре все объекты называются первого уровня. Это одно из самых больших различий по сравнению с традиционными системами, такими как файловая система. Давайте посмотрим на это на примере:
Filesystem V S Object storage
- dir1/ | - dir1/
- file1 | - dir1/file1
- file2 | - dir1/file2
- file3 | - dir1/file3
В этом примере мы видим, что каталог dir1 заменяется префиксом dir1, все объекты (file1, file2 и file3) затем совместно используют префикс dir1, но больше не содержатся в каталоге с именем dir1.
Хранение объектов принципиально отличается от файловой системы в этом отношении.
Такие проекты, как s3fs, существуют, чтобы помочь вам перейти от традиционной файловой системы к объектному хранилищу.
Другое ключевое отличие состоит в том, что вы не можете частично обновить содержимое объекта. Объект является неизменным, и если вы хотите изменить его, весь объект должен быть возвращен.
Это влияет на программное обеспечение, которому необходимо регулярно обновлять файлы, такие как базы данных. В случае базы данных ее основными характеристиками являются мгновенное время доступа и возможность поиска в файле (переход к определенному байту, чтение или частичное манипулирование файлом).
Если ваша файловая система действительно подключена к хранилищу объектов, время доступа увеличится с нескольких наносекунд до нескольких миллисекунд, что значительно замедлит работу вашей базы данных. Кроме того, если вы измените только два байта в файле, который составляет даже несколько МБ, вам придется отправить весь файл обратно по сети, чтобы обновить объект.
Заключение
В следующих статьях мы увидим, как Object Storage работает внутри и как строилась инфраструктура.
Создайте свое первое ведро сейчас!
console.scaleway.com/object-storage/