Привет, сообщество Serverfault,
В настоящее время я разрабатываю кластер OpenStack. Часть, в которой я сейчас застрял, - это архитектура хранилища.
Я подумал о создании двух резервных кластеров Ceph в разных стойках с разными предохранителями и ИБП. Все идет нормально. Дело в том, что Openstack Cinder общается по сети с Ceph. Даже если у меня есть резервные коммутаторы, что, если маршрутизатор / шлюз сети Ceph выйдет из строя. Итак, чтобы добиться полного резервирования, мне нужны два резервных шлюза, я прав?
Я сделал абстрактное изображение того, что пытаюсь сделать: Архитектура хранения
Слева вы можете видеть вычислительные узлы OpenStack, каждый из которых подключен через два отдельных канала 10GE к каждому коммутатору. Эти коммутаторы подключаются через магистраль 2x 10GE к каждому из выделенных коммутаторов кластера Ceph, которые связаны друг с другом, поэтому узлы Ceph могут обмениваться данными друг с другом для обеспечения избыточности. Обратите внимание, что даже когда я использовал разные цвета, вся топология сети находится в одной VLAN.
С моей точки зрения, все может выйти из строя, и кластер все равно будет нормально работать. Но что, если выйдет из строя шлюз сети хранения? Тогда я предполагаю, что это будет работать, пока коммутатор кэширует записи MAC ARP, но когда они истекают, кластер выйдет из строя. Есть ли у вас какие-нибудь предложения, как сделать кластер полностью избыточным и оптимизировать его?
Я сосредоточен только на компоненте хранилища OpenStack, поэтому вычислительные узлы еще не подключены к сетевому узлу или сети управления.
Спасибо
Что касается CEPH части вашего вопроса: CEPH использует карту CRUSH, чтобы решить, где хранятся объекты, которые вы можете настроить. Маркировка OSD стойкой, к которой они принадлежат, и предотвращение хранения копий одного и того же объекта в одной стойке на самом деле довольно распространено. Подробнее об этом см. Вот. Поэтому вам не нужны два отдельных кластера CEPH. Для сетевой конфигурации узлы CEPH должны находиться в «сети кластера», доступной с ваших узлов Cinder, и иметь частную сеть кластера, которая используется для репликации между OSD.
Что касается Cinder: Да, если Cinder выйдет из строя, вы потеряете доступ. Поэтому вам нужно развернуть Cinder в конфигурации высокой доступности.