Старый глюк - лучше новых двух. (xen, Adaptec ServeRAID 8k-l)

Модератор: Модераторы разделов

Ответить
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Старый глюк - лучше новых двух.

Сообщение dimbor »

Пошел второй год плотной дружбы с виртуализацией и xen в частности. Поднято за десяток серверов. Но самый первый сервер так и остается непобежденным. Обидно, да и приперло сильно.
IBM x3400 грузится с сабжевого RAID1. Ядро Dom0 под гентой непосредствено грузится и функционирует. Посредством aacraid. Но как только надставляю гипервизор, он не может найти корневого раздела для загрузки того самого dom-0 и уходит в перезагрузку. По крайней мере, такое мнение сложилось из попыток чтения мелькающих при этом сообщений. Быстро мелькающих.
Вопрос первый, как бы мне их читать по-уверенней, с учетом того, что записывать их еще некуда?
Гугление на тему принесло только маловнятные советы прицепить модуль aacraid к гипервизору. Прицепить-то я его прицеплю. Но сначала хотелось бы прояснить теоретическую часть. Вроде как ксеновский-гипервизор гордо рулит виртуализацией, а всей остальной аппаратурой занимается dom0.
А что-же тогда с доступом к корневому разделу? Как загрузка то происходит? Это потом что-ли гипервизорский aacraid контроллер отпускает, а из dom0 он снова грузится? Или по другому как-то? Пока в голове сплошной сумбур.

ЗЫ: aacraid ни на что поменять не получилось, как давно было здесь посоветованно.


Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 876
ОС: gentoo

Re: Старый глюк - лучше новых двух.

Сообщение vr13 »

dimbor писал(а):
06.04.2013 02:28
IBM x3400 грузится с сабжевого RAID1. Ядро Dom0 под гентой непосредствено грузится и функционирует. Посредством aacraid. Но как только надставляю гипервизор, он не может найти корневого раздела для загрузки того самого dom-0 и уходит в перезагрузку. По крайней мере, такое мнение сложилось из попыток чтения мелькающих при этом сообщений. Вопрос первый, как бы мне их читать по-уверенней, с учетом того, что записывать их еще некуда?

настроить serial xen console. как сделаете, выложите куда-нить вывод загрузки гипервизора и вывод консоли dom0, - посмотрим

вообще-то aacraid (и ибм-овской его клон serveraid) давно работают (мне удавалось это запускать на xen 3.3x с ядрами 2.6.18 по 2.6.28, включительно (потом кончился проект, где была такая железка, и текущего состояния не знаю)
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Старый глюк - лучше новых двух.

Сообщение Bluetooth »

Но сначала хотелось бы прояснить теоретическую часть. Вроде как ксеновский-гипервизор гордо рулит виртуализацией, а всей остальной аппаратурой занимается dom0.
А что-же тогда с доступом к корневому разделу? Как загрузка то происходит? Это потом что-ли гипервизорский aacraid контроллер отпускает, а из dom0 он снова грузится? Или по другому как-то? Пока в голове сплошной сумбур.
Поправьте меня, если я не прав, но по-идее гипервизор к диску напрямую не обращается вообще.
При загрузке грубом запускается гипервизор, затем гипервизор запускает dom0 ядро, а уже оно и идет как обычно за рутовым разделом. И гипервизор все время с диском общается через dom0 ядро.

Ну а по существу - лог консоли нужен. Ну и вопрос: без ксена и с ксеном грузится с одним и тем же initramfs? Попробуйте настроить так, чтобы он при ненахождении рута не перегружался, а давал полазить по initramfs, и поглядите, что там есть, а чего нет.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 876
ОС: gentoo

Re: Старый глюк - лучше новых двух.

Сообщение vr13 »

Bluetooth писал(а):
08.04.2013 10:23
Но сначала хотелось бы прояснить теоретическую часть
Поправьте меня, если я не прав, но по-идее гипервизор к диску напрямую не обращается вообще.

прав. еще "правее" - гипервизор с диском вообще никак не "общается" (про недоделанный xenpaging пока не говорим)
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Старый глюк - лучше новых двух.

Сообщение dimbor »

Спасибо за идеи и подсказки. Лог будет, как только поборю ipmi SoL - что-то он мне пока мусор гонит. Тип терминала надо подбирать наверное, гуглю усиленно.
C initramfs не понял, чье оно - от ксена? Так все монолитное же - без initrd.
Спасибо сказали:
Аватара пользователя
Bluetooth
Сообщения: 4395
Статус: Блюзовый
ОС: Debian Squeeze amd64

Re: Старый глюк - лучше новых двух.

Сообщение Bluetooth »

dimbor писал(а):
08.04.2013 23:54
Спасибо за идеи и подсказки. Лог будет, как только поборю ipmi SoL - что-то он мне пока мусор гонит. Тип терминала надо подбирать наверное, гуглю усиленно.
C initramfs не понял, чье оно - от ксена? Так все монолитное же - без initrd.

Нет, initramfs ядровское. Раз его нет, то просто шелл после инициализации ядра. Можно посмотреть, что за драйвера подгрузились, а какие нет, можно ли ручками продолжить загрузку(бывает, что скрипт отрабатывает неверно, а руками грузится - тогда надо понять, что же там не так :) )
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Старый глюк - лучше новых двух.

