Esiste un modo per impedire ad Storage Spaces Direct di aggiungere automaticamente dischi?


8

Si è verificato un problema qui in un WSFC (Windows Server Failover Cluster) del 2016 che ospita un'istanza del cluster di failover SQL (FCI) che utilizza Storage Spaces Direct (S2D). Su ogni server, dopo una corretta creazione iniziale, S2D ha aggiunto automaticamente un volume RAID altrimenti inutilizzato al pool di archiviazione (sebbene S2D non possa essere creato su volumi RAID e insiste assolutamente su dischi non cancellati). Ora è rotto, a causa - per quanto ho potuto capire - esattamente quello. Di conseguenza, il disco virtuale è offline, portando l'intero cluster con sé. Non tornerà online, a causa di una risorsa di rete cluster mancante. I dischi in questione possono essere ritirati ma non rimossi. La riparazione del disco virtuale non viene eseguita, il test di compatibilità del cluster richiede una configurazione non valida.

Questa è una nuova configurazione. Quindi potrei semplicemente eliminare il disco virtuale, il cluster o persino i server e ricominciare. Ma prima che diventiamo produttivi, devo assicurarmi che questo non accada mai più. Il sistema che si spara nel ginocchio virtuale a un arresto anomalo semplicemente aggiungendo inutilmente e erroneamente un disco non supportato non è una piattaforma che possiamo implementare. Quindi, in primo luogo, ho bisogno di un modo per impedire che ciò accada, piuttosto che ripararlo ora. La mia ipotesi è che impedire un setup S2D di afferrare più dischi di quanti ne siano stati creati farebbe il trucco. Il costo di un'interazione potenzialmente più manuale durante una sostituzione del disco reale è trascurabile per il clusterf ... che abbiamo qui. Per quanto abbia sfogliato la documentazione finora, tuttavia, non riesco a trovare alcun modo per controllarlo. A meno che non mi manchi qualcosa, né Set-StoragePool,

Qualsiasi aiuto o suggerimento sarebbe molto apprezzato.

Di seguito sono riportati ulteriori dettagli su quanto segue: Abbiamo 2 macchine server HPE DL380 Gen9 doppiamente collegate tra loro tramite Ethernet da 10 GB con capacità RDMA e tramite 1 GB alla rete client. Ogni caratteristica è un controller RAID HP ??? e un semplice controller HBA HP ??? (dal momento che S2D richiede e funziona esclusivamente su dischi non collegati direttamente e non). La configurazione di archiviazione comprende un sistema operativo RAID sul controller RAID, un file RAID sul controller RAID e il set di dischi direttamente collegati sull'HBA destinati a S2D.

Ho impostato 2 datacenter 2016 Server Windows Edition su OS-RAID, ho installato la funzione WSFC, ho eseguito e superato il test di compatibilità del cluster inclusa l'opzione S2D, creato il cluster senza memoria, aggiunto un testimone di condivisione file (su un computer separato), abilitato S2D sul pool di archiviazione, che comprendeva automaticamente tutti i dischi non cancellati, e sopra quel pool creava un disco virtuale di tipo mirror e utilizzava NTFS come file system, poiché si suppone che questo sia il FS prescelto per un FCI SQL installazione.

Ho quindi installato l'edizione standard di SQL 2016 come FCI su quel cluster, importato un database e testato tutto. Andava tutto bene. Il database era lì e più veloce che mai. Il failover forzato e automatico è stato un gioco da ragazzi. Sembrava tutto a posto.

Il giorno successivo abbiamo provato a utilizzare il restante File-RAID. La prima cosa è stata cambiare il livello RAID in quanto non ci piaceva la pre-configurazione. Poco dopo aver eliminato il volume RAID preconfigurato e averne creato uno nuovo (su ciascun server), abbiamo rilevato che il cluster era inattivo. Da quello che ho potuto capire fino ad ora, il volume Files-RAID preconfigurato era stato nel frattempo automaticamente aggiunto al pool e, appena lo abbiamo eliminato, mancava ora al pool. Mentre ho controllato, ho trovato il nuovo Files-RAID, mentre era ancora in fase di creazione, già mostrato come unità fisica del pool. Quindi il pool ora includeva 2 volumi RAID su ciascun server, uno dei quali non esisteva nemmeno. Questi volumi (ma non i loro dischi) sono elencati da Get-PhysicalDisk insieme ai dischi effettivamente fisici sull'HBA, non sono sicuro che sia normale.

