Обновляет ли ZFS scrub сжатие и копирование на существующие данные?

Вот способ в Perl. Вызовите его так ./script file.ext:

use warnings;
use strict;

my %data;
my @order;

while (<>){
    next if $. == 1;
    my @line = split /,/;
    if (defined $data{$line[0]}){
        $data{$line[0]}->[1] += $line[1];
    }
    else {
        $data{$line[0]} = \@line;
        push @order, $line[0];
    }
}

for (@order){
    print join(',', @{$data{$_}});
}
3
18.02.2018, 00:24
1 ответ

Изменение свойств набора данных, таких как compressionи copies, влияет только на файлы, записанные после изменения. Чтобы применить такие изменения к существующим файлам, вам нужно скопировать их и перенести поверх оригинала. Это, конечно, разорвет любое соединение с любыми предыдущими снимками с тем же именем файла (, а также с любыми жесткими ссылками на файл, поскольку индексный дескриптор будет другим ).

В качестве альтернативы, чтобы применить такие изменения ко всему пулу или набору данных, вы можете zfs sendсделать моментальный снимок другого пула, (например. резервный пул ), уничтожьте набор данных из исходного пула (или уничтожьте пул и заново -создайте его ), а затем zfs sendобратно. Обратите внимание, что :вы не можете сделать это с опцией zfs send-R(--replicate), потому что это также включает опцию отправки -p(--props). См. man zfsи найдите zfs sendдля более подробной информации.

zfs scrubпроверяет существующие данные в пуле и перезаписывает любые поврежденные копии, если имеется достаточная избыточность, чтобы иметь хорошую копию, соответствующую контрольной сумме... если нет, он просто предупреждает об исправимой ошибке -.

5
27.01.2020, 21:15

Теги

Похожие вопросы