# FailoverCluster

# Failover-Clustering in Windows Server und Azure Local
# https://learn.microsoft.com/de-de/windows-server/failover-clustering/failover-clustering-overview

# Erstellen eines Failoverclusters
# https://learn.microsoft.com/de-de/windows-server/failover-clustering/create-failover-cluster

# Grundlegendes zum Cluster- und Poolquorum
# https://learn.microsoft.com/de-de/azure-stack/hci/concepts/quorum

# Failovercluster in Windows Server 2019 – so geht’s
# https://www.veeam.com/blog/de/windows-server-2019-failover-cluster.html

# Exchange im Cluster
# https://www.msxfaq.de/cluster/clusteredex.htm

# Übersicht über Dateiserver mit horizontaler Skalierung für Anwendungsdaten
# https://learn.microsoft.com/de-de/windows-server/failover-clustering/sofs-overview

# Wie erstellt man einen Windows Failover Cluster
# https://it-learner.de/wie-erstellt-man-einen-windows-failover-cluster/

# https://learn.microsoft.com/de-de/windows-server/failover-clustering/deploy-two-node-clustered-file-server?tabs=powershell
# https://learn.microsoft.com/de-de/windows-server/failover-clustering/deploy-two-node-clustered-file-server?tabs=server-manager

# https://www.windowspro.de/brandon-lee/hochverfuegbare-file-shares-windows-server-2022-einrichten


# Zwei oder mehr Server bieten gemeinsam Speicher auf einem iSCSI-Speicher an.
# Über FailoverClustering wird die Ausfallsicherheit des iSCSI-Speichers gewährleistet.

# Fällt ein Serer/Knoten aus übernimmt der andere oder die anderen die Verwaltung.


# Was ist ein Failovercluster

# Active/Active
# Eine Windows(-Anwendung) läuft auf beiden Servern/Knoten

# Active/Passive
# Eine Windows(-Anwendung) läuft nur auf einem Server/Knoten

# https://www.linetwork.de/failover-cluster-tutorial/
# https://de.linkedin.com/learning/mcsa-windows-server-2016-70-740-teil-5-implementieren-von-hochverfugbarkeit/was-ist-ein-failovercluster


# https://datei.wiki/blog/failover-cluster/
# 3 Netze:
1. Clients zu Servern/Knoten
2. ein dediziertes Netz zwischen den Servern/Knoten (Heartbeat)
3. ein gemeinsames Netz, für die Server zum iSCSI-Speicher

# https://www.veeam.com/blog/de/windows-server-2019-failover-cluster.html
1. Production network = Clients zu Servern/Knoten
2. Cluster network = ein dediziertes Netz zwischen den Servern/Knoten (Heartbeat)
3. iSCSI network = ein gemeinsames Netz, für die Server zum iSCSI-Speicher

# Failover
# https://www.cohesity.com/de/glossary/failover/
Failover ist der Prozess des nahtlosen und automatischen Umschaltens auf ein redundantes System,
wenn ein Primärsystem aufgrund eines Ausfalls, eines Ransomware-Angriffs oder eines anderen
Problems versagt.
Failover stellt sicher, dass auch bei einer Fehlfunktion des Primärsystems – Server,
Speicher oder Netzwerk – das übergeordnete System, z. B. eine Anwendung,
weiterhin annähernd normal funktioniert.

## Quorum - Mehrheitsentscheidung
# https://de.wikipedia.org/wiki/Quorum_(Informatik)
Die Anzahl der Stimmen, die erreicht sein muss, damit eine Wahl oder Abstimmung Gültigkeit erlangt.

Zwei Server/Knoten streiten sich über die aktive Rolle.
Das bedeutet, dass ein Cluster nur wieder online gehen darf, wenn mindestens 50% der Teilnehmer verfügbar sind.
Da das bei einem Cluster mit einer geraden Anzahl an Teilnehmern nur schwer funktioniert,
wurde die  Disk geschaffen.

# Microsoft: Grundlegendes zum Cluster- und Poolquorum
Quorumzeugentypen

# https://learn.microsoft.com/de-de/powershell/module/failoverclusters/get-clusterquorum?view=windowsserver2019-ps
PS: Get-ClusterQuorum
PS: Get-ClusterQuorum -Cluster Cluster1

