Общие принципы виртуализации и масштабирования

СХД

Во-первых, я напомню, есть 2 варианта масштабирования систем, в том числе и СХД: горизонтальное и вертикальное. 

Если говорить по хранение данных, то вертикальное масштабирование не противоречит “хранению большого объема” данных. 

Тут вполне достижим объем хранения в дестяки и сотни эксабайт и зетабайт. В нашем случае, говоря про СХД с доступом по NFS, мы имеем теоретический (потенциональный) объем хранения до - 256 зетабайт. В чем минус? Минусов здесь несколько: 1 повышенные требование к производительности к серверам-контроллерам. 2. Узкое горлышко - сеть, она не масштабируется или масштабируется крайне плохо. Но если речь о большой объеме информации, то мы однозначно не говорим про транзакционные системы. Таким образом, в общем случае, СХД предназначенная хранить большой объем данных - это долговременное хранение: бэкапы, архивы и т.п.

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

В-третьих, если говорить о хранении, как о сервисе, то важно знать и понимать, что взяв в качестве стандарта небольшую СХД (даже не обладающую отказоустойчивостью,

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

Например такой сервис хранения обеспечивает для HCI линейное масштабирование как по хранению, так и по производительности. 

У нас такой вариант проработан как базовый для развертывания решения под публичные облака (IaaS). 

В этом сценарии можно уже обеспечить и линейное масштабирование сети… 

Обратите внимание, что мы все части своего решения воспринимаем как сервисы, они, по возможности, у нас все restful (без состояния). Именно это позволяет избавится от единой точки отказа и обеспечить горизонтальное масштабирование линейным образом.

В-четвертых, когда мы говорим про использования СХД для целей виртуализации, мы четко понимаем, как эта СХД используется в рамках этой технологии 

(в том числе внутри нашего решения HCI). Все банально просто - на СХД хранятся диски пользователей, подключаемых ими к виртуальным машинам.... 

В этом сценарии может быть использована как распределенная СХД (например одна, но состоящая из 3, 10, 100 и т.п. узлов), 

так и пул небольших традиционных СХД (их может быть так же 3, 10, 100 и т.п. и они даже могут не иметь механизма обеспечения отказоустойчивости). 

Создавая очередной диск, пользователь просто посылает запрос сервису хранения, который и определяет место хранения виртуального диска. 

С точки зрения пользователя, он даже не задумывается о том - где его данные хранятся. Это задача сервиса найти место, где будут храниться данные пользователя (его диск). 

Т.е. получаем асболютно схожую ситуацию как и с распределенной СХД.

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

Ведь может оказаться так, что вся работа супер ЭВМ будет иметь ввиду обработку всего лишь пары десятков ТБ данных. :)