Big Story | Vermögensverwaltung | 2018

Big Story

Ist es Real oder ist es Virtual?

Virtualisierung und virtuelle Maschinen haben in letzter Zeit viel Aufmerksamkeit bekommen. Dies liegt hauptsächlich an der erhöhten Verfügbarkeit und Zuverlässigkeit von kommerzieller virtueller Maschinen-Software von VMware und Microsoft. Es gibt nichts Neues unter der Sonne - Gerald J. Popek und Robert P. Goldbergs wegweisendes Papier von 1974. "Formale Anforderungen an die virtualisierbare Architektur der dritten Generation" definierten ziemlich genau das Spielfeld für virtuelle Maschinen - obwohl das Feld, auf dem sie spielten, ein großes Eisen war. Vielleicht gehen wir heute den Weg der Esoterik - meine Rechtschreibprüfung erkennt das Wort Virtualisierung nicht einmal.

Was ist also die Realität?

Was meinen wir, wenn wir den Begriff virtuell verwenden? Es wird im Allgemeinen auf etwas angewendet, das nicht als real empfunden oder wahrgenommen wird, sondern sich wie eine reale Sache verhält. Was ist also Realität? Ren? Descartes größter Beitrag zur westlichen Kultur war seine Arbeit in der Mathematik, aber er ist immer noch am besten bekannt für seine Behauptung, dass seine Realität durch seine Fähigkeit zu denken oder zu denken definiert wurde - Cogito ergo sum. Seine Ideen bildeten die Grundlage der westlichen rationalen Philosophie, der wiederum der Empirismus entgegentrat. Der irische Philosoph Bischof George Berkeley nahm diese Idee zu seinem Extrem, indem er behauptete, dass die einzige reale Existenz von irgendetwas die Wahrnehmung ist, die wir von diesem Ding in unserem Kopf haben. Also ist nichts real über seine Wahrnehmung hinaus - und Sie wissen, was das für Bäume bedeutet, die in den Wald fallen. Dr. Samuel Johnson, der Dichter, Essayist und Biograph des 18. Jahrhunderts, war besonders frustriert über Bischof Berkeleys Theorien und soll angeblich einen schweren Stein getreten haben: "So widerspreche ich ihm."

Virtueller Speicher

Realität (im Gegensatz zur Virutalität ) hat in der Welt des Digital Computing eine neue Bedeutung bekommen und ist immer noch so schwer zu definieren wie bisher. Virtuelles Gedächtnis ist uns allen bekannt. Ein digitales Computerbetriebssystem verwendet ein persistentes Speichergerät (wie eine Festplatte), um den flüchtigen Speicher zu erweitern, der ihm zur Verfügung steht. Random Access Memory oder RAM ist im Allgemeinen der Arbeitsbereich - der Bereich, in dem Daten manipuliert und verarbeitet werden. Wenn wir den gesamten verfügbaren RAM verbrauchen, können wir Teile von Daten auf ein persistentes Speichergerät übertragen und den Hauptspeicher virtuell erweitern. Dieser ganze Prozess ermöglicht es uns auch, Multi-Processing-Maschinen zu erstellen. Der gesamte laufende Prozess kann in den RAM-Speicher ein- und ausgelagert werden, so dass wir den zentralen Prozessor zeitlich teilen können. Im Idealfall machen wir den gesamten Austausch im RAM und eliminieren dadurch die Latenz von Schreib- und Lesevorgängen der Festplatte.

Virtuelle Anwendungsprozesse

