Добрый день, Алексей.
Все зависит от архитектуры вашего деплоя.
Сам по себе openstack представляет собой чистый IaaS, в противоположность vsphere инфраструктуры в openstack вы получаете абстракции вычислений (гипервизоры или compute), сети (сеть выдаётся по требованию через интерфейс или утилиты управления) и хранилища (здесь хранилище выдаётся внутрь виртуальных машин, как сервис).
Контроллер не связан непосредственно с гипервизором, по аналогии с vmware это как vcenter, на нем сосредотачиваются управляющие api-сервисы, от которых зависит развёртывание виртуальных машин и сопутсвующей инфраструктуры.
При падении контроллера ВМ продолжат работать, но для типового деплоя рекомендую запустить несколько контрллеров. Сила архитектурных решений в openstack в том, что api-сервисы stateless, что значит, что вы можете запустить произвольное их количество, а stateful конфигурация находится в базе данных. Ну и вам придётся озаботиться балансировкой нагрузки между несколькими контроллерами и отказоустойчивостью базы данных (это тривиальные задачи)
Мне самому термин контроллер не нравится тем, что в типовых гайдах и некоторых инструментах, таких как TripleO или Redhat openstack platform director, на контроллеры складывают даже сетевые сервисы, но по моему это в корне не верно. Тут нужно понимать, что в архитектуре openstack (и любых IaaS решений, таких как vCloud Director), в отличие от классической виртуализации, такой как vmware vsphere, управление сетью переносится с ваших сетевиков на сервисы openstack - dhcp, маршрутизация, все пойдёт через так называемые сетевые ноды. (Можно сделать и классический вариант, так же как вы подавали вланы на esxi, но сетевые ноды все равно нужны.)
С хранилищем не менее интересно. Привычного понятия датастора нет. В большинстве случаев гипервизоры это набитые дисками серверы, на этих дисках лежат ваши виртуальные машины (инстансы). Собственно, при вылете гипервизора вы теряете все инстансы, но ваше приложение должно написано быть так, чтобы выдерживать падение одного (или нескольких) инстансов ;)
Конечно, есть и классический вариант, смонтировать на гипервизоры общее шаренное хранилище, но оно все равно будет одно.
Помните, что облачные решения отделяют вычисления от данных. Инстансы развертываются из маленьких образов и для них не нужно большое дисковое пространство. Поэтому работа с несколькими датасторами не предусмотрено, это не нужно. Дисковое пространство вам нужно для данных ваших приложений, и эти данные вы будете класть на выделенное СХД, проприетарное или самообороное, но выдаваться оно будет виртуальным машинам в виде отдельного сервиса (мыслите он нем как о vVols-технологии от vmware, диски для ВМ прямо с лунов СХД)
В этом смысле у вас будет столько датасторов, сколько у вас виртуальных машин ;)