Ottimizzare le prestazioni della san elastica
Questo articolo fornisce alcune indicazioni generali su come ottenere prestazioni ottimali con un ambiente che usa una SAN elastica di Azure.
Ottimizzazioni lato client
Raccomandazioni generali (Macchine virtuali Windows & Linux)
Per ottenere prestazioni ottimali, distribuire le macchine virtuali e la san elastica nella stessa zona e nella stessa area.
I/O di archiviazione delle macchine virtuali nei volumi SAN elastici usano la larghezza di banda di rete delle macchine virtuali, quindi i limiti di velocità effettiva dei dischi tradizionali in una macchina virtuale non si applicano ai volumi SAN elastici. Scegliere una macchina virtuale in grado di fornire larghezza di banda sufficiente per la produzione/I/O da macchina virtuale a VM e I/O iSCSI ai volumi SAN elastici collegati. In genere, è consigliabile usare macchine virtuali di generazione 5 (serie D/E/M) per ottenere prestazioni ottimali.
Abilitare "Rete accelerata" nella macchina virtuale durante la creazione della macchina virtuale. Per eseguire questa operazione tramite Azure PowerShell o l'interfaccia della riga di comando di Azure o per abilitare la rete accelerata in macchine virtuali esistenti, vedere Usare Azure PowerShell per creare una macchina virtuale con rete accelerata
- È necessario usare 32 sessioni per ogni volume di destinazione per raggiungere i limiti massimi di operazioni di I/O al secondo e/o velocità effettiva. Usare Multipath I/O (MPIO) nel client per gestire queste più sessioni in ogni volume per il bilanciamento del carico. Gli script sono disponibili per Windows, Linux o nella pagina Connessione volume dei volumi nel portale di Azure, che usa 32 sessioni per impostazione predefinita. L'iniziatore iSCSI del software Windows ha un limite massimo di 256 sessioni. Se è necessario connettere più di otto volumi a una macchina virtuale Windows, ridurre il numero di sessioni a ogni volume in base alle esigenze.
MPIO
Windows
Usare i comandi seguenti per aggiornare le impostazioni:
# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI
# Set the default load balancing policy based on your requirements. In this example, we set it to round robin which should be optimal for most workloads.
mpclaim -L -M 2
# Set disk time out to 30 seconds
Set-MPIOSetting -NewDiskTimeout 30
Per altre informazioni sui cmdlet MPIO, vedere Informazioni di riferimento su MPIO.
Linux
Aggiornare il file /etc/multipath.conf con quanto segue:
defaults {
user_friendly_names yes # To create ‘mpathn’ names for multipath devices
path_grouping_policy multibus # To place all the paths in one priority group
path_selector "round-robin 0" # To use round robin algorithm to determine path for next I/O operation
failback immediate # For immediate failback to highest priority path group with active paths
no_path_retry 1 # To disable I/O queueing after retrying once when all paths are down
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
iSCSI
Windows
Aggiornare le impostazioni del Registro di sistema seguenti per l'iniziatore iSCSI in Windows.
- Aprire l'editor del Registro di sistema:
- Selezionare Start, digitare regedit nella casella di ricerca e premere INVIO.
- Passare al percorso seguente: [\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0004 (Iniziatore iSCSI Microsoft)\Parameters]
- Aggiornare le impostazioni seguenti. Fare clic con il pulsante destro del mouse su ogni impostazione e scegliere Modifica. Impostare Base su Decimale, aggiornare il valore e selezionare OK.
Descrizione | Parametro e valore |
---|---|
Imposta il numero massimo di dati inviati dall'iniziatore in un PDU iSCSI alla destinazione a 256 KB | MaxTransferLength=262144 |
Imposta il payload SCSI massimo negoziato dall'iniziatore con la destinazione a 256 KB | MaxBurstLength=262144 |
Imposta il numero massimo di dati non richiesti che l'iniziatore può inviare in un PDU iSCSI a una destinazione a 256 KB | FirstBurstLength=262144 |
Imposta il numero massimo di dati che l'iniziatore può ricevere in un PDU iSCSI dalla destinazione a 256 KB | MaxRecvDataSegmentLength=262144 |
Disabilita il controllo del flusso R2T | InitialR2T=0 |
Abilita i dati immediati | ImmediateData=1 |
Imposta il valore di timeout per le richieste WMI su 30 secondi | WMIRequestTimeout = 30 secondi |
Imposta il valore di timeout per il tempo di inattività del collegamento su 30 secondi | LinkDownTime = 30 secondi |
Nelle configurazioni del cluster verificare che i nomi iniziatori iSCSI siano univoci in tutti i nodi che condividono volumi. In Windows è possibile aggiornarli tramite l'app Iniziatore iSCSI.
Selezionare Start, cercare Iniziatore iSCSI nella casella di ricerca. Verrà aperto l'iniziatore iSCSI.
Selezionare Configurazione per visualizzare il nome dell'iniziatore corrente.
Per modificarlo, selezionare Cambia, immettere il nuovo nome dell'iniziatore e selezionare OK.
Linux
Aggiornare le impostazioni seguenti con i valori consigliati nel file di configurazione iSCSI globale (iscsid.conf, generalmente presente nella directory /etc/iscsi) nel client prima di connetterli a esso. Quando un volume è connesso, viene creato un nodo insieme a un file di configurazione specifico del nodo (ad esempio in Ubuntu, è disponibile in /etc/iscsi/nodes/$volume_iqn/portal_hostname,$port directory) che eredita le impostazioni dal file di configurazione globale. Se è già stato connesso uno o più volumi al client prima di aggiornare il file di configurazione globale, aggiornare il file di configurazione specifico del nodo per ogni volume direttamente o usando il comando seguente:
sudo iscsiadm -m node -T $volume_iqn -p $portal_hostname:$port -o update -n $iscsi_setting_name -v $setting_value
Dove
- $volume_iqn: IQN del volume SAN elastico
- $portal_hostname: nome host del portale del volume SAN elastico
- $port: 3260
- $iscsi_setting_name: parametro per ogni impostazione elencata di seguito
- $setting_value: valore consigliato per ogni impostazione seguente
Descrizione | Parametro e valore |
---|---|
# Impostare il numero massimo di dati inviati dall'iniziatore in un PDU iSCSI alla destinazione a 256 KB | node.conn[0].iscsi. MaxXmitDataSegmentLength = 262144 |
# Impostare il payload SCSI massimo negoziato dall'iniziatore con la destinazione a 256 KB | node.session.iscsi.MaxBurstLength = 262144 |
# Impostare il numero massimo di dati non richiesti che l'iniziatore può inviare in un PDU iSCSI a una destinazione a 256 KB | node.session.iscsi.FirstBurstLength = 262144 |
# Impostare il numero massimo di dati che l'iniziatore può ricevere in un PDU iSCSI dalla destinazione a 256 KB | node.conn[0].iscsi. MaxRecvDataSegmentLength = 262144 |
# Disabilitare il controllo del flusso R2T | node.session.iscsi.InitialR2T = No |
# Abilitare i dati immediati | node.session.iscsi.ImmediateData = Sì |
# Impostare il valore di timeout per le richieste WMI | node.conn[0].timeo.login_timeout = 30 node.conn[0].timeo.logout_timeout = 15 |
# Abilitare il controllo del digest CRC per l'intestazione e i dati | node.conn[0].iscsi. HeaderDigest = CRC32C node.conn[0].iscsi. DataDigest = CRC32C |
Nelle configurazioni del cluster verificare che i nomi degli iniziatori iSCSI siano univoci in tutti i nodi che condividono volumi. In Linux è possibile modificare /etc/iscsi/initiatorname.iscsi per aggiornare il nome dell'iniziatore.
Ottimizzazioni SAN elastiche
Prima di distribuire una SAN elastica, è necessario determinare le dimensioni ottimali della rete SAN elastica distribuita per ottenere il giusto equilibrio delle prestazioni per i carichi di lavoro e i costi. Attenersi alla procedura seguente per determinare il dimensionamento migliore per l'utente:
Con la soluzione di archiviazione esistente, selezionare un intervallo di tempo (giorno/settimana/trimestre) per tenere traccia delle prestazioni. L'intervallo di tempo migliore è uno snapshot ottimale delle applicazioni o dei carichi di lavoro. Nel periodo di tempo, registrare il numero massimo di operazioni di I/O al secondo e la velocità effettiva combinate per tutti i carichi di lavoro. Se si usa un intervallo superiore a un minuto o se uno dei carichi di lavoro presenta colli di bottiglia con la configurazione corrente, è consigliabile aggiungere più capacità di base alla distribuzione san elastica. È consigliabile lasciare un po' di spazio quando si determina la capacità di base, per tenere conto della crescita. Il resto dell'archiviazione san elastica deve usare capacità aggiuntiva per risparmiare sui costi.
Per altre informazioni sulle prestazioni, vedere Prestazioni san elastica e macchina virtuale.