Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #62, ЯНВАРЬ 2006 г.

Распределенные хранилища информации

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #062, стр. 062-042-4


Так, с точки зрения программного RAID-драйвера, нет никакой разницы в том, подключен диск по SCSI/IDE-интерфейсу или гоняет данные через Сеть. Объединив несколько логических дисков в виртуальный RAID-массив, получим отказоустойчивую систему — практичную и удобную. Мы можем использовать диски различной геометрии и даже различной емкости, причем никто не обязывает нас отводить под RAID-хранилище весь диск. Достаточно выделить одну часть.

Как можно реально использовать это на практике? Первое, что приходит на ум, — использовать часть емкости жестких дисков под хранение избыточной информации наподобие уже упомянутых кодов Рида-Соломона, помогающих восстановить данные после аварии. В этом случае при относительно небольших накладных расходах мы восстанавливаем любой из жестких дисков — членов сети даже при его полном разрушении лишь за счет одной избыточной информации, распределенной между остальными компьютерами. Более надежного хранилища для данных нельзя и придумать! Подобная схема реализована в некоторых локальных сетях, она доказала свою живучесть, гибкость и надежность. Необходимость постоянно резервироваться вручную при этом отпадает, что для домашних пользователей более чем актуально.

Единственный минус программного RAID'а — его невысокая производительность. К примеру, если ты поставил программный RAID на сервер, тот обрабатывает тысячи запросов ежесекундно и интенсивно модифицирует множество файлов, то ничего не выиграешь, но… Само понятие «производительности» очень относительно, и при достаточно быстром процессоре вполне реально осуществлять кодирование/декодирование информации на лету, не потеряв ничего в пропускной способности. С другой стороны, если операции чтения доминируют над операциями записи, то ставить программный RAID просто необходимо, поскольку контроль целостности считываемой информации осуществляется на «железном» уровне самим приводом и при использовании систематического кодирования (то есть информационные слова — отдельно, байты четности — отдельно). Декодеру Рида-Соломона нет никакой нужды как-то вмешиваться в этот процесс. Его помощь требуется лишь тогда, когда часть информации оказывается безнадежно разрушенной, что случается нечасто. Так вот не стоит перекармливать фирмы, специализирующие на выпуске аппаратных RAID'ов, тем более что они все равно не обращают внимания на домашний и мелкоофисный рынок.

А как быть, если жесткий диск «навернется» целиком? Самый разумный выход — создать массив из нескольких дисков, хранящих полезную информацию вперемешку с корректирующими кодами. Главный минус такого подхода — его неэффективность на массивах, состоящих из небольшого количества жестких дисков. Разумный минимум — четыре информационных диска и один контрольный, тогда потеря любого из информационных дисков компенсируется контрольным, оставшимся в живых. А потерянный контрольный диск элементарно заменяется на новый, затем пересчитываются все контрольные коды. Правда, одновременный выход двух дисков из строя — это кранты. Массив из пятнадцати дисков, если двенадцать из них информационные, а оставшиеся три — контрольные, намного более отказоустойчив и допускает одновременный крах двух любых дисков, а при благоприятном стечении обстоятельств — и трех.

Назад на стр. 062-042-3  Содержание  Вперед на стр. 062-042-5