Sun Microsystems prägte den Begriff "Einmal schreiben, irgendwo ausführen", um die Portabilität von Java-Bytecode zu beschreiben in der Regel Code geschrieben mit der Programmiersprache Java. Unter Portabilität verstehen wir die Fähigkeit, auf einer Vielzahl von Maschinen mit verschiedenen und oft inkompatiblen Betriebssystemen zu laufen. Diese Portabilität schreibt vor, dass der Java-Code vor der Verteilung nicht kompiliert werden kann oder dass er nicht auf verschiedenen Systemen ausgeführt werden kann. Dieses kleine Problem wurde durch die Verteilung von Java Virtual Machines gelöst, die den Code zur Laufzeit interpretieren oder ihn zur Laufzeit mit einem Just In Time (JIT) -Compiler kompilieren. Eine Java Virtual Machine ist eine Computersoftware, die eine isolierte Umgebung erzeugt, in der der Java-Bytecode interpretiert und dann in Prozesse übersetzt werden kann, die vom Host-Betriebssystem ausgeführt werden können. Sun "muss" nur Java Virtual Machines für alle gängigen Betriebssysteme verteilen und dann den Anspruch "Einmal schreiben, überall ausführen" umsetzen. Natürlich wissen wir alle, dass dies ein wenig verwirrend wurde, als Microsoft beschloss, seine eigene Java VM zu verteilen... was eine Menge Sun-Kram kaputt machte. Also haben wir gelernt, die Microsoft Java VM zu programmieren. Dann hat uns das Justizsystem dazu veranlasst, zur Sun Java VM zurückzukehren, die unseren neuen Code durchbrochen hat. So viel zu Standards.

Virtual Machines

Unser gegenwärtiges Interesse am Virtual Computing steht nicht wirklich im Einklang mit dem, was wir bisher besprochen haben. VMware und Virtual PC sind Produkte, die es uns ermöglichen, ganze Computersysteme im Kontext eines anderen Computersystems zu betreiben. Was macht einen digitalen Computer zu einem digitalen Computer? Berücksichtigen Sie diese drei Dinge oder drei Schichten:

Hardware - die CPU und die zugehörigen Eingabe-, Ausgabe- und Speichergeräte.

Das Betriebssystem - das ist eine Strecke, aber für unsere Zwecke rufen Sie eine Betriebssystem-Computer-Software, die eine Verbindung bereitstellt zwischen der Hardware und der Produktivitätssoftware

Anwendungssoftware - der Grund, warum wir überhaupt Computer benutzen - Software, die nur innerhalb des Betriebssystems funktionieren kann.

Also für unsere Zwecke gerade ein Beispiel für eine "echte" Maschine wäre eine Intel P4-Box, auf der Windows XP läuft und welche Produktivitätsanwendungen wir auch immer annehmen wollen. Virtual Machine Software wie Microsoft Virtual PC läuft in unserer Schicht drei oben. Tatsächlich kann es als eine andere Anwendung betrachtet werden - eine Anwendung, die ein separat ausgeführtes Betriebssystem emuliert. Diese virtuelle Maschine wird in einem realen Betriebssystem gehostet - und dieses reale Betriebssystem ist die Software, die tatsächlich mit der Hardware interagiert. Hierauf beziehen sich sowohl die Vor- als auch Nachteile der gehosteten virtuellen Maschinen.

Das Gute

Angenommen, Sie müssen die Richtlinienverwaltungssoftware an Tausende von unabhängigen Agenten verteilen. Der Helpdesk-Support für diese Gruppe ist bereits ein Albtraum. Eine individuelle Handhaltung für jedes Büro kommt nicht in Frage. Was wäre, wenn Sie Ihre Software nicht nur als Anwendung, sondern als vollständig konfigurierte Anwendung auf einer eigenen virtuellen Maschine verteilen könnten? Ihre Benutzer müssen nur die betriebssystemspezifische VM und die konfigurierte Anwendung installieren. Vor ein paar Jahren verbrachte ich ein paar Tage im Datenzentrum eines großen Versicherungsträgers, um eine Anwendung zu installieren, die wir für sie lizenziert hatten. Die Installation der eigentlichen Software war ein Kinderspiel, aber es gab spezifische Konfigurationen, die nach der Installation manuell durchgeführt werden mussten. Dieser Prozess dauerte Stunden, weil ich keine Tastatur berühren durfte. Wie viel einfacher wäre das Ganze gewesen, wenn ich in der Lage gewesen wäre, eine virtuelle Maschine mit installierter und vorkonfigurierter Software zu installieren.

Das Schlechte

