Page 1 of 1

Wo ist nur der RAM geblieben?

Posted: 2008-01-12 15:05
by daemotron
Ich habe einen Server mit 8 GiB RAM. Im Rettungssystem (ein 2.6.22er Kernel, 64Bit) finde ich die auch:

Code: Select all

lshw -short | grep memory
/0/0                                memory      64KB BIOS
/0/4/5                              memory      256KB L1 cache
/0/4/6                              memory      2MB L2 cache
/0/4/7                              memory      L3 cache
/0/29                               memory      8704MB System Memory
/0/29/0                             memory      2GB DIMM Synchronous 333 MHz (3.0 ns)
/0/29/1                             memory      2GB DIMM Synchronous 333 MHz (3.0 ns)
(auch wenn es mir zugegebenermaßen etwas spanisch vorkommt, dass er nur zwei Speicherbänke à 2 GiB anzeigt, in Summe aber 8 gefunden haben will).

Auch mit einem normalen 64-Bit Debian-Kernel (linux-image-2.6-amd64-k8-smp) finde ich den Speicher:

Code: Select all

lshw -short | grep memory
/0/0                                memory      64KB BIOS
/0/4/5                              memory      256KB L1 cache
/0/4/6                              memory      2MB L2 cache
/0/4/7                              memory      L3 cache
/0/29                               memory      8704MB System Memory
/0/29/0                             memory      2GB DIMM Synchronous 333 MHz (3.0 ns)
/0/29/1                             memory      2GB DIMM Synchronous 333 MHz (3.0 ns)
Boote ich den Server aber als Xen Dom0 (linux-image-xen-amd64), habe ich plötzlich nur noch 4 GiB RAM, obwohl dieser Kernel ebenfalls mit 64-Bit-Unterstützung daherkommt:

Code: Select all

lshw -short | grep memory
/0/0                                memory      64KB BIOS
/0/4/5                              memory      256KB L1 cache
/0/4/6                              memory      2MB L2 cache
/0/4/7                              memory      L3 cache
/0/29                               memory      4GB System Memory
/0/29/0                             memory      2GB DIMM Synchronous 333 MHz (3.0 ns)
/0/29/1                             memory      2GB DIMM Synchronous 333 MHz (3.0 ns)
Xen kann die oberen 4 GiB auch tatsächlich nicht ansprechen, es liegt also nicht an lshw; der Speicher steht tatsächlich nicht zur Verfügung (so scheitert das starten einer DomU mit >=4GiB RAM). Kann Xen generell nicht mehr Speicher verwenden, oder liegt es doch am Kernel bzw. was müsste ich an selbigem ändern, damit es funktioniert?

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 16:19
by Joe User
http://www.citrixxenserver.com/products/Pages/XenExpress.aspx wrote:...It supports dual socket servers with up to 4GB of RAM...

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 17:21
by enn
[Xen] Ram wird nicht vollständig erkannt
Ist vllt. auch interessant.

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 19:28
by daemotron
Das mit grub hatte ich auch schon an anderer Stelle gelesen. Versucht habe ich's, geändert hat es nichts. Allerdings kommt es mir extrem merkwürdig vor, dass Xen nur bis zu 4 GiB RAM unterstützen soll. Ein solches Limit für eine einzelne DomU könnte ich ja noch nachvollziehen, aber in Summe? Falls das stimmt, fliegt Xen raus :twisted:

P. S. @ Joe User: Dieses komische Express-Teil ist eine eingeschränkte Version des kommerziellen XenServers. Xen Source (die wirklich offene Variante) unterliegt eigentlich nicht solchen Beschränkungen, es lassen sich auch (theoretisch) beliebig viele Instanzen betreiben.

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 19:33
by Joe User
Die kostenpflichtigen XEN-Versionen können auch mit mehr RAM und CPUs umgehen, nur die Freeware (Express-Version) nicht.

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 19:47
by daemotron
Mea Culpa, ich habe an der falschen Stelle geschaut. Der Grub-Umbau hat doch was geholfen:

Code: Select all

xm dmesg
...
(XEN) Command line: /xen-3.0.3-1-amd64.gz dom0_mem=256M
(XEN) Physical RAM map:
(XEN)  0000000000000000 - 000000000009f400 (usable)
(XEN)  000000000009f400 - 00000000000a0000 (reserved)
(XEN)  00000000000e4000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 00000000ddfd0000 (usable)
(XEN)  00000000ddfd0000 - 00000000ddfde000 (ACPI data)
(XEN)  00000000ddfde000 - 00000000de000000 (ACPI NVS)
(XEN)  00000000fff00000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 0000000220000000 (usable)
(XEN) System RAM: 8159MB (8355260kB)
(XEN) Xen heap: 13MB (14208kB)
Ich werd's noch mal genauer dokumentieren, was für einen Schwachsinn ich da anrichten musste...

P. S. kleiner Nachtrag:

Code: Select all

grub> displaymem
displaymem
 EISA Memory BIOS Interface is present
 Address Map BIOS Interface is present
 Lower memory: 640K, Upper memory (to first chipset hole): 3072K
 [Address Range Descriptor entries immediately follow (values are 64-bit)]
   Usable RAM:  Base Address:  0x0 X 4GB + 0x0,
      Length:   0x0 X 4GB + 0xa0000 bytes
   Reserved:  Base Address:  0x0 X 4GB + 0xa0000,
      Length:   0x0 X 4GB + 0x60000 bytes
   Usable RAM:  Base Address:  0x0 X 4GB + 0x100000,
      Length:   0x0 X 4GB + 0x300000 bytes
sieht auch deutlich besser aus als vorher...

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 20:00
by Joe User
OK, in den FAQ zu XEN (GPL) wird erwähnt, dass für >4GB RAM PAE genutzt wird, insofern besteht obiges Limit nur für die Express-Version. Was grub mit der Menge an RAM zu tun hat, will sich mir allerdings (noch) nicht erschliessen...

Re: Wo ist nur der RAM geblieben?

Posted: 2008-01-12 20:53
by daemotron
Um genau zu sein, es liegt an der Kombination Grub/Xen. Ein normaler Kernel holt sich die Memory Map vom BIOS, während der Dom0-Kernel nur das sieht, was er vom Xen-Image gemeldet bekommt. Und das wiederum bezieht sich auf das, was es von Grub übergeben bekommt...

Das ganze ist übrigens auch als Bugreport bei Debian zu finden (siehe http://bugs.debian.org/cgi-bin/bugrepor ... =419994%22). Ich habe jetzt ein funktionierendes Grub-Paket sowie den Patch auf meinen Server gepackt. Wer's haben will: http://files.my-universe.com/debian/etch/xen/ Eine Anleitung zum selber nachbauen habe ich in mein Blog gepackt.

Als Lesestoff zum Thema Xen und Speicherprobleme sei sonst noch dieser Thread der Xen-Mailingliste empfohlen: http://lists.xensource.com/archives/htm ... 00602.html

P. S.: Das Problem scheint übrigens spezifisch für MSI-Boards zu sein. In meinem Server ist eines verbaut (MS-7368), und Berichte über das Phänomen bezogen sich immer entweder auf MSI- oder Supermicro-Boards.