• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Memory Problem mit Xen unter OpenSuSE 11.1

Lösung:

"xm info" ergab, dass die dom0 den gesamten Speicher beanspruchte. Da autoballooning abgeschaltet ist, wurde auch kein Speicher mehr freigegeben.
In der Konfig xend-config.sxp ist eigentlich festgelegt, dass dom0 nur 512MB behalten soll. Warum dies ignoriert wird weiß ich noch nicht.

Der Befehl:
Code:
xm mem-set Domain-0 512
hat das Problem gelöst. Wie man das Bootsafe hinbekommt und ob das en Bug oder nur ein Konfigurationsfehler ist muss ich noch recherchieren.


-------------------


Hallo,

ich hoffe ich finde hier ein paar Leute, die mir bei meinem Xen Problem helfen können.

Ich habe hier eine DELL Poweredge 1950
- 16 GB RAM
- 2 XEON Quadcore CPUs

Auf diesem Geräte wurde OpenSUSE 11.1 als Xen-Server installiert. (minimale Installation keine grafische Oberfläche oder sonstiges)
Wenn ich nun mit dem Tool "vm-install" eine virtuelle Maschine installieren möchte geschieht folgendes:

Code:
xen-server:~ # vm-install
Allgemeine Einstellungen werden eingelesen...

Bitte geben Sie den Typ des Betriebssystems an das in der virtuellen Maschine
laufen wird.  Diese Eingabe definiert viele Vorgaben und hilft zu entscheiden
wie das paravirtualisierte Betriebssystem gestartet werden soll.
  1: Novell NetWare 6.5 SP6 und älter
  2: Novell Open Enterprise Server 2 (Linux)
  3: Novell Open Enterprise Server 2 (NetWare)
  4: PXE
  5: RedHat (andere Version)
  6: RedHat Enterprise Linux 3
  7: RedHat Enterprise Linux 4
  8: RedHat Enterprise Linux 5
  9: SUSE (andere Version)
 10: SUSE Linux Enterprise Desktop 10
 11: SUSE Linux Enterprise Desktop 11
 12: SUSE Linux Enterprise Server 8
 13: SUSE Linux Enterprise Server 9
 14: SUSE Linux Enterprise Server 10
 15: SUSE Linux Enterprise Server 11
 16: Solaris 9 und älter
 17: Solaris 10
 18: Windows (andere Version)
 19: Windows (andere, x64-Version)
 20: Windows NT
 21: Windows Server 2008
 22: Windows Server 2008 (x64)
 23: Windows Vista
 24: Windows Vista (x64)
 25: Windows XP, 2000, 2003
 26: Windows XP, 2003 (x64)
 27: anderes Betriebssystem
 28: openSUSE
 29: openSUSE 11
[29] > 

Wählen Sie einen Namen für die virtuelle Maschine aus.
[opensuse11] > 

