Aug 25, 2016 - Cluster: A group of independent systems working together as a ... If this count is 0xffffffff then the gu
MS Cluster on KVM Vadim Rozenfeld
[email protected] 25 Aug, 2016
Cluster: Servers Combined to Improve Availability and Scalability. - Cluster: A group of independent systems working together as a single system. Clients see scalable and fault tolerance service.
- Node: A server in a cluster. - Interconnect: Communication link used for intracluster status info such as “heartbeats”.
2 INSERT DESIGNATOR, IF NEEDED
Failover Cluster
3 INSERT DESIGNATOR, IF NEEDED
Cluster storage Hardware requirements :
4 INSERT DESIGNATOR, IF NEEDED
●
iSCSI
●
SAS
●
Fiber Channel
●
Fibre Channel over Ethernet (FcoE)
iSCSI
5 INSERT DESIGNATOR, IF NEEDED
iSCSI (cont)
6 INSERT DESIGNATOR, IF NEEDED
iSCSI vs. virtio-scsi performance test
7 INSERT DESIGNATOR, IF NEEDED
iSCSI vs. virtio-scsi performance test (cont.)
8 INSERT DESIGNATOR, IF NEEDED
MS Exchange Jetstress
9 INSERT DESIGNATOR, IF NEEDED
Jetstress latency results
10 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager
11 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager (cont.) Inventory virtio-scsi
12 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager (cont.) Inventory lsi_sas (VMWare Fusion)
13 INSERT DESIGNATOR, IF NEEDED
Windows Management Instrumentation
14 INSERT DESIGNATOR, IF NEEDED
WMI discovering GUID List
15 INSERT DESIGNATOR, IF NEEDED
WMI discovering GUID List (cont) scsiwmi.h scsiwmi.h Abstract: Abstract: This This module module contains contains the the internal internal structure structure definitions definitions and and APIs APIs used used bythe bythe SCSI SCSI WMILIB WMILIB helper helper functions functions //// //// This This structure structure supplies supplies context context information information for for SCSIWMILIB SCSIWMILIB to to process process the the WMI WMI srbs. srbs. typedef typedef struct struct _SCSIWMILIB_CONTEXT _SCSIWMILIB_CONTEXT {{ //// WMI WMI data data block block guid guid registration registration info info ULONG ULONG GuidCount; GuidCount; PSCSIWMIGUIDREGINFO PSCSIWMIGUIDREGINFO GuidList; GuidList; //// WMI WMI functionality functionality callbacks callbacks PSCSIWMI_QUERY_REGINFO QueryWmiRegInfo; PSCSIWMI_QUERY_REGINFO QueryWmiRegInfo; …... …... }} SCSI_WMILIB_CONTEXT, SCSI_WMILIB_CONTEXT, *PSCSI_WMILIB_CONTEXT; *PSCSI_WMILIB_CONTEXT; typedef typedef struct struct {{ LPCGUID //// Guid LPCGUID Guid; Guid; Guid representing representing data data block block ULONG ULONG InstanceCount; InstanceCount; //// Count Count of of Instances Instances of of Datablock. Datablock. IfIf this this count count is is 0xffffffff 0xffffffff then then the the guid guid is is assumed assumed to to be be dynamic dynamic instance instance names names ULONG //// Additional ULONG Flags; Flags; Additional flags flags (see (see WMIREGINFO WMIREGINFO in in wmistr.h) wmistr.h) }} SCSIWMIGUIDREGINFO, SCSIWMIGUIDREGINFO, *PSCSIWMIGUIDREGINFO; *PSCSIWMIGUIDREGINFO;
16 INSERT DESIGNATOR, IF NEEDED
WMI discovering GUID List
17 INSERT DESIGNATOR, IF NEEDED
WMI discovering GUID List //*************************************************************************** //*************************************************************************** // // // // hbapiwmi.h hbapiwmi.h // // // // Module: Module: WDM WDM classes classes to to expose expose HBA HBA api api data data from from drivers drivers // // // // Purpose: Purpose: Contains Contains WDM WDM classes classes that that specify specify the the HBA HBA data data to to be be exposed exposed // via // via the the HBA HBA api api set. set. // // // // NOTE: NOTE: This This file file contains contains information information that that is is based based upon: upon: // SM-HBA // SM-HBA Version Version 1.0 1.0 and and FC-HBA FC-HBA 2.18 2.18 specification. specification. // // #define #define MS_SM_AdapterInformationQueryGuid MS_SM_AdapterInformationQueryGuid \\ {{ 0xbdc67efa,0xe5e7,0x4777, 0xbdc67efa,0xe5e7,0x4777, {{ 0xb1,0x3c,0x62,0x14,0x59,0x65,0x70,0x99 0xb1,0x3c,0x62,0x14,0x59,0x65,0x70,0x99 }} }} #define #define MS_SM_PortInformationMethodsGuid MS_SM_PortInformationMethodsGuid \\ {{ 0x5b6a8b86,0x708d,0x4ec6, 0x5b6a8b86,0x708d,0x4ec6, {{ 0x82,0xa6,0x39,0xad,0xcf,0x6f,0x64,0x33 0x82,0xa6,0x39,0xad,0xcf,0x6f,0x64,0x33 }} }}
18 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager (cont.) List All Disks
19 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager (cont.) List All Disks log file
20 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager (cont.) Clusters.dll
21 INSERT DESIGNATOR, IF NEEDED
Failover Cluster Manager (cont.) List All Disks log file
22 INSERT DESIGNATOR, IF NEEDED
IOCTL_SCSI_MINIPORT inc\api\ntddscsi.h inc\api\ntddscsi.h #define #define IOCTL_SCSI_MINIPORT IOCTL_SCSI_MINIPORT
CTL_CODE(IOCTL_SCSI_BASE, CTL_CODE(IOCTL_SCSI_BASE, 0x0402, 0x0402, METHOD_BUFFERED, METHOD_BUFFERED, FILE_READ_ACCESS FILE_READ_ACCESS || FILE_WRITE_ACCESS) FILE_WRITE_ACCESS)
inc\ddk\scsi.h inc\ddk\scsi.h #define #define IOCTL_SCSI_MINIPORT_NOT_QUORUM_CAPABLE IOCTL_SCSI_MINIPORT_NOT_QUORUM_CAPABLE typedef typedef struct struct _SRB_IO_CONTROL _SRB_IO_CONTROL {{ ULONG ULONG HeaderLength; HeaderLength; UCHAR UCHAR Signature[8]; Signature[8]; ULONG ULONG Timeout; Timeout; ULONG ULONG ControlCode; ControlCode; ULONG ULONG ReturnCode; ReturnCode; ULONG ULONG Length; Length; }} SRB_IO_CONTROL, SRB_IO_CONTROL, *PSRB_IO_CONTROL; *PSRB_IO_CONTROL;
23 INSERT DESIGNATOR, IF NEEDED
((FILE_DEVICE_SCSI ((FILE_DEVICE_SCSI