Considerazioni sul bilanciamento del carico
È possibile utilizzare il bilanciamento del carico per gestire i carichi di lavoro di acquisizione e recupero dai client S3.
Che cos'è il bilanciamento del carico?
Quando un'applicazione client salva o recupera dati da un sistema StorageGRID , StorageGRID utilizza un bilanciatore del carico per gestire il carico di lavoro di acquisizione e recupero. Il bilanciamento del carico massimizza la velocità e la capacità di connessione distribuendo il carico di lavoro su più nodi di archiviazione.
Il servizio StorageGRID Load Balancer è installato su tutti i nodi amministrativi e su tutti i nodi gateway e fornisce il bilanciamento del carico di livello 7. Esegue la terminazione Transport Layer Security (TLS) delle richieste client, ispeziona le richieste e stabilisce nuove connessioni sicure ai nodi di archiviazione.
Il servizio Load Balancer su ciascun nodo funziona in modo indipendente quando inoltra il traffico client ai nodi di archiviazione. Attraverso un processo di ponderazione, il servizio Load Balancer indirizza più richieste ai nodi di archiviazione con maggiore disponibilità della CPU.
|
Sebbene il servizio StorageGRID Load Balancer sia il meccanismo di bilanciamento del carico consigliato, potrebbe essere opportuno integrare un bilanciatore del carico di terze parti. Per informazioni, contattare il rappresentante dell'account NetApp o fare riferimento a "TR-4626: Bilanciatori di carico globali e di terze parti StorageGRID" . |
Di quanti nodi di bilanciamento del carico ho bisogno?
Come buona pratica generale, ogni sito nel sistema StorageGRID dovrebbe includere due o più nodi con il servizio Load Balancer. Ad esempio, un sito potrebbe includere due nodi gateway oppure sia un nodo amministrativo che un nodo gateway. Assicurarsi che vi sia un'adeguata infrastruttura di rete, hardware o virtualizzazione per ciascun nodo di bilanciamento del carico, indipendentemente dal fatto che si utilizzino appliance di servizi, nodi bare metal o nodi basati su macchine virtuali (VM).
Che cos'è un endpoint di bilanciamento del carico?
Un endpoint del bilanciatore del carico definisce la porta e il protocollo di rete (HTTPS o HTTP) che le richieste delle applicazioni client in entrata e in uscita utilizzeranno per accedere ai nodi che contengono il servizio di bilanciamento del carico. L'endpoint definisce anche il tipo di client (S3), la modalità di associazione e, facoltativamente, un elenco di tenant consentiti o bloccati.
Per creare un endpoint del bilanciatore del carico, seleziona CONFIGURAZIONE > Rete > Endpoint del bilanciatore del carico oppure completa la procedura guidata di configurazione FabricPool e S3. Per istruzioni:
Considerazioni per il porto
Per impostazione predefinita, la porta per un endpoint del bilanciatore del carico è 10433 per il primo endpoint creato, ma è possibile specificare qualsiasi porta esterna non utilizzata compresa tra 1 e 65535. Se si utilizza la porta 80 o 443, l'endpoint utilizzerà il servizio Load Balancer solo sui nodi gateway. Queste porte sono riservate sui nodi amministrativi. Se si utilizza la stessa porta per più endpoint, è necessario specificare una modalità di associazione diversa per ciascun endpoint.
Non sono consentite le porte utilizzate da altri servizi di rete. Vedi il"Riferimento porta di rete" .
Considerazioni sul protocollo di rete
Nella maggior parte dei casi, le connessioni tra le applicazioni client e StorageGRID dovrebbero utilizzare la crittografia Transport Layer Security (TLS). La connessione a StorageGRID senza crittografia TLS è supportata ma non consigliata, soprattutto negli ambienti di produzione. Quando si seleziona il protocollo di rete per l'endpoint del bilanciatore del carico StorageGRID , è necessario selezionare HTTPS.
Considerazioni sui certificati degli endpoint del bilanciatore del carico
Se selezioni HTTPS come protocollo di rete per l'endpoint del bilanciatore del carico, devi fornire un certificato di sicurezza. Quando si crea l'endpoint del bilanciatore del carico, è possibile utilizzare una qualsiasi di queste tre opzioni:
-
Carica un certificato firmato (consigliato). Questo certificato può essere firmato da un'autorità di certificazione (CA) pubblica o privata. La procedura consigliata per proteggere la connessione è quella di utilizzare un certificato del server CA pubblicamente attendibile. A differenza dei certificati generati, i certificati firmati da una CA possono essere ruotati senza interruzioni, il che può aiutare a evitare problemi di scadenza.
Prima di creare l'endpoint del bilanciatore del carico, è necessario ottenere i seguenti file:
-
Il file del certificato del server personalizzato.
-
File della chiave privata del certificato del server personalizzato.
-
Facoltativamente, un pacchetto CA dei certificati di ciascuna autorità di certificazione emittente intermedia.
-
-
Genera un certificato autofirmato.
-
Utilizzare il certificato globale StorageGRID S3. È necessario caricare o generare una versione personalizzata di questo certificato prima di poterlo selezionare per l'endpoint del bilanciatore del carico. Vedere "Configurare i certificati API S3" .
Di quali valori ho bisogno?
Per creare il certificato, è necessario conoscere tutti i nomi di dominio e gli indirizzi IP che le applicazioni client S3 utilizzeranno per accedere all'endpoint.
La voce Subject DN (Distinguished Name) per il certificato deve includere il nome di dominio completo che l'applicazione client utilizzerà per StorageGRID. Per esempio:
Subject DN: /C=Country/ST=State/O=Company,Inc./CN=s3.storagegrid.example.com
Se necessario, il certificato può utilizzare caratteri jolly per rappresentare i nomi di dominio completi di tutti i nodi amministrativi e dei nodi gateway che eseguono il servizio Load Balancer. Per esempio, *.storagegrid.example.com
usa il carattere jolly * per rappresentare adm1.storagegrid.example.com
E gn1.storagegrid.example.com
.
Se si prevede di utilizzare richieste in stile host virtuale S3, il certificato deve includere anche una voce Nome alternativo per ciascuna"Nome di dominio dell'endpoint S3" che hai configurato, inclusi eventuali nomi jolly. Per esempio:
Alternative Name: DNS:*.s3.storagegrid.example.com
|
Se si utilizzano caratteri jolly per i nomi di dominio, rivedere il"Linee guida per il rafforzamento dei certificati del server" . |
È inoltre necessario definire una voce DNS per ciascun nome nel certificato di sicurezza.
Come posso gestire i certificati in scadenza?
|
Se il certificato utilizzato per proteggere la connessione tra l'applicazione S3 e StorageGRID scade, l'applicazione potrebbe perdere temporaneamente l'accesso a StorageGRID. |
Per evitare problemi di scadenza dei certificati, seguire queste best practice:
-
Monitorare attentamente tutti gli avvisi che segnalano l'avvicinarsi della data di scadenza dei certificati, come gli avvisi Scadenza del certificato dell'endpoint del bilanciatore del carico e Scadenza del certificato del server globale per l'API S3.
-
Mantenere sempre sincronizzate le versioni del certificato dell'applicazione StorageGRID e S3. Se si sostituisce o si rinnova il certificato utilizzato per un endpoint del bilanciatore del carico, è necessario sostituire o rinnovare il certificato equivalente utilizzato dall'applicazione S3.
-
Utilizzare un certificato CA firmato pubblicamente. Se si utilizza un certificato firmato da una CA, è possibile sostituire i certificati prossimi alla scadenza senza interruzioni.
-
Se hai generato un certificato StorageGRID autofirmato e tale certificato sta per scadere, devi sostituirlo manualmente sia in StorageGRID che nell'applicazione S3 prima che scada il certificato esistente.
Considerazioni sulla modalità di rilegatura
La modalità di associazione consente di controllare quali indirizzi IP possono essere utilizzati per accedere a un endpoint del bilanciatore del carico. Se un endpoint utilizza una modalità di associazione, le applicazioni client possono accedere all'endpoint solo se utilizzano un indirizzo IP consentito o il corrispondente nome di dominio completo (FQDN). Le applicazioni client che utilizzano un altro indirizzo IP o FQDN non possono accedere all'endpoint.
È possibile specificare una qualsiasi delle seguenti modalità di associazione:
-
Globale (predefinito): le applicazioni client possono accedere all'endpoint utilizzando l'indirizzo IP di qualsiasi nodo gateway o nodo amministrativo, l'indirizzo IP virtuale (VIP) di qualsiasi gruppo HA su qualsiasi rete o un FQDN corrispondente. Utilizzare questa impostazione a meno che non sia necessario limitare l'accessibilità di un endpoint.
-
IP virtuali dei gruppi HA. Le applicazioni client devono utilizzare un indirizzo IP virtuale (o FQDN corrispondente) di un gruppo HA.
-
Interfacce dei nodi. I client devono utilizzare gli indirizzi IP (o i corrispondenti FQDN) delle interfacce dei nodi selezionati.
-
Tipo di nodo. In base al tipo di nodo selezionato, i client devono utilizzare l'indirizzo IP (o il corrispondente FQDN) di qualsiasi nodo di amministrazione oppure l'indirizzo IP (o il corrispondente FQDN) di qualsiasi nodo gateway.
Considerazioni sull'accesso degli inquilini
L'accesso tenant è una funzionalità di sicurezza facoltativa che consente di controllare quali account tenant StorageGRID possono utilizzare un endpoint del bilanciatore del carico per accedere ai propri bucket. È possibile consentire a tutti i tenant di accedere a un endpoint (impostazione predefinita) oppure specificare un elenco dei tenant consentiti o bloccati per ciascun endpoint.
È possibile utilizzare questa funzionalità per garantire un migliore isolamento di sicurezza tra i tenant e i loro endpoint. Ad esempio, è possibile utilizzare questa funzionalità per garantire che i materiali top secret o altamente classificati di proprietà di un inquilino rimangano completamente inaccessibili agli altri inquilini.
|
Ai fini del controllo degli accessi, il tenant viene determinato dalle chiavi di accesso utilizzate nella richiesta del client; se non vengono fornite chiavi di accesso come parte della richiesta (ad esempio con l'accesso anonimo), per determinare il tenant viene utilizzato il proprietario del bucket. |
Esempio di accesso dell'inquilino
Per capire come funziona questa funzione di sicurezza, prendiamo in considerazione il seguente esempio:
-
Hai creato due endpoint del bilanciatore del carico, come segue:
-
Endpoint pubblico: utilizza la porta 10443 e consente l'accesso a tutti i tenant.
-
Endpoint Top secret: utilizza la porta 10444 e consente l'accesso solo al tenant Top secret. A tutti gli altri tenant è impedito l'accesso a questo endpoint.
-
-
IL
top-secret.pdf
si trova in un bucket di proprietà del tenant Top secret.
Per accedere al top-secret.pdf
, un utente nel tenant Top secret può inviare una richiesta GET a https://w.x.y.z:10444/top-secret.pdf
. Poiché a questo tenant è consentito utilizzare l'endpoint 10444, l'utente può accedere all'oggetto. Tuttavia, se un utente appartenente a un altro tenant invia la stessa richiesta allo stesso URL, riceverà immediatamente un messaggio di accesso negato. L'accesso viene negato anche se le credenziali e la firma sono valide.
disponibilità della CPU
Il servizio Load Balancer su ciascun nodo amministrativo e nodo gateway funziona in modo indipendente quando inoltra il traffico S3 ai nodi di archiviazione. Attraverso un processo di ponderazione, il servizio Load Balancer indirizza più richieste ai nodi di archiviazione con maggiore disponibilità della CPU. Le informazioni sul carico della CPU del nodo vengono aggiornate ogni pochi minuti, ma la ponderazione potrebbe essere aggiornata più frequentemente. A tutti i nodi di archiviazione viene assegnato un valore di peso di base minimo, anche se un nodo segnala un utilizzo del 100% o non segnala il proprio utilizzo.
In alcuni casi, le informazioni sulla disponibilità della CPU sono limitate al sito in cui si trova il servizio Load Balancer.