Jump to content

Recording Service virtualisiert auf ESXi 5.5. Ein Erfahrungsbericht.


ccdmas

Recommended Posts

Posted

Hallo.

 

Da mich dieses Phänomen mehrere Tage meines Lebens gekostet hat, wollte ich das hier einfach mal kurz aufschreiben:

 

In kurz: Den Recording Service mit DVBSky 960 USB Sat Empfängern auf Windows 7 / 32bit in VMWare ESXi 5.5 (auf ESXi zertifiziertem Hp Proliant 310 Gen8) zu virtualisieren geht:

 

NICHT

 

Die Symptome sind vollkommen zufällig auftretende, jede Logik schlagende Empfangsstörungen, bis hin zum kompletten Abbruch der Streams, während es manchmal auch stundenlang völlig einwandfrei funktioniert. Sichtbar war dies in Transedit direkt auf dem RS PC durch erst vereinzelt, und dann immer schneller ansteigende "missing" Pakete auf alen Transpondern.

 

Da hier die gesamte Anlage, von der Sat Schüssel bis zum PC auf dem der DVBViewer läuft und dem gesamten Netzwerk im Haus dazwischen alles komplett neu ist, war die Fehlersuche nicht eben einfach, da es alles sein konnte, vom LNB über die Ausrichtung oder Befestigung der Schüssel, die DVBSKy Empfänger bis zum Wiedergabe PC. Es musste also Trial und Error im Außschlußverfahren her. Also habe ich zuerst einen Fernseher mit Sat Tuner mit an die Sat Anlage angeschlossen (zwei FUBA Quads auf Astra 19.2 und 28.2)angeschlossen. Der Empfang auf dem Fernseher war zu allen Zeiten immer perfekt, mit einer angezeigten Signalstärke von 86% bzw. 100%, und einer konstanten Qualität von 100%. Nachdem ich sogar die Kabel quergetauscht hatte, und das so blieb, konnte ich die Sat Anlage einigermaßen sicher außschließen. Es sei den der Tuner des LG Fernsehers wäre derartig viel besser als die DVBSky Karten.

 

Also fing ich an Netzwerksniffer laufen zu lassen, Netzwerkkabel und Switche zu überprüfen, auf dem (virtuellen) PC mit dem Recording Service Treiber zu tauschen usw, alles ohne echtes greifbare Ergebnis, zumal eben das Problem so sporadisch ohne Logik auftrat.

 

Schlußendlich habe ich mir einen uralten Laptop mit einem Pentium M 1500 und Win7 / 32 geschnappt der ncoh rumlag, und erst eine, später beide DVBSky Karten an diesen angeschlossen, und siehe da... alle Probleme weg. Um tatsächlich die Virtualisierung selber als Grund auszumachen, habe ich dann nochmal diese Windows Installation mit dem VMWare Konverter so wie sie war in die VM kopiert, und dort waren die Probleme wieder da.

 

Es ist also ganz eindeutig die Virtualisierung selber. Wenn ich ganz viel Zeit habe, versuche ich noch rauszukriegen was genau das Problem ist, aber ich vermute ganz stark die USB Anbindung. Offiziell sind timingkritische Audio und Video Karten in VMWare auch nicht unterstützt, jetzt weiß ich vermutlich warum.

 

 

Posted (edited)

Du kannst ja noch einen weiteren Versuch mit einem xhci Treiber machen. Allerdings bin ich sehr skeptisch daß das jemals funktionieren wird - das liegt wahrscheinlich am isochronen Datentransfer.

 

Eine interessante Alternative wär ein USB Server mit LAN-Anschluß (Silex, mit Support für Isochron. Transfer).

Edited by Frank Sommer
Posted

Hallo,

 

sehr interessant, da ich auch ein Problem mit DVB Streams im Recording Service 1.30.1 und ESXi 5.5. (virtualisiertes Win7 32bit) habe.

 

Ich nutze allerdings einen "Digital Devices Octopus NET Netzwerktuner" mit 4xDVB-C2 Tuner ("SAT">IP) , d.h. im Recording Service habe ich IP basierte RTSP Quellen und kein USB.

 

Mein Problem ist, dass momentan nur noch 13% Signalstärke angezeigt wird und dementsprechend eine Wiedergabe unmöglich ist. Interessanterweise habe ich die virtualisierte Maschine neu installiert und dabei die Anzahl der virtuellen CPUs erhöht und seitdem Probleme, vorher liefern vor den 4 Tunern wenigstens 3 Tuner (Signalstärke 90%) und lediglich einer funktionierte gar nicht.

 

Ich hätte eigentlich nicht gedacht, dass die Virtualisierung so eine Auswirkung auf den IP basierten DVB Stream hat.

 

