Как известно, механизм SCSI-резерваций (SCSI-2 Reservations, SCSI-3 Persistent Reservations, Persistent Group Reservations Emulation (PGRE)) используется в Sun/Oracle Cluster 3.X для организации работы кворума и резервированием общих для узлов кластера дисковых устройств или томов ("fencing"). В рамках эксплуатации кластера у администраторов периодически возникает необходимость управления этим механизмом и здесь возникает множество вопросов,  ответы на которые не найти  в официальной  документации.  Привожу небольшую "шпаргалку" которая отвечает на основные вопросы администрирования SCSI-резерваций в окружении  Sun/Oracle Cluster.
	
	Основные способы определения типа используемых SCSI-резерваций.
	
	Sun/Oracle Cluster 3.2/3.3 :
	
	"Глобальное" значение :
	
	# cluster show|grep global_fencing
	
	выдаваемое  значение "pathcount" соответствует  SCSI-2 резервациям,   а "prefer3"- SCSI-3.
	
	"Индивидуальное" значение для каждого устройства :
	
	# cldev show <did device> |grep default_fencing
	
	где <did device> - DID устройство, например d4  (соответствие DID и логических  устройств Solaris можно при помощи команды  cldev list -v )
	 выдаваемое значение "global" соответствует "глобальной" настройке в кластере (см.выше)
	"pathcount" соответствует SCSI-2 резервациям, "scsi3" - SCSI-3
	
	Sun Cluster 3.0/3.1
	
	# scconf -pvv |grep access
	где значения  "scsi2" и "scsi3" говорят сами за себя.
	
	кроме того, тип SCSI-резерваций хранится в конфигурационной "базе" CCR (Cluster Configuration Repository), а именно в  файле  infrastructure  (в случае с Sun/Oracle Cluster 3.2/3.3 файл находится в /etc/cluster/ccr/global/, а для Sun Cluster 3.0/3.1в  /etc/cluster/ccr/ ).
	Например :
	# cat /etc/cluster/ccr/global/infrastructure |grep access_mode
	cluster.quorum_devices.1.properties.access_mode scsi2
	
	 
	Просмотр и удаление  SCSI-2 и PGRE резерваций.
	
	Для управления любым типом  SCSI-резерваций в окружении Sun/Oracle Cluster 3.X предусмотрена утилита /usr/cluster/lib/sc/scsi (пакет SUNWscu).
	
	Для того, чтобы определить разрешен ли доступ какого-либо  узла  кластера к конкретному дисковому устройству, можно воспользоваться подкомандой status утилиты scsi.
	
	Например :
	 #  /usr/cluster/lib/sc/scsi -c status -d /dev/did/rdsk/d4s2
	status...1
	
	Выдаваемое значение "1" означает  что данный узел не имеет доступа к устройству, т.е. устройство зарезервировано другим узлом, а "0" - доступ разрешен.
	
	Так как механизм SCSI-2 резерваций не предусматривает хранение ключей на устройстве при помощи SCSI-команд,  возможности просмотра значений этих ключей при помощи  утилиты scsi невозможно.  Как известно, для хранения ключей в данном случае используется программный механизм Persistent Group Reservations Emulation (PGRE)). Просмотр "эмулируемых"  резервации и ключей возможно при помощи утилиты   /usr/cluster/lib/sc/pgre.
	
	Просмотр PGRE-резерваций (пример) :
	# /usr/cluster/lib/sc/pgre -c pgre_inresv -d /dev/did/rdsk/d4s2
	resv[0]: key=0x4e03255200000002.
	
	Просмотр PGRE-ключей (пример):
	
	#  /usr/cluster/lib/sc/pgre -c pgre_inkeys -d /dev/did/rdsk/d4s2
	key[0]=0x4e03255200000001.
	key[1]=0x4e03255200000002.
	
	 
	Удаление стандартных SCSI-2 резерваций выполняется при помощи подкоманды  "release" утилиты scsi, запущенной на узле, владеющим резервацией. При этом необходимо  выполнить команду  /usr/cluster/lib/sc/scsi -c disfailfast -d /dev/did/rdsk/<did device>s2 перед удалением каких-либо резервацией, для того, чтобы обезопасить систему от нежелательных паник.
	
	Например :
	
	# /usr/cluster/lib/sc/reserve -c disfailfast -z /dev/did/rdsk/d4s2
	# /usr/cluster/lib/sc/reserve -c release -z /dev/did/rdsk/d4s2
	
	Возврат последней команды в виде "do_scsi2_release 0" означает достигнутый успех при удалении резервации.
	
	Удаление PGRE ключей выполняется при помощи подкоманды "pgre_scrub" утилиты  /usr/cluster/lib/sc/pgre
	
	Например :
	
	# /usr/cluster/lib/sc/pgre -c pgre_scrub -d /dev/did/rdsk/d4s2
	
	Scrubbing complete. Use '/usr/cluster/lib/sc/pgre -c pgre_inkeys -d /dev/did/rdsk/d4s2'
	
	  to verify success.
	
	Просмотр и удаление SCSI-3 резерваций.
	
	Просмотр SCSI-3 резерваций и их ключей выполняется при помощи подкоманд "inresv" и "inkeys" утилиты scsi
	
	Просмотр SCSI-3 резерваций (пример) :
	
	  # /usr/cluster/lib/sc/scsi -c inresv -d /dev/did/rdsk/d4s2
	  Reservations(1):
	
	  0x4e03255200000001
	
	  type ---> 5
	
	Просмотр ключей SCSI-3 резерваций (пример) :
	
	  # /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/d4s2
	  Reservation keys(3):
	
	  0x4e03255200000003
	
	  0x4e03255200000001
	
	  0x4e03255200000002
	
	При этом вывод команд  вида :
	
	"
	#  /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/d4s2
	Reservation keys(0):
	
	# /usr/cluster/lib/sc/scsi -c inresv -d /dev/did/rdsk/d4s2
	Reservations(0):
	"
	или
	
	"
	#  /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/d4s2
	do_scsi3_inkeys failed
	Reservation keys(0):
	
	# /usr/cluster/lib/sc/scsi -c inresv -d /dev/did/rdsk/d4s2
	do_scsi3_inkeys failed
	do_scsi-3_inresv failed
	"
	означает, что тип резерваций не  SCSI-3 а SCSI-2.
	
	
	Удаление и SCSI-3 резерваций и ключей выполняется при помощи подкоманды  "scrub" утилиты scsi. При этом запуск  можно выполнять, в отличие от SCSI-2, на любом узле, даже если этот хост не "владеет" резервацией и не входит в данный кластер. Выполнение  команды  /usr/cluster/lib/sc/scsi -c disfailfast -d /dev/did/rdsk/<did device>s2 перед удалением  резервацией требуется также,  как в случае с SCSI-2.
	
	Например :
	
	  # /usr/cluster/lib/sc/scsi -c scrub -d /dev/did/rdsk/d4s2
	
	  Reservation keys currently on disk:
	
	 0x4e03255200000003
	
	  0x4e03255200000001
	
	  0x4e03255200000002
	
	  Attempting to remove all keys from the disk...
	  Scrubbing complete, use '/usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/d4s2' to verify success
	
	Проверяем, что  ключи действительно удалились :
	
	  # /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/d4s2
	
	  Reservation keys(0):
	
	Обращаем внимание, что резервация также удаляется :
	
	  # /usr/cluster/lib/sc/scsi -c inresv -d /dev/did/rdsk/d4s2
	
	  Reservations(0):
	
	Хотелось бы также обратить внимание, что в дополнение к приведенным способам работы с SCSI-резервациями со стороны Sun/Oracle Cluster, существует возможность просмотра и удаления резерваций со стороны контроллеров некоторых массивов.