Spezifieren the die Menge an Speicher und die Anzahl der Prozessoren die der VM
zugewiesen werden sollen.
Initialer Speicher [384] > 2048
Traceback (most recent call last):
  File "/usr/lib64/python2.6/logging/__init__.py", line 765, in emit
    self.stream.write(fs % msg.encode("UTF-8"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15: ordinal not in range(128)
Fehler: Der größte akzeptierte Wert ist 384.

Auch eine Installation mit der gesamten grafischen Xen-Suse-Yast Geraffelung brachte mich nicht weiter. Ich kann absoltut keine VM mit mehr als 384MB Ram erzeugen.
Ich habe auch schon versuch den Default-Wert unter
/usr/lib64/python2.6/site-packages/vminstall/VMDefaults.py
hochzusetzen, was vm-install jedoch nur zu der lapidaren Aussage
Fehler: none
verleitete. :(
Gibt es irgendwo eine Konfig-Datei oder einen Kernelparameter, an dem man schrauben muss?

Hier ein paar Daten zum System:
uname -a
Code:
Linux xen-server 2.6.27.19-3.2-xen #1 SMP 2009-02-25 15:40:44 +0100 x86_64 x86_64 x86_64 GNU/Linux

cat /boot/grub/menu.lst
Code:
# Modified by YaST2. Last modification on Tue Mar 17 16:30:26 UTC 2009
default 0
timeout 8
gfxmenu (hd0,0)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: xen###
title Xen -- openSUSE 11.1 - 2.6.27.19-3.2
    root (hd0,0)
    kernel /xen.gz
    module /vmlinuz-2.6.27.19-3.2-xen root=/dev/vg1/root resume=/dev/vg1/swap splash=silent showopts
    module /initrd-2.6.27.19-3.2-xen

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.19-3.2
    root (hd0,0)
    kernel /vmlinuz-2.6.27.19-3.2-default root=/dev/vg1/root resume=/dev/vg1/swap splash=silent showopts
    initrd /initrd-2.6.27.19-3.2-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.19-3.2
    root (hd0,0)
    kernel /vmlinuz-2.6.27.19-3.2-default root=/dev/vg1/root showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe
    initrd /initrd-2.6.27.19-3.2-default

cat /etc/xen/xend-config.sxp
Code:
# -*- sh -*-

#
# Xend configuration file.
#

# This example configuration is appropriate for an installation that 
# utilizes a bridged network configuration. Access to xend via http
# is disabled.  

# Commented out entries show the default for that entry, unless otherwise
# specified.

#(logfile /var/log/xen/xend.log)
#(loglevel DEBUG)


# The Xen-API server configuration.
#
# This value configures the ports, interfaces, and access controls for the
# Xen-API server.  Each entry in the list starts with either unix, a port
# number, or an address:port pair.  If this is "unix", then a UDP socket is
# opened, and this entry applies to that.  If it is a port, then Xend will
# listen on all interfaces on that TCP port, and if it is an address:port
# pair, then Xend will listen on the specified port, using the interface with
# the specified address.
#
# The subsequent string configures the user-based access control for the
# listener in question.  This can be one of "none" or "pam", indicating either
# that users should be allowed access unconditionally, or that the local
# Pluggable Authentication Modules configuration should be used.  If this
# string is missing or empty, then "pam" is used.
#
# The final string gives the host-based access control for that listener. If
# this is missing or empty, then all connections are accepted.  Otherwise,
# this should be a space-separated sequence of regular expressions; any host
# with a fully-qualified domain name or an IP address that matches one of
# these regular expressions will be accepted.
#
# Example: listen on TCP port 9363 on all interfaces, accepting connections
# only from machines in example.com or localhost, and allow access through
# the unix domain socket unconditionally:
#
#   (xen-api-server ((9363 pam '^localhost$ example\\.com$')
#                    (unix none)))
#
# Optionally, the TCP Xen-API server can use SSL by specifying the private
# key and certificate location:
#
#                    (9367 pam '' /etc/xen/xen-api.key /etc/xen/xen-api.crt)
#
# Default:
#   (xen-api-server ((unix)))


#(xend-http-server no)
(xend-unix-server yes)
#(xend-tcp-xmlrpc-server no)
#(xend-unix-xmlrpc-server yes)
# Only enable xend-relocation-server on trusted networks as it lacks
# encryption and authentication.
#(xend-relocation-server no)
#(xend-relocation-ssl-server no)

#(xend-unix-path /var/lib/xend/xend-socket)


# Address and port xend should use for the legacy TCP XMLRPC interface, 
# if xend-tcp-xmlrpc-server is set.
#(xend-tcp-xmlrpc-server-address 'localhost')
#(xend-tcp-xmlrpc-server-port 8006)

# SSL key and certificate to use for the legacy TCP XMLRPC interface.
# Setting these will mean that this port serves only SSL connections as
# opposed to plaintext ones.
#(xend-tcp-xmlrpc-server-ssl-key-file  /etc/xen/xmlrpc.key)
#(xend-tcp-xmlrpc-server-ssl-cert-file /etc/xen/xmlrpc.crt)


# Port xend should use for the HTTP interface, if xend-http-server is set.
#(xend-port            8000)

# Port xend should use for the relocation interface, if xend-relocation-server
# is set.
#(xend-relocation-port 8002)
# Port xend should use for the ssl relocation interface, if
# xend-relocation-ssl-server is set.
#(xend-relocation-ssl-port 8003)

# SSL key and certificate to use for the ssl relocation interface, if
# xend-relocation-ssl-server is set.
#(xend-relocation-server-ssl-key-file  /etc/xen/xmlrpc.key)
#(xend-relocation-server-ssl-cert-file  /etc/xen/xmlrpc.crt)

# Whether to use ssl as default when relocating.
#(xend-relocation-ssl no)

# Address xend should listen on for HTTP connections, if xend-http-server is
# set.
# Specifying 'localhost' prevents remote connections.
# Specifying the empty string '' (the default) allows all connections.
#(xend-address '')
#(xend-address localhost)

# Address xend should listen on for relocation-socket connections, if
# xend-relocation-server is set.
# Meaning and default as for xend-address above.
#(xend-relocation-address '')

# The hosts allowed to talk to the relocation port.  If this is empty (the
# default), then all connections are allowed (assuming that the connection
# arrives on a port and interface on which we are listening; see
# xend-relocation-port and xend-relocation-address above).  Otherwise, this
# should be a space-separated sequence of regular expressions.  Any host with
# a fully-qualified domain name or an IP address that matches one of these
# regular expressions will be accepted.
#
# For example:
#  (xend-relocation-hosts-allow '^localhost$ ^.*\\.example\\.org$')
#
#(xend-relocation-hosts-allow '')
(xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')

# The limit (in kilobytes) on the size of the console buffer
#(console-limit 1024)

##
# To bridge network traffic, like this:
#
# dom0: ----------------- bridge -> real eth0 -> the network
#                            |
# domU: fake eth0 -> vifN.0 -+
#
# use
#
# (network-script network-bridge)
#
# Your default ethernet device is used as the outgoing interface, by default. 
# To use a different one (e.g. eth1) use
#
# (network-script 'network-bridge netdev=eth1')
#
# The bridge takes on the ethernet device name by default.  To rename the
# bridge, use
#
# (network-script 'network-bridge bridge=<name>')
#
# It is possible to use the network-bridge script in more complicated
# scenarios, such as having two outgoing interfaces, with two bridges, and
# two fake interfaces per guest domain.  To do things like this, write
# yourself a wrapper script, and call network-bridge from it, as appropriate.
#
# SuSE users note:
# On openSUSE >= 11.1 and SLES >= 11, networks should be configured using
# native platform tool - YaST.  vif-bridge and qemu-ifup can be used to
# connect vifs to the YaST-managed networks. 
(network-script network-bridge)
#(network-script )

# The script used to control virtual interfaces.  This can be overridden on a
# per-vif basis when creating a domain or a configuring a new vif.  The
# vif-bridge script is designed for use with the network-bridge script, or
# similar configurations.
#
# If you have overridden the bridge name using
# (network-script 'network-bridge bridge=<name>') then you may wish to do the
# same here.  The bridge name can also be set when creating a domain or
# configuring a new vif, but a value specified here would act as a default.
#
# If you are using only one bridge, the vif-bridge script will discover that,
# so there is no need to specify it explicitly.
#
(vif-script vif-bridge)


## Use the following if network traffic is routed, as an alternative to the
# settings for bridged networking given above.
#(network-script network-route)
#(vif-script     vif-route)


## Use the following if network traffic is routed with NAT, as an alternative
# to the settings for bridged networking given above.
#(network-script network-nat)
#(vif-script     vif-nat)

# dom0-min-mem is the lowest permissible memory level (in MB) for dom0.
# This is a minimum both for auto-ballooning (as enabled by
# enable-dom0-ballooning below) and for xm mem-set when applied to dom0.
(dom0-min-mem 512)

# Whether to enable auto-ballooning of dom0 to allow domUs to be created.
# If enable-dom0-ballooning = no, dom0 will never balloon out.
(enable-dom0-ballooning no)

# In SMP system, dom0 will use dom0-cpus # of CPUS
# If dom0-cpus = 0, dom0 will take all cpus available
(dom0-cpus 1)

# Whether to enable core-dumps when domains crash.
#(enable-dump no)

# The tool used for initiating virtual TPM migration
#(external-migration-tool '')

# The interface for VNC servers to listen on. Defaults
# to 127.0.0.1  To restore old 'listen everywhere' behaviour
# set this to 0.0.0.0
#(vnc-listen '127.0.0.1')

# The default password for VNC console on HVM domain.
# Empty string is no authentication.
(vncpasswd '')

# The VNC server can be told to negotiate a TLS session
# to encryption all traffic, and provide x509 cert to
# clients enalbing them to verify server identity. The
# GTK-VNC widget, virt-viewer, virt-manager and VeNCrypt
# all support the VNC extension for TLS used in QEMU. The
# TightVNC/RealVNC/UltraVNC clients do not.
#
# To enable this create x509 certificates / keys in the
# directory /etc/xen/vnc
#
#  ca-cert.pem       - The CA certificate
#  server-cert.pem   - The Server certificate signed by the CA
#  server-key.pem    - The server private key
#
# and then uncomment this next line
# (vnc-tls 1)

# The certificate dir can be pointed elsewhere..
#
# (vnc-x509-cert-dir /etc/xen/vnc)

# The server can be told to request & validate an x509
# certificate from the client. Only clients with a cert
# signed by the trusted CA will be able to connect. This
# is more secure the password auth alone. Passwd auth can
# used at the same time if desired. To enable client cert
# checking uncomment this:
#
# (vnc-x509-verify 1)

# The default keymap to use for the VM's virtual keyboard
# when not specififed in VM's configuration
#(keymap 'en-us')

# Script to run when the label of a resource has changed.
#(resource-label-change-script '')

# Rotation count of qemu-dm log file.
#(qemu-dm-logrotate-count 10)

# Path where persistent domain configuration is stored.
# Default is /var/lib/xend/domains/
#
#(xend-domains-path /var/lib/xend/domains)

# Create an external lock file when domains are started.  Lock
# file is placed in xend-domains-lock-path/<domain_uuid> on domain
# startup and removed when domain is stopped.  By default, a lock file
# is not created.  Set to yes to enable lock file creation.
# Note that external locking mechanisms are no substitute for a cluster
# environment that protects shared resources, but may be useful in
# some circumstances nonetheless.
#
#(xend-domain-lock no)

# Path where domain lock is stored if xend-domain-lock is enabled.
# Note:  This path must be accessible to all VM Servers participating
#        in domain locking, e.g. by specifying a shared mount point.
#        Lock is placed in <xend-domain-lock-path>/<domain-uuid>.
# Default is /var/lib/xend/domains/
#
#(xend-domain-lock-path /var/lib/xend/domains)

# External locking utility for acquiring/releasing domain lock.
# By default /etc/xen/scripts/domain-lock will be used if
# xend-domain-lock is set to yes.  Set to path of custom
# locking utility to override the default.  Synopsis:
#
# lock-util <-l | -u | -s> [-n <vm-name>] [-i <vm-id>] [-p <phy-host>] path
#
# Utility should return zero on success, non-zero on error.
# -l lock     Acquire (create) lock file
# -u unlock   Remove lock file
# -s status   Default action. If lock file exists, print contents on
#             stdout and return 0)
# -p phy-host Name of physical host (dom0)
# -n vm-name  Name of domain
# -i vm-id    Id or UUID of domain
# path        A unique location for external lock must be specified
#
# The /etc/xen/scripts/domain-lock default utility will create
# <xend-domain-lock-path>/<vm-uuid>/lock and write <vm-name>, <vm-id>,
# and <vm-host> (if supplied) to the lock file in that order.
#
#(xend-domain-lock-utility domain-lock)

Für Ideen und Anregungen oder auch Fragen bin ich immer zu haben.
 

mkov

Newbie
hallo!

du brauchst nur deine menu.lst wie folgt anzupassen:

###Don't change this comment - YaST2 identifier: Original name: xen###
title Xen -- openSUSE 11.1 - 2.6.27.19-3.2
root (hd0,0)
kernel /xen.gz dom0_mem=512M
module /vmlinuz-2.6.27.19-3.2-xen root=/dev/vg1/root resume=/dev/vg1/swap splash=silent showopts
module /initrd-2.6.27.19-3.2-xen

nach einem reboot hat deine dom0 nur mehr 512 mb ram und kann auch nicht darüber hinaus. nachdem yast die config selbständig anpasst zb bei kernel/xen/... updates solltest du die config nach solchen updates bzw. vor dem notwendigen reboot zur sicherheit überprüfen und gegebenenfalls den parameter erneut eintragen.


michael
 
Oben