Sono stato in grado di ritirare quei dischi fisici (cioè quelli che sono in realtà i volumi RAID) e ora sono contrassegnati come ritirati. Ma sono ancora nel pool e non riesco a rimuoverli ora, cercando di farlo non riesce. Un Repair-VirtualDisk dovrebbe ricostruire il disco virtuale in uno stato adeguato solo sui dischi rimanenti (sono andato da questo: https://social.technet.microsoft.com/Forums/windows/en-US/dbbf317b-80d2-4992- b5a9-20b83526a9c2 / storage-space-remove-physical-disk? forum = winserver8gen ), ma questo lavoro termina immediatamente, "con successo" ovviamente, senza alcun effetto.

Il tentativo di ripristinare online il disco virtuale non riesce, affermando che una risorsa di cluster in rete non è disponibile. A quanto ho capito, questo potrebbe riferirsi solo al pool di archiviazione (disponibile), poiché i dischi mancanti non sono risorse cluster. Il pool non mostra errori da correggere. L'esecuzione del test di compatibilità del cluster richiede una configurazione non adatta per un cluster.

Non riesco a trovare nessuna parte rimasta che si muoverebbe di un altro pollice, il tutto sembra bloccato per sempre. Qualche idea su come impedire a un WSFC in esecuzione di trovarsi in quel modo?

Non ho riscontrato alcun messaggio di errore che ho trovato particolarmente illuminante e non volevo bombardare ulteriormente la pagina pubblicandoli tutti. Se qualcuno vuole avere dettagli specifici, fammelo sapere.

Grazie mille per il tuo tempo, ragazzi!

Karsten

Aggiornamento come richiesto da Mr. Raspberry inserisci qui la descrizione dell'immagine


3
Potresti per favore condividerci con un elenco delle tue unità e dei loro tipi di bus? Comando PoweShell: Get-PhysicalDisk -CanPool $true | Sort Model | ft FriendlyName, BusType, CanPool, OperationalStatus, HealthStatus, Usage, SizeInoltre, c'è qualche possibilità che tu abbia commesso un errore durante la riconfigurazione di File-RAID assegnando un'unità S2D a un nuovo RAID?
Mr. Raspberry,

2
Qual è il punto in S2D + SQL Server? Perché vuoi spendere soldi per una VM con licenza illimitata se non pianifichi (in realtà non puoi ...) di eseguirne una? SQL Server 2016 può eseguire AlwaysOn Basic AG anche con lo Standard e puoi risparmiare ENORME quantità di denaro solo utilizzando Windows Server Standard 2016. docs.microsoft.com/en-us/sql/database-engine/…
BaronSamedi1958

@Sig. Raspberry: ho aggiornato la voce con l'elenco dei dischi fisici. Si noti che ho lasciato fuori "-CanPool $ true" poiché nessuno è raggruppabile.
Karsten Köpnick,

3
@ KarstenKöpnick: Beh, suggerirei di prendere in considerazione SQL Server AlwaysOn FCI + StarWind Virtual SAN Free. Questa configurazione farebbe meglio il lavoro nel caso del cluster a 2 nodi a costi inferiori ed è molto più facile da implementare e gestire senza tali problemi. starwindsoftware.com/…
Mr. Raspberry

1
"S2D era la strada da percorrere sembrava" Beh ... buona fortuna con quello :)
BaronSamedi1958

Risposte:


5

Sì, è possibile disabilitare il comportamento di pool automatico. L'esperienza non è eccezionale, ma è certamente fattibile e supportata. Il nome dell'impostazione e la sintassi del cmdlet di esempio si trovano nella sezione Impostazioni di questo documento pubblico:

https://technet.microsoft.com/en-us/windows-server-docs/failover-clustering/health-service-overview

In sostanza, esegui questo come amministratore:

Cluster Get-StorageSubSystem * | Set-StorageHealthSetting -Name "System.Storage.PhysicalDisk.AutoPool.Enabled" -Value False

Spero che sia di aiuto! - Cosmos (@cosmosdarwin), Microsoft PM


@CosmosDarvin: grazie! Sembra che potrebbe fare il trucco. Ho bisogno di leggere un po 'di più in profondità e capire le implicazioni, quindi ci proverò e riferirò.
Karsten Köpnick,

@CosmosDarvin: Grazie mille. Alla fine ho avuto la possibilità di approfondire l'argomento per scoprire potenziali ripercussioni. Per quanto ne so, con quell'opzione disabilitata, l'unica conseguenza sarebbe che i dischi dovranno essere aggiunti manualmente al pool con un comando Add-PhysicalDisk. Che è un ottimo compromesso. Non sono riuscito a trovare indicazioni su altre complicazioni o svantaggi, quindi ci proverò. - È sufficiente documentare la necessità di aggiungere manualmente i dischi in caso di sostituzione. - Riferirò i risultati.
Karsten Köpnick,

Segnalazione dei risultati: vorrei aggiungere che non avrei potuto raccogliere alcuna esperienza di vita reale con questo approccio. Si è deciso di aggiungere un enclosure del disco e utilizzarlo al posto di S2D. Le sostituzioni del disco in un RAID di quelle dimensioni sono un compito frequente e il requisito di avere qualcuno con sufficiente esperienza in qualsiasi momento per eseguire un intervento PowerShell, anche documentato, per un semplice cambio del disco è stato visto come un blocco dello spettacolo. Guardandolo in questo modo, sono totalmente d'accordo. Quindi abbiamo reinstallato usando il contenitore e da allora non abbiamo avuto problemi. - Grazie a tutti per il vostro gentile ed esperto aiuto.
Karsten Köpnick,

2

La soluzione alternativa che ho riscontrato a questo problema è quella di cambiare il tipo di bus dei volumi o dei dischi RAID cambiandolo da uno del tipo supportato a uno non supportato.

Dovrai identificare il driver del controller da Gestione dispositivi e, successivamente, accedere al registro e trovare il nome del driver nella posizione seguente.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ SmartPqi \ Parameters

Nel mio caso, ho modificato la chiave di registro corrispondente a SAS in RAID

«BusType» = 0x00000008 (RAID) (anziché 0x0000000a) (SAS)

riavviare la macchina

Dopo questa modifica è possibile avere il pool di archiviazione nel sottosistema Archiviazione di Windows anziché in Spazi di archiviazione in cluster

Prestare attenzione se si desidera applicare questo tipo di soluzione alternativa poiché non è una soluzione convalidata e potrebbe esporre l'ambiente di produzione a un rischio elevato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.