Постоянное резервирование SCSI в iSCSI

В iSCSI идентификатор порта инициатора определяется как: iSCSI_Name,i,Initiator_Session_Id.

И идентификатор целевого порта определяется как: iSCSI_Name,t,Target_Portal_Group_Tag

После того, как инициатор выдает команду SCSI "PR In - Reserve", указанная выше информация, относящаяся к нексусу I_T, постоянно сохраняется. Если произойдет сбой на сервере и после того, как инициатор снова войдет в систему, инициатор, скорее всего, получит новый Initiator_Session_Id. Если да, то как инициатор (или любой зарегистрированный инициатор) снимет резервирование?

Спасибо, Ахмед.


person Ahmed A    schedule 16.11.2015    source источник


Ответы (1)


Если «сбой на сервере» является сбоем целевой стороны, то инициатор iSCSI обычно повторно устанавливает сеанс, используя тот же идентификатор сеанса. Инициаторы Linux и Windows ведут себя так. Большая часть отказоустойчивости iSCSI заключается в его способности восстанавливать состояние сеанса независимо от транспортного протокола, в этом случае нет необходимости снимать резервирование, оно сохраняется за инициатором.

Если сбой произошел на стороне инициатора, то вы правы, если сеанс не записывается постоянно (в Linux это не так), сеанс получает новый идентификатор сеанса. На этом этапе вступают в действие команды PERSISTENT RESERVE OUT - PREEMPT или PREEMPT AND ABORT. Все кластеры, которые используют постоянные резервирования как способ координации доступа к общему хранилищу, должны иметь дело со случаем, когда вам нужно взять на себя резервирование, удерживаемое другим инициатором. Вот что говорится о командах в черновике SPC-4:

Клиент приложения может заменить постоянное резервирование другим постоянным резервированием, выполнив команду PERSISTENT RESERVE OUT с сервисным действием PREEMPT или сервисным действием PREEMPT AND ABORT со следующими параметрами:

a) в поле RESERVATION KEY установлено значение ключа резервирования, зарегистрированного в логической единице для I_T-нексуса;

b) в поле SERVICE ACTION RESERVATION KEY установлено значение ключа резервирования постоянного резервирования, которое должно быть вытеснено; и

c) Поле TYPE и поле SCOPE установлены для определения нового постоянного резервирования. ОБЪЕМ и ТИП постоянного резервирования, созданного вытесняющей связью I_T, могут отличаться от таковых у вытесняемого постоянного резервирования.

Здесь появится ваш инициатор и выполнит команду PERSISTENT RESERVE OUT - REGISTER, чтобы зарегистрировать свой нексус. Затем он вызывает PERSISTENT RESERVE IN - READ RESERVATION и READ KEYS или, возможно, только READ FULL STATUS, чтобы получить ключ для инициатора, удерживающего резервирование. Наконец, он выполняет PREEMPT AND ABORT, чтобы переместить старое резервирование в новый нексус.

Источник: (требуется регистрация) http://www.t10.org/cgi-bin/ac.pl?t=f&f=spc4r35a.pdf (если вы будете искать в Интернете spc4.pdf, вы, несомненно, найдете вариант без регистрации.)

person Mike Andrews    schedule 18.11.2015
comment
Это также зависит от того, какой тип бронирования у вас изначально был. Если у вас групповое резервирование, то новый инициатор (после перезагрузки) может манипулировать резервированием, если знает ключ. - person Lee-Man; 09.12.2015