turbomotion046 - stock.adobe.com
SSD-Management: Open Channel und Self Managed im Vergleich
Open-Channel-SSDs sind vorteilhaft, aber nur bei der richtigen Verwendung. Es gibt mehrere Unterschiede bei ihrer Verwaltung im Vergleich zu selbstverwalteten SSDs zu analysieren.
Open-Channel-SSDs verlagern einen Teil der SSD-Verwaltung von der SSD auf den Server. Die Verlagerung von Verschleißmanagement (Wear Management), Garbage Collection und Scheduling kann für das System von Vorteil sein, wenn sie mit einem Verständnis für die Anwendungsarbeitslast verwaltet werden.
Als Grundlage für diese Erläuterung vergleicht die folgende Liste die Hauptaufgaben, die von einem SSD-Controller in einer selbstverwalteten SSD ausgeführt werden, mit ihrer Funktionsweise in einer Open-Channel-SSD.
Wear Management
Flash-Bits verschleißen, wenn sie zu viele Schreibvorgänge durchlaufen haben. Eine selbstverwaltete SSD verschiebt diese Schreibvorgänge durch Datenplatzierung, um zu versuchen, allen Zellen eine ähnliche Anzahl von Schreibvorgängen zu geben. Die Daten in einer Standard-SSD befinden sich nie an dem Ort, den der Host anfordert. Stattdessen werden sie einem Ort zugeordnet, den der SSD-Controller bestimmt. Diese Zuordnung umfasst nicht nur den für den Host sichtbaren Flash-Speicher, sondern auch den versteckten überprovisionierten Flash-Speicher (SSD Overprovisioning).
Eine Open-Channel-SSD verlagert die Aufgabe der Datenplatzierung auf den Host, so dass der Host vollen Einblick in den verfügbaren Flash-Speicher und den überprovisionierten Flash-Speicher hat. Dies ist nützlich, denn wenn der Host erkennt, dass die Schreiblast der Anwendung gering ist, kann er den übermäßig bereitgestellten Flash-Speicher neu zuweisen und einen Teil davon für die Anwendung verfügbar machen. Die SSD sieht größer aus als eine selbstverwaltete SSD, das mit der gleichen Menge an Flash hergestellt wurde.
Umgekehrt kann der Host, wenn das Anwendungsprogramm eine ungewöhnlich hohe Schreiblast aufweist, einen größeren Anteil des internen Flash-Speichers der SSD für das Overprovisioning zuweisen. Dadurch wird die dem Anwendungsprogramm zur Verfügung stehende Speichermenge reduziert und im Gegenzug eine bessere Leistung und eine längere Lebensdauer erzielt.
Die Open-Channel-SSD verwaltet auch das Zusammenführen von Schreibvorgängen, eine weitere Verschleißmanagementtechnik. Wiederholte Schreibvorgänge an einer einzigen Stelle oder an einer Reihe benachbarter Stellen werden im RAM gepuffert, bis genügend Daten zum Füllen einer Flash-Seite (Flash Page) vorhanden sind. Durch diesen Prozess kann aus vielen Schreibvorgängen eine überschaubare Anzahl werden. Die gesamte Pufferung und Zusammenführung von Schreibvorgängen wird in einem Puffer im Memory des Servers durchgeführt.
Eine selbstverwaltete SSD führt die Zusammenführung von Schreibvorgängen in einem Schreibpuffer durch, der sich entweder im internen statischen RAM (SRAM) des SSD-Controller-Chips oder in einem externen dynamischen RAM (DRAM) befindet, je nach dem vom Architekten des Controllers gewählten Kompromiss zwischen Kosten und Leistung.
Garbage Collection
Garbage Collection ist der Prozess der Freigabe von NAND-Flash-Blöcken, indem gültige Pages aus einer Reihe von teilweise verwendeten Blöcken in einen anderen Block verschoben werden und dann der Block, aus dem diese Seiten entnommen wurden, gelöscht wird. Auf diese Weise macht die SSD Platz für neu eingehende Daten verfügbar.
Wenn die Garbage Collection in einer Open-Channel-SSD unter der Kontrolle des Hosts steht, können Anwendungsprogramme den Host über die Zeiten informieren, in denen sie besser toleriert werden kann. Zu anderen Zeiten kann die Garbage Collection zu Leistungsproblemen führen.
Die Garbage Collection sollte im Hintergrund ablaufen, um die vorgesehenen Operationen der SSD nicht zu sehr zu beeinträchtigen. Bei einer typischen SSD scheint dieser Prozess jedoch in der Regel den normalen Betrieb zu behindern. Die SSD weiß nicht, welche Zugriffsmuster vom Host zu erwarten sind, so dass sie die besten Zeiten für die Durchführung des Prozesses erraten muss.
Zeitplanung
Bei einer Open-Channel-SSD kann das Anwendungsprogramm dem Host-basierten Scheduler proaktiv mitteilen, wann sich die Arbeitslast ändert, sei es von einer Phase mit hohem Schreib- zu einer Phase mit hohem Leseanteil oder von sequenziell zu zufällig (random). Das Programm kann auch vermerken, wenn es plant, für eine Weile still zu sein. In diesem Fall könnte es ein guter Zeitpunkt für die SSD sein, um Schreibpuffer-Flushes und Garbage Collection nachzuholen.
Bei einer selbstverwalteten SSD führt der Host Anwendungsprogramme aus, die Befehle erteilen. In der Zwischenzeit muss die SSD die Zeit zwischen diesen scheinbar zufälligen Host-Anforderungen finden, um die Garbage Collection durchzuführen, den Coalescing-Puffer in den Flash zu schreiben und unbenutzte Blöcke zu löschen. Diese Vorgänge stören andere, die auf demselben NAND-Flash-Chip ablaufen. Die Verwaltung dieser Vorgänge ist in keiner Weise mit dem hostbasierten Anwendungsprogramm synchronisiert.
Die Lösung der selbstverwalteten SSD für dieses Problem besteht darin, dass das Medium versucht, die Zugriffsmuster des Hosts vorherzusehen und einen passenden Zeitplan zu erstellen.
Anwendungen müssen sich an diese SSDs anpassen
Die einzige Möglichkeit, von Open-Channel-SSDs zu profitieren, besteht darin, Anwendungen zu verwenden, die sie verstehen und mit der hostbasierten SSD-Verwaltungssoftware kommunizieren können. Es nützt nichts, dem Host die Kontrolle über die SSD zu geben, wenn sie es als unabhängigen Prozess ausführt, ohne die Anwendungen zu kennen. Dies bietet keinen Vorteil gegenüber einer selbstverwalteten SSD. Infolgedessen können Rechenzentren, die Standardsoftware verwenden, keinen Vorteil daraus ziehen, da nur wenige dieser Programme die Open-Channel-SSD-Architektur unterstützen.
Kommerzielle Software wird in der Regel für die vorhandene installierte Hardwarebasis geschrieben. Die installierte Basis stellt in der Regel nicht ohne guten Grund auf andere Hardware um. Ohne die Software gibt es diesen Grund nicht. Es ist ein Teufelskreis.
Es sollte nicht überraschen, dass fast ausschließlich Hyperscaler wie Google oder Amazon Open-Channel-SSDs verwenden, da diese Unternehmen die vollständige Kontrolle über ihre Anwendungssoftware haben und sie so anpassen können, dass sie das SSD verwalten können. Hyperscale-Rechenzentren sehen einen Vorteil darin, ihre Anwendungen so umzuschreiben, dass sie die Vorteile eines neuen Hardwaretyps nutzen, wenn dadurch Kosten gesenkt werden können. Wenn die Administratoren bei jedem von 100.000 Servern 10 US-Dollar einsparen können, dann ist eine 500 Millionen US-Dollar teure Softwareumschreibung gut angelegtes Geld.
Dieses Konzept, das ursprünglich von Fusion-io in den Anfängen der PCIe-SSDs für Unternehmen verwendet wurde, geriet in Vergessenheit, tauchte dann aber einige Jahre später bei Baidu, einem Hyperscaler in China, wieder auf. Seitdem haben andere Hyperscaler es in großem Umfang übernommen.