PowerFlex: Ricostruzione e ribilanciamento con impatto sulle prestazioni dei carichi di lavoro IO front-end
Summary: Ricostruzione e ribilanciamento del carico di lavoro I/O front-end con impatto.
Symptoms
Quando inizia una ricostruzione o un ribilanciamento, gli IOPS dell'applicazione front-end possono diminuire drasticamente.
- Un nodo o un disco SDS presenta un guasto, causando l'inizio di una ricostruzione.
- Un nodo o un disco SDS è stato aggiunto al cluster o al pool di storage, causando l'inizio di un ribilanciamento.
- Uno o più dischi SDS vengono rimossi dal cluster o dal pool di storage, determinando l'inizio di un ribilanciamento.
- Riduzione drastica degli IOPS front-end (fino al 50% o più degli IOPS previsti) dopo l'avvio della ricostruzione/ribilanciamento.
Impatto
Se vengono eseguiti aumenti della velocità e delle risorse di una ricostruzione o di un ribilanciamento, si riduce il tempo necessario per creare le due copie complete di ciascun blocco richiesto da ScaleIO. Tuttavia, il throughput e gli IOPS degli SDC possono essere influenzati e l'utente finale potrebbe notare la lentezza delle applicazioni o forse anche errori di I/O. Prima di apportare la modifica, è necessario comprendere l'effetto che queste modifiche possono avere sull'I/O front-end.
Cause
La ricostruzione e il ribilanciamento utilizzano lo stesso disco ed eventualmente le stesse risorse di rete che utilizzano gli SDC, occupando così larghezza di banda sia nel disco che nella rete. Per impostazione predefinita, la ricostruzione e il ribilanciamento utilizzano due thread SDS, definiti come parametro di parallelismo.
L SDS ha creato questi thread e richiede CPU e memoria aggiuntive se spostati al di sopra del valore predefinito di due thread. In questo modo, l SDS impiega più tempo e risorse della CPU per la ricostruzione/ribilanciamento di quanto farebbe, riducendo il tempo e le risorse della CPU per servire gli I/O front-end.
Resolution
Ci sono alcune cose da controllare qui. La ricostruzione e il ribilanciamento possono essere influenzati dai seguenti parametri:
1- Limitazione della rete SDS: limita il modo in cui ogni SDS utilizza l'I/O per le varie categorie elencate. L'impostazione predefinita in tutte le categorie è "Unlimited".
A-Da scli:
scli --set_sds_network_limits (--protection_domain_id | --protection_domain_name ) [--rebuild_limit ] [--rebalance_limit ][--overall_limit ] [--i_am_sure] Example, setting the rebuild limit to 100 MB/s: scli --set_sds_network_limits --protection_domain_name pd1 --rebuild_limit 100
B-Dall'interfaccia utente:
Accedere all'elenco dei domini di protezione, selezionare il dominio di protezione in questione e scegliere "Network Throttling" dall'elenco Modify.

2- Priorità I/O del pool di storage: questa impostazione si riferisce al pool di storage e modificherà la priorità di I/O per la ricostruzione o il ribilanciamento, influendo sulle prestazioni del sistema. L'impostazione predefinita è "Limit Concurrent IO" impostato su 1 sia per la ricostruzione che per il ribilanciamento.
A-Da scli:
scli --set_rebuild_policy ((( protection_domain_id | --protection_domain_name ) --storage_pool_name ) | --storage_pool_id ) --policy [Options][--i_am_sure] scli --set_rebalance_policy ((( protection_domain_id | --protection_domain_name ) --storage_pool_name ) | --storage_pool_id ) --policy [Options][--i_am_sure]
La POLICY può essere una tra: no_limit, limit_concurrent_io, favor_application_io, dynamic_bandwidth_throttling
Se si utilizza un elemento diverso da "no_limit" per la policy, diventa necessario utilizzare il comando OPTIONS. Consultare la documentazione di PowerFlex per ulteriori riferimenti su queste impostazioni.
B-Dall'interfaccia utente: Passare all'elenco Storage Pool, selezionare il pool di storage in questione e scegliere "I/O Priority" dall'elenco di modifica.

3- Attività di ricostruzione e ribilanciamento simultanee. L'impostazione predefinita è 2.
R- Questo parametro può essere modificato solo da scli:
scli --set_rebuild_rebalance_parallelism (((--protection_domain_id | --protection_domain_name ) --storage_pool_name ) | --storage_pool_id ) (--limit ) Example, setting the limit to 5: scli --set_rebuild_rebalance_parallelism --protection_domain_name pd1 --storage_pool_name HDD_POOL --limit 5
NOTA: Se si utilizza il parametro storage_pool_id nel comando, non è necessario specificare anche l'ID o il nome del dominio di protezione e il nome del pool di storage. Se non specificato dal supporto ScaleIO, lasciare questo parametro su 2. L'aumento di questa impostazione influirà negativamente sull'I/O front-end più rapidamente rispetto alle impostazioni di limitazione della rete e priorità di I/O.