iSCSI с двумя основными узлами DRBD - плохая идея использовать, если два пути получают одновременные запросы на запись. Но я подумываю использовать эту идею в качестве внутреннего хранилища для хоста ESXi 5.5U2.
Я уже тестировал это с первичной / вторичной конфигурациями и классическим отказоустойчивым кластером.
Что делает ESXi на этом этапе, так это то, что он обнаруживает многолучевость и активно использует только один путь. Таким образом, в этом созвездии параллельная io-проблема записи не возникает.
Теперь проблема в обоих случаях (первичный / вторичный или первичный / первичный) заключается в следующем: как выключить сервер iSCSI (целевой поставщик iSCSI в терминах iSCSI), который имеет активные открытые соединения с клиентом iSCSI (инициатор iSCSI в терминах iSCSI)?
В настоящее время я использую CentOS 5 на целевых серверах.
CO5 использует tgtd для предоставления целей. К моему удивлению, обычный метод остановки не работает, если есть подключенные клиенты. Напротив, в данном случае мне нужна принудительная остановка.
Я хочу полностью выключить один сервер (мне нужно остановить доступ к цели, чтобы я мог переключить drbd на вторичный), а другой сервер должен автоматически стать активным (в этом созвездии делать нечего, ИМХО).
Вопросы в этом контексте: правильно ли перечисленное ниже или я что-то упускаю?
Да, я кое-что пропустил. Проблема все еще в том, что базовый протокол (SCSI) является сохранный протокол. Таким образом, даже если мне удастся выключить цель (например, с помощью принудительной остановки), инициаторы активности останутся в "зависшем" состоянии.
Но: в моем случае есть решение проблемы.
Итак, правильный ответ на мои вопросы, кажется, таков:
Короткий: Нет правильного пути. Ваши клиенты будут висеть.
Длинный: Это зависит. Если у вас есть промежуточный уровень, который может сначала должным образом заглушить / прекратить iSCSI-трафик, вы можете завершить работу цели впоследствии (даже если целевой сервер все еще считает, что есть подключенные клиенты-инициаторы).