Hier ist ein anderes Szenario. Sie werden die Richtlinienverwaltungssoftware immer noch an Tausende von unabhängigen Agenten verteilen. Sie wissen, dass Ihre Kunden Betriebssysteme von Windows 98 bis XP Professional ausführen. Ihr QA-Team entscheidet also, dass es auf gehosteten VMs testet. Sie richten mehrere virtuelle Testumgebungen mit unterschiedlichen Betriebssystemen und unterschiedlichen Konfigurationen ein (verfügbarer RAM, Prozessorgeschwindigkeit usw.). Sie beabsichtigen, eine virtuelle Maschine zu laden, dann das Produkt in dieser VM zu installieren, auszuführen und zu laden. Wenn es übergeben wurde, wird es dann für dieses Betriebssystem freigegeben. Das hört sich nicht nach einer so schlechten Idee an, aber ich mag es nicht. Eine gehostete virtuelle Maschine ist genau das - ein Betriebssystem, das im Kontext eines anderen Betriebssystems ausgeführt wird. Wenn mein Betriebssystem die Hardware nicht wirklich berührt, kann ich nicht garantieren, dass ein "echtes" System, auf dem dieses Betriebssystem läuft, genau so verhält.

Das Hässliche

Virtuelle Maschinen in einer gehosteten Umgebung auszuführen ist ein kludgy Prozess. Betriebssysteme sind schon so aufgebläht - und Hersteller versuchen so viel proprietäres Zeug auf uns zu drücken, dass Systemressourcen bereits an die Grenzen getrieben werden. Mein sehr schöner Laptop mit einem bekannten TLA-Typenschild kam von der Fabrik mit so viel vorinstallierter "Produktivitäts" -Software, dass ich überlegte, eine DOS-VM zu installieren, damit ich Word Perfect 5.1 ausführen und etwas Arbeit erledigen konnte. Der Registrierungseintrag für HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun hatte eine Liste der Schlüssel, so lange ich die Seite scrollen musste. Auf keinen Fall werde ich eine gehostete VM auf dieser Box ausführen können. Aber selbst saubere, gut gewartete Maschinen laufen beim Ausführen von VMs zusammen. Wir verfügen über eine Demo-Box, auf der Windows 2000 Server mit SharePoint Server, SQL Server und Content Management Server in einer VM unter XP ausgeführt wird, die auf die Daten zugreifen, die vom gehosteten Prozess bereitgestellt werden. Dieses Ding hat einen schnellen Prozessor und eine Menge RAM, aber wenn ich es ausschalte, habe ich Zeit, zu Starbucks zu fahren und etwas Java zu holen, bevor es mit dem Booten fertig ist. Und mein Büro ist ziemlich weit vom nächsten Barista entfernt.

Hardwareebene Virtuelle Maschinen

Wenn wir wirklich effiziente virtuelle Maschinen erstellen wollen, müssen wir auf die Maschinenebene zurückgreifen. Seien wir ehrlich - sobald wir zu weit über den grundlegenden Befehlssatz des Prozessors hinaus kommen, werden wir sowieso virtualisiert. Das Herz der Maschine ist nur eine Reihe von Nand- und Nor-Toren... unter der Annahme eines möglichst kleinen Befehlssatzes. Zu der Zeit, wenn wir Daten vom Stapel schubsen und puffern, sind wir aus der binären Switch-Welt heraus und bereits virtualisiert. Die Realität ist jedoch, dass ein Betriebssystem von der Hardware ein bestimmtes Verhalten erwartet. Systeme, die eine Virtualisierung auf Hardwareebene ermöglichen, werden häufig als Hypervisor bezeichnet. Hypervisoren ermöglichen die gleichzeitige Ausführung verschiedener Betriebssysteme auf derselben Maschine. Sie entstanden in den 70er Jahren - insbesondere bei IBM 360-Systemen, die speziell für die Virtualisierung entwickelt und gebaut wurden. Ich schneide meine Zähne an VM / CMS (Virtual Machine / Conversational Monitor System) Maschinen und ich kann ihre Vielseitigkeit bestätigen. Auf der anderen Seite wurden X86-Systeme nicht für die Virtualisierung konzipiert. Das macht es ziemlich schwierig, vollständig zu virtualisieren. Ein Weg dazu ist Paravirtualisierung - ein Schema, bei dem ein relativ einfacher Hypervisor, der eine reduzierte virtualisierte Hardwareschicht liefert, mit einem Betriebssystem abgestimmt ist, das speziell für den Betrieb mit dieser reduzierten Schicht ausgelegt ist. Die reduzierte Virtualisierung basiert im Allgemeinen auf einer vertrauenswürdigeren Sicherheitsstufe oder einem sichereren Schutzring, der vom tatsächlichen Prozessor bereitgestellt wird. Im Wesentlichen stellt Paravirtualisierung eine API auf Maschinenebene bereit, die ein modifiziertes OS verwenden muss.

