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=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=HY1A8Zsa+pjQIILSY3KiobPLy67GH0jeNd9VNW6Fqm0=; b=j54B3DLzaAq6k9x1SF83xrPhLYaNG87upOUqSZ7ZIe0Hgd4OvCXKQExKwvrsvFqjGt 0bjrWdyAbZqDmtcHj4gtfkAzv2mL+41LhLmdSzaZNMzBRQUEh2upk5TYHLLNg+S2ASFn WRBgyi6ojnFNYiKqTgGvdx4FeJWHLOwK7UFnK1MyreOVsbGq7bVgLFMV3kxZDuPbFmoR 5GGu/kdzbxXcKXdkGXvQ/YjhBKsJkCCBFYeRLqqFZ2JD91Zs04P3ryTPP28oiZ//OCPa xBAWZRoj1w8O8XKmqmLAcCex4+ZinSC7kM+3Yr+iYWkcnvoL1CxH38eN7VaHxbH1zX6n AZgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=HY1A8Zsa+pjQIILSY3KiobPLy67GH0jeNd9VNW6Fqm0=; b=nn4RmvoMvIT44LmyWDLihtiQz4GtlFZ4fUCWcmcwUn5zyCB9aDsmaGi5r6jIgMfBLS r+AT18r2KWR2E/a05gB7KE5iEd1u6ubuTWzKRbikxPLVN5c7ICtpTDdkFSiyzaNv5XW2 pzbkWldifMjDDlsWCeMVctl9WL+U/ZluP0c3+8G0dUhj0DjSh6r/5WrxcmOVWcwmrzwz 7u6gx7VzldEvPOj+YxkKtVVKl2ujCuhIbP/nvUPWjq6cKbWjuGO9RFsn0IV+fNF5OP/l 4o1qHKqhIiXYxR2ktjl8lkAqzvwQxu77INXvJpLaLLGeZog8rmJkNmPOGOvAA2Cuc4lH DDaA== X-Gm-Message-State: AOAM530qVb7uPNwKYrY/8m49nDm3f+/bKzG+ot0/9w+SuphfYsUZ5YOA VmbZPWR9ibWr/xB73i2C1CtISOxYGi0= X-Google-Smtp-Source: ABdhPJwXrWhu4wdiNLzUONNzjZuq3dd5HxaH8Dk7iIKdDdWTzjEfJqnPRdTIn3Y1TlL05Ji/+ERj4w== X-Received: by 2002:ac2:42d1:: with SMTP id n17mr3282063lfl.76.1613680145925; Thu, 18 Feb 2021 12:29:05 -0800 (PST) To: make-initrd@lists.altlinux.org References: <20200508114012.jgbjpdksisxryfg4@comp-core-i7-2640m-0182e6> <20200521133617.aekvybv5mgpqkvmd@comp-core-i7-2640m-0182e6> <88e0982a-556a-55eb-7cf2-e4bfb5fea450@gmail.com> <20210218173722.dkyamp42c6gpdigk@example.org> <21e48a26-3031-1ffa-cf83-3c524c20cf52@gmail.com> <20210218193704.zfa6fl4j75il7xw7@example.org> From: Leonid Krivoshein Message-ID: Date: Thu, 18 Feb 2021 23:29:04 +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: <20210218193704.zfa6fl4j75il7xw7@example.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [make-initrd] I: pipeline feature 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, 18 Feb 2021 20:29:09 -0000 Archived-At: List-Archive: 18.02.2021 22:37, Alexey Gladkov пишет: > On Thu, Feb 18, 2021 at 09:18:46PM +0300, Leonid Krivoshein wrote: >> 18.02.2021 20:38, Alexey Gladkov пишет: >>> On Thu, Feb 18, 2021 at 07:55:31PM +0300, Leonid Krivoshein wrote: >>>> Привет! >>>> >>>> >>>> [...] >>>> Получится ли использовать эту фичу, чтобы дождаться сборки других рейдов, не >>>> связанных с корневым разделом? Дело в том, что сейчас make-initrd всеми >>>> правдами может собрать рейд, на котором есть корневой раздел, но если на >>>> внешней корзине много дисков и там несколько более сложных рейдов, с корнем >>>> не связанных, они собраться не успевают до pivot_root, так что правила >>>> systemd во второй стадии загрузки их тоже не могут собрать, так как там >>>> стоит защита от состояния "inactive". Грубо говоря, в простом случае тут >>>> хватило бы какой-то простой задержки, иначе начальная загрузка ломает >>>> собираемость больших рейдов с данными. >>> Эта фича не про рейды совсем. >> Понял. >> >> >>> Попросить make-initrd смонитровать не только >>> корнефой раздел можно другими методами. >> Отлично! Об этом смотри в самом конце.. >> >> >>> Я не очень понял описанную проблему. >> https://bugzilla.altlinux.org/39695 >> >> >>> "Всеми правдами" это вы имеете в виду стандартные правила сборки рейда из >>> самого mdadm ? >> Имел ввиду, что в make-initrd есть "лекарство" для загрузки с read-only и >> деградированных рейдов, т.е. когда с ними не всё в порядке, но данные в >> принципе доступны. http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=features/mdadm/data/lib/uevent/handlers/md-raid-member/100-timeout;h=96e07da66ee6e7e0ecac6b34359e861a6c0d2d9b;hb=4731c727c756c15776a020780828fa5e33ddef7a >> >> То есть, рейд с корнем он соберёт даже в довольно плохом случае. >> >> >>> Если не хватает времени, то есть rootdelay=X, который можно выставить хоть >>> в сутки. Также есть параметр raid-member-delay=X через который можно >>> отключить получение degraded raid. Правильное указание этих параметров >>> должно решать описанную проблему. >> Не помогло (см. в баге). > Это не помогло так как initrd не ждал эти разделы [1] и как только корень > был смонтирован, то сразу же загрузка пошла дальше. Можно указать, чтобы > монтировал все указанные рейды, но тогда initrd их смонтирует. Это > конечно не то, что ожидается. Почему, вполне годное решение. А как это указать? Добавить mountpoints= к параметрам загрузки? > Проблема в том, что mdadm.conf берётся из системы и содержит все рейды. > >> Уже немного разобрался, почему так происходит и >> даже придумал временный объезд. Возможно, простой способ ПРАВИЛЬНО решить >> проблему -- иметь два _РАЗНЫХ_ /etc/mdadm.conf на такие случаи, когда рейды >> используются не для корня. Главное, чтобы эти рейды с данными не начинал >> собирать интеллект в initramfs (ограничить DEVICES=...), тогда в обычной >> системе правила udev сами его соберут. > Я тоже мыслю в эту сторону [2]. Я подумываю о том, как бы сгенерировать > mdadm.conf только для MOUNTPOINTS. К сожалению, я не уверен, что это > можно хорошо сделать. Именно поэтому я и не сделал этого сразу для фичи > mdadm. Поэтому я и предложил затягивать в initramfs один из двух файлов: /etc/mdadm-initrd.conf (если есть, то его) /etc/mdadm.conf (fallback) Пусть болит голова у админов)) >> Сейчас проблема в том, что процесс assembly запускается, но успевает >> отрабатывать лишь для простого RAID1 с корнем, а остальные RAID6 с кучей >> дисков просто не успевают собраться и, как я полагаю, состояние inactive во >> второй стадии мешает их собрать штатным правилам udev. Грубо говоря, наличие >> второго конфига типа /etc/mdadm-initrd.conf решило бы проблему -- если такой >> файл есть, тянут в initramfs его, если нет, тянуть обычный конфиг. > Я согласен. Вопрос в том, как получить конфиг для mountpoints'а. > >> Однако, есть одно сомнение: make-initrd монтирует только корень или что-то >> ещё из /etc/fstab? > make-initrd генерирует себе fstab с тем, что его попросили смонтировать. > Соответственно ждёт он всех из своего fstab (если не сказали rootonly при > загрузке). > >> Если он монтирует всё, то предложенный воркэраунд не >> поможет. Тогда хорошо бы скармливать какими-нибудь параметрами, каких ещё >> дисков (событий) следует дождаться до pivot_root... > [1] https://github.com/osboot/make-initrd/blob/master/data/lib/initrd/boot/scripts/mountpoints > [2] https://bugzilla.altlinux.org/show_bug.cgi?id=29831 > [3] https://github.com/osboot/make-initrd/blob/master/features/rootfs/bin/create-fstab > -- Best regards, Leonid Krivoshein.