Dela via


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.

Diagram som visar klustrat program.

Flödet är följande:

  1. 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.
  2. Programinstansen på VM1 tar sedan en exklusiv reservation för att skriva till volymen.
  3. Den här reservationen tillämpas på volymen och databasen kan nu exklusivt skriva till volymen. Skrivningar från programinstansen på VM2 misslyckas.
  4. Om programinstansen på VM1 slutar fungera kan instansen på VM2 initiera en databasredundans och ta över kontrollen över volymen.
  5. Den här reservationen tillämpas nu på volymen och accepterar inte skrivningar från VM1. Den accepterar endast skrivningar från VM2.
  6. 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.

Diagram som visar ett maskininlärningskluster.

Flödet är följande:

  1. Det klustrade programmet som körs på alla virtuella datorer registrerar sin avsikt att läsa eller skriva till den elastiska SAN-volymen.
  2. Programinstansen på VM1 tar en exklusiv reservation för att skriva till volymen medan läsningar öppnas på volymen från andra virtuella datorer.
  3. Den här reservationen tillämpas på volymen.
  4. 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.