Назад | Перейти на главную страницу

Как правильно отключить цель iSCSI с подключенными клиентами?

iSCSI с двумя основными узлами DRBD - плохая идея использовать, если два пути получают одновременные запросы на запись. Но я подумываю использовать эту идею в качестве внутреннего хранилища для хоста ESXi 5.5U2.

Я уже тестировал это с первичной / вторичной конфигурациями и классическим отказоустойчивым кластером.

Что делает ESXi на этом этапе, так это то, что он обнаруживает многолучевость и активно использует только один путь. Таким образом, в этом созвездии параллельная io-проблема записи не возникает.

Теперь проблема в обоих случаях (первичный / вторичный или первичный / первичный) заключается в следующем: как выключить сервер iSCSI (целевой поставщик iSCSI в терминах iSCSI), который имеет активные открытые соединения с клиентом iSCSI (инициатор iSCSI в терминах iSCSI)?

В настоящее время я использую CentOS 5 на целевых серверах.

CO5 использует tgtd для предоставления целей. К моему удивлению, обычный метод остановки не работает, если есть подключенные клиенты. Напротив, в данном случае мне нужна принудительная остановка.

Я хочу полностью выключить один сервер (мне нужно остановить доступ к цели, чтобы я мог переключить drbd на вторичный), а другой сервер должен автоматически стать активным (в этом созвездии делать нечего, ИМХО).

Вопросы в этом контексте: правильно ли перечисленное ниже или я что-то упускаю?

  1. принудительная остановка tgtd (сначала отключит цели)
  2. снесите IP в сторону инициатора (другая строка, чем та, которая используется для drbd-репликации)
  3. выключить drbd (сделать его второстепенным первым)
  4. перезагрузить или выключить сервер

Да, я кое-что пропустил. Проблема все еще в том, что базовый протокол (SCSI) является сохранный протокол. Таким образом, даже если мне удастся выключить цель (например, с помощью принудительной остановки), инициаторы активности останутся в "зависшем" состоянии.

Но: в моем случае есть решение проблемы.

  1. в vCenter отключите все пути к определенному iSCSI-серверу.
  2. Это упорядочит все открытые транзакции iSCSI и откроет новые транзакции на другом пути к другому серверу.
  3. После этого iSCSI-сервер можно безопасно перезагрузить без прерывания работы клиента.
  4. После того, как iSCSI-сервер снова будет запущен и снова заработает, исходные пути iSCSI можно повторно активировать, включив эти пути в vCenter.

Итак, правильный ответ на мои вопросы, кажется, таков:

Короткий: Нет правильного пути. Ваши клиенты будут висеть.

Длинный: Это зависит. Если у вас есть промежуточный уровень, который может сначала должным образом заглушить / прекратить iSCSI-трафик, вы можете завершить работу цели впоследствии (даже если целевой сервер все еще считает, что есть подключенные клиенты-инициаторы).