Verwenden Sie mehrere SSDs als Cache-Geräte mit bcache?

6

Wenn drei SSDs in einem System installiert sind, mit einer Ersatzpartition für den nicht verwendeten Speicherplatz auf der SSD ( /dev/sda2, /dev/sdb2und /dev/sdc2). Kann bcacheso konfiguriert werden, dass alle drei dieser Partitionen verwendet werden, um ein einzelnes Sicherungsgerät zwischenzuspeichern (z. B. /dev/md10das darüber liegt /dev/sd[defghij]1).

Nach dem, was ich an anderer Stelle gelesen habe, ist es möglich, dass ein bestimmtes SSD-Gerät bcachezum Zwischenspeichern mehrerer Festplatten oder RAID-Arrays verwendet werden kann. Es erklärt jedoch nichts, ob ein Sicherungsgerät von mehreren SSDs gleichzeitig zwischengespeichert werden kann.

Beispielsweise haben Sie möglicherweise drei 100-GB-SSDs anstelle einer einzelnen großen 300-GB-SSD, und Sie möchten diese als Caching-Geräte für ein einzelnes 12-TB-Array verwenden.

tgharold
quelle
Keine Antwort, aber haben Sie darüber nachgedacht, zfs (und seine Protokoll- und zil-Geräte für SSDs und effizientes integriertes RAID) zu verwenden?
Stéphane Chazelas
1
Ich bin mir ziemlich sicher, dass es ein Unterstützer pro Festplatte ist. Dies hindert Sie nicht daran, diese Datenträger auf andere Weise zu verketten, bevor Sie die neu verbundenen Datenträger als Bcache zurück formatieren. Das hat sich vielleicht geändert, seit ich meine vor einem Jahr gegründet habe. Natürlich können Sie eins zu vielen zurückgeben, aber wenn ich mich richtig erinnere, ist das Gegenteil nicht der Fall.
Mikeserv
Ich bin mir ziemlich sicher, dass du recht hast, mikeserv. Ein Caching-Gerät kann mehrere Sicherungsgeräte bedienen, Sie können jedoch nicht mehrere Cache-Geräte mit einem Backend verwenden. Wenn ich jedoch (5) SSDs habe, könnte ich ein RAID-10- oder RAID-6-Array für vier von ihnen einrichten (verwenden Sie das fünfte) als Ersatz und dieses Gerät als Cache-Gerät für mehrere Sicherungsgeräte verwenden.
Tgharold

Antworten:

3

In der bcache-Dokumentation wird eindeutig angegeben, dass Sie ein Caching-Gerät für mehrere Backends verwenden können, jedoch nicht umgekehrt (zumindest noch nicht). Es steht Ihnen jedoch frei, Ihre SSDs in einem RAID-0, RAID-1 oder RAID-5 anzuordnen, das Caching-Volume auf diesem Volume-Set zu initialisieren und Ihre Backends daran anzuhängen.

Denken Sie daran, dass Sie möglicherweise mindestens einen Spiegel oder eine Parität in Ihrem SSD-RAID haben möchten, wenn Sie Zuverlässigkeit der reinen Geschwindigkeit vorziehen. Ich denke, Sie möchten die zuverlässige Wahl treffen, wenn Sie ein 12-TB-Datenvolumen damit sichern.

Beachten Sie bitte, dass die Einführung einer Speicherschicht wie LVM oder MD zwischen bcache und der Hardware die Schreibgarantien für bcache ändern kann oder wird. In diesem Fall sollten Sie den Rückschreibemodus von bcache nicht verwenden, da dieses Setup zu einer Serverstruktur führen kann Probleme innerhalb von bcache beim Neustart, Herunterfahren und eindeutigem Stromausfall, und Sie möchten in diesem Fall keine ausstehenden Schreibvorgänge haben. Ich empfehle, die SSDs in ein batteriegepuffertes Hardware-RAID zu stecken, bevor Sie den Rückschreibemodus verwenden. Und während Sie dort sind: Ein solches Setup ermöglicht normalerweise die Verwendung von SSDs als CacheCade-Schicht über den RAID-Controller, wodurch bcache überflüssig wird.

hurikhan77
quelle
0

Warum versuchst du es nicht einfach?

Aus dem Dokument geht hervor, dass es machbar ist:

Cache <0..n> Symlink zu jedem der Cache-Geräte, aus denen dieser Cache-Satz besteht.

Gleichzeitig heißt es:

Cache-Geräte werden als Sets verwaltet. Mehrere Caches pro Satz werden noch nicht unterstützt, ermöglichen jedoch in Zukunft die Spiegelung von Metadaten und fehlerhaften Daten.

poige
quelle