Хранение данных бывает разным

Какой сервис облачного хранения выбрать для своего приложения — зависит от целей и задач.
3 минуты4762


Фото: кучево-дождевые облака лучше всего справляются с хранением воды. Автор fir0002, flagstaffotos.com.au, лицензия GFDL 1.2

Многие разработчики мобильных приложений, использующих те или иные коммерческие облачные сервисы, порой с недоумением проводят многие часы, пытаясь понять, почему их решения не достигают той же производительности, что и в чём-то похожие программы конкурентов. Причина может быть том, какая внутренняя архитектура у того или иного хранилища данных этих сервисов.

Несколько лет тому назад компания Nasuni провела опыт, в течение которого поочередно передавала объем данных в 12 Тб из одного облачного сервиса в другой. В эксперименте участвовали такие облака, как: Amazon S3, Microsoft Azure и Rackspace.

К удивлению исследователей, скорость передачи данных сильно отличалась в зависимости от того, какое облако принимало данные. Самый лучший показатель скорости записи данных оказался у Amazon S3, передача данных из двух других сервисов занимала всего 4-5 часов, в то время как передача данных в Rackspace заняла чуть меньше недели, а в Microsoft Azure — 40 часов.

Именно тогда на практике было доказано, что разные «облака» следует использовать по-разному. Поэтому сейчас Amazon S3 используется многими другими сервисами именно для хранения и хостинга файлов. Например, это Dropbox и Ubuntu One, социальные сети Twitter и Woot.com, а также загрузчик игры Minecraft. У Microsoft своя специализация и аудитория. И дело вовсе не в стоимости аренды.

Технологии хранения имеют свою специализацию

Так в чём же дело и в каких случаях имеет смысл использовать тот или иной облачный сервис хранения данных? Для ответа на этот вопрос эксперты предлагают вспомнить, а как же сейчас вообще хранятся данные и как именно к ним осуществляется доступ?

Дело в том, что аппаратные системы SAN или NAS, которые были на пике популярности еще пятилетие назад, сегодня выглядят архаичными из-за высокой цены и невозможности оперативного масштабирования. Безусловно, NAS обеспечивает довольно высокий уровень надежности, но она реализуется на аппаратном уровне: система хранения данных используют двойное, а иногда даже тройное резервирование.

Некоторые облачные сервисы в своё время механически переносили SAN и NAS на свои площадки. И на то были резоны: хранилища чаще использовались для поддержки вычислительных узлов самого облака. Но опыт использования этих систем хранения при непосредственном доступе к ним множества пользователей посредством сети Интернет с задействованием промежуточных внутренних протоколов, таких как iSCSI, FC и NFS, выявил массу недостатков в их архитектуре. Единственный их неоспоримый плюс: относительно низкая стоимость услуг, да и то не всегда.

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

Реализация алгоритмов обработки и хранения данных на программном уровне позволяет быстро менять схемы кодирования данных. За счет распределенной архитектуры достигается высокая масштабируемость системы и параллелизация процессов.

Для сравнения: скорость восстановления данных в аппаратных системах обычно ограничена скоростью записи на один физический диск независимо от объема хранилища — это примерно 100-150 Mб/с (при условии, что диск в данный момент не используется). Восстановление данных в программно-определяемых решениях происходит параллельно на всех дисках. Благодаря этим технологиям удается достичь скорости восстановления в 600-1200 Mб/с в кластере, причем эта скорость растет с увеличением размера кластера (по данным компании Virtuozzo Storage).

Данные бывают разными

Что в итоге? Разработчикам мобильных и веб-приложений необходимо понять: современные облачные сервисы для работы и хранения данных «заточены» в силу времени появления на свет и (или) своей бизнес-модели зарабатывания денег под разные задачи. Их, по большому счёту, три. Во-первых, долговременное архивное хранение без частого обращения к информации. Во-вторых, обработка больших данных. И оптимизация распространения контента в сети Интернет.

Достичь одновременно достойных результатов в каждой области невозможно. Например, для увеличения производительности приходится жертвовать отказоустойчивостью, для уменьшения времени доступа к данным — их согласованностью (например, в разных уголках света пользователи будут видеть разные версии одних и тех же данных).

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

 

Тем, кто хочет разобраться в веб-разработке, рекомендуем профессию «Веб-разработчик» от GeekBrains.

хранение данных
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!