Назад | Перейти на главную страницу

Стратегии обнаружения коррупции в бассейнах Greyhole

Существуют ли какие-либо хорошие стратегии для упреждающего обнаружения повреждения данных в пуле серых дыр.

Предположим, что происходит следующая цепочка событий.

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. 3-сторонняя репликация в файловой системе с контрольной суммой, например btrfs.
  2. 3-сторонняя репликация и надеюсь, что все ваши неудачи не коррелируют.
  3. Хроническое применение инструментов паритета.
  4. Подключение Greyhole для запуска инструментов контроля четности при записи.
  5. Сканирование Chron-job для согласования данных.

За исключением вариантов 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 решает эту проблему?

Вы в значительной степени облажались, поэтому вам следует пойти на трехкратное резервирование, если вас это беспокоит. Однако вероятность того, что три устройства выйдут из строя одновременно, много меньше, чем только один, так что это довольно серьезный случай.