Сообщение dimbor »

Победил ipmi + sol, получил лог загрузки ксена. Как оказывается, предположение вынесенное в название темы - неверное. Дело было не в бобине.

Код: Выделить всё

 \ \/ /___ _ __   | || |  |___ \  / |
  \  // _ \ '_ \  | || |_   __) | | |
  /  \  __/ | | | |__   _| / __/ _| |
 /_/\_\___|_| |_|    |_|(_)_____(_)_|

(XEN) Xen version 4.2.1 (@dimbor.ru) (gcc (Gentoo 4.5.3-r2 p1.0, pie-0.4.7) 4.5.3) Fri Apr  5 02:31:59 MSK 2013
(XEN) Latest ChangeSet: unavailable
(XEN) Bootloader: GNU GRUB 0.97
(XEN) Command line: dom0_mem=2048M loglvl=all guest_loglvl=all console=vga,com2 com2=115200,8n1,pci iommu=0 no-bootscrub
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: none; EDID transfer time: 2 seconds
(XEN)  EDID info not retrieved because no DDC retrieval method detected
(XEN) Disc information:
(XEN)  Found 2 MBR signatures
(XEN)  Found 2 EDD information structures
(XEN) Xen-e820 RAM map:
(XEN)  0000000000000000 - 000000000009c400 (usable)
(XEN)  000000000009c400 - 00000000000a0000 (reserved)
(XEN)  00000000000d2000 - 00000000000d4000 (reserved)
(XEN)  00000000000e0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 00000000bff60000 (usable)
(XEN)  00000000bff60000 - 00000000bff6a000 (ACPI data)
(XEN)  00000000bff6a000 - 00000000bff80000 (ACPI NVS)
(XEN)  00000000bff80000 - 00000000c0000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fec00000 - 000(XEN) ACPI: RSDP 000F6710, 0014 (r0 PTLTD )
(XEN) ACPI: RSDT BFF639D6, 003C (r1 PTLTD    RSDT    6040000  LTP        0)
(XEN) ACPI: FACP BFF69E48, 0074 (r1 INTEL            6040000 PTL         3)
(XEN) ACPI: DSDT BFF64DFE, 504A (r1  Intel BLAKFORD  6040000 MSFT  100000E)
(XEN) ACPI: FACS BFF6AFC0, 0040
(XEN) ACPI: APIC BFF69EBC, 0090 (r1 PTLTD       APIC    6040000  LTP        0)
(XEN) ACPI: MCFG BFF69F4C, 003C (r1 PTLTD    MCFG    6040000  LTP        0)
(XEN) ACPI: BOOT BFF69F88, 0028 (r1 PTLTD  $SBFTBL$  6040000  LTP        1)
(XEN) ACPI: SPCR BFF69FB0, 0050 (r1 PTLTD  $UCRTBL$  6040000 PTL         1)
(XEN) ACPI: SSDT BFF63A12, 13EC (r1  PmRef    CpuPm     3000 INTL 20050228)
(XEN) System RAM: 4094MB (4193264kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000140000000
(XEN) Domain heap initialised
(XEN) found SMP MP-table at 000f6740
(XEN) DMI present.
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x1008
(XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[fe10,0], pm1x_evt[1000,0]
(XEN) ACPI:                  wakeup_vec[bff6afcc], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
(XEN) Processor #0 7:7 APIC version 20
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
(XEN) Processor #1 7:7 APIC version 20
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) Processor #2 7:7 APIC version 20
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
(XEN) Processor #3 7:7 APIC version 20
(XEN) ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
(XEN) ACPI: IOAPIC (id[0x04] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 4, version 32, address 0xfec00000, GSI 0-23
(XEN) ACPI: IOAPIC (id[0x05] address[0xfec80000] gsi_base[24])
(XEN) IOAPIC[1]: apic_id 5, version 32, address 0xfec80000, GSI 24-47
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 2 I/O APICs
(XEN) Table is not found!
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 4 CPUs (0 hotplug CPUs)
(XEN) IRQ limits: 48 GSI, 736 MSI/MSI-X
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Detected 1995.040 MHz processor.
(XEN) Initing memory sharing.
(XEN) mce_intel.c:1239: MCA Capability: BCAST 1 SER 0 CMCI 0 firstbank 1 extended MCE MSR 0
(XEN) Intel machine check reporting enabled
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - 1b
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-1b
(XEN) I/O virtualisation disabled
(XEN) r Device)
[    0.054196] ACPI: Interpreter enabled
[    0.054445] ACPI: (supports S0 S5)
[    0.054764] ACPI: Using IOAPIC for interrupt routing
[    0.062089] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
(XEN) mm.c:863:d0 Non-privileged (0) attempt to map I/O space 000fec80
(XEN) mm.c:5055:d0 ptwr_emulate: could not get_page_from_l1e()
[    0.062579] BUG: unable to handle kernel paging request at ffff880075a6d0b0
[    0.062930] IP: [<ffffffff81037e7f>] __xen_set_pte+0x4c/0x58
[    0.062994] PGD 1c0d067 PUD be4067 PMD d92067 PTE 8010000075a6d065
[    0.062994] Oops: 0003 [#1] SMP
[    0.062994] CPU 0
[    0.062994] Modules linked in:
[    0.062994]
[    0.062994] Pid: 1, comm: swapper/0 Not tainted 3.4.38-gentoo #1 IBM IBM eServer x3400-[7976KHG]-/M97IP
[    0.062994] RIP: e030:[<ffffffff81037e7f>]  [<ffffffff81037e7f>] __xen_set_pte+0x4c/0x58
[    0.062994] RSP: e02b:ffff880075a9d4d0  EFLAGS: 00010296
[    0.062994] RAX: 00000000ffffffff RBX: ffff880075a6d0b0 RCX: 80000000fec80463
[    0.062994] RDX: 0000000000000000 RSI: 80000000fec80463 RDI: ffff880075a6d0b0
[    0.062994] RBP: ffff880075a9d4f0 R08: 0000000000000000 R09: ffffffff81ca3080
[    0.062994] R10: ffffffff81126e77 R11: 0000000000000001 R12: 80000000fec80463
[    0.062994] R13: 80000000fec80463 R14: ffffc90000616000 R15: ffffffff81c31930
[    0.062994] FS:  0000000000000000(0000) GS:ffff88007fa00000(0000) knlGS:0000000000000000
[    0.062994] CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
[    0.062994] CR2: ffff880075a6d0b0 CR3: 0000000001c0c000 CR4: 0000000000002660
[    0.062994] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[    0.062994] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[    0.062994] Process swapper/0 (pid: 1, threadinfo ffff880075a9c000, task ffff880075aa0000)
[    0.062994] Stack:
[    0.062994]  ffffc90000617000 ffff880075a9d4e8 ffffc90000617000 ffff880075a6d0b0
[    0.062994]  ffff880075a9d530 ffffffff81037ee5 ffffffff81126e77 ffffc90000617000
[    0.062994]  ffffc90000617000 ffffc90000616000 ffff880077029018 ffffffff81c0cc90
[    0.062994] Call Trace:
[    0.062994]  [<ffffffff81037ee5>] xen_set_pte_at+0x5a/0x67
[    0.062994]  [<ffffffff81126e77>] ? alloc_vmap_area+0x70/0x2a8
[    0.062994]  [<ffffffff812e9206>] ioremap_page_range+0x246/0x2ac
[    0.062994]  [<ffffffff810642a2>] __ioremap_caller+0x276/0x31b
[    0.062994]  [<ffffffff81064368>] ioremap_cache+0xf/0x11
[    0.062994]  [<ffffffff8161e45b>] acpi_os_map_memory+0xf0/0x16c
[    0.062994]  [<ffffffff813611ce>] acpi_ex_system_memory_space_handler+0xe2/0x1e3
[    0.062994]  [<ffffffff813610ec>] ? acpi_ex_do_logical_op+0x16f/0x16f
[    0.062994]  [<ffffffff8135ae6b>] acpi_ev_address_space_dispatch+0x1b2/0x200
[    0.062994]  [<ffffffff8135b585>] ? acpi_os_allocate_zeroed+0x2d/0x2d
[    0.062994]  [<ffffffff8135e4d7>] acpi_ex_access_re


В этот момент сервак уходит в ребут. До загрузки dom0 не доходит дело. Как предполагается, xen упирается в acpi.
Сейчас буду его мучить параметрами ядра.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Старый глюк - лучше новых двух.

Сообщение dimbor »

Упс! Да это оказалось просто ведро с глюками какое-то. При acpi=off виснет уже dom0. Нда.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 876
ОС: gentoo

Re: Старый глюк - лучше новых двух.

Сообщение vr13 »

dimbor писал(а):
09.04.2013 04:18
В этот момент сервак уходит в ребут. До загрузки dom0 не доходит дело. Как предполагается, xen упирается в acpi.
Сейчас буду его мучить параметрами ядра.

не так: ошибается все-таки ядро dom0 (не без участия гипервизора, конечно):

Код: Выделить всё

(XEN) mm.c:863:d0 Non-privileged (0) attempt to map I/O space 000fec80
(XEN) mm.c:5055:d0 ptwr_emulate: could not get_page_from_l1e()
[    0.062579] BUG: unable to handle kernel paging request at ffff880075a6d0b0
[    0.062930] IP: [<ffffffff81037e7f>] __xen_set_pte+0x4c/0x58
[    0.062994] PGD 1c0d067 PUD be4067 PMD d92067 PTE 8010000075a6d065
[    0.062994] Oops: 0003 [#1] SMP

и ошибку печатает - тоже ядро. странно выглядит консольный вывод - как будто пропущено что-то

мне думается, что попытка поиграть с параметрами ядра dom0 в части acpi и управления памятью - правильное направление деятельности. кроме этого:
  • поискать, есть ли апдейт биоса вашего сервера ("старичок", все-таки)
  • попробовать ядро dom0 3.7+, гипервизор 4.2+, кажется, использует более актуальную кодовую базу ядра linux, вполне вероятно, вы "наступили" на регрессионные грабли
  • убрать-поставить pv_ops (CONFIG_PARAVIRT_GUEST, CONFIG_PARAVIRT, CONFIG_PARAVIRT_SPINLOCKS)
  • попробовать поставить x86-32 и посмотреть, что получится
  • написать/открыть баг в xen-devel ml
на всякий случай, покажите тут те части dmesg baremetal-загрузки, где говорится про e820 map и acpi
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Старый глюк - лучше новых двух.

Сообщение dimbor »

vr13 писал(а):
09.04.2013 10:41
поискать, есть ли апдейт биоса вашего сервера ("старичок", все-таки)

Последний стоит, это я первым делом.

vr13 писал(а):
09.04.2013 10:41
попробовать ядро dom0 3.7+, гипервизор 4.2+, кажется, использует более актуальную кодовую базу ядра linux, вполне вероятно, вы "наступили" на регрессионные грабли

Собрал 3.7.10, ксен и так был последний.
Остальные пункты в процессе.

vr13 писал(а):
09.04.2013 10:41
и ошибку печатает - тоже ядро. странно выглядит консольный вывод - как будто пропущено что-то

Ага, тапком меня по лысине, пострадал от собственной спешки - что стоило еще три минуты подождать? Лог был не полный. Я то думал, что если на родной консоли нумлок залип, это вис. А оказалось - раздумья, потом ругань и перезагрузка.
Все-таки на aacraid облом. Это при acpi=off у dom0.

...
[ 0.153329] pci 000[ 181.978056] aacraid: aac_fib_send: first asynchronous command timed out.
[ 181.978056] Usually a result of a PCI interrupt routing problem;
[ 181.978056] update mother board BIOS or consider utilizing one of
[ 181.978056] the SAFE mode kernel options (acpi, apic etc)
[ 362.013056] aac_fib_free, XferState != 0, fibptr = 0xffff880074a70000, XferState = 0x800812ad
[ 362.032242] aacraid: probe of 0000:03:00.0 failed with error -110
...


И действительно, такое впечатление, что еще и BMC sol тоже зависает на момент первого взвиса. И в консоль между 0.153329 и 181.978056 было выведено что-то еще. Мистика какая-то.
На ключевые слова лога ничего кроме вопросов без ответа не гуглится.

Цепляю целиком получившийся лог. И начальный, и dmesg.
Вложения
xenlog_fast_reboot.txt.gz
(3.3 КБ) 7 скачиваний
dmesg_bm_dom0.gz
(16.6 КБ) 7 скачиваний
xenlog_noacpi.txt.gz
(5.21 КБ) 7 скачиваний
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 876
ОС: gentoo

Re: Старый глюк - лучше новых двух.

Сообщение vr13 »

на сколько хватило ума, времени и терпения, посмотрел: думается, что дело не в scsi-контроллере, а в bios'е: обратите внимание, сколько всего фиксится при "железной" загрузке ядра - и таблицы acpi, и распределение памяти

гипервизор "не такой умный", и строит по своему разумению виртуальную железку для dom0 неверно (замечено, например, что dom0 недодается 1gb ram 0x100000000 - 0x140000000). ядро же, получив неверную информацию, тоже делает что-то криво и в результате получается:

Код: Выделить всё

[    0.067079] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
(XEN) mm.c:863:d0 Non-privileged (0) attempt to map I/O space 000fec80
[    0.067589] BUG: unable to handle kernel paging request at  ---->>> ffffc90000616000 <<<---
[    0.067929] IP: [<ffffffff813abc88>] acpi_ex_system_memory_space_handler+0x1bc/0x1e3

обращение к несуществующей памяти, ну и ошибка, соответственно

вполне вероятно, что использование 32-битной инсталляции (xen+pae, dom0) - поможет.

для x86_64 можно попытаться уменьшить память для dom0, вдруг поможет? я собсно всегда так делаю, правда из других соображений - меньше мучить домашнюю скотинку:

Код: Выделить всё

(XEN) Command line: console=vga dom0_mem=max:384M

и одновременно убираю dom0 ballooning (CONFIG_XEN_BALLOON=n) и autoballoon=0 в /etc/xen/xl.conf - dom0 мне нужен только для работы минимально необходимой xen инфраструктуры. повторю, это экспериментальная и домашняя инсталляция, поэтому не утверждаю что так обязательно надо делать
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: Старый глюк - лучше новых двух.

Сообщение dimbor »

vr13 писал(а):
11.04.2013 22:02
на сколько хватило ума, времени и терпения, посмотрел: думается, что дело не в scsi-контроллере, а в bios'е: обратите внимание, сколько всего фиксится при "железной" загрузке ядра - и таблицы acpi, и распределение памяти

Благодарю за пинок в нужную сторону. Следующую ночку посвящу параметру pci=nocrs и memmap. Гугл знает победы, таким образом свершенные.
xen по идее должен на эти параметры реагировать.
Спасибо сказали:
Ответить