Difference between revisions of "Servicestörungen"

From Second Life Wiki
Jump to navigation Jump to search
m (IN PROGRESS ~~~~)
 
m (Typo cleaning/ Umstellung auf neue CT-Richtlinie der Anrede/Einarbeitung der letzten Änderung des englischen Artikels)
 
(19 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Multi-lang}}
{{Help/de|Parent=Service Disruptions|BugFixes=*}}


Second Life is a complex system with many inter-operating components, from simulators and databases to the viewer you run, and the Internet connections over which data flows. Although it is intended to be as [http://en.wikipedia.org/wiki/Loose_coupling loosely coupled] as possible and resilient against problems, events can still occur which lead to service disruptions.
Second Life ist ein komplexes System mit vielen Komponenten, die miteinander interagieren, von den Simulatoren und Datenbanken zu dem Viewer, den Sie am Laufen haben und den Internetverbindungen, über welche die Daten fliessen. Obwohl es als so [http://de.wikipedia.org/wiki/Lose_Kopplung lose gekoppelt] wie möglich und robust gegen Probleme ausgedacht ist, können immer noch Ereignisse auftreten, die zu Störungen bei den Diensten führen.


In some cases the failures are beyond the control of Linden Lab. However, in nearly all cases there is active work being done to mitigate the disruptions - either prevent them from happening or significantly reduce the impact.
In manchen Fällen befinden sich die Fehler außerhalb der Kontrolle von Linden Lab. Allerdings wird in fast allen Fällen aktiv daran gearbeitet, Störungen abzuschwächen - entweder sie gar nicht auftreten zu lassen oder die Auswirkung beträchtlich zu reduzieren.


When a disruption occurs, the following sequence usually occurs:
Wenn eine Störung auftritt, tritt normalerweise folgender Ablauf in Kraft:
* a system stops responding
* ein System hört auf, zu reagieren
* automated notifications go off, alerting our operations team
* automatische Mitteilungen gehen los, die unser Team, das für den Betrieb verantwortlich ist (Operationsteam), alarmieren
* residents often notice immediately, and alert in-world support, who confirm the problem to our operations team
* Oft werden Residents sofort informiert und der inworld Support alarmiert, der unserem Operationsteam das Problem bestätigt
* the operations team identifies the system that is the root cause of the problem
* das Operationsteam erkennt das System, das die Ursache des Problems ist
* the communications team is notified, and asked to provide information about the disruption to the blog
* das Kommunikationsteam wird benachrichtigt und darum gebeten, die Information über die Störung im Blog bereitzustellen
* if the disruption lasts more a few minutes, updates are made to the blog regularly
* wenn die Störung länger als ein paar Minuten dauert, wird das Blog regelmässig aktualisiert
* once the problem is solved, an "all clear" is reported to the blog
* wenn das Problem dann einmal gelöst ist, wird eine "Alles Klar" Meldung im Blog veröffentlicht


Note that in many cases a disruption may be solved before any information can make it to the blog explaining the details of the problem. One purpose of this document is to provide a "clearing house" for types of service disruptions, so that in the event of a system failure the blog post can reference this page.
Bitte beachten Sie, daß in vielen Fällen eine Störung behoben sein kann, bevor es möglich ist, eine Information im Blog zu veröffentlichen, um die Einzelheiten des Problems zu erklären. Ein Zweck dieses Dokumentes ist es, ein "Dokumentationszentrum" für Arten von Störungen in den Diensten bereitzustellen, damit das Blogposting sich auf diese Seite beziehen kann, wenn sich ein Systemfehler ereignet.


At the time of this writing, and in no particular order, these are the systems which have been known to cause service disruptions:
Zum Zeitpunkt der Erstellung dieses Dokumentes und in keiner besonderen Reihenfolge, sind das die Systeme, von denen bekannt wurde, dass sie Störungen in den Diensten auslösen:


== Asset Storage Cluster ==
== Assetspeichercluster ==


'''What is it:''' A cluster of machines that form a whopping huge [http://en.wikipedia.org/wiki/WebDAV WebDAV] (think "web-based disk drive") storage mechanism with terabytes of space for storing assets, including uploaded textures, snapshots, scripts, objects taken into inventory, script states, saved region states (simstates), etc that make up Second Life. The technology (software and hardware) is licensed from a third party.
'''Was es ist:''' Ein Cluster von Maschinen, die einen riesigen [http://de.wikipedia.org/wiki/WebDAV WebDAV] (stellen Sie sich eine "webbasierte Festplatte" vor) Speichermechanismus mit Terabytes von Platz zum Speichern von Beständen, einschliesslich hochgeladener Texturen, Snapshots, Skripten, Objekten, die ins Inventar aufgenommen wurden, Skriptzuständen, gespeicherten Zuständen von Regionen (Simstates), usw., die Second Life ausmachen. Die Technologie dafür (Software und Hardware) ist von einem Drittanbieter lizenziert.


'''How it can fail:''' The system should be resilient against single node failures. In the case of multiple disk failures, software upgrades, removing problem nodes or adding new nodes, some or all of the cluster can fall offline. If this happens, asset uploads and downloads fail - this causes texture uploads and simstate saves to fail. Since transient data during region crossings (attachment states, etc) are written as assets, region crossings will also often fail.  
'''Wie ein Fehler auftreten kann:''' Das System sollte gegen Ausfälle einzelner Knoten robust sein. In dem Fall dass mehrere Festplatten ausfallen, bei Softwareaktualisierungen, beim Entfernen fehlerhafter Knoten oder dem Hinzufügen neuer Knoten können einige oder alle der Cluster offline gehen. Wenn das passiert, scheitern das Hoch- und Herunterladen von Beständen - das führt dazu, dass Uploads von Texturen und das Abspeichern von Simstates fehlschlagen. Weil die vorübergehenden Daten beim Überqueren von Regionen (Zustände von Attachmants usw.) als Assets weggeschrieben werden, wird oft auch das Überqueren von Regionen scheitern.  


'''How we fix it:''' When detected, we often disable logins and message in-world (if possible) to help avoid data loss. Failed nodes can be taken out of rotation. A restart of other nodes may be necessary. When upgrading the software on the nodes, the grid is usually closed to prevent data loss during any inadvertent outages. An asset system failure requiring a reboot occurred on [http://blog.secondlife.com/2008/03/28/asset-server-issues/ March 28th, 2008]
'''Wie wir das beheben:''' Wenn dieser Fehler festgestellt wird, schalten wir oft die Logins ab und schicken inworld eine Nachricht (wenn möglich), um dabei zu helfen, Datenverluste zu vermeiden. Knoten, bei denen Fehler auftraten, können aus der Rotation genommen werden. Ein Neustart von anderen Knoten kann notwendig sein. Wenn die Software auf den Knoten aktualisiert wird, ist der Grid normalerweise geschlossen, um Datenverluste während irgendwelchen ungewollten Ausfällen zu verhindern. Ein Fehler im Assetsystem, der einen Neustart erforderlich machte, trat am [http://blog.secondlife.com/2008/03/28/asset-server-issues/ 28. März 2008]{{nnlink/de}} und am [http://status.secondlifegrid.net/2008/05/13/post70/ 14. Mai 2008]{{nnlink/de}} auf.


== Central Database Cluster ==
== Zentraler Datenbankcluster ==


'''What is it:''' A cluster of databases that store the core persistent information about Second Life - including resident profiles, groups, regions, parcels, L$ transactions and classifieds.
'''Was es ist:''' Ein Cluster von Datenbanken, der die grundlegenden, gleichbleibenden Informationen über Second Life speichert - einschliesslich den Profilen von Residents, Gruppen, Regionen, Grundstücke, L$ Transaktionen und Kleinanzeigen.


'''How it can fail:''' The database can become loaded enough during normal operations that some fraction of transactions fail and either must be manually retried or are automatically retried. Hardware failure and software bugs in the database code can also cause the database to crash or stop responding. Logins will fail, transactions in-world and on the web site will fail, and so forth.  
'''Wie ein Fehler auftreten kann:''' Die Datenbank kann während dem Normalbetrieb ausgelastet werden, sodass ein Teil von Transaktionen fehlschlägt und entweder von Hand erneut versucht werden muss oder automatisch erneut versucht werden. Hardwareausfälle oder Softwarefehler im Programmcode der Datenbank können auch dazu führen, daß die Datenbank abstürzt oder aufhört, zu reagieren. Logins werden fehlschlagen, Transaktionen inworld und auf der Website werden scheitern und so weiter.  


'''How we fix it:''' If the primary database fails, we swap to one of the secondaries. If the database load is high but hasn't failed we can turn off services to try and reduce the load.
'''Wie wir das beheben:''' Wenn die primäre Datenbank ausfällt, wechseln wir auf eine der sekundären. Wenn die Belastung der Datenbank zu hoch ist, sie aber nicht ausgefallen ist, können wir Dienste abschalten, um zu versuchen, die Belastung zu reduzieren.


''Eliminating this cluster as a scalability bottleneck and failure point is a very high priority for Linden Lab. While this is in progress, load mitigation is occurring. Watch the [http://blog.secondlife.com/2008/04/07/profile-and-group-services-temporarily-unavailable/ Second Life Blog] for updates''
''Das Eliminieren dieses Clusters als Flaschenhals bei der Skalierbarkeit und Ausfallpunkt hat eine sehr hohe Priorität für Linden Lab. Während das in Arbeit ist, tritt eine Abmilderung der Belastung auf. Behaltet das [http://blog.secondlife.com/2008/04/07/profile-and-group-services-temporarily-unavailable/ Second Life Blog]{{nnlink/de}} im Auge, um aktuelle Informationen zu bekommen''


== Agent ("Inventory") Database Cluster ==
== Agenten- ("Inventar-") Datenbankcluster ==


'''What is it:''' Storage for most agent-specific data such as the inventory tree is partitioned across a series of databases. Each agent is associated with a particular inventory partition (a primary database and its secondary backups). At the time of this writing, we have approximately 15 agent database partitions.
'''Was es ist:''' Speicher für die meisten agentenspezifischen Daten wie den Inventarbaum ist über eine Reihe von Datenbanken verteilt. Jeder Agent ist einem bestimmten Inventarspeicherbereich (einer primären Datenbank und ihren sekundären Sicherungen) zugeordnet. Zum Zeitpunkt, als dieses Dokument geschrieben wird, haben wir ungefähr 15 Speicherbereiche für Agentendatenbanken.


The initial use of these agent-partitioned databases was for inventory, so they are often referred to as "inventory databases" by Lindens, but this is no longer the extent of what agent-specific data is stored within them.
Die ursprüngliche Verwendung dieser nach Agenten unterteilten Datenbanken war für das Inventar, so dass sie von Lindens oft als "Inventardatenbanken" bezeichnet werden, aber das ist nicht mehr länger ein Ausdruck dafür, welche agentenspezifischen Daten in ihnen gespeichert werden.


'''How it can fail:''' Hardware or software failure can affect the primary database within the partition, so that it either stops responding to queries or becomes excessively slow.
'''Wie ein Fehler auftreten kann:''' Hardware- oder Softwareausfälle können die primäre Datenbank innerhalb eines Speicherbereiches beeinflussen, sodass sie entweder nicht mehr auf Anfragen reagiert oder überaus langsam wird.


'''How we fix it:''' When an agent database fails we can swap to the backup within that partition, which takes a few minutes. If this will not happen immediately or if problems are encountered, that particular agent partition is "blacklisted" temporarily; this causes logins of agents who are associated with that partitions to be blocked and any agents logged in are "kicked", while the fix is in progress. This will affect some fraction of the grid, but not everybody.
'''Wie wir das beheben:''' Wenn eine Agentendatenbank ausfällt, können wir auf die Sicherung innerhalb dieses Speicherbereiches umschalten, was einige Minuten dauert. Wenn das nicht sofort passiert oder wenn Probleme festgestellt werden, wird dieser bestimmte Agentenspeicherbereich vorübergehend "auf eine schwarze Liste gesetzt"; das führt dazu, daß Logins von Agents, die diesem Speicherbereich zugeordnet sind, blockiert werden und alle eingeloggten Agents "gekickt" werden, während die Behebung des Fehlers in Arbeit ist. Das beeinträchtigt einige Teile des Grids, aber nicht jeden.


''This is an example of a system that in the past was prone to causing global service disruption. It was re-designed to limit the impact to Residents even in the face of hardware failure; only Residents associated with a particular partition are affected during such a failure.''
''Das ist ein Beispiel für ein System, das in der Vergangenheit dafür bekannt war, eine globale Störung der Dienste auszulösen. Es wurde neu entworfen, um die Auswirkung auf die Residents auch in Anbetracht eines Hardwareausfalles zu begrenzen; nur Residents, die einem bestimmten Speicherbereich zugeordnet sind, werden während eines solchen Ausfalles beeinträchtigt''


== Other Database Clusters ==
== Andere Datenbankcluster ==


'''What is it:''' There are a handful other database clusters in use. One is used for logging data.
'''Was es ist:''' Es gibt eine Handvoll weiterer Datenbankcluster, die in Verwendung sind. Einer davon wird für die Logdateien (Protokolldateien) verwendet.


'''How it can fail:''' Hardware or software failures can take a database cluster offline. There should be no in-world effect from one of these other database clusters failing, but occasionally a software design flaw does introduce a dependency that is not caught. For example, logins used to require a successful connection to the login database to record the login and viewer statistics, but this dependency has been removed.
'''Wie ein Fehler auftreten kann:''' Hardware- oder Softwareausfälle können einen Datenbankcluster dazu bringen, offline zu gehen. Es sollten keine Auswirkungen inworld davon zu spüren sein, wenn einer dieser Datenbankcluster ausfällt, aber gelegentlich führt eine Unaufmerksamkeit im Softwareentwurf zu einer Abhängigkeit, die nicht abgefangen wird. Zum Beispiel haben Logins üblicherweise eine erfolgreiche Verbindung zu der Logindatenbank erfordert, um die Login- und Viewerstatistik aufzuzeichnen, aber diese Abhängigkeit wurde entfernt.


'''How we fix it:''' All databases act in clusters with a primary machine and several secondaries. In case of failure, a secondary can be swapped into place as the new primary.
'''Wie wir das beheben:''' Alle Datenbanken in Clustern laufen auf einer Primärmaschine und verschiedenen Sekundärmaschinen. Im Fall eines Fehlers kann eine Sekundärmaschine an die Stelle der Primärmaschine gesetzt werden.


''Our data warehousing team has been doing significant work over the past year to ensure that the ever increasing amount of data being logged about simulator and other system performance can be analyzed, and that the collection of this data is "transparent" to the other systems - logging database failures should no longer cause service disruptions.''
''Unser Datawarehousing Team hat innerhalb des letzten Jahres eine bedeutende Arbeit geleistet, um sicherzustellen, dass die ständig anwachsende Menge an Daten über die Performance von Simulatoren und anderen Systemen, die aufgezeichnet werden, analysiert werden kann und dass die Sammlung dieser Daten "transparent" für die anderen Systeme geschieht - der Ausfall von Protokolldatenbanken sollte nicht mehr länger zu Ausfällen der Dienste führen.''


== Transient Data Services ==
== Dienste für vorübergehende Daten ==


'''What is it:''' A cluster of machines (currently: 16) that store data in memory for "transient" state. This includes things like agent presence ("who is logged on?"), group chat participation, inbound email to script mapping, and so forth. This data is not stored in a database and is either constantly refreshed (e.g. simulators update agent presence every few minutes) or otherwise recoverable (e.g. rejoining a group chat).  
'''Was es ist:''' Ein Cluster von Maschinen (derzeit: 16), die Daten im Gedächtnis halten, die "flüchtiger" Natur sind. Das beinhaltet Dinge wie die Gegenwart von Agents ("Wer ist eingeloggt?"), Teilnahme an Gruppenchats, die Umsetzung von eingehenden Emails in Skripten und so weiter. Diese Daten werden nicht in einer Datenbank gespeichert und werden entweder ständig aufgefrischt (zum Beispiel aktualisiert der Simulator alle paar Minuten die Gegenwart von Agents) oder aber wiederherstellbar (zum Beispiel durch das erneute Aufrufen eines Gruppenchats).  


'''How it can fail:''' Hardware failure can reduce the capacity of these machines, or take them offline entirely. Software bugs can also cause poor performance - for example, a memory leak in a service could cause the services to start responding slowly. While the specific service is disrupted, the overall service remains functional.
'''Wie ein Fehler auftreten kann:''' Hardwareausfälle können das Fassungsvermögen dieser Maschinen vermindern oder sie auch komplett offline nehmen. Softwarefehler können auch eine sehr schwache Performance verursachen - zum Beispiel führt ein Speicherleck in einem Dienst dazu, daß die Dienste insgesamt anfangen, langsam zu reagieren. Wenn ein bestimmter Dienst unterbrochen ist, werden die anderen Dienste insgesamt weiterhin funktionsfähig bleiben.


'''How we fix it:''' Because the state is transient, a replacement host can be brought online quickly and the data "heals" itself over time. If the error is software-side the services can be restarted as soon as a fix for the bug is found, with little impact to residents.
'''Wie wir das beheben:''' Weil der Status vorübergehend und flüchtig ist, kann eine Ersatzmaschine schnell online gebracht werden und die Daten "heilen" sich selbst mit der Zeit. Wenn der Fehler softwareseitig ist, können die Dienste einfach mit wenig Auswirkungen für die Residents neu gestartet werden, sobald eine Fehlerbehebung für das Problem gefunden ist.


== Simulators ==
== Simulatoren ==


'''What is it:''' A [[Glossary#Sim|sim]] is a machine that runs [[Glossary#Simulator|simulators]], which are the computer processes that runs [[region|regions]]. (Think of a ''region'' like a document, the ''simulator'' like a word processor, and the ''sim'' as the computer itself that runs the program.) Since these are closely coupled concepts, jargon/terminology tends to be somewhat loose, e.g. "simstate" should really be "region state". The simulator divides its time between communicating with viewers, communicating with other system components, simulating physics and executing scripts.  
'''Was es ist:''' Eine [[Glossary#Sim|sim]]{{nnlink/de}} ist eine Maschine, auf der [[Glossary#Simulator|Simulatoren]]{{nnlink/de}} laufen, welche wiederum Computerprozesse sind, auf denen [[region|Regionen]]{{nnlink/de}} laufen. (Stellen Sie sich eine ''Region'' wie ein Dokument vor, den ''Simulator'' wie ein Textverarbeitungsprogramm und die ''Sim'' als den Computer selbst, auf dem das Programm läuft.) Weil es sich dabei um eng verwandte Konzepte handelt, tendiert der Jargon/die Terminologie und Ausdrucksweise dazu, etwas unklar zu sein, zum Beispiel sollte der "Simstatus" in Wirklichkeit "Status der Region" sein. Der Simulator teilt seine Zeit auf die Kommunikation mit Viewern, die Kommunikation mit anderen Systemkomponenten, das Simulieren von physikalischen Vorgängen und das Ausführen von Skripten auf.  


'''How it can fail:''' A bug in the simulator code can cause a crash. Most crashes cause a region simstate to be saved, and another simulator will load that simstate after a few minutes. Often, the bug is triggered by some of the region content - a script or physical object.
'''Wie ein Fehler auftreten kann:''' Ein Fehler im Programmcode des Simulators kann einen Absturz verursachen. Die meisten Abstürze führen dazu, daß der Simstatus einer Region abgespeichert wird und ein anderer Simulator diesen Simstatus nach ein paar Minuten laden wird. Oft wird der Fehler auch durch einige bestimmte Arten von Inhalten einer Region ausgelöst - einem Skript oder einem physikalischen Objekt.


Other problems fall into two categories - problems with a specific sim, or grid-wide. Problems with a specific sim may include overloading (e.g. 4 high-traffic regions on the same sim) or failures (disk full, network interfaces lost, hardware failure). Grid-wide problems are usually caused by the other factors listed here, such as loss of network or database or asset cluster failure (either of which, for example, could prevent simulators from loading simstates. New simulator code releases occasionally introduce bugs with grid-wide consequences (e.g. excessive logging causing network traffic congestion)
Andere Probleme teilen sich in zwei Kategorien auf - Probleme mit einer bestimmten Sim oder gridweite Probleme. Probleme mit einer bestimmten Sim können aus einer Überlastung (zum Beispiel 4 Regionen mit hohem Traffic auf einer Sim) oder Fehlern (Speicherplatz erschöpft, Netzwerkkarte verloren, Hardwarefehler) bestehen. Gridweite Probleme sind gewöhnlich durch andere Faktoren ausgelöst, als sie hier aufgelistet sind, so zum Beispiel Verlust der Netzwerkanbindung oder Datenbankfehler oder Fehler im Assetcluster (welche zum Beispiel dazu führen können, dass Simulatoren daran gehindert werden, Simstati zu laden. Neue Programmcodes für die Simulatoren bringen manchmal Fehler mit gridweiten Auswirkungen ein (zum Beispiel verursacht übermässiges Protokollieren eine Überlastung durch den Netzwerkverkehr.)


'''How we fix it:''' Simulator crashes are reported just as viewer crashes are. We can use the data to determine the general subsystem that caused the crash (initialization, physics, scripts, messaging, etc.) If the crash is caused by content (script or physical object) we can use the crash data to determine why this occurred. In the mean time (since the fix may take several days or, in the case of physics, a project like the move to Havok 4) the region is brought up with scripts/physics disabled and the offending objects removed.
'''Wie wir das beheben:''' Simulatorabstürze werden genauso wie Viewerabstürze berichtet. Wir können die Daten dazu nutzen, das grundlegende Untersystem festzulegen, das den Absturz ausgelöst hat (die Initialisierung, Physikengine, Skripte, Nachrichtenübermittlung usw.). Wenn der Absturz durch Inhalte (Skripten oder physikalische Objekte) ausgelöst wurde, können wir die Absturzdaten dazu verwenden, festzustellen, warum er aufgetreten ist. In der Zwischenzeit (da eine Fehlerbehebung auch einige Tage dauern kann oder im Fall von Problemen mit der Physikengine ein Projekt wie der Umzug auf Havok4 notwendig ist), wird die Region wieder mit deaktivierten Skripten/physikalischen Eigenschaften und nach dem Entfernen der auslösenden Objekte online gebracht.


Problems with a specific sim can be addressed by restarting the regions, which causes a simulator process on a different sim to run it. Grid-wide problems are fixed either at the source (e.g. repair the network). Bugs from new code releases require either a configuration change (to turn off a new feature) or a rolling restart with updated code.
Probleme mit einer bestimmten Sim können durch das Neustarten der Regionen in den Griff bekommen werden, was dazu führt, dass ein Simulatorprozess auf einer anderen Sim sie laufen lässt. Gridweite Probleme werden vorzugsweise an der Quelle behoben (zum Beispiel durch die Reparatur des Netzwerks). Bugs in Veröffentlichungen von neuem Programmcode erfordern entweder eine Änderung der Konfiguration (um ein neues Feature abzuschalten) oder einen rolling Restart mit aktualisiertem Code.


''Reducing simulator crashes was the main motivation behind the movement to [[Havok4]] for physics simulation, and the upcoming move to [[Mono]] for script execution.''
''Die Reduzierung von Simulatorabstürzen war die Hauptmotivation hinter dem Umstieg auf [[Havok4]]{{nnlink/de}} für die Physiksimulation und den bevorstehenden Umstieg auf [[Mono]]{{nnlink/de}} für die Skriktausführung.''


== Dataservers ==
== Datenserver ==


'''What is it:''' Most of the simulator to database communication proxies through a process called "dataserver"; there are a few dataserver processes on each sim host. This eliminates a direct dependency on the database and allows the dataserver to block on a lengthy query while the simulator targets a fixed frame rate.
'''Was es ist:''' Die meiste Kommunikation zwischen dem Simulator zur Datenbank wird durch einen Prozess, der "Datenserver" heißt, zwischengespeichert; es gibt einige wenige Datenserverprozesse auf jedem Simhost. Das verhindert eine direkte Abhängigkeit von der Datenbank und erlaubt es dem Datenserver, auch eine längere Abfrage zu blockieren, während der Simulator eine bestimmte Framerate zu erreichen versucht.


'''How it can fail:''' The dataserver process can crash as a result of bugs related to unforseen circumstances. For example, if the network hiccups, a connection to a database may be lost. Usually the system recovers gracefully and transparently from a dataserver failure, but on a particular simulator some transactions may fail temporarily. The service disruption is localized to the specific simulator. It is also possible that a software update could introduce bugs that cause grid-wide effects (for example, increased load on the central database cluster, or just more frequent crashes.) When a database is not responding to connections, the dataserver process watcher will automatically stop and restart the dataserver so new requests can be services.
'''Wie ein Fehler auftreten kann:''' Der Datenserverprozess kann aufgrund von Bugs abstürzen, die in Bezug zu unvorhergesehenen Umständen stehen. Zum Beispiel, wenn ein kurzer Netzwerkausfall auftritt, kann die Verbindung zu einer Datenbank verlorengehen. Normalerweise erholt sich das System gutmütig und transparent von einem Fehler mit dem Datenserver, aber bei einem bestimmten Simulator können einige Transaktionen vorübergehend scheitern. Die Unterbrechung der Dienste ist auf den bestimmten Simulator beschränkt. Es ist auch möglich, dass ein Softwareupdate Bugs mit einbringen kann, die gridweite Effekte auslösen können (zum Beispiel erhöhte Last auf den zentralen Datenbanken oder einfach häufigere Abstürze). Wenn eine Datenbank nicht auf Verbindungsanfragen reagiert, wird der Überwachungsdienst den Datenservers automatisch anhalten und den Datenserver neu starten, damit neue Anfragen bearbeitet werden können.


'''How we fix it:''' When an individual dataserver crashes, it is automatically restored. If a bug is introduced that causes grid-wide effects the dataserver processes can usually be replaced without downtime.  
'''Wie wir das beheben:''' Wenn ein einzelner Datenserver abstürzt, wird er automatisch wieder hergestellt. Wenn ein Bug einbracht wurde, der gridweite Effekte auslöst, können die Datenserverprozesse normalerweise ohne Downtime ersetzt werden.  


''The dataserver component is being phased out and replaced with web dataservices; simulators will use HTTP to talk to a new set of hosts that in turn relay queries to the database. This will allow us to more easily tweak the system to improve performance and eliminate disruptions.''
''Die Datenserverkomponente ist dabei, ausgeschaltet und durch webbasierte Datenserverdienste ersetzt zu werden; Simulatoren werden HTTP verwenden, um mit einer neuen Art von Hosts zu reden, die als Relaisstation für Anfragen an die Datenbank dienen. Das wird uns dir Möglichkeit geben, das System leichter zu modifizieren, um die Performance zu verbessern und Unterbrechungen auszuschalten.''


== Login Server Cluster ==
== Login Server Cluster ==


'''What is it:''' A cluster of servers which represent the first service that the viewer connects to when attempting to log in. This validates the resident's credentials, checks the viewer version for possible updates, ensures the latest Terms of Service have been updated. Assuming those check out, it sends the viewer an initial overview of the resident's inventory folders and a few other chunks of data. Finally, it negotiates with the simulator for the requested start location and lets the viewer know which simulator to talk to.
'''Was es ist:''' Ein Cluster von Servern, der den ersten Dienst bereitstellt, mit dem der Viewer sich verbindet, wenn versucht wird, sich einzuloggen. Dieser überprüft die Benutzerdaten des Residents, prüft die Viewerversion auf mögliche Updates und stellt sicher, dass die neuesten Benutzerbestimmungen (Terms of Service) aktualisiert wurden. Angenommen, alle Überprüfungen verlaufen positiv, sendet der Cluster eine erste Übersicht über die Inventarordner des Residents und einige wenige weitere Teile von Daten. Schliesslich verhandelt er mit dem Simulator für die gewünschte Startregion und lässt den Viewer wissen, mit welchem Simulator er zu reden hat.


'''How it can fail:''' If one drops offline, some percentage of logins will fail. Additionally, since the login sequence is database-intensive, if the central database or inventory database cluster are having problems then logins will also fail. Finally, after a major disruption that leads to many Residents being kicked or unable to connect, there may be more Residents trying to connect than our Second Life can handle (roughly 1000 logins/minute); this can appear to Residents trying to log in as though the login service is failing, even though it is fully functional and just at maximum capacity.
'''Wie ein Fehler auftreten kann:''' Wenn ein Server offline geht, wird ein gewisser Prozentsatz an Logins scheitern. Zusätzlich werden Logins auch scheitern, wenn wenn die zentrale Datenbank oder der Cluster der Inventardatenbank Probleme haben, da der Ablauf des Logins sehr datenbankintensiv ist. Schliesslich kann es auch passieren, dass nach einer grösseren Unterbrechung die dazu führte, dass die Mehrzahl der Residents ausgeloggt wurde oder sich nicht einloggen konnte, mehr Residents versuchen, sich einzuloggen, als unser Second Life verarbeiten kann (ungefähr 1000 Logins/Minute); das kann dann für Residents, die versuchen, sich einzuloggen, so aussehen, als ob der Logindienst fehlerhaft ist, obwohl er voll einsatzbereit ist und nur bei maximaler Kapazität läuft.


'''How we fix it:''' If a login server itself fails, we take it out of rotation. If the problem is in another system or service, we fix it there.
'''Wie wir das beheben:''' Wenn ein Loginserver selbst ausfällt, nehmen wir diesen aus der Rotation der Server. Wenn das Problem in einem anderen System oder Dienst begründet liegt, beheben wir es dort.


== Web Site ==
== Web Site ==


'''What is it:''' A cluster of machines that serve the web pages and web services exposed to the public - including secondlife.com, lindenlab.com, slurl.com, etc.
'''Was es ist:''' Ein Cluster von Maschinen, die die Webseiten und Webdienste bedienen, die der Öffentlichkeit zur Verfügung stehen - diese enthalten secondlife.com, lindenlab.com, slurl.com, usw.


'''How it can fail:''' Hardware failures can slow down or shut down a machine in the web cluster. In that case, a load balancer should automatically redirect web traffic away from machines that are performing poorly, but the load balancer itself may have bugs (e.g. it may not detect such failures properly, or itself become blocked up). Web site bugs can be introduced by code updates to the web site, which are made daily. In addition, the web site relies on the central database cluster for many service actions, so failures there will affect web site actions such as the LindeX and transaction history, land store, friends online, and so forth.
'''Wie ein Fehler auftreten kann:''' Hardwareausfälle können eine Maschine im Webcluster verlangsamen oder herunterfahren. In diesem Fall sollten Lastverteiler den Webtraffic von der Maschine, die langsam arbeitet, umleiten, aber der Lastverteiler selbst kann auch Fehler haben (zum Beispiel solche Ausfälle nicht sauber erkennen oder selbst blockiert werden). Fehler in den Websites können durch Codeaktualisierungen an den Websites, die täglich passieren, eingebracht werden. Ausserdem beruht die Website für viele Aktionen der Dienste auf dem zentralen Datenbankcluster, deshalb werden Fehler dort sich auch auf Tätigkeiten und Dienste auf der Website wie LindeX und Transaktionsverlauf, Landstore, Freunde online und so weiter auswirken.


'''How we fix it:''' Problematic hardware can be taken out of rotation to restore the responsiveness of the web site. Problems in other systems such as the central database cluster need to be addressed there.
'''Wie wir das beheben:''' Problematische Hardware kann aus der Rotation genommen werden, um die Reaktionsfähigkeit der Website wieder herzustellen. Probleme in anderen Systemen wie dem zentralen Datenbankcluster müssen dort in den Griff bekommen werden.


== Linden Network ==
== Linden Netzwerk ==


'''What is it:''' The tubes through which stuff travels. Most notably, the connections between our co-location facilities ("colos"), e.g. SF and Dallas, but also the plumbing within colos. This includes "VPNs", switches, routers, and other esoteric stuff. Some of this is Linden equipment, some of this is leased equipment (e.g. we pay a third party to have dedicated use of their "tubes" between our colos), and public Internet pipes are also used.
'''Was es ist:''' Die Leitungen, durch die das Zeug reist. Vor Allem die Verbindungen zwischen unseren Zweigniederlassungen (co-location facilities = "colos"), zum Beispiel San Francisco und Dallas. aber auch die Leitungen innerhalb der Colos. Das beinhaltet "VPNs", Switches, Router und andere esoterische Dinge. Manches davon ist Ausstattung, die Linden gehört, manches ist gemietete Ausrüstung (zum Beispiel bezahlen wir einen Drittanbieter dafür, dass wir seine "Leitungen" zwischen unseren Colos alleine benutzen können) und es werden auch öffentliche Internetverbindungen genutzt.


'''How it can fail:''' A component can go bad, for example, a router can start dropping packets. This often appears as one of the other problems (asset storage, database, simulators, logins) since the systems can no longer talk to each other. The [http://blog.secondlife.com/2008/04/05/logins-disabled-until-further-notice/ failure on April 5th, 2008] is an example of this kind of failure.
'''Wie ein Fehler auftreten kann:''' Eine Komponente kann ausfallen; zum Beispiel kann ein Router damit beginnen, Pakete zu verwerfen (aufhören, Daten zu senden). Das sieht dann oft so aus, als ob ein anderes System (Assetspeicher, Datenbank, Simulatoren, Logins) fehlerhaft wäre, da die Systeme nicht mehr länger miteinander kommunizieren können. Der [http://blog.secondlife.com/2008/04/05/logins-disabled-until-further-notice/ Ausfall am 05. April 2008]{{nnlink/de}} ist ein Beispiel für diese Art von Fehler.


'''How we fix it:''' isolate the affected component and take it out of service or replace it as quickly as possible. If this is a leased component we need to talk to our provider.
'''Wir wir es beheben:''' Die fehlerhafte Komponente so schnell wie möglich herausfinden und außer Betrieb nehmen oder ersetzen. Wenn es sich um eine gemietete Komponente handelt, müssen wir mit unserem Anbieter reden.


== Internet ==
== Internet ==


'''What is it:''' A [http://en.wikipedia.org/wiki/Series_of_tubes series of tubes] that bring Second Life to your computer, from the large trans-oceanic and trans-continental pipes that link the world down to high-speed connection to your home from your Internet Service Provider (ISP).
'''Was es ist:''' Eine [http://en.wikipedia.org/wiki/Series_of_tubes Reihe von Leitungen]{{nnlink/de}}, die Second Life zu Ihrem Computer bringen, von den großen transatlantischen und transkontinentalen Leitungen, die die Welt verbinden, bis hinunter zu der Breitbandverbindung von Ihrem Internetanbieter (Internet Service Provider (ISP)) zu Ihrem Zuhause.


'''How it can fail:''' Failures occur on several levels. If this happens at a high level - for example, a major Internet trunk to Europe drops offline - thousands of residents can be disconnected from Second Life.  
'''Wie ein Fehler auftreten kann:''' Fehler können auf verschiedenen Ebenen auftreten. Wenn es auf einen hohen Level passiert - zum Beispiel wenn eine Hauptverbindung nach Europa offline geht - können Tausende von Residents die Verbindung zu Second Life verlieren.  


'''How we fix it:''' This is usually beyond our control. If we can isolate the problem we can report it to network contacts, but otherwise we just need to wait for the issue to get fixed, like the residents.
'''Wie wir es beheben:''' Das ist normalerweise außerhalb unserer Kontrolle. Wenn wir das Problem isolieren können, können wir es an Netzwerkkontakte weitermelden, aber ansonsten müssen wir warten, bis das Problem behoben worden ist, genauso wie die Residents.

Latest revision as of 16:09, 12 November 2010

Second Life ist ein komplexes System mit vielen Komponenten, die miteinander interagieren, von den Simulatoren und Datenbanken zu dem Viewer, den Sie am Laufen haben und den Internetverbindungen, über welche die Daten fliessen. Obwohl es als so lose gekoppelt wie möglich und robust gegen Probleme ausgedacht ist, können immer noch Ereignisse auftreten, die zu Störungen bei den Diensten führen.

In manchen Fällen befinden sich die Fehler außerhalb der Kontrolle von Linden Lab. Allerdings wird in fast allen Fällen aktiv daran gearbeitet, Störungen abzuschwächen - entweder sie gar nicht auftreten zu lassen oder die Auswirkung beträchtlich zu reduzieren.

Wenn eine Störung auftritt, tritt normalerweise folgender Ablauf in Kraft:

  • ein System hört auf, zu reagieren
  • automatische Mitteilungen gehen los, die unser Team, das für den Betrieb verantwortlich ist (Operationsteam), alarmieren
  • Oft werden Residents sofort informiert und der inworld Support alarmiert, der unserem Operationsteam das Problem bestätigt
  • das Operationsteam erkennt das System, das die Ursache des Problems ist
  • das Kommunikationsteam wird benachrichtigt und darum gebeten, die Information über die Störung im Blog bereitzustellen
  • wenn die Störung länger als ein paar Minuten dauert, wird das Blog regelmässig aktualisiert
  • wenn das Problem dann einmal gelöst ist, wird eine "Alles Klar" Meldung im Blog veröffentlicht

Bitte beachten Sie, daß in vielen Fällen eine Störung behoben sein kann, bevor es möglich ist, eine Information im Blog zu veröffentlichen, um die Einzelheiten des Problems zu erklären. Ein Zweck dieses Dokumentes ist es, ein "Dokumentationszentrum" für Arten von Störungen in den Diensten bereitzustellen, damit das Blogposting sich auf diese Seite beziehen kann, wenn sich ein Systemfehler ereignet.

Zum Zeitpunkt der Erstellung dieses Dokumentes und in keiner besonderen Reihenfolge, sind das die Systeme, von denen bekannt wurde, dass sie Störungen in den Diensten auslösen:

Assetspeichercluster

Was es ist: Ein Cluster von Maschinen, die einen riesigen WebDAV (stellen Sie sich eine "webbasierte Festplatte" vor) Speichermechanismus mit Terabytes von Platz zum Speichern von Beständen, einschliesslich hochgeladener Texturen, Snapshots, Skripten, Objekten, die ins Inventar aufgenommen wurden, Skriptzuständen, gespeicherten Zuständen von Regionen (Simstates), usw., die Second Life ausmachen. Die Technologie dafür (Software und Hardware) ist von einem Drittanbieter lizenziert.

Wie ein Fehler auftreten kann: Das System sollte gegen Ausfälle einzelner Knoten robust sein. In dem Fall dass mehrere Festplatten ausfallen, bei Softwareaktualisierungen, beim Entfernen fehlerhafter Knoten oder dem Hinzufügen neuer Knoten können einige oder alle der Cluster offline gehen. Wenn das passiert, scheitern das Hoch- und Herunterladen von Beständen - das führt dazu, dass Uploads von Texturen und das Abspeichern von Simstates fehlschlagen. Weil die vorübergehenden Daten beim Überqueren von Regionen (Zustände von Attachmants usw.) als Assets weggeschrieben werden, wird oft auch das Überqueren von Regionen scheitern.

Wie wir das beheben: Wenn dieser Fehler festgestellt wird, schalten wir oft die Logins ab und schicken inworld eine Nachricht (wenn möglich), um dabei zu helfen, Datenverluste zu vermeiden. Knoten, bei denen Fehler auftraten, können aus der Rotation genommen werden. Ein Neustart von anderen Knoten kann notwendig sein. Wenn die Software auf den Knoten aktualisiert wird, ist der Grid normalerweise geschlossen, um Datenverluste während irgendwelchen ungewollten Ausfällen zu verhindern. Ein Fehler im Assetsystem, der einen Neustart erforderlich machte, trat am 28. März 2008(en) und am 14. Mai 2008(en) auf.

Zentraler Datenbankcluster

Was es ist: Ein Cluster von Datenbanken, der die grundlegenden, gleichbleibenden Informationen über Second Life speichert - einschliesslich den Profilen von Residents, Gruppen, Regionen, Grundstücke, L$ Transaktionen und Kleinanzeigen.

Wie ein Fehler auftreten kann: Die Datenbank kann während dem Normalbetrieb ausgelastet werden, sodass ein Teil von Transaktionen fehlschlägt und entweder von Hand erneut versucht werden muss oder automatisch erneut versucht werden. Hardwareausfälle oder Softwarefehler im Programmcode der Datenbank können auch dazu führen, daß die Datenbank abstürzt oder aufhört, zu reagieren. Logins werden fehlschlagen, Transaktionen inworld und auf der Website werden scheitern und so weiter.

Wie wir das beheben: Wenn die primäre Datenbank ausfällt, wechseln wir auf eine der sekundären. Wenn die Belastung der Datenbank zu hoch ist, sie aber nicht ausgefallen ist, können wir Dienste abschalten, um zu versuchen, die Belastung zu reduzieren.

Das Eliminieren dieses Clusters als Flaschenhals bei der Skalierbarkeit und Ausfallpunkt hat eine sehr hohe Priorität für Linden Lab. Während das in Arbeit ist, tritt eine Abmilderung der Belastung auf. Behaltet das Second Life Blog(en) im Auge, um aktuelle Informationen zu bekommen

Agenten- ("Inventar-") Datenbankcluster

Was es ist: Speicher für die meisten agentenspezifischen Daten wie den Inventarbaum ist über eine Reihe von Datenbanken verteilt. Jeder Agent ist einem bestimmten Inventarspeicherbereich (einer primären Datenbank und ihren sekundären Sicherungen) zugeordnet. Zum Zeitpunkt, als dieses Dokument geschrieben wird, haben wir ungefähr 15 Speicherbereiche für Agentendatenbanken.

Die ursprüngliche Verwendung dieser nach Agenten unterteilten Datenbanken war für das Inventar, so dass sie von Lindens oft als "Inventardatenbanken" bezeichnet werden, aber das ist nicht mehr länger ein Ausdruck dafür, welche agentenspezifischen Daten in ihnen gespeichert werden.

Wie ein Fehler auftreten kann: Hardware- oder Softwareausfälle können die primäre Datenbank innerhalb eines Speicherbereiches beeinflussen, sodass sie entweder nicht mehr auf Anfragen reagiert oder überaus langsam wird.

Wie wir das beheben: Wenn eine Agentendatenbank ausfällt, können wir auf die Sicherung innerhalb dieses Speicherbereiches umschalten, was einige Minuten dauert. Wenn das nicht sofort passiert oder wenn Probleme festgestellt werden, wird dieser bestimmte Agentenspeicherbereich vorübergehend "auf eine schwarze Liste gesetzt"; das führt dazu, daß Logins von Agents, die diesem Speicherbereich zugeordnet sind, blockiert werden und alle eingeloggten Agents "gekickt" werden, während die Behebung des Fehlers in Arbeit ist. Das beeinträchtigt einige Teile des Grids, aber nicht jeden.

Das ist ein Beispiel für ein System, das in der Vergangenheit dafür bekannt war, eine globale Störung der Dienste auszulösen. Es wurde neu entworfen, um die Auswirkung auf die Residents auch in Anbetracht eines Hardwareausfalles zu begrenzen; nur Residents, die einem bestimmten Speicherbereich zugeordnet sind, werden während eines solchen Ausfalles beeinträchtigt

Andere Datenbankcluster

Was es ist: Es gibt eine Handvoll weiterer Datenbankcluster, die in Verwendung sind. Einer davon wird für die Logdateien (Protokolldateien) verwendet.

Wie ein Fehler auftreten kann: Hardware- oder Softwareausfälle können einen Datenbankcluster dazu bringen, offline zu gehen. Es sollten keine Auswirkungen inworld davon zu spüren sein, wenn einer dieser Datenbankcluster ausfällt, aber gelegentlich führt eine Unaufmerksamkeit im Softwareentwurf zu einer Abhängigkeit, die nicht abgefangen wird. Zum Beispiel haben Logins üblicherweise eine erfolgreiche Verbindung zu der Logindatenbank erfordert, um die Login- und Viewerstatistik aufzuzeichnen, aber diese Abhängigkeit wurde entfernt.

Wie wir das beheben: Alle Datenbanken in Clustern laufen auf einer Primärmaschine und verschiedenen Sekundärmaschinen. Im Fall eines Fehlers kann eine Sekundärmaschine an die Stelle der Primärmaschine gesetzt werden.

Unser Datawarehousing Team hat innerhalb des letzten Jahres eine bedeutende Arbeit geleistet, um sicherzustellen, dass die ständig anwachsende Menge an Daten über die Performance von Simulatoren und anderen Systemen, die aufgezeichnet werden, analysiert werden kann und dass die Sammlung dieser Daten "transparent" für die anderen Systeme geschieht - der Ausfall von Protokolldatenbanken sollte nicht mehr länger zu Ausfällen der Dienste führen.

Dienste für vorübergehende Daten

Was es ist: Ein Cluster von Maschinen (derzeit: 16), die Daten im Gedächtnis halten, die "flüchtiger" Natur sind. Das beinhaltet Dinge wie die Gegenwart von Agents ("Wer ist eingeloggt?"), Teilnahme an Gruppenchats, die Umsetzung von eingehenden Emails in Skripten und so weiter. Diese Daten werden nicht in einer Datenbank gespeichert und werden entweder ständig aufgefrischt (zum Beispiel aktualisiert der Simulator alle paar Minuten die Gegenwart von Agents) oder aber wiederherstellbar (zum Beispiel durch das erneute Aufrufen eines Gruppenchats).

Wie ein Fehler auftreten kann: Hardwareausfälle können das Fassungsvermögen dieser Maschinen vermindern oder sie auch komplett offline nehmen. Softwarefehler können auch eine sehr schwache Performance verursachen - zum Beispiel führt ein Speicherleck in einem Dienst dazu, daß die Dienste insgesamt anfangen, langsam zu reagieren. Wenn ein bestimmter Dienst unterbrochen ist, werden die anderen Dienste insgesamt weiterhin funktionsfähig bleiben.

Wie wir das beheben: Weil der Status vorübergehend und flüchtig ist, kann eine Ersatzmaschine schnell online gebracht werden und die Daten "heilen" sich selbst mit der Zeit. Wenn der Fehler softwareseitig ist, können die Dienste einfach mit wenig Auswirkungen für die Residents neu gestartet werden, sobald eine Fehlerbehebung für das Problem gefunden ist.

Simulatoren

Was es ist: Eine sim(en) ist eine Maschine, auf der Simulatoren(en) laufen, welche wiederum Computerprozesse sind, auf denen Regionen(en) laufen. (Stellen Sie sich eine Region wie ein Dokument vor, den Simulator wie ein Textverarbeitungsprogramm und die Sim als den Computer selbst, auf dem das Programm läuft.) Weil es sich dabei um eng verwandte Konzepte handelt, tendiert der Jargon/die Terminologie und Ausdrucksweise dazu, etwas unklar zu sein, zum Beispiel sollte der "Simstatus" in Wirklichkeit "Status der Region" sein. Der Simulator teilt seine Zeit auf die Kommunikation mit Viewern, die Kommunikation mit anderen Systemkomponenten, das Simulieren von physikalischen Vorgängen und das Ausführen von Skripten auf.

Wie ein Fehler auftreten kann: Ein Fehler im Programmcode des Simulators kann einen Absturz verursachen. Die meisten Abstürze führen dazu, daß der Simstatus einer Region abgespeichert wird und ein anderer Simulator diesen Simstatus nach ein paar Minuten laden wird. Oft wird der Fehler auch durch einige bestimmte Arten von Inhalten einer Region ausgelöst - einem Skript oder einem physikalischen Objekt.

Andere Probleme teilen sich in zwei Kategorien auf - Probleme mit einer bestimmten Sim oder gridweite Probleme. Probleme mit einer bestimmten Sim können aus einer Überlastung (zum Beispiel 4 Regionen mit hohem Traffic auf einer Sim) oder Fehlern (Speicherplatz erschöpft, Netzwerkkarte verloren, Hardwarefehler) bestehen. Gridweite Probleme sind gewöhnlich durch andere Faktoren ausgelöst, als sie hier aufgelistet sind, so zum Beispiel Verlust der Netzwerkanbindung oder Datenbankfehler oder Fehler im Assetcluster (welche zum Beispiel dazu führen können, dass Simulatoren daran gehindert werden, Simstati zu laden. Neue Programmcodes für die Simulatoren bringen manchmal Fehler mit gridweiten Auswirkungen ein (zum Beispiel verursacht übermässiges Protokollieren eine Überlastung durch den Netzwerkverkehr.)

Wie wir das beheben: Simulatorabstürze werden genauso wie Viewerabstürze berichtet. Wir können die Daten dazu nutzen, das grundlegende Untersystem festzulegen, das den Absturz ausgelöst hat (die Initialisierung, Physikengine, Skripte, Nachrichtenübermittlung usw.). Wenn der Absturz durch Inhalte (Skripten oder physikalische Objekte) ausgelöst wurde, können wir die Absturzdaten dazu verwenden, festzustellen, warum er aufgetreten ist. In der Zwischenzeit (da eine Fehlerbehebung auch einige Tage dauern kann oder im Fall von Problemen mit der Physikengine ein Projekt wie der Umzug auf Havok4 notwendig ist), wird die Region wieder mit deaktivierten Skripten/physikalischen Eigenschaften und nach dem Entfernen der auslösenden Objekte online gebracht.

Probleme mit einer bestimmten Sim können durch das Neustarten der Regionen in den Griff bekommen werden, was dazu führt, dass ein Simulatorprozess auf einer anderen Sim sie laufen lässt. Gridweite Probleme werden vorzugsweise an der Quelle behoben (zum Beispiel durch die Reparatur des Netzwerks). Bugs in Veröffentlichungen von neuem Programmcode erfordern entweder eine Änderung der Konfiguration (um ein neues Feature abzuschalten) oder einen rolling Restart mit aktualisiertem Code.

Die Reduzierung von Simulatorabstürzen war die Hauptmotivation hinter dem Umstieg auf Havok4(en) für die Physiksimulation und den bevorstehenden Umstieg auf Mono(en) für die Skriktausführung.

Datenserver

Was es ist: Die meiste Kommunikation zwischen dem Simulator zur Datenbank wird durch einen Prozess, der "Datenserver" heißt, zwischengespeichert; es gibt einige wenige Datenserverprozesse auf jedem Simhost. Das verhindert eine direkte Abhängigkeit von der Datenbank und erlaubt es dem Datenserver, auch eine längere Abfrage zu blockieren, während der Simulator eine bestimmte Framerate zu erreichen versucht.

Wie ein Fehler auftreten kann: Der Datenserverprozess kann aufgrund von Bugs abstürzen, die in Bezug zu unvorhergesehenen Umständen stehen. Zum Beispiel, wenn ein kurzer Netzwerkausfall auftritt, kann die Verbindung zu einer Datenbank verlorengehen. Normalerweise erholt sich das System gutmütig und transparent von einem Fehler mit dem Datenserver, aber bei einem bestimmten Simulator können einige Transaktionen vorübergehend scheitern. Die Unterbrechung der Dienste ist auf den bestimmten Simulator beschränkt. Es ist auch möglich, dass ein Softwareupdate Bugs mit einbringen kann, die gridweite Effekte auslösen können (zum Beispiel erhöhte Last auf den zentralen Datenbanken oder einfach häufigere Abstürze). Wenn eine Datenbank nicht auf Verbindungsanfragen reagiert, wird der Überwachungsdienst den Datenservers automatisch anhalten und den Datenserver neu starten, damit neue Anfragen bearbeitet werden können.

Wie wir das beheben: Wenn ein einzelner Datenserver abstürzt, wird er automatisch wieder hergestellt. Wenn ein Bug einbracht wurde, der gridweite Effekte auslöst, können die Datenserverprozesse normalerweise ohne Downtime ersetzt werden.

Die Datenserverkomponente ist dabei, ausgeschaltet und durch webbasierte Datenserverdienste ersetzt zu werden; Simulatoren werden HTTP verwenden, um mit einer neuen Art von Hosts zu reden, die als Relaisstation für Anfragen an die Datenbank dienen. Das wird uns dir Möglichkeit geben, das System leichter zu modifizieren, um die Performance zu verbessern und Unterbrechungen auszuschalten.

Login Server Cluster

Was es ist: Ein Cluster von Servern, der den ersten Dienst bereitstellt, mit dem der Viewer sich verbindet, wenn versucht wird, sich einzuloggen. Dieser überprüft die Benutzerdaten des Residents, prüft die Viewerversion auf mögliche Updates und stellt sicher, dass die neuesten Benutzerbestimmungen (Terms of Service) aktualisiert wurden. Angenommen, alle Überprüfungen verlaufen positiv, sendet der Cluster eine erste Übersicht über die Inventarordner des Residents und einige wenige weitere Teile von Daten. Schliesslich verhandelt er mit dem Simulator für die gewünschte Startregion und lässt den Viewer wissen, mit welchem Simulator er zu reden hat.

Wie ein Fehler auftreten kann: Wenn ein Server offline geht, wird ein gewisser Prozentsatz an Logins scheitern. Zusätzlich werden Logins auch scheitern, wenn wenn die zentrale Datenbank oder der Cluster der Inventardatenbank Probleme haben, da der Ablauf des Logins sehr datenbankintensiv ist. Schliesslich kann es auch passieren, dass nach einer grösseren Unterbrechung die dazu führte, dass die Mehrzahl der Residents ausgeloggt wurde oder sich nicht einloggen konnte, mehr Residents versuchen, sich einzuloggen, als unser Second Life verarbeiten kann (ungefähr 1000 Logins/Minute); das kann dann für Residents, die versuchen, sich einzuloggen, so aussehen, als ob der Logindienst fehlerhaft ist, obwohl er voll einsatzbereit ist und nur bei maximaler Kapazität läuft.

Wie wir das beheben: Wenn ein Loginserver selbst ausfällt, nehmen wir diesen aus der Rotation der Server. Wenn das Problem in einem anderen System oder Dienst begründet liegt, beheben wir es dort.

Web Site

Was es ist: Ein Cluster von Maschinen, die die Webseiten und Webdienste bedienen, die der Öffentlichkeit zur Verfügung stehen - diese enthalten secondlife.com, lindenlab.com, slurl.com, usw.

Wie ein Fehler auftreten kann: Hardwareausfälle können eine Maschine im Webcluster verlangsamen oder herunterfahren. In diesem Fall sollten Lastverteiler den Webtraffic von der Maschine, die langsam arbeitet, umleiten, aber der Lastverteiler selbst kann auch Fehler haben (zum Beispiel solche Ausfälle nicht sauber erkennen oder selbst blockiert werden). Fehler in den Websites können durch Codeaktualisierungen an den Websites, die täglich passieren, eingebracht werden. Ausserdem beruht die Website für viele Aktionen der Dienste auf dem zentralen Datenbankcluster, deshalb werden Fehler dort sich auch auf Tätigkeiten und Dienste auf der Website wie LindeX und Transaktionsverlauf, Landstore, Freunde online und so weiter auswirken.

Wie wir das beheben: Problematische Hardware kann aus der Rotation genommen werden, um die Reaktionsfähigkeit der Website wieder herzustellen. Probleme in anderen Systemen wie dem zentralen Datenbankcluster müssen dort in den Griff bekommen werden.

Linden Netzwerk

Was es ist: Die Leitungen, durch die das Zeug reist. Vor Allem die Verbindungen zwischen unseren Zweigniederlassungen (co-location facilities = "colos"), zum Beispiel San Francisco und Dallas. aber auch die Leitungen innerhalb der Colos. Das beinhaltet "VPNs", Switches, Router und andere esoterische Dinge. Manches davon ist Ausstattung, die Linden gehört, manches ist gemietete Ausrüstung (zum Beispiel bezahlen wir einen Drittanbieter dafür, dass wir seine "Leitungen" zwischen unseren Colos alleine benutzen können) und es werden auch öffentliche Internetverbindungen genutzt.

Wie ein Fehler auftreten kann: Eine Komponente kann ausfallen; zum Beispiel kann ein Router damit beginnen, Pakete zu verwerfen (aufhören, Daten zu senden). Das sieht dann oft so aus, als ob ein anderes System (Assetspeicher, Datenbank, Simulatoren, Logins) fehlerhaft wäre, da die Systeme nicht mehr länger miteinander kommunizieren können. Der Ausfall am 05. April 2008(en) ist ein Beispiel für diese Art von Fehler.

Wir wir es beheben: Die fehlerhafte Komponente so schnell wie möglich herausfinden und außer Betrieb nehmen oder ersetzen. Wenn es sich um eine gemietete Komponente handelt, müssen wir mit unserem Anbieter reden.

Internet

Was es ist: Eine Reihe von Leitungen(en), die Second Life zu Ihrem Computer bringen, von den großen transatlantischen und transkontinentalen Leitungen, die die Welt verbinden, bis hinunter zu der Breitbandverbindung von Ihrem Internetanbieter (Internet Service Provider (ISP)) zu Ihrem Zuhause.

Wie ein Fehler auftreten kann: Fehler können auf verschiedenen Ebenen auftreten. Wenn es auf einen hohen Level passiert - zum Beispiel wenn eine Hauptverbindung nach Europa offline geht - können Tausende von Residents die Verbindung zu Second Life verlieren.

Wie wir es beheben: Das ist normalerweise außerhalb unserer Kontrolle. Wenn wir das Problem isolieren können, können wir es an Netzwerkkontakte weitermelden, aber ansonsten müssen wir warten, bis das Problem behoben worden ist, genauso wie die Residents.