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=-4.3 required=5.0 tests=ALL_TRUSTED,BAYES_00, RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 To: Michael Shigorin , Alexey Shabalin , =?UTF-8?B?0JDQvdC00YDQtdC5INCn0LXRgNC10L/QsNC90L7Qsg==?= , make-initrd@lists.altlinux.org References: <20200217104230.m2t7xvp4pv2f2lyq@comp-core-i7-2640m-0182e6> <20200217152312.suvw3d3snuquenfz@comp-core-i7-2640m-0182e6> From: Leonid Krivoshein Message-ID: <5d349ed6-df75-94af-524d-380ade8dba5c@basealt.ru> Date: Mon, 17 Feb 2020 18:59:59 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20200217152312.suvw3d3snuquenfz@comp-core-i7-2640m-0182e6> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru X-Mailman-Approved-At: Tue, 18 Feb 2020 10:29:18 +0300 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: Mon, 17 Feb 2020 16:05:05 -0000 Archived-At: List-Archive: 17.02.2020 18:23, Alexey Gladkov пишет: > On Mon, Feb 17, 2020 at 02:27:30PM +0300, Leonid Krivoshein wrote: >> Привет, Алексей, ещё раз! :-) >> >> >> 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 сложнее. Что это ? После установки машина не грузится, но можно загрузиться в ALT Rescue, да посмотреть, как это выглядит и починить: [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active (auto-read-only) raid1 sdb3[1] sda3[0]       2304755704 blocks super 1.0 [2/2] [UU]           resync=PENDING md127 : active (auto-read-only) raid1 sdb2[1] sda2[0]       2097088 blocks [2/2] [UU] unused devices: [root@localhost ~]# mdadm -w /dev/md127 [root@localhost ~]# mdadm -w /dev/md126 [root@localhost ~]# cat /proc/mdstat Personalities : [raid1] md126 : active raid1 sdb3[1] sda3[0]       2304755704 blocks super 1.0 [2/2] [UU]       [>....................]  resync =  0.6% (15523904/2304755704) finish=340.8min speed=111936K/sec md127 : active raid1 sdb2[1] sda2[0]       2097088 blocks [2/2] [UU] Вуаля. В данном примере обе проблемы на лицо. > Можно тебя попросить написать тест (я готов ответить на любые вопросы про > новые 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 для любых обнаруживаемых >> блочных дисков, а не только для тех, на которых корень, аккуратно пытаться >> исправить приведёнными командами. Очевидно, обработка должна находиться не >> здесь, а где-то ещё. >> >> Сейчас я воспроизведу на виртуалке и отпишу более детально... > Было бы здорово, если бы ты выложил это куда-нибудь, чтобы мне можно тоже > было посмотреть. Чтобы не успело просинхронизироваться, приходится делать большие виртуальные диски (>2Tb каждый), такое нет смысла тащить, а доступ к PVE снаружи у нас, к сожалению, прикрыли. -- С уважением, Леонид Кривошеин.