From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 Date: Thu, 27 Feb 2020 21:10:03 +0100 From: Alex Gladkov To: Leonid Krivoshein , Michael Shigorin , Alexey Shabalin , =?utf-8?B?0JDQvdC00YDQtdC5INCn0LXRgNC10L/QsNC90L7Qsg==?= , make-initrd@lists.altlinux.org Message-ID: <20200227201003.mjh46m7ibmk4vkpf@comp-core-i7-2640m-0182e6> References: <20200217104230.m2t7xvp4pv2f2lyq@comp-core-i7-2640m-0182e6> <20200217152312.suvw3d3snuquenfz@comp-core-i7-2640m-0182e6> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200217152312.suvw3d3snuquenfz@comp-core-i7-2640m-0182e6> Subject: Re: [make-initrd] =?utf-8?q?=5Bdegraded_md-raid=5D_make-initrd_=D0=B2?= =?utf-8?b?IHA5INC4INCyINCh0LjQt9C40YTQtQ==?= X-BeenThere: make-initrd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: make-initrd@lists.altlinux.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Feb 2020 20:10:08 -0000 Archived-At: List-Archive: On Mon, Feb 17, 2020 at 04:23:13PM +0100, Alexey Gladkov wrote: > On Mon, Feb 17, 2020 at 02:27:30PM +0300, Leonid Krivoshein wrote: > > Привет, Алексей, ещё раз! :-) Я попытался исправить проблему с таймаутом при медленной инициализации дисков [1]. Эта проблема может как-то затрагивает и описанное здесь. Суть фикса [2] это использовать не фиксированный таймаут для инициализации рейдовых дисков, а сделать его скользящим. Таймаут отчитывается от появления последнего raid-member. По умолчанию новый таймаут выставлен в 10 секунд т.е. если через 10 секунд после появления последнего raid-member есть рейды в состоянии inactive, то выполняется mdadm -IRs. Также бага [1] открыла ещё одну проблему, которую не очень понятно как лечить автоматически: если в /etc/mdadm.conf описан не только корень, а целый букет разных рейдов, то все они попадут в initrd, но при этом initrd не будет ждать сборки их всех. Пока лучшей идеи, чем указание кастомного mdadm.conf в такой ситуации у меня нет. Не могли бы заинтересованные люди потестировать фикс [2] на реальном железе ? У меня есть возможность протестировать в qemu, что не есть айс в этой ситуации. [1] https://bugzilla.altlinux.org/show_bug.cgi?id=37737 [2] http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=shortlog;h=refs/heads/fix-mdadm-timeout > > > > 17.02.2020 13:42, Alexey Gladkov пишет: > > > On Sun, Feb 16, 2020 at 08:31:37PM +0300, Leonid Krivoshein wrote: > > > > Всем привет! > > > > > > > > > > > > На p8 была попытка исправить проблему загрузки с деградированного массива: > > > > > > > > http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=commitdiff;h=9f1bee4172c43ae7208855c6cb991e0e415d7f08 > > > > > > > > В коде исправлялось сразу две проблемных ситуации (inactive и read-auto), > > > > но, если не ошибаюсь, исправить удалось только одну из них, вторую надо было > > > > лечить где-то в другом месте. Однако в новом коде такого файла (050-mdstart) > > > > больше нет, есть только это: > > > > > > > > http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=features/mdadm/data/lib/uevent/extenders/100-mdstart;h=3df8f9ea40654d2eeb5551ad14f7358834c03396;hb=c52b3398d8547c8d00412c153c0679968af8a58a > > > > > > > > Две ситуации исправляются руками тривиально: в случае inactive одного из > > > > дисков просто mdadn -IRs разово, в случае read-auto (что типично для корня > > > > или свопа на рейде) -- перевести его обратно в режим чтения/записи командой > > > > mdadm -w /dev/MDDEV. В старом коде make-initrd была задержка в 1/3 времени > > > > таймаута, то есть, 1 минута, которая запускает этот траблешуттер, если > > > > корень не обнаружился. В новом -- я вообще не понимаю, как должно работать, > > > > но по факту никак не работает. Система не грузится даже с только что > > > > созданного рейда, который не досинхронизирован до конца. Плюс к тому: shaba@ > > > > что-то говорил, что в новом LVM другой принцип обработки обнаруженных томов > > > > (это уже про ситуацию, когда LVM поверх MD). > > > > > > > > Ещё такой момент: ситуацию хорошо бы исправлять для всех дисков на раннем > > > > этапе, а не только если корень не нашёлся. Да и неправильно это ждать минуту > > > > не пойми чего, когда диск который часть рейда или LVM нашёлся, о нём уже всё > > > > известно. Есть какие-нибудь идеи, камрады? > > > Вы много написали, но я явно не в контекте. Давайте по порядку. > > > > > > Есть features/mdadm/data/lib/uevent/extenders/100-mdstart. > > > > > > Он решает проблему и не решает какую проблему ? > > > Какие ещё проблемы есть ? > > > > Не решает ни одну из двух проблем: > > ok. Значит он перестал работать совсем. > > Нужно будет написать тест про degraded raid. Я примерно понимаю как это > должно выглядеть. А вот с read-auto сложнее. Что это ? > > Можно тебя попросить написать тест (я готов ответить на любые вопросы про > новые end-to-end тесты) ? > > > - не "чинит" MD-устройства в состоянии "read-auto", поэтому после перехода в > > stage2 корень на RAID нельзя перемонтировать в режим чтения-записи. > > > > - по сравнению с make-initrd0.8.x, теперь вообще нельзя загрузиться с > > MD-RAID, который в состоянии "degraded", хотя для больших дисков это норма > > сразу после инсталляции -- они просто ещё не успели до-синхронизироваться. В > > старой версии отрабатывал troubleshutter by mike@, который я перетянул из > > p7/c7 в p8 и c8/c8.1. Во времена p7 ты утянул этот troubleshutter в > > тогдашний Сизиф, но видимо теперь оно совсем нерабочее. > > > > В идеале решать обе проблемы в новом make-initrd2 для любых обнаруживаемых > > блочных дисков, а не только для тех, на которых корень, аккуратно пытаться > > исправить приведёнными командами. Очевидно, обработка должна находиться не > > здесь, а где-то ещё. > > > > Сейчас я воспроизведу на виртуалке и отпишу более детально... > > Было бы здорово, если бы ты выложил это куда-нибудь, чтобы мне можно тоже > было посмотреть. > > -- > Rgrds, legion > > _______________________________________________ > Make-initrd mailing list > Make-initrd@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/make-initrd -- Rgrds, agladkov