ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
From: Aleksey Avdeev <solo@solin.spb.ru>
To: ALT Linux sysadmin discuss <sysadmins@lists.altlinux.org>
Cc: ALT Linux Community general discussions <community@lists.altlinux.org>
Subject: [Sysadmins] I: Обновления 5.1 -> p7: Встреченные проблемы
Date: Tue, 19 Jan 2016 02:37:13 +0300
Message-ID: <569D7729.4050504@solin.spb.ru> (raw)

[-- Attachment #1: Type: text/plain, Size: 4247 bytes --]

Приветствую.

  При обновлении сервера с 5.1 до текущего p7, наткнулся на ряд
достаточно неприятных проблем.

  Особенности обновляемой системы:

1. Активно используется LVM (когда-то был EVMS, но от него избавился
ранее) поверх Soft-RAID (используется автодетект), корень на и
вынесенный /boot на RAID1:

а) /, reiserfs - на RAID1;

б) /boot, ext2 - на RAID1;

в) все остальное (/usr, /var, /home и пр.) -- на LVM поверх RAID5
(некоторые некритичные части -- на LVM поверх RAID0).

2. Используется виртуализация -- KVM под libvirt.

3. Используется sysvinit (и нет планов перехода на systemd).

4. Архитектура x86_64 (AMD).

  Встреченные проблемы, в порядке столкновения с оными:

1. После обновления lvm2 и перехода на kmod и make-initrd
(0.8.6-alt1.M70P.2, был установлены доп. пакеты make-initrd-devmapper,
make-initrd-lvm и make-initrd-mdadm) -- получил проблемы с загрузкой:

а) При старом ядре 3.3.5-std-def-alt1 (и соответствующим ему старом
initrd) -- перестали подниматься LVM группы томов. (Это было ожидаемо,
эксперименты по ручному подъёму LVM не привели к успеху.)

б) При использовании свежеустановленного ядра
(3.14.58-std-def-alt0.M70P.1) и свежесформированного (с помощью
make-initrd) initrd -- не было найдено корневое устройство. Раскопки
показали что скорее всего в среде старого ядра (3.3.5-std-def-alt1) не
отработал автодетект. В initrd отсутсвовали:

б.I) модули необходимые для монтирования корня (raid1, reiserfs);

б.II) скрипты, привносимые фичами raid, mdadm и lvm.

  Для исправления ситуации пришлось использовать загрузку с LiveCD
(altlinux-p7-rescue-20151212-x86_64.iso) для генерации рабочего initrd
через chroot в штатный корень (/dev, /sys и /proc смонтированы через
mount --bind) и ручной настройкой /etc/initrd.mk.

2. В процессе генерации initrd, оказалось что в моём случаи комбинация
фич mdadm и raid отрабатывает не корректно. Оказалось что у меня скрипт
/lib/initrd/trouble/050-mdstart (см.
<http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=features/mdadm/data/lib/initrd/trouble/050-mdstart;h=b56114bed05a8b077b0f2a669eb025d7480aa6ef;hb=refs/tags/0.8.6-alt1.M70P.2>),
требующий наличия файлов
/sys/block/md*/md/array_state (код возвращает ошибку при их отсутсвии),
отрабатывает до скрипта /lib/initrd/handlers/050-md_run (см.
<http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=features/raid/data/lib/initrd/handlers/050-md_run;h=52c648069e3c2e89500e7f262306607e4910248c;hb=refs/tags/0.8.6-alt1.M70P.2>),
выполняющим фактический вызов команды md_run. А у меня, каталоги
sys/block/md* появляются только после выполнения md_run... Вылечил
отключением фичи mdadm (и удалением пакета make-initrd-mdadm).

  Текущий порядок вызова скриптов обусловлен тем, что в функции run()
скрипта /lib/initrd/modules/080-loop (см.
<http://git.altlinux.org/gears/m/make-initrd.git?p=make-initrd.git;a=blob;f=data/lib/initrd/modules/080-loop;h=313f2396eed15694cc85a97815fd878ad4be5024;hb=refs/tags/0.8.6-alt1.M70P.2>)
содержимое /lib/initrd/trouble/ выполняется раньше, чем содержимое
/lib/initrd/handlers/.

3. После обновления udev до 201-alt1.M70P.5, udevd отказывался из-за
стартовать невозможности создать управляющий сокет в каталоге /run/udev
-- не проходит тест наличия каталога /run... Решил симлинком
/run -> /var/run (не знаю на сколько оно правильно).

4. Похоже что после создания симлинка /run -> /var/run каталог /var/run
начал чиститься... Это привело к невозможности старта dbus
(/etc/init.d/messagebus) при старте системы, из-за отсутствия
/var/run/dbus. Вижу следующие варианты лечения:

4.а) Тупой и временный -- выполнять mkdir /var/run/dbus при старте
сервера, с последующим стартом messagebus. (Для libvit`а этого достаточно.)

4.б) Добавить создание /var/run/dbus и /var/run/dbus/users (с
правильными правами) в /etc/init.d/messagebus.

4.в) Создать /lib/tmpfiles.d/dbus.conf, и использовать
/bin/systemd-tmpfiles для создания описанного во всех tmpfiles.d. Как
минимум данный вариант потребует выделения systemd-tmpfiles в подпакет и
создания init скрипта для него.

PS: Это всё первые впечатления... Разгрёб ещё не всё.

-- 

С уважением. Алексей.



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 230 bytes --]

                 reply	other threads:[~2016-01-18 23:37 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=569D7729.4050504@solin.spb.ru \
    --to=solo@solin.spb.ru \
    --cc=community@lists.altlinux.org \
    --cc=sysadmins@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git