Ein anderes Schema, das die volle Virtualisierung nicht erreicht, wird native Virtualisierung genannt. Dies ist eine virtuelle Hardware-Maschine, die nur so viel von der Hardware virtualisiert, dass ein nicht modifiziertes Betriebssystem auf der VM ausgeführt werden kann. Die Einschränkung hier ist, dass das Betriebssystem so ausgelegt sein muss, dass es auf der zugrunde liegenden Hardware (CPU) läuft. BootCamp für den Macintosh bietet die Möglichkeit, Windows XP auf einem Intel-basierten Macintosh zu installieren und auszuführen. Ich habe dieses Produkt nicht persönlich getestet, aber die Beta scheint eine gewisse Hardware-Virtualisierungsebene zu bieten - nicht unbedingt für den Prozessor, sondern für Peripheriegeräte.

Unser oberstes Ziel sollte eine vollständige Hardware-Virtualisierung sein. Virtuelle Maschinen, mit denen jedes Betriebssystem auf jeder Hardwareplattform ausgeführt werden kann, bieten die größte Flexibilität. Die vollständige Virtualisierung wird einen weiteren Paradigmenwechsel bewirken. Gerade jetzt, wenn ich einen ausgefallenen Server neu erstellen oder ein anderes in einer Farm online stellen muss, muss ich ein Image des Computers wiederherstellen und dann verwendete mein letztes Backup, um den neusten Status des Computers neu zu erstellen. Wenn ich dies mit einer völlig anderen Maschine erreichen muss, muss ich den Server vielleicht neu aufbauen, indem ich mit OS anfange und dann auf die verschiedenen Anwendungssoftware schichte.

Die Schöne

Wenn ich das gleiche Problem habe, aber alle virtualisiert habe Maschinen kann ich sofort einen anderen Server online bringen. Im Notfall könnte ich meinen virtualisierten Middleware-Server auf demselben (virtualisierten) physischen Computer ablegen, auf dem meine Präsentationssoftware ausgeführt wird, und Ausfallzeiten minimieren - ein Performance-Hit ist immer besser als Ausfallzeiten. Ich mag das Bild - ich habe ein 6U-Rack von Blade-Servern, die alle Hardware-Level-virtuellen Maschinen laufen. Diese Leute greifen auf mein Terabyte-SAN zu. Ich kann Server je nach Bedarf und Belastung durch physische Maschinen ersetzen. Die einzige "Maschine", mit der ich mich befassen muss, ist eine virtuelle. Und wenn ich Dr. Johnson spielen möchte, kann ich immer meinen 200-Pfund-Netfinity-Server kicken, der letzte Woche gestorben ist.

Mehr laden

Vorheriger Artikel

Flugrisiko: Was man in Drohnenüberdeckungen beachten sollte

Flugrisiko: Was man in Drohnenüberdeckungen beachten sollte

Wenn Sie geschäftlich unterwegs sind Besitzer, die Drohnen gewerblich nutzen, achten darauf, dass sie den richtigen Versicherungsschutz haben. (Abbildung: Dan Béjar / The Ispot.com) Aufgrund ihrer militärischen Anwendungen und Datenschutzbedenken machen Drohnen in diesen Tagen häufig Schlagzeilen, aber sie können auch ein Teil des Geschäfts Ihrer Kunden sein und sie mit ungesehenen Risiken konfrontieren ....

Nächster Artikel

Eric Park

Eric Park

Mitbegründer Steamboat Financial Group LPL Karriere begann: 1980 Heimatbasis: Washington, Mo. Bürger Zugehörigkeit: Washington Rotary Club, Franklin County Humane Society, Osten Central College Als Eric Park ein Kind war, faszinierte ihn ein Brettspiel über Investitionen. Wirf die Würfel und die Indikatoren würden sich nach oben oder unten bewegen und Zinssätze und Währungen ändern....

Senden Sie Ihren Kommentar