Nach diesem Artikel habe ich auf einem nicht virtualisierten Win7 den Recording Services installiert und jetzt funktionieren alle 4 Tuner. Den Netzwerktuner konnte ich allerdings als Fehlerquelle quasi schon vorher ausschließen, da ich bei einem native Zugriff vom Client auf die Tuner gar keine Probleme hatte.

 

Gruß,

Marco

Posted

Die Idee mit dem XHCI Modus hatte ich auch schon, und werde ich auch ausprobieren. Ebenso werde ich mal die CPU Ressourcen für die VM fest zuweisen, evtl. auch mal nur eine CPU, Stromsparmodi einschränken usw. Aber vermutlich ist es wirklich der isochrone Transfer der hier irgendwann schiefgeht. Ein USB-Netzanschluß klingt zwar lustig, ist aber in Anbetracht der Tatsache dass ich für das Geld (bzw. gar kein Geld wen ich was ausgedientes nutze), locker einen "echten" PC bekomme von dem ich schon weiß das er funktioniert für's erste nichts was ich ausprobieren will.

 

Zu dem Problem mit den RTSP Devices: Ich weiß es zwar nicht sicher, aber ich glaube nicht, dass das ursächlich an der Virtualisierung liegt. Das klingt mir fast eher nach Netzwerkproblemen zwischen dem Sat Tuner und der VM.

 

Ich werde auch mal Spaßeshalber den aktuellen physischen RS auf der VM als RTSP devices eintragen, mal sehen ob die Fehler dan auch noch bestehen. Ich vermute nein, und das würde dann mit fast 100% Sicherheit USB als Fehlerquelle bestätigen.

Posted

..mit isochron hat das wohl weniger zu tun, aber wenn zu wenig rüberkommt, ist es letztlich egal, wie man es nennt ;)

Posted

..mit isochron hat das wohl weniger zu tun, aber wenn zu wenig rüberkommt, ist es letztlich egal, wie man es nennt ;)

Du sprichst in Rätseln....

Posted

Du sprichst von isochronem transfer..

Posted

Ja, genau? USB Geräte die isochronen Transfer nutzen sind explizit in ESXi *nicht* supportet.

 

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1021345

 

Ich weiß nicht ob die DVBSky Karten isochronen Transfer nutzen, aber es ist nicht unwahrscheinlich. Ebenso steht zu vermuten, dass VMWare einen Grund dafür hat, solche Geräte explizit vom USB passthrough auszuschließen.

 

Aber nochmal, was genau wolltest Du uns denn sagen?

Posted

..dass es kein isochroner transfer mode ist.

Posted

Und das weißt Du woher? Von der Art der Daten die dort übertragen werden wäre alles andere als isochroner Transfer eigentlich Quatsch. Und laut lsusb oder USB Device Tree Viewer ist mindestens ein USB Endpoint in der DVBSKY tatsächlich isochron.

 

