MS Cluster on KVM - Linux Foundation Events

0 downloads 130 Views 1MB Size Report
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