Существуют ли какие-либо хорошие стратегии для упреждающего обнаружения повреждения данных в пуле серых дыр.
Предположим, что происходит следующая цепочка событий.
c:\> copy swiss_bank_account.txt \\greyhole\safe_documents
Greyhole does its thing and replaces:
safe_documents/swiss_bank_account.txt with -> /mnt/pool1/safe_documents/swiss_bank_account.txt
and creates a backup file:
/mnt/pool2/safe_documents/swiss_bank_account.txt
/mnt/pool2 suffers a random failure, corrupting swiss_bank_account.txt - It goes un-noticed because it's the secondary.
/mnt/pool1 suffers a random failure - Crap... now both my redundant copies are corrupt.
Каковы хорошие стратегии для упреждающего обнаружения повреждений в массиве дублирования в стиле JBOD, таком как Greyhole?
Если я не ошибаюсь, даже трехсторонняя репликация не является надежной. В случае катастрофического отказа диска вы могли только обнаружить, а не устранить расхождения между двумя сохранившимися копиями.
Я могу придумать следующие жизнеспособные системы:
За исключением вариантов 1 и 2, все эти варианты кажутся более трудоемкими, чем я бы хотел вложить в свой домашний сервер. У кого-нибудь есть предложения?
Ответ с помощью решения, специфичного для серой дыры: используйте --checksums
вариант для --fsck
:
-k, --checksums
Read ALL files in your storage pool, and check that file copies
are identical. This should identify any problem you might have with your
file-systems.
NOTE: this can take a LONG time to complete, since it will read everything
from all your drives!
Вы захотите убедиться, что ваш сервер может отправлять электронные письма, и использовать --email-report
возможность одновременно получать отчет после его завершения. (Отчет также сохраняется на диск, если хотите. В /usr/share/greyhole/
Думаю...)
Вы предполагаете, что повреждение будет происходить незаметно, что является формой потери целостности данных, над которой активно работают разработчики файловой системы и оборудования хранения. Скорее всего, блочный драйвер заметит, что что-то пошло не так с чтением / записью, и закричит об этом, и в этот момент программное обеспечение более высокого уровня (Greyhole) должно обработать ошибку. Или, если блочный драйвер этого не заметит, драйвер файловой системы заметит.
Я думаю, вы беспокоитесь о том, что если космические лучи или что-то еще перемешивают биты для одного файла на разных устройствах, как Greyhole решает эту проблему?
Вы в значительной степени облажались, поэтому вам следует пойти на трехкратное резервирование, если вас это беспокоит. Однако вероятность того, что три устройства выйдут из строя одновременно, много меньше, чем только один, так что это довольно серьезный случай.