SCSI Bus Sharing? Multi-writer?



vSphere 환경위에서 3rd-party 클러스터링 솔루션 (윈도우 WSFC 나 Oracle RAC) 을 활영하여 구축을 하시는경우,


어떤 경우에는 RDM 을 사용하고, 어떤 경우에는 Multi-writer 를 사용하여 Shared VMDK 를 쓰시는 경우가 있습니다.


근데 설정을 하다보면 좀 해깔리는 경우가 있습니다.


윈도우 WSFC 의 경우 

vSphere 6.7 까지는 Physical Mode RDM 의 사용이 MUST 였습니다. 그동안의 가이드를 보면 pRDM 사용시, SCSI Controller 의 Bus Sharing Mode 를 일반적을 Physical 로 설정을 해야합니다. (WSFC Node 를 보통 다른 ESXi 호스트에서 기동함으로..)



참고로 pRDM 과 SCSI Bus Sharing 의 Physical 은 다릅니다. pRDM 은 compatibility Mode 가 Physical 이라는 이야기이지 SCSI Bus Sharing 이 Physical 이다와는 내용이 다름으로 참고 부탁드립니다.


add rdm 이미지 검색결과


그런데 Oracle RAC 나 기타 RHCS 와 같은 솔루션의 경우는 Shared VMDK (Multi-writer) 를 사용하는데, 이때 보면 SCSI Controller 의 Bus Sharing 모드를 Phyiscal 이 아니라 None 으로 설정하고, Disk 에 있는 Sharing 에다가 Multi-writer 를 Enable 하는 것이 가이드로 되어있습니다.



이게 해깔리는 거죠. 


아니 그럼 SCSI Controller 의 SCSI Bus Sharing 하고 Multi-writer 하고 하는일이 뭐가 달라? 뭐가 다르길래 설정이 달라야 하냐 라는 의문이 있을 수 있습니다.


게다가 vSphere 7.0 에서는 WSFC 구축시 RDM 이 MUST 가 아니고 Shared VMDK (Multi-writer) 를 사용할 수 있습니다. (아직까지는 FC 스토리지에서만 된다는 제약은 있습니다만)



그런데… 이런 부분이 있습니다.



아니, Shared VMDK 인데 여기는 Multi-writer 를 쓰지 말라고? 대체 이게 무슨 경우인가 싶으실 겁니다. 물론 저도 그랬구요. ㅎㅎ



이것은 클러스터 솔루션에서 지원하는 방식이 SCSI3-PR 을 필요로 하는지, Multi-writer 를 필요로 하는지에 따라 다릅니다.


WSFC 의 경우 SCSI3-PR 지원을 필요로 하는데 vSphere 6.7 까지는 Shared VMDK 를 통해서는 SCSI3-PR 커맨드를 사용할 수 없었습니다. 그래서 RDM 을 필요로 했던것이고,

vSphere 7.0 부터는 Clustered VMDK 라는 이름으로 지원하며, SCSI-3 PR 커맨드를 에뮬레이션 하는 방식으로 지원이 됩니다. 


즉 달리말하면, SCSI Controller 의 SCSI Bus Sharing Mode 의 설정은 “SCSI-3 PR” 을 필요로 할때만 사용된다는 것입니다. 그리고 SCSI-3 PR 을 디바이스로 바로 던지기 위해서는 Physical Compatibility Mode RDM 을 필요로 하는 것이고요. vRDM 으로 하면 SCSI-3 PR 을 전달할 수 없다 라는 말과 동일하게 되겠죠.


We recommend attaching a disk to be used as a shared resource to a separate vSCSI controller(s) — consider using the PVSCSI Controller Type with vSphere 6.x and 7.0. A SCSI controller used for a clustered disk must be configured with the SCSI Bus Sharing set to physical. The requirement to use physical Bus Sharing is due to SCSI-3 Persistent Reservations used by Microsoft OS to arbitrate an access to a  disk shared between nodes.


Block storage must be used to provision a clustered disk for WSFC. We support only Fibre Channel, iSCSI or Fibre Channel over Ethernet (FCoE) as the access storage protocols; file-based storage systems with NFS are not supported. A non-formatted LUN should be made available to the vSphere environment and further assigned as an RDM or vVol device to a VM, node of WSFC. SCSI commands must be directly passed to a LUN to satisfy the requirements of SCSI-3 Persistent Reservations, which justifies the usage of RDMs in physical compatibility mode. All disks should be using the same SCSI IDs across all VMs hosting nodes of WSFC. The figure below depicts the recommended VM level configuration of a disk resource and vController (using vSphere HTML5 Client).



반면에 SCSI3-PR 이 아닌 Multi-writer 기능을 필요로 하는  클러스터링 솔루션들도 있습니다. 이것은 사용하시는 솔루션 벤더에 확인을 해보세요.


예를 들면 Veritas Info scale 의 경우는 둘다 지원합니다.



이게 가능한 이유는 SCSI3-PR 을  필요로 하는 구성과, 필요로 하지 않는 구성을 둘다 할 수 있기 때문인 것으로 보입니다.


그 말은 달리 표현하면, 베리타스의 경우 vSphere 7 에서는 Clustered VMDK 를 통해서 SCSI3-PR 을 사용하는 구성도 가능하다는 이야기겠죠. 다만 위 베리타스 문서를 보면, 현재까지는 이슈가 있어서 사용이 안되는 것으로 보이긴 하네요. (인포스케일 7.4.2 기준)


추가적으로 퓨어스토리지 문서에 보면 이렇게 적혀있네요.


Since RDMs are most often used for situations like clustering this becomes a concern on whether or not this value should be set. There is a fear that if left unspecified (which defaults to “No Sharing”) corruption of come kind can happen on the disk. This is a good mindset to have as protecting data should always be the number one goal.


The first important thing to note here is that this option is meant for VMDKs or virtual RDMs (vRDM) only. It is not for use with physical RDMs (pRDM) as they are not “VMFS backed”. So if your environment is utilizing physical RDMs then you do not need to worry about this setting.

If you utilizing virtual RDMs then there is a possibility that setting this option would be required, specifically if you are utilizing Oracle RAC on your virtual machines. As of this writing this is the only scenario in which multi-writer is known to be required with virtual RDMs on a Pure Storage FlashArray. VMware has provided additional information on this in their Enabling or disabling simultaneous write protection provided by VMFS using the multi-writer flag KB.


Do not set multi-writer on RDMs that are going to be used in a Windows Server Failover Cluster (WSFC) as this may cause accessibility issues to the disk(s). Windows manages access to the RDMs via SCSI-3 persistent reservations and enabling multi-writer is not required.


오라클 RAC 의 경우에는 SCSI-3 PR 이 아니라 자체적인 다른 것을 사용한다고 합니다. 그래서 뭐..  SCSI Bus Sharing 이 굳이 필요하지 않기 때문에 Multi-writer 를 사용하면 된다고하네요. 근데 RDM 도 뭐 된다고는 하는데.. VMware 권장은 Shared VMDK 입니다