|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 06 Mar 2004 12:11:18 To : Aleksey Barabanov Subject : Re: Пpо пpогpаммный RAID -------------------------------------------------------------------------------- u> <20040304214735.GB7486@iv.nn.kiev.ua> <666mh1-on2.ln1@abb.wessen.ru> From: Valentin Nechayev <netch@segfault.kiev.ua> >>> Aleksey Barabanov wrote: AB> Если произошел экстренный останов системы, то всегда актуальным будет только AB> один диск. Какой? Вот, пожалуйста, расскажите подробнее этот механизм. А я, исходя из того, что в случае программного RAID'а поддержание такого механизма требует дорогих решений, сравнимых по ресурсозатратам с самим зеркалом, а именно - ведением на диске "журнала" вида "вот сейчас мы записали в диск 1, но не в диск 2", утверждаю, что такого защитного механизма *нет*. Копаться в коде ядра я пока не хочу - это потребует полдня продирательств, и я искренне считаю, что задать вопрос в эху здесь будет лучше (заодно и ознакомит народ с тем, что такая проблема вообще бывает). Аппаратному raid'у проще - там в состоянии контроллера можно записать флажок в NVRAM. AB> И все блоки будут получены только с него. А после синхронизации AB> второй диск будет полностью с т.з. md идентичен мастеру. С этой точки AB> зрения raid-1 как система сохранения целостности данных не дает никаких AB> выход против обычной fs с журналированием. Hо ! Если произошел сбой, то AB> есть 2 возможности : восстановить все с мастера или взять за основу второй AB> диск. И тем более если сбой привел к полному уничтожению одного из дисков, AB> то второй остается. И это все никак не реферируется с данными fs. Если сбой привёл к уничтожению диска - проблем нет. Тогда точно известно, какой диск вылетел. Вот если оба работают, а история сбоя не сохранилась (а как она будет сохранена, если, например, питание пропало?), то будет ой. AB> Далее опускаемся на уровень девайса. Там понятие fs, иноды и данные, вообще AB> отсутствуют. Там просто один диск мастер, а второй не сеинхронизирован. Или AB> оба зеркала равны. И все это совершенно индиффирентно по отношению к уровню AB> fs. Просмотрите, пожалуйста, логику ещё раз. По пунктам: 1. Произошёл сбой, в результате которого блок на двух зеркальных дисках стал иметь разное содержимое, и этот сбой не зафиксирован в состоянии массива (потому, что нет этого состояния, или было слишком дорого писать). Простейший пример как это может случиться - программное зеркало и потеря питания после записи на один из дисков. 2. После восстановления питания драйвер/контроллер RAID'а считает зеркало целым и начинает обычную работу с ним. 3. Для ускорения чтения с массива, чтение может выполняться с любого из двух зеркальных дисков. 4. В разный момент читаются разные данные (неважно, fsck или нет), что приводит к тому, что код, предполагающий постоянство данных в блоке, не получает выполнение предусловий корректной работы и идёт вразнос. Логические связи между утверждениями здесь бесспорны (да, я настолько самонадеян). Против утверждений как самих по себе возражения есть? -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/73683faf4e97.html, оценка из 5, голосов 10
|