Seite 1 von 1

Command READ(10) mit Raw Disc

Verfasst: 19.12.2008, 15:17
von pgwerner
Hallo Forum,

ich habe jetzt im Forum schon mehrere Threads zu diesem Thema gesehen, aber ehrlich gesagt habe ich noch nicht das gefunden, was mir weiter hilft. Wahrscheinlich verstehe ich noch zu wenig von der Materie. Um was geht es:

Wir haben hier in der Firma einen neuen Server von gekauft und wollte mal Virtualisierung ausprobieren. Da ich privat mit Linux VMWare Server und in der Firma schon lange VMWare WS nutze, wurde VMWare Server 1.0.8 mit OpenSUSE 11.0 als Host ausgewählt. Das System läuft soweit eigentlich gut, aber es galt unser altes EasyRAID einzubinden, und da fangen die Probleme an. Obwohl: Ich kann im Moment nicht beantworten, ob auch die virtuellen Platten das selbe Problem machen würden.

Jedenfalls ist das RAID als Raw Disc das Plattensystem, dass am meisten Trouble macht. Es kommen z.B. solche Meldungen vor, wobei das hier ein Extrem ist.:

SCSI0:2: Command READ(10) took 70.060 seconds (ok)

Die Phänomen wurden schon beschrieben: Das System geht komplett offline in solch einem Fall. Diese Meldung kommen gerade für das externe RAID sehr häufig vor. Dieses Phänomen tritt dann auf, wenn versucht wird, große Dateien vom Server via Netzwerk zu laden. Das Kopieren scheitert dann auch zumeist.

Jetzt treten mir hier alle auf die Füße, da ich die Virtualisierung eingeführt habe, und ich keine Lösung für das Problem finde. Ich weiß, dass wir eine wenig sinnvolle Konfiguration haben: Die VMs liegen auch einem SATA RAID 5, dass nicht so performant sein soll. Aber die virtuellen Platten sind nicht mein Problem, sondern eben der Zugriff auf das externe RAID - das zeiht wirklich alles runter. O.K. Ich will aber keine weiteren Romane schreiben. Daher meine Daten:

- Dual XEON E3110 3 GHz
- 4 GB RAM
- 2x Barracuda 500 GB im SATA RAID 5 zusammengefasst an einem Intel 82801
Controller
- ein S8 Easy RAID an einem Adaptec 29320 Controller
- NIC Intel 82573L
- Host: OpenSUSE 11.0 32Bit
- Guest: Win 2003 SBS mit Exchange, MS SQL 2005 mit 2 GB RAM.

Config:

vmnet1.hostonlyaddress = "172.16.160.1"
serverd.init.fullpath = "/usr/lib/vmware/serverd/init.pl"
authd.client.port = "904"
control.fullpath = "/usr/bin/vmware-cmd"
authd.fullpath = "/usr/sbin/vmware-authd"
loop.fullpath = "/usr/bin/vmware-loop"
libdir = "/usr/lib/vmware"
vmware.fullpath = "/usr/bin/vmware"
vmnet1.hostonlynetmask = "255.255.255.0"
vmdir = "/home/vm"
dhcpd.fullpath = "/usr/bin/vmnet-dhcpd"
serverd.fullpath = "/usr/sbin/vmware-serverd"
datastore.name = "local"
datastore.localpath = "/home/vm/"
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "100"
defaultVMPath = "/home/vm"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
Isolation.tools.copy.enable = "true"
Isolation.tools.paste.enable = "true"

VMX-Datei

#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "4"
scsi0.present = "TRUE"
scsi0.virtualDev = "lsilogic"
memsize = "2032"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "WinSBS2003.vmdk"
ide1:0.present = "TRUE"
ide1:0.fileName = "CD1.iso"
ide1:0.deviceType = "cdrom-image"
floppy0.fileName = "/dev/fd0"
Ethernet0.present = "TRUE"
Ethernet0.connectionType = "custom"
displayName = "AS-Server"
guestOS = "winnetbusiness"
autostop = "softpoweroff"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
scsi0:1.present = "TRUE"
scsi0:1.fileName = "WinSBS2003_Data.vmdk"
ide1:0.autodetect = "TRUE"
usb.present = "TRUE"
workingDir = "."
scsi0:0.redo = ""
scsi0:1.redo = ""
ethernet0.addressType = "generated"
uuid.location = "56 4d 94 ec 5b be f6 7c-b2 a7 a1 ef 09 59 78 fe"
uuid.bios = "56 4d 94 ec 5b be f6 7c-b2 a7 a1 ef 09 59 78 fe"
ethernet0.generatedAddress = "00:0c:29:59:78:fe"
ethernet0.generatedAddressOffset = "0"
ide1:0.startConnected = "FALSE"
tools.syncTime = "TRUE"
floppy0.startConnected = "FALSE"
ethernet0.vnet = "/dev/vmnet2"
autostart = "poweron"
scsi0:2.present = "TRUE"
scsi0:2.fileName = "Windows Server 2003 Small Business.vmdk"
scsi0:2.mode = "independent-persistent"
scsi0:2.deviceType = "rawDisk"
scsi0:2.redo = ""
monitor_control.log_vmsample = "TRUE"
MemTrimRate = "0"

Zum Abschluss die Frage: Was kann ich tun, um diese Langen Zugriffszeiten abzustellen?

Verfasst: 19.12.2008, 16:35
von e-e-e
Hallo,

setz' mal als erstes in der /etc/sysctl.config deines Hosts den Parameter vm.swappiness=0 und dann füge in die *.vmx der VMs folgende Zeilen ein :

MemAllowAutoScaleDown="FALSE"
mainMem.useNamedFile = "FALSE"
mainMem.partialLazyRestore = "FALSE"
mainMem.partialLazySave = "FALSE"

und in die Config:

sched.mem.pshare.enable = "FALSE"

ein. Damit habe ich zwischenzeitliche freezes beseitigen können und fahre damit ganz gut.

Verfasst: 22.12.2008, 12:56
von pgwerner
Hallo e-e-e,

danke erst einmal für deine Antwort. Ich bin gerade dabei, deine Vorschläge nachzuvollziehen. Der Hinweise mit der vm.swappinnes=0 fande ich sehr interssant. Wusste gar nicht, dass man den Kernel so beeinflussen kann. Habe es gleich eingestellt.

Wenn ich nun deine Vorschläge für die VMWare sehe, geht es darum, dass keine Snappshots gemacht werden sollen (mainMem.partialLazyRestore = "FALSE"
mainMem.partialLazySave = "FALSE"). Habe ich aber über die GUI komplett abgeschalten, so dass da eh nichts läuft (Disable snapshots).

mainMem.useNamedFile = "FALSE" - das wird doch benutzt, wenn *.vdk-Dateien und die mem-Files auf der selben Partition liegen, richtig? Bei mir ist es aber ein externes RAID als raw device eingebunden, dass die langen Zugriffszeiten hat. Das RAID, auf dem die vdk-Dateien liegen ist ein internes RAID, dass keine Probleme macht. Sollte daher auch wenig bei mir bewirken.

Was machen den die beiden Einstellungen MemAllowAutoScaleDown="FALSE" und
sched.mem.pshare.enable = "FALSE" ?