=========================== USB Port2 ===========================
Connection Status : Device is connected
Port Chain : 4-2
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : DVBSky S960/S860 - DVBS2/S USB
Device Path : \\?\usb#vid_0572&pid_6831#5&3248e48a&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
Device ID : USB\VID_0572&PID_6831\5&3248E48A&0&2
Driver KeyName : {4d36e96c-e325-11ce-bfc1-08002be10318}\0009 (GUID_DEVCLASS_MEDIA)
Driver : E:\Windows\system32\drivers\BstDtv3.sys (Version: 1.35.1212.0 Date: 2014-12-12)
Driver Inf : E:\Windows\inf\oem22.inf
Legacy BusType : PNPBus
Class : MEDIA
Service : BstDtv3_SRV
Enumerator : USB
Location Info : Port_#0002.Hub_#0004
Location IDs : PCIROOT(0)#PCI(1D07)#USBROOT(0)#USB(2)
Container ID : {5ec7e1c6-8d0f-11e4-847c-806e6f6e6963}
Manufacturer Info : Bestunar Inc.
Capabilities : Removable, SurpriseRemovalOK
Address : 2
Problem Code : 0
Power State : D0 (supported: D0, D3, wake from D0)
---------------- Connection Information ---------------
Connection Index : 0x02
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01
Device Address : 0x02
Is Hub : 0x00 (no)
Number Of Open Pipes : 0x03 (3)
Device Bus Speed : 0x02 (High-Speed)
Pipe0ScheduleOffset : 0x00 (0)
Pipe1ScheduleOffset : 0x00 (0)
Pipe2ScheduleOffset : 0x00 (0)
------------------ Device Descriptor ------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.00)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x0572 (Conexant Systems, Inc.)
idProduct : 0x6831
bcdDevice : 0x00
iManufacturer : 0x01
Language 0x0409 : "Bestunar"
iProduct : 0x02
Language 0x0409 : "S960"
iSerialNumber : 0x03
Language 0x0409 : "20120511"
bNumConfigurations : 0x01
------------------ String Descriptors -----------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
------ String Descriptor 1 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Bestunar"
------ String Descriptor 2 ------
bLength : 0x0A (10 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "S960"
------ String Descriptor 3 ------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "20120511"
------ String Descriptor 4 ------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Default"
-------------- Configuration Descriptor ---------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0045 (69 bytes)
bNumInterfaces : 0x01
bConfigurationValue : 0x01
iConfiguration : 0x04
Language 0x0409 : "Default"
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0xFA (500 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x03 (3 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x01
bInterfaceProtocol : 0x01
iInterface : 0x00
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x01
bNumEndpoints : 0x03 (3 Endpoints)
bInterfaceClass : 0xFF (Vendor Specific)
bInterfaceSubClass : 0x01
bInterfaceProtocol : 0x01
iInterface : 0x00
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x01 (Direction=OUT EndpointID=1)
bmAttributes : 0x02 (TransferType=Bulk)
wMaxPacketSize : 0x200 (max 512 bytes)
bInterval : 0x00 (never NAKs)
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x82 (Direction=IN EndpointID=2)
bmAttributes : 0x01 (TransferType=Isochronous SyncType=None EndpointType=Data)
wMaxPacketSize : 0xBAC (2049 transactions per microframe, max 940 bytes)
bInterval : 0x01 (1 ms)
Posted

..da werden halt eigenschaften und klassen von standardbausteinen aufgezählt. Wenn du guckst, findest du "bulk" viel häufiger ;)

Zum einen braucht ein transport stream keine isochrone übertragung und zum anderen wäre das auch ziemlich umständlich und dumm, da die erforderliche bandbreite reserviert werden muss. Die meisten karten liefern den gesamten, ungefilterten mux. Einige karten verfügen aber über PID-filter. Bei VMWare - meine erfahrungen damit liegen jahre zurück - war usb damals wohl auf 1.0 beschränkt, was für sat nicht ausreicht. Wenn die karte allerdings pid-filter hat (keine ahnung bei DVBSKY), könnte man es ohne den haken bei "ganzen transponder öffnen" versuchen. Damit wird die rate drastisch reduziert.

Posted

Ja, irgendwie :) Ist wohl mehr für entwickler gedacht. Die frage ist aber auch, ob eine virtualisierung dabei mitmacht ;)

 

..ansonsten sehe ich auch wie schon erwähnt PID-filter, die sicher helfen und USB 1.1 Support, der zusammen mit den filtern die virtualisierung sicher überleben wird :)

 

Dass man die teile in eine dreambox als zusätzlichen tuner stecken kann, war neu für mich.

Posted

Ich hatte mal irgendwo gelesen, dass die Stromsparfunktion (C-Steps. C2, C3..) der CPU bei sowas Probleme verursachen kann (Timing). Keine Ahnung ob was dran ist! Vielleicht mal zum im BIOS deaktivieren und testen

Posted

Hallo,

 

mein Problem mit RTSP ist gelöst, es war kein Problem mit der Kombination von Recording Services und Virtualisierung. Das Problem war eine 100% NIC Auslastung, die durch mehrfache Instanzen von ffmpeg mit einem Datentransfer auf dem NAS entstanden sind. Durch die fehlende Netzwerkbandbreite funktionierte dann wohl auch der QoS nicht mehr.

 

Für den mehrfachen Start von ffmpeg und der kompletten Auslastung der Netzwerkbandbreite werde ich einem separaten Post starten.

 

Gruß,

Marco

Posted

hi!

bin gerade auf diesen thread gestossen.

ich betreibe schon seit ca. einem jahr den RC in einer virtuellen maschine unter esxi 5.5 und es läuft (jetzt) perfekt.

 

vm-host: esxi 5.5 (2302651), intel-nuc (corei5 4250U, 16GB RAM, 1x250GB SSD, 1x1TB HD)

vm-guest: windows server 2008 r2 standard

dvb-device: technotrend TT-connect S2-3650 CI

sat: 2x kathrein quattro lnb (13.3e, 19,2e) , technisat multi-switch

 

anfangs hatte ich auch so ziemlich alle o.g. probleme, aber nach dem ich alle updates und patches für esxi 5.5 eingespielt und zusätzlich noch alle energiespar-funktionen der usb geräte deaktiviert (im gast os) hatte, lief alles stabil.

die dvb-box ist an einem der usb-2.0 ports angeschlossen und als hostgerät der virtuellen maschine zugeordnet.

das aufnahmeverzeichnis liegt auf einem synology nas und selbst das läuft problemlos.

bei fragen - fragt!

greetz

awx

×
×
  • Create New...