Was bringen die TCP Offload Features der Hardware, wenn die TCP Offload Engine in Windows seit etwa 3 Jahren deaktiviert ist?
Moin Zusammen,
ich wurde gestern bei Spiceworks von einem anderen Forenuser auf das Folgende hingewiesen.
Ich habe dazu gestern etwas rumgeforscht und tatsächlich ist die TCP Offload Engine mit Windows 1709 und dem Server 2016 aus dem Betriebssystem geflogen.
Siehe auch.
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/ ...
https://docs.microsoft.com/en-us/windows-server/networking/technologies/ ...
Für mein Verständnis, sind damit sämtliche Hardwareseitigen TCP Offload Features der Netzwerkkarten damit für die Katz, da diese betriebssystemseitig (TCP Stack) nicht mehr unterstützt/angesprochen werden.
Darunter fallen meiner Meinung nach, die folgenden Kandidaten.
Was ist Eure Meinung dazu?
Siehe auch Swesterbeitrag bei Spiceworks (englisch)
https://community.spiceworks.com/topic/2282473-the-real-disaster-behind- ...
Grüsse aus BaWü
Alex
ich wurde gestern bei Spiceworks von einem anderen Forenuser auf das Folgende hingewiesen.
Ich habe dazu gestern etwas rumgeforscht und tatsächlich ist die TCP Offload Engine mit Windows 1709 und dem Server 2016 aus dem Betriebssystem geflogen.
Siehe auch.
https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/ ...
https://docs.microsoft.com/en-us/windows-server/networking/technologies/ ...
Für mein Verständnis, sind damit sämtliche Hardwareseitigen TCP Offload Features der Netzwerkkarten damit für die Katz, da diese betriebssystemseitig (TCP Stack) nicht mehr unterstützt/angesprochen werden.
Darunter fallen meiner Meinung nach, die folgenden Kandidaten.
Was ist Eure Meinung dazu?
Siehe auch Swesterbeitrag bei Spiceworks (englisch)
https://community.spiceworks.com/topic/2282473-the-real-disaster-behind- ...
Grüsse aus BaWü
Alex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 592409
Url: https://administrator.de/contentid/592409
Ausgedruckt am: 28.11.2024 um 21:11 Uhr
47 Kommentare
Neuester Kommentar
NICs/CNAs können hardwareseitig diverse Offloader.
Wenn es für das OS wichtig ist, dann ist der Treiber vordergründig dafür verantwortlich.
Wichtig ist ja, dass die CPU entlastet ist, weil das SOC des NICs/CNAs die "Arbeit" hat.
Halbwegs moderne Hardware hat jedoch keine "Arbeit" mehr für die CPU, weil die NICs/CNAs hardwareseitig beschleunigt sind und die Treiber noch dafür benötigt werden um im grafischen vielleicht Einstellungen einsehen oder ändern zu können.
Wenn es für das OS wichtig ist, dann ist der Treiber vordergründig dafür verantwortlich.
Wichtig ist ja, dass die CPU entlastet ist, weil das SOC des NICs/CNAs die "Arbeit" hat.
Halbwegs moderne Hardware hat jedoch keine "Arbeit" mehr für die CPU, weil die NICs/CNAs hardwareseitig beschleunigt sind und die Treiber noch dafür benötigt werden um im grafischen vielleicht Einstellungen einsehen oder ändern zu können.
Naja, depricated heißt ja erstmal das feature als "alt" markiert ist - aber nicht sofort deaktiviert wird.
d.h. das funktioniert schon noch wenn der Treiber das unterstützt, aber man sollte sich als Entwickler darauf einstellen das das Feature nicht weiterentwickelt werden sollte. (Vermutlich ist es so dann wenn ich den NIC Treiber durch den IDE/Compiler für Win10 jage, dann meckert er eben das jegliche functionscalls zum Thema TCPOffload depricated sind und ich mich gefälligs drum kümmern soll - als verantwortungsvoller Entwickler stellt man dann den Compiler so ein das er die Warnungen unterdrückt und ändert nichts am code :D )
Da das Thema sowieso wohl umstritten war (man gibt den ggf. sensiblen Netzwerktraffic der "Blackbox Firmware" der NIC) - ist es vielleicht gut das es wegkommt.
Das ist ja eine Entwicklung die immer wieder kommt, es wird immer wieder Zeug ausgelagert (z.B. kennst du noch die MPEG-2 Beschleunigerkarten?) um es zurück zur CPU zu holen.
d.h. das funktioniert schon noch wenn der Treiber das unterstützt, aber man sollte sich als Entwickler darauf einstellen das das Feature nicht weiterentwickelt werden sollte. (Vermutlich ist es so dann wenn ich den NIC Treiber durch den IDE/Compiler für Win10 jage, dann meckert er eben das jegliche functionscalls zum Thema TCPOffload depricated sind und ich mich gefälligs drum kümmern soll - als verantwortungsvoller Entwickler stellt man dann den Compiler so ein das er die Warnungen unterdrückt und ändert nichts am code :D )
Da das Thema sowieso wohl umstritten war (man gibt den ggf. sensiblen Netzwerktraffic der "Blackbox Firmware" der NIC) - ist es vielleicht gut das es wegkommt.
Das ist ja eine Entwicklung die immer wieder kommt, es wird immer wieder Zeug ausgelagert (z.B. kennst du noch die MPEG-2 Beschleunigerkarten?) um es zurück zur CPU zu holen.
also das ist auch ein Thema... gab mal vor ein paar Jahren Streß mit dem RSS, weil Windows 2012 R2 das pauschal bei Erkenung einer 10 GBit Karte aktiviert hat... auch wenn die physische Karte das garnicht konnte. Unter ESX 6.0 und VMXNET aus den VMwaretools 10.0.5 und niedriger war damit die empfangende Richtung so gut wie tot.
Und wir hatten vor nicht mal einem Jahr das Problem, daß das TCP Chimney Offloading aktiv geschaltet war, weil die linke Hand des IT-Dienstleisters nicht wußte was die Rechte tut und beide der Meinung waren, daß sie keine Fehler gemacht hatten. Und es gab noch 6 weitere Hände wie bei Kaili, der indischen Göttin mit 8 Armen... wir doktorn da im 1st und 2nd Level Support mehr als ein Jahr daran herum und konnten das zumindestens mal reproduzieren wenn 20 User auf einem Citrix-Host aktiv waren.
Effektiv gab es einen daramatischen Zuwachs an Citrix Latenzen bis zu 1000 ms. Nachdem der Dienstleister einen Krisenmaanger bestellt hat und der dann mit ca. 20 Leute in einen Meetingraum gesperrt wurde hatten sie das Problem innerhalb von 2 Tagen gelöst und es war genau diese eine Einstellung... es kommt immer mal wieder vor, daß da irgendein OEM ein paar Funktionen in der Hardware einspart, um etwas Geld zu sparen... aber in meinem Fall hatte der IT Dienstleister seinem Endkungen 12-13 Jahre alte Hardware untergejubelt und die dann 12-13 Jahre alte Karte kann dann effektiv kein TCP Chimney, wohingegen die Citrix-Typen sagen das wäre "best practice", auf die Hardware das auszulagern, was die Netzwerkkarte in Hardware ausführen kann, genauso wie das RSS. Nur gingen die Citrix Leute davon aus, daß sie Hardware mit Maintenance zur Verfügung hatten, also jünger als 5 oder 6 Jahre.
Bekanntestes Opfer ist die auf PC-Mainboards und ALLEN Esata Karten inexistente Fähigkeit zu ESATA Multiplexing... externe Gehäuse mit mehr als einer Festplatte und ESATA Anbindung gehen deshalb nicht, einfach weil die ganzen Hardwarehersteller da 10 Cent an Lizenzgebühren gespart hatten (Intel hat da ein Patent auf SATA Multiplexing).
Und wir hatten vor nicht mal einem Jahr das Problem, daß das TCP Chimney Offloading aktiv geschaltet war, weil die linke Hand des IT-Dienstleisters nicht wußte was die Rechte tut und beide der Meinung waren, daß sie keine Fehler gemacht hatten. Und es gab noch 6 weitere Hände wie bei Kaili, der indischen Göttin mit 8 Armen... wir doktorn da im 1st und 2nd Level Support mehr als ein Jahr daran herum und konnten das zumindestens mal reproduzieren wenn 20 User auf einem Citrix-Host aktiv waren.
Effektiv gab es einen daramatischen Zuwachs an Citrix Latenzen bis zu 1000 ms. Nachdem der Dienstleister einen Krisenmaanger bestellt hat und der dann mit ca. 20 Leute in einen Meetingraum gesperrt wurde hatten sie das Problem innerhalb von 2 Tagen gelöst und es war genau diese eine Einstellung... es kommt immer mal wieder vor, daß da irgendein OEM ein paar Funktionen in der Hardware einspart, um etwas Geld zu sparen... aber in meinem Fall hatte der IT Dienstleister seinem Endkungen 12-13 Jahre alte Hardware untergejubelt und die dann 12-13 Jahre alte Karte kann dann effektiv kein TCP Chimney, wohingegen die Citrix-Typen sagen das wäre "best practice", auf die Hardware das auszulagern, was die Netzwerkkarte in Hardware ausführen kann, genauso wie das RSS. Nur gingen die Citrix Leute davon aus, daß sie Hardware mit Maintenance zur Verfügung hatten, also jünger als 5 oder 6 Jahre.
Bekanntestes Opfer ist die auf PC-Mainboards und ALLEN Esata Karten inexistente Fähigkeit zu ESATA Multiplexing... externe Gehäuse mit mehr als einer Festplatte und ESATA Anbindung gehen deshalb nicht, einfach weil die ganzen Hardwarehersteller da 10 Cent an Lizenzgebühren gespart hatten (Intel hat da ein Patent auf SATA Multiplexing).
Zitat von @MysticFoxDE:
Für mein Verständnis, sind damit sämtliche Hardwareseitigen TCP Offload Features der Netzwerkkarten damit für die Katz, da diese betriebssystemseitig (TCP Stack) nicht mehr unterstützt/angesprochen werden.
Für mein Verständnis, sind damit sämtliche Hardwareseitigen TCP Offload Features der Netzwerkkarten damit für die Katz, da diese betriebssystemseitig (TCP Stack) nicht mehr unterstützt/angesprochen werden.
Das ist falsch und steht ja im Grunde auch schon in deinem ersten Screenshot. Die TCP Offload Engine wurde mit 2003 eingeführt, hat aber neuere Entwicklungen nicht mehr mitgemacht sodas die Aktivierung der Offload Engine neuere Performanceverbesserungen wie SACK und CTCP quasi deaktiviert hat.
/Thomas
Zitat von @MysticFoxDE:
Wenn es nicht so ist, dann bitte ich um eine etwas verständlichere Erklärung warum das nicht so sein sollte, danke.
Wenn es nicht so ist, dann bitte ich um eine etwas verständlichere Erklärung warum das nicht so sein sollte, danke.
Das einzige was entfernt wurde ist das Chimney Offload Feature, das war aber aus o.g. Gründen schon länger nicht mehr Best Practice.
/Thomas
Zitat von @MysticFoxDE:
Eine Dokumentation die etwas anderes darstellt, habe ich noch nicht gefunden.
Wenn eine hast, dann rück diese bitte auch raus, danke. 🙃
Eine Dokumentation die etwas anderes darstellt, habe ich noch nicht gefunden.
Wenn eine hast, dann rück diese bitte auch raus, danke. 🙃
Die habe ich, aber "rausrücken" kann ich sie leider nicht da die Unterlagen nicht öffentlich sind. 🙃
Jedenfalls rät Microsoft schon länger von der Verwendung ab, da der TCP Stack effizienter ist als die TCP Offload Engine.
Eine Hardware mit Offloading-Funktionalitäten brauch keine entsprechenden Softwarefeatures, APIs oder dergleichen. Wenn ein Treiber sowas anzeigt bei aktueller Hardware, dann ist das im Sinne der Usability zu verstehen. Manche Treiber haben so Zugriff auf die Hardware und man muss nicht ins Bios oder dergleichen.
Der Vergleich mit einem VSwitch ist unzulässig. Selbst wenn aus dem OS ein Feature entfernt ist, heißt da nicht zwangläufig, dass z. B. die Funktion aus den Bibliotheken, wie im Beipsiel, des Hyper-V entfernt ist.
Wenn die NIC eine Feature hat, musst das nciht für ein Hyper-V Switch als Gui oder CLI-Feature rausgeführt sein.
Um welche NICs und CNAs geht es denn eigentlich und was die der genaue Anwedungsfall.
Der Vergleich mit einem VSwitch ist unzulässig. Selbst wenn aus dem OS ein Feature entfernt ist, heißt da nicht zwangläufig, dass z. B. die Funktion aus den Bibliotheken, wie im Beipsiel, des Hyper-V entfernt ist.
Wenn die NIC eine Feature hat, musst das nciht für ein Hyper-V Switch als Gui oder CLI-Feature rausgeführt sein.
Um welche NICs und CNAs geht es denn eigentlich und was die der genaue Anwedungsfall.
Ich denke Du hast nicht nur einiges falsch verstanden. Es scheint große Wissenslücken zu geben und Annahmen von denen Du dich nicht trennen kannst
Dann befolge Mal deinen Rat selber.
Du bist völlig auf den Holzweg und jagst einen Geist.
Es war ja schon ein sonderbares Thema und die Information, dass Hardware die eine Beschleunigung in der Hardware hat, keine zusätzliche Software, auch keine Schnittstelle von OS benötigt, hast du bei Seite gewischt.
Dann kann man dir nicht helfen, wenn die die Funktion einer gesamten Industrie verdrehst.
Spätestens mit deinem Argument, des SAN-Caches, dass von der Software auf OS Ebene falsch erkannt werden kann, wirst Du als seltsamer Kautz wahrgenommen.
Man Spinne Mal diese Behauptung weiter, meine Programmierer hätten unzählige Fragen an dich.
Du hast augenscheinlich große Wissenslücken bist auch irgendwie nicht bereit falsches Wissen abzulegen und neues aufzunehmen.
Ein vNIC ist ein 1-Port vSwitch und ein 1-Port vSwitch ist ein 1-Port vNIC usw... Es ist erstmal alles Software.
Auf Basis der Implementierung kann es softwareseitige Beschleunigungen geben, die bei moderner Hardware die Beschleunigung in die Hardware verlegen. Dort sind optimierte Rechenwerke.
Das OS, mit oder ohne Treiber, guckt in einen schwarzes Loch, wobei im Idealfall optimierter Bitstream aus dem Loch kommt.
Ist der Bitstream z. B. zu Ende optimierter SAN Traffic, dann pappt das OS den Bitstream lediglich an seinen Speichercontroller und der Speichercontroller, der seitens der Software dem OS zur Verfügung steht spricht dann den Befehlssatz des verwendeten Storagesubs.
Will ich jetzt etwas sprechen, was die Hardware nicht kann, dass war bis vor einigen Jahren so, dann habe ich Offloader eingesetzt. Wichtig ist vielleicht zu wissen dass diese Offloader keinen Standard darstellen, sondern einen Sammelbegriff für sehr viele Techniken darstellen. TCP-Offload ist kein Standard. Lediglich die maximale Größe der Pakete ist standardisiert, vereinfacht gesagt.
Das entscheidende bei diesem Thema ist dass das Betriebssystem "nativen Traffic" bekommt. Wenn das so ist dann spielt es keine Rolle was aus dem Schwarzen Loch raus purzelt. Seien es TCP IP Pakete für iSCSI oder SCSI für FC HBA oder FcOE.
Storage arbeitet klassisch seriell. Ein Raid Controller arbeitet seriell. Wegen vieler Laufwerke, vieler Pfade zu den Laufwerken, teilweise mit Cache verbunden ist es spätestens bei der Übertragung durch IP nicht mehr sicherzustellen, dass die Pakete die im TCP-IP Transport sind in der gesendeten Reihenfolge eintreffen.
Hier setzt der Treiber an, der den Speichercontroller bedienen muss im OS und bei aktueller Hardware ist der eigentliche Workload auf den NIC/CNA und das OS bekommt nativen Traffic, zu Ende beschleunigt und optimiert.
Ein vSwitch kann z. B. auf vier 50 GBit Ports stehen. Diese sind mit geswitchter Fabric zu mehreren SAN-Controllern verbunden. Auf dem vSwitch steht ein Hypervisor der hunderte Warteschlangen über die Pfade verteilt für Storage Access und zugleich Millionen TCP Verbindungen für "normalen" IP Traffic.
Die VMs im Bauch des Hypervisor bekommen einen Software Speichercontroller und gucken in das schwarze Loch in der Erwartung, dass dort SCSI Pakete kommen die Summe das Wirken eines Storage abbilden. Die VM weiß nichts von Offloadern. Sie kann prinzipbedingt auch keinen Nutzen daraus ziehen.
Und so lange du glaubst dass alle NICs die unter Windows laufen, deiner merkwürdigen Vorstellungen zu unterwerfen sind... Werden wir dir hier nicht helfen können.
Du bist völlig auf den Holzweg und jagst einen Geist.
Es war ja schon ein sonderbares Thema und die Information, dass Hardware die eine Beschleunigung in der Hardware hat, keine zusätzliche Software, auch keine Schnittstelle von OS benötigt, hast du bei Seite gewischt.
Dann kann man dir nicht helfen, wenn die die Funktion einer gesamten Industrie verdrehst.
Spätestens mit deinem Argument, des SAN-Caches, dass von der Software auf OS Ebene falsch erkannt werden kann, wirst Du als seltsamer Kautz wahrgenommen.
Man Spinne Mal diese Behauptung weiter, meine Programmierer hätten unzählige Fragen an dich.
Du hast augenscheinlich große Wissenslücken bist auch irgendwie nicht bereit falsches Wissen abzulegen und neues aufzunehmen.
Ein vNIC ist ein 1-Port vSwitch und ein 1-Port vSwitch ist ein 1-Port vNIC usw... Es ist erstmal alles Software.
Auf Basis der Implementierung kann es softwareseitige Beschleunigungen geben, die bei moderner Hardware die Beschleunigung in die Hardware verlegen. Dort sind optimierte Rechenwerke.
Das OS, mit oder ohne Treiber, guckt in einen schwarzes Loch, wobei im Idealfall optimierter Bitstream aus dem Loch kommt.
Ist der Bitstream z. B. zu Ende optimierter SAN Traffic, dann pappt das OS den Bitstream lediglich an seinen Speichercontroller und der Speichercontroller, der seitens der Software dem OS zur Verfügung steht spricht dann den Befehlssatz des verwendeten Storagesubs.
Will ich jetzt etwas sprechen, was die Hardware nicht kann, dass war bis vor einigen Jahren so, dann habe ich Offloader eingesetzt. Wichtig ist vielleicht zu wissen dass diese Offloader keinen Standard darstellen, sondern einen Sammelbegriff für sehr viele Techniken darstellen. TCP-Offload ist kein Standard. Lediglich die maximale Größe der Pakete ist standardisiert, vereinfacht gesagt.
Das entscheidende bei diesem Thema ist dass das Betriebssystem "nativen Traffic" bekommt. Wenn das so ist dann spielt es keine Rolle was aus dem Schwarzen Loch raus purzelt. Seien es TCP IP Pakete für iSCSI oder SCSI für FC HBA oder FcOE.
Storage arbeitet klassisch seriell. Ein Raid Controller arbeitet seriell. Wegen vieler Laufwerke, vieler Pfade zu den Laufwerken, teilweise mit Cache verbunden ist es spätestens bei der Übertragung durch IP nicht mehr sicherzustellen, dass die Pakete die im TCP-IP Transport sind in der gesendeten Reihenfolge eintreffen.
Hier setzt der Treiber an, der den Speichercontroller bedienen muss im OS und bei aktueller Hardware ist der eigentliche Workload auf den NIC/CNA und das OS bekommt nativen Traffic, zu Ende beschleunigt und optimiert.
Ein vSwitch kann z. B. auf vier 50 GBit Ports stehen. Diese sind mit geswitchter Fabric zu mehreren SAN-Controllern verbunden. Auf dem vSwitch steht ein Hypervisor der hunderte Warteschlangen über die Pfade verteilt für Storage Access und zugleich Millionen TCP Verbindungen für "normalen" IP Traffic.
Die VMs im Bauch des Hypervisor bekommen einen Software Speichercontroller und gucken in das schwarze Loch in der Erwartung, dass dort SCSI Pakete kommen die Summe das Wirken eines Storage abbilden. Die VM weiß nichts von Offloadern. Sie kann prinzipbedingt auch keinen Nutzen daraus ziehen.
Und so lange du glaubst dass alle NICs die unter Windows laufen, deiner merkwürdigen Vorstellungen zu unterwerfen sind... Werden wir dir hier nicht helfen können.
Zitat von @MysticFoxDE:
So, und jetzt kannst du mir bestimmt auch erklären, weshalb diese dann doch in der VM-NIC implementiert sind?
Weil auch VMs diese Techniken unterstützen/aktivieren können oder eben nicht, hier von VMware z. B. für LSO ganz gut erklärt.So, und jetzt kannst du mir bestimmt auch erklären, weshalb diese dann doch in der VM-NIC implementiert sind?
P.S.: Es wäre schön wenn du diese passiv agressiven Zwinkersmileys weg lassen würdest. 😉😉😉
/Thomas
Zitat von @MysticFoxDE:
bloss weil VMware eine Doku geschrieben hat, über eine Technologie die nicht von VMware stamm, glaube ich dieser noch lange nicht blind. Aber auch dann nicht, wenn es von VMware wäre.
Achso, haben die sich nur ausgedacht oder wie?bloss weil VMware eine Doku geschrieben hat, über eine Technologie die nicht von VMware stamm, glaube ich dieser noch lange nicht blind. Aber auch dann nicht, wenn es von VMware wäre.
Wie soll bitte die Hardware NIC, die Prüfsumme für ein Packet berechnen, welches von einer VM zu einer anderen VM über denselben vSwitch versendet wird?
Ich gehe davon aus das du die Doku der du nicht glaubst auch nicht gelesen hast? Sonst wäre die Frage wohl eher nicht aufgekommen.
Guckt man sich deine Links an, dann stellt man fest, dass man sich das sparen kann als Quelle oder Argumentationshilfe, deiner seits. Was willst du damit sagen?
Mal ne blöde Frage, die wirst du doch sicherlich beantworten können.
Wenn ich im ESXi einen Hardware FCoE oder FC Adapter habe und darauf eine VM, als Beispiel einen Server 2019 setze, der sein Storage im Windows Geräte Manager unter "Strorage Controllers" führt, wie kann der Server dann überhaupt den Cache des SANs sehen? Wie macht der Server oder der Treiber das? Und wie kann die VM diesen Cache, nach dem sie ihn sichtbar gemacht hat ignorieren? Der kann dann die die Drives direkt ansprechen, oder wie?
Mal angenommen, vergleichbare Config, hat einen Software FCoE Treiber und steht auf zwei Dual-Port CNAs mit jeweils 50 GBit und diese können z. B. RoCE2, iWarp oder InfiniBand, such dir was aus.... Wie kann ich nun den Bitstream noch Offloaden? Im Beispiel ist im RoCE eine Nvme oF SAN, dass SAN-Controller seitig über 64 GB Cache über zwei Controller verteilt verfügt. Der Server hat auch wieder seine virtualisierten Storage Controllers, die ein Laufwerk deiner Wahl halten.
Wie kann hier eine Offloadtechnik deiner Wahn Einfluss auf die Arbeitsweise und Funktionsweise nehmen? Wie ändern sich die Pakete die aus dem "schwarzen Loch" kommen und gehen? Der Treiber, weil er einen Parameter eingestellt bekommen hat, baut dann die Paket neu? Wo werden die Pakete gerechnet und wer informiert, die Teilnehmer, dass die Pakete nicht mehr so heißen und aussehen wie abgesendet?
Un erkläre es mir bitte so, dass ich im Wireshark gleich die Pakete ziehen kann, ich bin heute noch mal Online dies bezüglich. In dem Zuge kann ich dir dann auch 1-Port vSwitches mit 1-Port-vNics und in Kombination zeigen, zufällig laufen so hunderte Konfigs bei uns weltweit.
Was mich auch noch brennend interessiert ist, warum wir so viel Geld für Lossless Ethernet ausgegeben haben, wenn es anscheinend nur eine Treibersache ist, dass die Pakete alle in der richtigen Reihenfolge und vollständig und zeitnah kommen und gehen ins das schwarze Loch. Ich muss doch hier eine Verschwörung hinter vermuten?
Mal ne blöde Frage, die wirst du doch sicherlich beantworten können.
Wenn ich im ESXi einen Hardware FCoE oder FC Adapter habe und darauf eine VM, als Beispiel einen Server 2019 setze, der sein Storage im Windows Geräte Manager unter "Strorage Controllers" führt, wie kann der Server dann überhaupt den Cache des SANs sehen? Wie macht der Server oder der Treiber das? Und wie kann die VM diesen Cache, nach dem sie ihn sichtbar gemacht hat ignorieren? Der kann dann die die Drives direkt ansprechen, oder wie?
Mal angenommen, vergleichbare Config, hat einen Software FCoE Treiber und steht auf zwei Dual-Port CNAs mit jeweils 50 GBit und diese können z. B. RoCE2, iWarp oder InfiniBand, such dir was aus.... Wie kann ich nun den Bitstream noch Offloaden? Im Beispiel ist im RoCE eine Nvme oF SAN, dass SAN-Controller seitig über 64 GB Cache über zwei Controller verteilt verfügt. Der Server hat auch wieder seine virtualisierten Storage Controllers, die ein Laufwerk deiner Wahl halten.
Wie kann hier eine Offloadtechnik deiner Wahn Einfluss auf die Arbeitsweise und Funktionsweise nehmen? Wie ändern sich die Pakete die aus dem "schwarzen Loch" kommen und gehen? Der Treiber, weil er einen Parameter eingestellt bekommen hat, baut dann die Paket neu? Wo werden die Pakete gerechnet und wer informiert, die Teilnehmer, dass die Pakete nicht mehr so heißen und aussehen wie abgesendet?
Un erkläre es mir bitte so, dass ich im Wireshark gleich die Pakete ziehen kann, ich bin heute noch mal Online dies bezüglich. In dem Zuge kann ich dir dann auch 1-Port vSwitches mit 1-Port-vNics und in Kombination zeigen, zufällig laufen so hunderte Konfigs bei uns weltweit.
Was mich auch noch brennend interessiert ist, warum wir so viel Geld für Lossless Ethernet ausgegeben haben, wenn es anscheinend nur eine Treibersache ist, dass die Pakete alle in der richtigen Reihenfolge und vollständig und zeitnah kommen und gehen ins das schwarze Loch. Ich muss doch hier eine Verschwörung hinter vermuten?
Okay, der Reihe nach.
Das SAN markiert das LUN als gepuffert oder nicht?
Wie ist diese Markierung definiert, da gibt es doch ein Whitepape bestimmt zu?
Das Hypervisor macht damit was? Das OS macht damit was?
Cache-Flag? Wie muss man sich das vorstellen, ein Platzhalter, der da ein Bit hat oder nicht, oder ein paar Bytes um den Speicher samt seiner Beschaffenheit zu beschreiben? Wie heißt das Flag zum Beispiel im iSCSI Befehlssatz?
Wie weiß eine VM über die VDisk mehr als über das gewählte Dateisystem und deren Organisation sich ermitteln lässt?
Gibt es da noch einen mystischen Zusatzlink?
Und wie sorgt eigentlich ein Server dafür, dass er die Blöcke unterhalb des Dateisystems nicht überschreibt, wenn noch ein anderer Server auf dem LUN arbeitet?
Wie bekomme ich ein OS deiner Wahl dazu den Cache des Controller zu umgehen? Ich möchte Mal was ausprobieren.
Außerdem dachte ich immer Diskspd drischt auf das Dateisystem ein. Wir nutzten das früher zum schätzen von SQL Themen.
Du kannst mit dem Tool auf Blockebene vordringen? Nun hänge ich voll an deinen Lippen.
Das SAN markiert das LUN als gepuffert oder nicht?
Wie ist diese Markierung definiert, da gibt es doch ein Whitepape bestimmt zu?
Das Hypervisor macht damit was? Das OS macht damit was?
Cache-Flag? Wie muss man sich das vorstellen, ein Platzhalter, der da ein Bit hat oder nicht, oder ein paar Bytes um den Speicher samt seiner Beschaffenheit zu beschreiben? Wie heißt das Flag zum Beispiel im iSCSI Befehlssatz?
Wie weiß eine VM über die VDisk mehr als über das gewählte Dateisystem und deren Organisation sich ermitteln lässt?
Gibt es da noch einen mystischen Zusatzlink?
Und wie sorgt eigentlich ein Server dafür, dass er die Blöcke unterhalb des Dateisystems nicht überschreibt, wenn noch ein anderer Server auf dem LUN arbeitet?
Wie bekomme ich ein OS deiner Wahl dazu den Cache des Controller zu umgehen? Ich möchte Mal was ausprobieren.
Außerdem dachte ich immer Diskspd drischt auf das Dateisystem ein. Wir nutzten das früher zum schätzen von SQL Themen.
Du kannst mit dem Tool auf Blockebene vordringen? Nun hänge ich voll an deinen Lippen.
Zitat von @MysticFoxDE:
„Chimney Offload“ bezeichnet heute somit kein bestimmtes Feature was die TCP-Offload-Engine bereitstellt.
„Chimney Offload“ ist in diesem Zusammenhang eher ein mittlerweile veralteter Oberbegriff / Kosename für die gesamte IP Offloadtechnologie und bezeichnet bei Microsoft in vielen Dokumenten eben die TCP-Offload-Engine als Ganzes. Die wiederum dafür verantwortlich war, die folgenden Hardware-Offload-Features richtig anzusteuern.
„Chimney Offload“ bezeichnet heute somit kein bestimmtes Feature was die TCP-Offload-Engine bereitstellt.
„Chimney Offload“ ist in diesem Zusammenhang eher ein mittlerweile veralteter Oberbegriff / Kosename für die gesamte IP Offloadtechnologie und bezeichnet bei Microsoft in vielen Dokumenten eben die TCP-Offload-Engine als Ganzes. Die wiederum dafür verantwortlich war, die folgenden Hardware-Offload-Features richtig anzusteuern.
Chimney Offload ist die von Microsoft einst präferierte Bezeichnung für TOE, also synonym, soweit wir von der Windows-Welt sprechen.
"TCP Offload Engine" mag ein semantisch weit gefasster Begriff sein, aber sein üblicher Gebrauch (etwa in dem englischsprachigen Wikipedia-Artikel, wie dort an den Ausführungen zur Historie und den Verweisen auf die Patente ersichtlich) erstreckt sich auf die TCP Offload Engine, wie sie von MS als Chimney Offload implementiert wurde. Und diese TOE bzw. Chimney Offload ist ein veraltetes Set von Offloading-Features, das weder auf Hardware- noch auf Windows-Seite heute Verwendung findet.
Das bedeutet nicht, dass die unterstützen granularen Offload-Features aus deinen Screenshots nicht unterstützt würden. Wenn diese aktiviert sind, übernimmt die Netzwerkkarte diese Funktionen und der Treiber signalisiert sie als offloaded, was Windows natürlich auch weiterhin unterstützt, vgl: https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddndis/n ...
Chimney Offload hingegen bedeutet, dass die gesamte Verarbeitung der Transportschicht einer bestehenden TCP-Verbindung an die Netzwerkkarte übergeben wird. Das unterschiedliche Verhalten ist auch in Wireshark verifizierbar, entsprechende Hardware vorausgesetzt, weil WinPcap einerseits z.B. "falsche" Checksums sieht und andererseits im Fall von Chimney Offload überhaupt keine TCP-Verbindung.
Die Verwaltung des Chimney Offloads bedeutet selbst einen Overhead, sodass es überhaupt nur unter bestimmten Rahmenbedigungen genutzt wurde: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/window ...
Grüße
Richard
Zitat von @MysticFoxDE:
Ich bitte euch alle an dieser Stelle, mich nicht mehr von der zum Teil sehr grauen Theorie zu überzeugen, das ist vergebene Liebesmühe. Ich lasse mich gerne von Fakten lenken und das bedeutet, dass ihr schon einen funktionierenden Gegenbeweis erbringen müsst, damit ich meine jetzige Meinung ändere.
Ich bitte euch alle an dieser Stelle, mich nicht mehr von der zum Teil sehr grauen Theorie zu überzeugen, das ist vergebene Liebesmühe. Ich lasse mich gerne von Fakten lenken und das bedeutet, dass ihr schon einen funktionierenden Gegenbeweis erbringen müsst, damit ich meine jetzige Meinung ändere.
Das ist nun kein Ansporn. Ich führe gern auch Forendiskussionen zu interessanten Themen, kann aber gut damit leben, wenn Beteiligte sachlich falsche Meinungen haben.
Wenn diese aktiviert sind, übernimmt die Netzwerkkarte diese Funktionen und der Treiber signalisiert sie als offloaded, was Windows natürlich auch weiterhin unterstützt
Und dieses „offloaded“ kann man sehr einfach mit netstat -t überprüfen.
Nein, denn offload state von netstat -t bezieht sich auf Chimney Offload.
Alle NICs in meinem Rechner unterstützen theoretisch das Offloading wie im folgenden Screenshot zu sehen ist.
Nicht theoretisch, sondern es ist aktiv.
...mit Chimney Offload.
Du demonstrierst doch selbst damit, dass beides nichts miteinander zu tun hat. Wie oben schon gesagt - und ignoriert, kannst Du es mit Wireshark noch tiefergehend überprüfen. Kannst Du mir verraten, warum Wireshark überhaupt Hinweise wie "Incorrect, probably due to checksum offload" (oder so ähnlich) gibt für einen WinPcap-Mitschnitt, der mit Checksum-Offloading erstellt wurde, wenn doch Chimney-offloaded Verbindungen überhaupt nicht von WinPcap erfasst werden? Wenn es dasselbe wäre, würdest Du schlicht nichts sehen, sobald Offloading im Spiel ist.
Zitat von @MysticFoxDE:
Und dann mit netstat -t den aktuellen Verbindungsstatus beobachten. Wenn nun auch nur ein eine Verbindung mit „Offloaded“ kommt habt ihr mich sofort überzeugt.
Und dann mit netstat -t den aktuellen Verbindungsstatus beobachten. Wenn nun auch nur ein eine Verbindung mit „Offloaded“ kommt habt ihr mich sofort überzeugt.
Warum sollte das da erscheinen? Das bezieht sich ja auf die Chimney Offload Funktion die nicht mehr da ist.
/Thomas
Das die TCP Offload Engine problematisch war ist ja bekannt, dürfte neben ihren wenigen Einsatzszenarien ein weiterer Grund für das Entfernen aus dem OS sein.
/Thomas
Um mal auf den Ursprung des Threads zurückzukommen, das Thema ist immer noch diese?
Wenn ja halte ich diese Aussage immer noch für falsch.
/Thomas
Für mein Verständnis, sind damit sämtliche Hardwareseitigen TCP Offload Features der Netzwerkkarten damit für die Katz, da diese betriebssystemseitig (TCP Stack) nicht mehr unterstützt/angesprochen werden.
Wenn ja halte ich diese Aussage immer noch für falsch.
/Thomas
Na dann verfeiner mal, ich bin gespannt. Mich würde ja insbesondere eine Begründung für deine Aussage interessieren.
/Thomas
Ne, so funktioniert das nicht. Du kannst nicht wilde Theorien aufstellen und dann zu anderen sagen sie sollen mal beweisen das das nicht so ist wie du dir das gerade ausgedacht hast. Das ist total lost... *Zwinkersmiley*
/Thomas
Den Thread könnte man zu Humor verschieben. Indiana Jones und der Chimney Offload.
Also, weil so schönes Wetter ist: Natürlich kann Wireshark es nicht bestimmen, woran es liegt.
Aber Du kannst ja als guter Wissenschaftler eine einzelne Variable in einem Versuch ändern - z.B. Checksum-Offloading - und dann die Reaktion von Wireshark prüfen. Wenn Du das für beides machst, einmal Chimney Offload und ein andermal irgendein stateless Offloading wie Checksums, wirst Du feststellen, dass das Bild im Mitschnitt jeweils ein anderes ist, und es sich um zwei verschiedene Variablen handelt. Denn beides hat nichts miteinander zu tun.
Du bist offensichtlich gedanklich noch nicht mal in die Nähe eines praktischen Versuches gekommen, denn wie willst Du Chimney Offload positiv testen? Auf der gezeigten X710/T4? Die unterstützt kein TOE. Höchstwahrscheinlich hast Du überhaupt keine Karte mit diesem Feature in deinem Besitz. Diese "Architecture" war eine Totgeburt. Wenn Du eine Karte dafür suchst, dann schau mal unter zehn Jahre alten Broadcom-Chips.
Also, weil so schönes Wetter ist: Natürlich kann Wireshark es nicht bestimmen, woran es liegt.
Aber Du kannst ja als guter Wissenschaftler eine einzelne Variable in einem Versuch ändern - z.B. Checksum-Offloading - und dann die Reaktion von Wireshark prüfen. Wenn Du das für beides machst, einmal Chimney Offload und ein andermal irgendein stateless Offloading wie Checksums, wirst Du feststellen, dass das Bild im Mitschnitt jeweils ein anderes ist, und es sich um zwei verschiedene Variablen handelt. Denn beides hat nichts miteinander zu tun.
Du bist offensichtlich gedanklich noch nicht mal in die Nähe eines praktischen Versuches gekommen, denn wie willst Du Chimney Offload positiv testen? Auf der gezeigten X710/T4? Die unterstützt kein TOE. Höchstwahrscheinlich hast Du überhaupt keine Karte mit diesem Feature in deinem Besitz. Diese "Architecture" war eine Totgeburt. Wenn Du eine Karte dafür suchst, dann schau mal unter zehn Jahre alten Broadcom-Chips.