Improve logging and documentation of backup device selection
This commit is contained in:
parent
f26d6b6640
commit
25fec312b0
|
@ -63,9 +63,10 @@ for (glob("/backup/*")) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# find the backup dir with the most free space available.
|
# Choose a random backup directory.
|
||||||
# other strategies are possible, like round robin, or daily, weekly,
|
# The directories are weighted by free space (e.g, if we have two
|
||||||
# etc. backups.
|
# directories with 3 TB and 2 TB free space, then their chances of being
|
||||||
|
# chosen are 60% and 40%).
|
||||||
|
|
||||||
my @backup_dirs = map {
|
my @backup_dirs = map {
|
||||||
$_ = $1 if m{(.*)/.*}; # basedir and detaint
|
$_ = $1 if m{(.*)/.*}; # basedir and detaint
|
||||||
|
@ -82,7 +83,10 @@ my @backup_dirs = map {
|
||||||
my $sum_free = 0;
|
my $sum_free = 0;
|
||||||
$sum_free += $_->[1] for (@backup_dirs);
|
$sum_free += $_->[1] for (@backup_dirs);
|
||||||
$ca->log(3, "total free est. $sum_free bytes");
|
$ca->log(3, "total free est. $sum_free bytes");
|
||||||
my $rnd = rand() * $sum_free;
|
my $rnd = rand();
|
||||||
|
$ca->log(3, "random (raw) = $rnd");
|
||||||
|
$rnd *= $sum_free;
|
||||||
|
$ca->log(3, "random (scaled) = $rnd");
|
||||||
my $count_free = 0;
|
my $count_free = 0;
|
||||||
my $backup_dir;
|
my $backup_dir;
|
||||||
for(@backup_dirs) {
|
for(@backup_dirs) {
|
||||||
|
|
Loading…
Reference in New Issue