Общие принципы виртуализации и масштабирования
СХД
Во-первых, я напомню, есть 2 варианта масштабирования систем, в том числе и СХД: горизонтальное и вертикальное.
Если говорить по хранение данных, то вертикальное масштабирование не противоречит “хранению большого объема” данных.
Тут вполне достижим объем хранения в дестяки и сотни эксабайт и зетабайт. В нашем случае, говоря про СХД с доступом по NFS, мы имеем теоретический (потенциональный) объем хранения до - 256 зетабайт. В чем минус? Минусов здесь несколько: 1 повышенные требование к производительности к серверам-контроллерам. 2. Узкое горлышко - сеть, она не масштабируется или масштабируется крайне плохо. Но если речь о большой объеме информации, то мы однозначно не говорим про транзакционные системы. Таким образом, в общем случае, СХД предназначенная хранить большой объем данных - это долговременное хранение: бэкапы, архивы и т.п.
Во-вторых, виртуализация позволяет лишь повысить уровень утилизации физического оборудования, обеспечив изоляцию ресурсов.
В-третьих, если говорить о хранении, как о сервисе, то важно знать и понимать, что взяв в качестве стандарта небольшую СХД (даже не обладающую отказоустойчивостью,
с объемом хранения несколько десятков террабайт), можно обеспечить, в ряде случаев горизонтальное масштабирование.
Например такой сервис хранения обеспечивает для HCI линейное масштабирование как по хранению, так и по производительности.
У нас такой вариант проработан как базовый для развертывания решения под публичные облака (IaaS).
В этом сценарии можно уже обеспечить и линейное масштабирование сети…
Обратите внимание, что мы все части своего решения воспринимаем как сервисы, они, по возможности, у нас все restful (без состояния). Именно это позволяет избавится от единой точки отказа и обеспечить горизонтальное масштабирование линейным образом.
В-четвертых, когда мы говорим про использования СХД для целей виртуализации, мы четко понимаем, как эта СХД используется в рамках этой технологии
(в том числе внутри нашего решения HCI). Все банально просто - на СХД хранятся диски пользователей, подключаемых ими к виртуальным машинам....
В этом сценарии может быть использована как распределенная СХД (например одна, но состоящая из 3, 10, 100 и т.п. узлов),
так и пул небольших традиционных СХД (их может быть так же 3, 10, 100 и т.п. и они даже могут не иметь механизма обеспечения отказоустойчивости).
Создавая очередной диск, пользователь просто посылает запрос сервису хранения, который и определяет место хранения виртуального диска.
С точки зрения пользователя, он даже не задумывается о том - где его данные хранятся. Это задача сервиса найти место, где будут храниться данные пользователя (его диск).
Т.е. получаем асболютно схожую ситуацию как и с распределенной СХД.
Вывод: нужно четко представлять сценарий использования той или иной технологии. В этом случае, многие задачи могут быть решены гораздо эффективней и изящней.
Ведь может оказаться так, что вся работа супер ЭВМ будет иметь ввиду обработку всего лишь пары десятков ТБ данных. :)