Distribuera klustrade program i Azure Elastic SAN
Azure Elastic SAN-volymer kan kopplas samtidigt till flera beräkningsklienter, så att du kan distribuera eller migrera klusterprogram till Azure. Du måste använda en klusterhanterare för att dela en elastisk SAN-volym, till exempel Windows Server-redundanskluster (WSFC) eller Pacemaker. Klusterhanteraren hanterar klusternodkommunikation och skrivlåsning. Elastic SAN erbjuder inte ett fullständigt hanterat filsystem som kan nås via SMB eller NFS.
När de används som en delad volym kan elastiska SAN-volymer delas mellan tillgänglighetszoner eller regioner. Om du delar en volym i ett lokalt redundant lagrings-SAN mellan zoner minskar prestandan på grund av ökad svarstid mellan volymen och klienterna.
Begränsningar
- Elastiska SAN-anslutningsskript kan användas för att koppla delade volymer till virtuella datorer i VM-skalningsuppsättningar eller virtuella datorer i tillgänglighetsuppsättningar. Feldomänjustering stöds inte.
- Det maximala antalet sessioner som en delad volym stöder är 128.
- En enskild klient kan skapa flera sessioner till en enskild volym för ökad prestanda. Om du till exempel skapar 32 sessioner på var och en av dina klienter kan endast fyra klienter ansluta till en enda volym.
Se Stöd för Azure Storage-funktioner för andra begränsningar i Elastic SAN.
Hur det fungerar
Elastiska SAN-delade volymer använder SCSI-3 beständiga reservationer för att tillåta initierare (klienter) att styra åtkomsten till en delad elastisk SAN-volym. Det här protokollet gör det möjligt för en initierare att reservera åtkomst till en elastisk SAN-volym, begränsa skrivåtkomsten (eller läsåtkomsten) av andra initierare och bevara reservationen på en volym som överskrider livslängden för en session som standard.
SCSI-3 PR har en central roll när det gäller att upprätthålla datakonsekvens och integritet i delade volymer i klusterscenarier. Beräkningsnoder i ett kluster kan läsa eller skriva till sina anslutna elastiska SAN-volymer baserat på den reservation som valts av deras klusterprogram.
Beständigt reservationsflöde
Följande diagram visar ett exempel på ett klusterbaserat databasprogram med två noder som använder SCSI-3 PR för att aktivera redundans från en nod till en annan.
Flödet är följande:
- Det klustrade programmet som körs på både Azure VM1 och VM2 registrerar sin avsikt att läsa eller skriva till den elastiska SAN-volymen.
- Programinstansen på VM1 tar sedan en exklusiv reservation för att skriva till volymen.
- Den här reservationen tillämpas på volymen och databasen kan nu exklusivt skriva till volymen. Skrivningar från programinstansen på VM2 misslyckas.
- Om programinstansen på VM1 slutar fungera kan instansen på VM2 initiera en databasredundans och ta över kontrollen över volymen.
- Den här reservationen tillämpas nu på volymen och accepterar inte skrivningar från VM1. Den accepterar endast skrivningar från VM2.
- Det klustrade programmet kan slutföra databasens redundans och hantera begäranden från VM2.
Följande diagram illustrerar en annan vanlig klustrad arbetsbelastning som består av flera noder som läser data från en elastisk SAN-volym för att köra parallella processer, till exempel träning av maskininlärningsmodeller.
Flödet är följande:
- Det klustrade programmet som körs på alla virtuella datorer registrerar sin avsikt att läsa eller skriva till den elastiska SAN-volymen.
- Programinstansen på VM1 tar en exklusiv reservation för att skriva till volymen medan läsningar öppnas på volymen från andra virtuella datorer.
- Den här reservationen tillämpas på volymen.
- Alla noder i klustret kan nu läsa från volymen. Endast en nod skriver tillbaka resultat till volymen, för alla noder i klustret.
SCSI PR-kommandon som stöds
Följande kommandon stöds med elastiska SAN-volymer:
Om du vill interagera med volymen börjar du med lämplig beständiga reservationsåtgärd:
- PR_REGISTER_KEY
- PR_REGISTER_AND_IGNORE
- PR_GET_CONFIGURATION
- PR_RESERVE
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE_RESERVATION
När du använder PR_RESERVE, PR_PREEMPT_RESERVATION eller PR_RELEASE_RESERVATION anger du någon av följande beständiga reservationstyper:
- PR_NONE
- PR_WRITE_EXCLUSIVE
- PR_EXCLUSIVE_ACCESS
- PR_WRITE_EXCLUSIVE_REGISTRANTS_ONLY
- PR_EXCLUSIVE_ACCESS_REGISTRANTS_ONLY
- PR_WRITE_EXCLUSIVE_ALL_REGISTRANTS
- PR_EXCLUSIVE_ACCESS_ALL_REGISTRANTS
Beständiga reservationstyper avgör åtkomsten till volymen från varje nod i klustret.
Beständig reservationstyp | Reservationsinnehavare | Registrerat | Andra |
---|---|---|---|
INGEN RESERVATION | Ej tillämpligt | Läs/skriv | Läs/skriv |
SKRIV EXKLUSIVT | Läs/skriv | Skrivskyddad | Skrivskyddad |
EXKLUSIV ÅTKOMST | Läs/skriv | Ingen åtkomst | Ingen åtkomst |
SKRIV EXKLUSIVT – ENDAST REGISTRANTER | Läs/skriv | Läs/skriv | Skrivskyddad |
EXKLUSIV ÅTKOMST – ENDAST REGISTRANTER | Läs/skriv | Läs/skriv | Ingen åtkomst |
SKRIV EXKLUSIVT – ALLA REGISTRANTER | Läs/skriv | Läs/skriv | Skrivskyddad |
EXKLUSIV ÅTKOMST – ALLA REGISTRANTER | Läs/skriv | Läs/skriv | Ingen åtkomst |
Du måste också ange en permanent reservationsnyckel när du använder:
- PR_RESERVE
- PR_REGISTER_AND_IGNORE
- PR_REGISTER_KEY
- PR_PREEMPT_RESERVATION
- PR_CLEAR_RESERVATION
- PR_RELEASE RESERVATION.