Привет всем.
Такой вопрос, делаю RAID1 с автоконфигом и рутовой партицией, два винта wd0 wd1. Дело было так (вкраце): - поставил систему на wd0 - пересобрал ядро с поддержкой RAID, перезагрузился Подготовил wd1 (про неRAID-овую партицую не буду тут писать): - разметил disklabel-ом wd1 - сконфигурировал raid: raid0.conf START array 1 2 0 START disks /dev/wd1e /dev/wd2e START layout 128 1 1 1 START queue fifo 100 - разметил raid0, залил и сконфигурировал туда систему, включил -A root - перезагрузился, переразметил wd0 под использование raid-а Теперь после перезагрузки пишет: # raidctl -s raid0 raid0 Components: /dev/wd1e: optimal component1: failed No spares. Parity status: DIRTY Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # По мануалу сделал следующее: raidctl -a /dev/wd0e raid0 raidctl -vF component1 raid0 raidctl -P raid0 После чего результатом было: # raidctl -s raid0 raid0 Components: /dev/wd1e: optimal component1: spared Spares: /dev/wd0e: used_spare Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # Перезагружаюсь и вижу вновь ту же самую ошибку: # raidctl -s raid0 raid0 Components: /dev/wd1e: optimal component1: failed No spares. Parity status: DIRTY Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # Где грабли? Может надо вновь сделать -C, предварительно поменяв в конфиге wd2e на wd0e? Прим.: raid0.conf в /etc/ не перекладывал, он нужен был только для создания, поэтому я так понимаю -c при начальной загрузке не делается, пробовал класть его в /etc/ поменяв wd2e на wd0e - тоже самое: component1: failed. Еще заметил: ядро перестало читать /etc/boot.conf, где у меня перенаправление на консоль настроено. disklabel wd0 и wd1: 16 partitions: # size offset fstype [fsize bsize cpg] a: 257985 63 4.2BSD 2048 16384 256 # Cyl 0*- 255 c: 156301488 0 unused 0 0 # Cyl 0 -155060 e: 156038337 258048 RAID # Cyl 256 -155055* disklabel raid0: 16 partitions: # size offset fstype [fsize bsize cpg] a: 257920 128 4.2BSD 2048 16384 251 # Cyl 0*- 251 b: 2097152 258048 swap # Cyl 252 - 2299 c: 156038272 0 unused 0 0 # Cyl 0 -152381* e: 8388608 2355200 4.2BSD 2048 16384 323 # Cyl 2300 - 10491 f: 514048 10743808 4.2BSD 2048 16384 323 # Cyl 10492 - 10993 g: 8388608 11257856 4.2BSD 2048 16384 323 # Cyl 10994 - 19185 h: 136391680 19646464 4.2BSD 2048 16384 323 # Cyl 19186 -152380 # -- Sincerely, Dennis |
> Где грабли?
Как лечить: Отресторить массив, чтоб spare стал used и выдернуть шнур питания. Подождать 15 секунд, воткнуть шнур обратно, включить машину и идти гонять чаи, пока не пройдёт raidctl -P. У меня только после такой случайной махинации (хотел проверить, как долго будет длиться проверка чётности) запаска честно встала в массив. Raidframe - тот ещё подарок. > Еще заметил: ядро перестало читать > /etc/boot.conf, > где у меня перенаправление на консоль настроено. boot.conf читает загрузчик, а не ядро, поэтому он (boot.conf) находиться должен на wd0a:/etc/boot.conf |
По поводу boot.conf - да, поспешил :) Конечно читает загрузчик,
переложил в неRAID-вую партицую wd0{a,b}:/etc/boot.conf - заработало. Еще положил в /etc/raid0.conf с измененным wd2e->wd0e, загружаюсь, вижу в консоли: .. raid0: Device already configured! raidctl: raid0: Error re-writing parity! ioctl (RAIDFRAME_CONFIGURE) failed raid0: Parity status: DIRTY raid0: Initiating re-write of parity Automatic boot in progress: starting file system checks. .. А что значит отресторить массив? Это не пройдет, т.к. RAIDFrame не считает wd0e компонентом: # raidctl -R /dev/wd0e raid0 raidctl: /dev/wd0e is not a component of this device # Я ведь ранее его конфигурировал (-C) с несуществующим винтом (wd2): START disks /dev/wd1e /dev/wd2e А теперь задача стоит назначить вместо wd2e: wd0e. Я еще раз повторюсь: я пытался сделать так: raidctl -a /dev/wd0e raid0 raidctl -vF component1 raid0 raidctl -P raid0 После перезагрузки все равно система показывает component1 failed: # raidctl -vs raid0 raid0 Components: /dev/wd1e: optimal component1: failed No spares. Component label for /dev/wd1e: Row: 0, Column: 0, Num Rows: 1, Num Columns: 2 Version: 2, Serial Number: 777, Mod Counter: 329 Clean: No, Status: 0 sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1 Queue size: 100, blocksize: 512, numBlocks: 156038272 RAID Level: 1 Autoconfig: Yes Root partition: Yes Last configured as: raid0 component1 status is: failed. Skipping label. Parity status: DIRTY Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # ЗЫ. И не понятно зачем выдергивать шнур питания? Это из шаманства что-то... Wednesday, November 16, 2005, 4:11:10 PM, you wrote: >> Где грабли? DB> Как лечить: DB> Отресторить массив, чтоб spare стал used и DB> выдернуть шнур питания. Подождать 15 секунд, DB> воткнуть шнур обратно, включить машину и DB> идти гонять чаи, пока не пройдёт raidctl -P. DB> У меня только после такой случайной махинации DB> (хотел проверить, как долго будет длиться проверка DB> чётности) запаска честно встала в массив. DB> Raidframe - тот ещё подарок. >> Еще заметил: ядро перестало читать >> /etc/boot.conf, >> где у меня перенаправление на консоль настроено. DB> boot.conf читает загрузчик, а не ядро, поэтому DB> он (boot.conf) находиться должен на wd0a:/etc/boot.conf -- Sincerely, Dennis |
On Wed, 16 Nov 2005 16:52:17 +0300
"Dennis S.Davidoff" <[hidden email]> wrote: > По поводу boot.conf - да, поспешил :) Конечно читает > загрузчик, переложил в неRAID-вую партицую > wd0{a,b}:/etc/boot.conf - заработало. Отлично ! > Еще положил в /etc/raid0.conf с измененным > wd2e->wd0e, загружаюсь, вижу в консоли: Верните всё на место, чтоб у вас опять было: # raidctl -s raid0 raid0 Components: /dev/wd1e: optimal component1: spared Spares: /dev/wd0e: used_spare Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # После этого _проделайте_ манипуляцию со шнуром питания, про которую я вам рассказал. |
In reply to this post by Dennis S.Davidoff
Hi, Dennis.
> Еще положил в /etc/raid0.conf с измененным wd2e->wd0e, загружаюсь, > вижу в консоли: > .. > raid0: Device already configured! > raidctl: raid0: Error re-writing parity! > ioctl (RAIDFRAME_CONFIGURE) failed > raid0: Parity status: DIRTY > raid0: Initiating re-write of parity > Automatic boot in progress: starting file system checks. > .. Не надо ложить в /etc. Если РАИД автоконфигурируемый, то raid0.conf больше не нужен, ибо инфа где-то в РАИД структурах диска хранится. А то что лежит в /etc система при загрузке и пытается сконфигурировать (предполагается, что они не автоконфигурируемые), это в rc есть. Смысл - даже когда ядро без опции автоконфигурирования, РАИДы после загрузки будут подключены. А в твоём случае - она пытается сконфигурить already configured РАИД. > А что значит отресторить массив? Это не пройдет, т.к. RAIDFrame не > считает wd0e компонентом: > # raidctl -R /dev/wd0e raid0 > raidctl: /dev/wd0e is not a component of this device > Я ведь ранее его конфигурировал (-C) с несуществующим винтом (wd2): > START disks > /dev/wd1e > /dev/wd2e > А теперь задача стоит назначить вместо wd2e: wd0e. > Я еще раз повторюсь: я пытался сделать так: > raidctl -a /dev/wd0e raid0 > raidctl -vF component1 raid0 > raidctl -P raid0 Попробуй сделать это с wd2e, он добавится, отресторится. Потом с wd0e то же проделать попробуй. И попробуй ему с новым конфигом (где wd0 и wd1) сделать # raidctl -C raid0.conf # raidctl -A no raid0 # raidctl -A yes raid0 # raidctl -A root raid0 ибо, повторюсь, инфа о том, что в РАИДе должны быть wd1 и wd2 записана в структурах РАИДа, при перезагрузке оттуда и берется. Так вот, я думаю, что после насильственной конфигурации (-C) и выкл./вкл. автоконфигурации конфиг будет прописан "в РАИД". > После перезагрузки все равно система показывает component1 failed: -- engineer |
Wednesday, November 16, 2005, 5:30:22 PM, you wrote:
[snip] ehr> Попробуй сделать это с wd2e, он добавится, отресторится. Потом с wd0e ehr> то же проделать попробуй. ehr> И попробуй ему с новым конфигом (где wd0 и wd1) сделать ehr> # raidctl -C raid0.conf ehr> # raidctl -A no raid0 ehr> # raidctl -A yes raid0 ehr> # raidctl -A root raid0 # raidctl -C ./raid0.conf raid0 raidctl: ioctl (RAIDFRAME_CONFIGURE) failed # Похоже это надо делать с ядром, которое без автоконфигурации. -- Sincerely, Dennis |
Hi, Dennis.
ehr>> Попробуй сделать это с wd2e, он добавится, отресторится. Потом с wd0e ehr>> то же проделать попробуй. ehr>> И попробуй ему с новым конфигом (где wd0 и wd1) сделать ehr>> # raidctl -C raid0.conf ehr>> # raidctl -A no raid0 ehr>> # raidctl -A yes raid0 ehr>> # raidctl -A root raid0 > # raidctl -C ./raid0.conf raid0 > raidctl: ioctl (RAIDFRAME_CONFIGURE) failed > Похоже это надо делать с ядром, которое без автоконфигурации. Да, да. Кстати, можно попробовать ещё -с (не -С), то есть ненасильственную. Может она прокатит. -- engineer |
In reply to this post by Dmitry Bogdan
Wednesday, November 16, 2005, 5:09:24 PM, you wrote:
DB> On Wed, 16 Nov 2005 16:52:17 +0300 DB> "Dennis S.Davidoff" <[hidden email]> wrote: >> По поводу boot.conf - да, поспешил :) Конечно читает >> загрузчик, переложил в неRAID-вую партицую >> wd0{a,b}:/etc/boot.conf - заработало. DB> Отлично ! >> Еще положил в /etc/raid0.conf с измененным >> wd2e->wd0e, загружаюсь, вижу в консоли: DB> Верните всё на место, чтоб у вас опять было: DB> # raidctl -s raid0 DB> raid0 Components: DB> /dev/wd1e: optimal DB> component1: spared DB> Spares: DB> /dev/wd0e: used_spare DB> Parity status: clean DB> Reconstruction is 100% complete. DB> Parity Re-write is 100% complete. DB> Copyback is 100% complete. DB> # DB> После этого _проделайте_ манипуляцию DB> со шнуром питания, про которую я вам DB> рассказал. Сделал как вы сказали. # raidctl -sv raid0 raid0 Components: /dev/wd1e: optimal component1: spared Spares: /dev/wd0e: used_spare Component label for /dev/wd1e: Row: 0, Column: 0, Num Rows: 1, Num Columns: 2 Version: 2, Serial Number: 777, Mod Counter: 348 Clean: No, Status: 0 sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1 Queue size: 100, blocksize: 512, numBlocks: 156038272 RAID Level: 1 Autoconfig: Yes Root partition: Yes Last configured as: raid0 component1 status is: spared. Skipping label. raidctl: ioctl (RAIDFRAME_GET_COMPONENT_LABEL) failed # Вырубил питание у машины. Секунд через 15 включил и загрузился, при этом на консоли было: raidctl: raid0: Error re-writing parity! ioctl (RAIDFRAME_CONFIGURE) failed raid0: Parity status: DIRTY raid0: Initiating re-write of parity Automatic boot in progress: starting file system checks. /dev/rraid0a: 1653 files, 9867 used, 53364 free (12 frags, 6669 blocks, 0.0% fragmentation) /dev/rraid0a: MARKING FILE SYSTEM CLEAN и т.д. Теперь смотрим состояние: # raidctl -sv raid0 raid0 Components: /dev/wd1e: optimal component1: failed No spares. Component label for /dev/wd1e: Row: 0, Column: 0, Num Rows: 1, Num Columns: 2 Version: 2, Serial Number: 777, Mod Counter: 356 Clean: No, Status: 0 sectPerSU: 128, SUsPerPU: 1, SUsPerRU: 1 Queue size: 100, blocksize: 512, numBlocks: 156038272 RAID Level: 1 Autoconfig: Yes Root partition: Yes Last configured as: raid0 component1 status is: failed. Skipping label. Parity status: DIRTY Reconstruction is 100% complete. Parity Re-write is 100% complete. Copyback is 100% complete. # Как видно, ничего не изменилось. ЗЫ. Нашел тут howto: http://www.eclectica.ca/howto/openbsd-software-raid-howto.php Мой вариант, у него по мануалу удалось поменять несуществующий диск wd2 на wd0, но складывается впечатление что автор сего опуса писал этот мануал вслепую, т.к. по этой схеме у меня ничего не сработало. И вообще, думается мне что RAIDFrame сырой какой-то (хотябы в отношении raidctl). Почему-то нельзя добавить диск вот так просто, а надо как-то с бубном это делать, мне не понятно. Кстати, попутно в misc@ задал вопрос (кто подписан, видел), мне там предлагали после реконструирования сделать -R: # raidctl -Rv /dev/wd0e raid0 raidctl: ioctl (RAIDFRAME_GET_INFO) failed # Блин, жаль дежелоперы реализации RAIDFrame в опене не читают misc@ (по крайней мере, ткнули бы пальцем что нужно сделать). -- Sincerely, Dennis |
Hi, Dennis.
> И вообще, думается мне что RAIDFrame сырой какой-то (хотябы в > отношении raidctl). Почему-то нельзя добавить диск вот так просто, а > надо как-то с бубном это делать, мне не понятно. Кстати, попутно в > misc@ задал вопрос (кто подписан, видел), мне там предлагали после > реконструирования сделать -R: > # raidctl -Rv /dev/wd0e raid0 > raidctl: ioctl (RAIDFRAME_GET_INFO) failed > Блин, жаль дежелоперы реализации RAIDFrame в опене не читают misc@ (по > крайней мере, ткнули бы пальцем что нужно сделать). Повторюсь - если у тебя не автоконфигурируемый раид, то после загрузки его просто надо сконфигурить с другим конфигом. Автоконфигурируемый - попробуй загрузиться с ядром, которое без опции автоконфигурации, подключить его (сконфигурировать, -с), затем сделать -A no, расконфигурировать (-u), сконфигурировать с другим конфигом (-с или -С), сделать -A yes. Смысл шаманства - обновить "конфиг" который хранится в структурах автоконфигурируемого РАИДа. -- engineer |
In reply to this post by Dennis S.Davidoff
> Как видно, ничего не изменилось.
Чьорт побери. У меня 1 раз такое сработало, иначе не стал бы тревожить. |
Free forum by Nabble | Edit this page |