# https://www.windowspro.de/marcel-kueppers/cluster-windows-server-2019-unabhaengigen-dateifreigabenzeugen-einrichten

# Cluster in Windows Server 2019: Unabhängigen Dateifreigabenzeugen einrichten
# https://learn.microsoft.com/de-de/windows-server/failover-clustering/sofs-overview

# horizontale Skalierung = Scale Out
Horizontale Skalierbarkeit ist die Fähigkeit, die Kapazität zu erhöhen,
indem mehrere Hardware- oder Softwarekomponenten miteinander verbunden werden,
so dass sie wie eine einzige logische Einheit arbeiten.
Horizontal skalieren wird auch als Scale out bezeichnet.

# Das Quorum in einem Cluster wird als Zeuge (Witness) genutzt.
# https://learn.microsoft.com/de-de/windows-server/failover-clustering/manage-cluster-quorum
# Microsoft: Bereitstellen eines Quorumzeugen

# Microsoft SQL Failover-Cluster: Einführung

# https://learn.microsoft.com/en-us/powershell/module/failoverclusters/get-cluster?view=windowsserver2022-ps

Get-ClusterNode -Cluster <clustername>
Get-Cluster <ClusterManagementName> | Get-ClusterGroup | Format-Table Name,OwnerNode
Get-Cluster <ClusterManagementName> | Get-ClusterResource | Format-Table Cluster,Name,RecourceType,OwnerGroup,OwnerNode

# get cluster name ?
Get-Cluster | Format-List -Property *

# gets information about each of the clusters in a domain
Get-Cluster -Domain '<domain>'

Get-ClusterAvailableDisk
Get-ClusterFaultDomain
Get-ClusterGroup
Get-ClusterGroup -Name "Cluster Group" | Get-ClusterResource
Get-ClusterNetwork
Get-ClusterNetworkInterface

Get-ClusterResource
Get-ClusterNode
Get-ClusterResource -Cluster "Cluster Disk 1" | Get-ClusterOwnerNode
Get-ClusterGroup -Group cluster1FS12 | Get-ClusterOwnerNode

Get-ClusterResourceType -Name "File Server" | Format-List -Property *


# Microsoft: Get-ClusterNode
Get-ClusterNode
Get-ClusterNode -Cluster <cluster>
Get-ClusterNode -Name <node> | Get-ClusterResource

Get-ClusterNetwork | ft Name, Metric, AutoMetric

Shared Storage ermöglicht Ihnen, dass jeder Clusterknoten auf das Storage zugreifen kann.
Wenn ein Clusterknoten ausfallen sollte, besteht weiterhin die Verbindung zum Shared Storage da ja beide Knoten Zugang zum Storage haben.
Shared Storage über iSCSI, SAS, Fiber Channel
Beide Windows Server im Cluster müssen mit dem Storage verbunden sein und das Storage sehen können.
CSV (Cluster Shared Volume) -> einrichten
CSD (Cluster Shared Disk)

Dateifreigaben mit horizontaler Skalierung zum Speichern von Anwendungsdaten
für die Clusterrolle „Dateiserver mit horizontaler Skalierung“.
Nein.

# Microsoft übersicht: Freigegebene Clustervolumes
Mit freigegebenen Clustervolumes (Cluster Shared Volumes, CSVs) können mehrere Knoten in einem
Windows Server-Failovercluster oder in Azure Local gleichzeitig über den Lese-/Schreibzugriff
auf dieselbe LUN (Datenträger) verfügen, die als NTFS-Volume bereitgestellt wird.

# ist Block Cache aktiviert?
Get-ClusterSharedVolume | Get-ClusterParameter | where name -like EnableBlockCache

# Block Cache einschalten
Get-ClusterSharedVolume "Cluster Disk 1" | Set-ClusterParameter CsvEnableBlockCache 1

# Status abfragen
Get-ClusterSharedVolumeState

#
Get-ClusterAvailableDisk

#
Get-ClusterSharedVolume


# weitere Quellen
# https://it-learner.de/wie-erstellt-man-einen-windows-failover-cluster/
# https://www.veeam.com/blog/de/windows-server-2019-failover-cluster.html
#