Version 2.4.0: Correction limitation de bande passante
All checks were successful
Tests et Vérifications / Tests unitaires BATS (push) Successful in 21s
Tests et Vérifications / Vérification ShellCheck (push) Successful in 13s
Tests et Vérifications / Vérification syntaxe Bash (push) Successful in 4s
Tests et Vérifications / Résumé des tests (push) Successful in 1s
All checks were successful
Tests et Vérifications / Tests unitaires BATS (push) Successful in 21s
Tests et Vérifications / Vérification ShellCheck (push) Successful in 13s
Tests et Vérifications / Vérification syntaxe Bash (push) Successful in 4s
Tests et Vérifications / Résumé des tests (push) Successful in 1s
- Utilisation de --source-bwlimit (option native syncoid) au lieu de MBUFFER - Conversion automatique MB/s → bytes/s pour syncoid - Plus besoin de mbuffer installé (syncoid utilise pv en interne) - Limitation appliquée côté source pour tous les transferts
This commit is contained in:
parent
9499f5805c
commit
a2ecdee7e8
1 changed files with 8 additions and 14 deletions
|
|
@ -1162,20 +1162,6 @@ replicate_pool() {
|
||||||
# Syncoid utilise les options SSH via la variable d'environnement SSH
|
# Syncoid utilise les options SSH via la variable d'environnement SSH
|
||||||
export SSH="ssh -i ${SSH_KEY}"
|
export SSH="ssh -i ${SSH_KEY}"
|
||||||
|
|
||||||
# Configuration de la limitation de bande passante via mbuffer
|
|
||||||
if command -v mbuffer &>/dev/null && [[ -n "${BANDWIDTH_LIMIT_MBS}" ]] && [[ "${BANDWIDTH_LIMIT_MBS}" -gt 0 ]]; then
|
|
||||||
# -r: rate limit (débit max en MB/s)
|
|
||||||
# -m: taille du buffer (128MB par défaut)
|
|
||||||
export MBUFFER="mbuffer -r ${BANDWIDTH_LIMIT_MBS}M -m 128M"
|
|
||||||
log "info" "Limitation de bande passante activée: ${BANDWIDTH_LIMIT_MBS} MB/s"
|
|
||||||
else
|
|
||||||
if [[ -n "${BANDWIDTH_LIMIT_MBS}" ]] && [[ "${BANDWIDTH_LIMIT_MBS}" -gt 0 ]]; then
|
|
||||||
log "warning" "mbuffer non disponible - limitation de bande passante désactivée"
|
|
||||||
log "warning" "Installer mbuffer: apt install mbuffer"
|
|
||||||
fi
|
|
||||||
unset MBUFFER
|
|
||||||
fi
|
|
||||||
|
|
||||||
local syncoid_opts
|
local syncoid_opts
|
||||||
# Déterminer si c'est une première synchronisation
|
# Déterminer si c'est une première synchronisation
|
||||||
if check_common_snapshots "$remote_ip" "$pool"; then
|
if check_common_snapshots "$remote_ip" "$pool"; then
|
||||||
|
|
@ -1201,6 +1187,14 @@ replicate_pool() {
|
||||||
syncoid_opts="--recursive --force-delete"
|
syncoid_opts="--recursive --force-delete"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Configuration de la limitation de bande passante (option native syncoid)
|
||||||
|
if [[ -n "${BANDWIDTH_LIMIT_MBS}" ]] && [[ "${BANDWIDTH_LIMIT_MBS}" -gt 0 ]]; then
|
||||||
|
# Convertir MB/s en bytes/s pour syncoid (--source-bwlimit attend des bytes)
|
||||||
|
local bandwidth_bytes=$((BANDWIDTH_LIMIT_MBS * 1024 * 1024))
|
||||||
|
syncoid_opts="${syncoid_opts} --source-bwlimit=${bandwidth_bytes}"
|
||||||
|
log "info" "Limitation de bande passante activée: ${BANDWIDTH_LIMIT_MBS} MB/s"
|
||||||
|
fi
|
||||||
|
|
||||||
# Lister les datasets de premier niveau sous le pool
|
# Lister les datasets de premier niveau sous le pool
|
||||||
local first_level_datasets
|
local first_level_datasets
|
||||||
first_level_datasets=$(zfs list -H -o name -r "$pool" -t filesystem,volume -d 1 | grep -v "^${pool}$")
|
first_level_datasets=$(zfs list -H -o name -r "$pool" -t filesystem,volume -d 1 | grep -v "^${pool}$")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue