SSD-Cache einrichten auf Ubuntu Server
Moin,
Ich versuche derzeit, auf meinem Mini-Server ein SSD-Cache zu erstellen. Verbaut sind zwei 1TB HDDs sowie zwei 120GB SSDs.
Nun sollen die SSDs als Cache für die HDDs fungieren. Auf den HDDs bzw. dem Raid 1 der HDDs soll Linux installiert sein.
Ich hatte es mit folgender Anleitung probiert (https://www.thomas-krenn.com/de/wiki/LVM_Caching_mit_SSDs_einrichten) leider Erfolglos. Da beim Installieren von Linux auf dem Raid Partitionen erstellt werden und pvcreate dann meckert weil das Gerät Partitioniert ist. Hat eventuell jemand andere Vorschläge wie ich das ganze Realisieren kann? So dass meine HDDs durch die SSDs unterstützt und beschleunigt werden. Wichtig ist auch, das ich das Raid auf den HDDs nur beim Installieren von Linux anlegen kann, also ein Tool wie Bcache fällt da schon mal raus da ein Formatieren natürlich alles löschen würde.
Als System benutze ich ein Ubuntu Server 22.04.1
Ich versuche derzeit, auf meinem Mini-Server ein SSD-Cache zu erstellen. Verbaut sind zwei 1TB HDDs sowie zwei 120GB SSDs.
Nun sollen die SSDs als Cache für die HDDs fungieren. Auf den HDDs bzw. dem Raid 1 der HDDs soll Linux installiert sein.
Ich hatte es mit folgender Anleitung probiert (https://www.thomas-krenn.com/de/wiki/LVM_Caching_mit_SSDs_einrichten) leider Erfolglos. Da beim Installieren von Linux auf dem Raid Partitionen erstellt werden und pvcreate dann meckert weil das Gerät Partitioniert ist. Hat eventuell jemand andere Vorschläge wie ich das ganze Realisieren kann? So dass meine HDDs durch die SSDs unterstützt und beschleunigt werden. Wichtig ist auch, das ich das Raid auf den HDDs nur beim Installieren von Linux anlegen kann, also ein Tool wie Bcache fällt da schon mal raus da ein Formatieren natürlich alles löschen würde.
Als System benutze ich ein Ubuntu Server 22.04.1
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 3822218117
Url: https://administrator.de/contentid/3822218117
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo Leon,
das sollte ohne Probleme gehen. Kann es sein, dass Du erst das Linux auf einem RAID installierst und versuchst, hinterher ein LV daraus zu machen, das Du cachen kannst?
Das geht wahrscheinlich nicht, siehe evtl. hier.
Wenn Teile Deines Systems gecached werden sollen, musst Du das entsprechende LV schon bei der Installation anlegen. Sinngemäß: /home soll auf eigenes (zu cachendes) LV:
- bei der Partitionierung der Systeminstallation eine eigene /home-Partition vorsehen,
- diese als RAID verknüpfen,
- darauf das LV-home.
- Dieses kannst Du dann nach der (funktionierenden) Anleitung von Thomas Krenn cachen.
Wenn Dein System schon steht und Du noch Plattenplatz hast, kannst Du ja, z.B. mit einem Live-USB, zu cachende Partitionen auch noch nachträglich anlegen, LVs draus machen und dann die Einbindung anpassen.
Bringt einen bemerkenswerten Turbo.
Viel Erfolg. Viele Grüße, commodity
das sollte ohne Probleme gehen. Kann es sein, dass Du erst das Linux auf einem RAID installierst und versuchst, hinterher ein LV daraus zu machen, das Du cachen kannst?
Das geht wahrscheinlich nicht, siehe evtl. hier.
Wenn Teile Deines Systems gecached werden sollen, musst Du das entsprechende LV schon bei der Installation anlegen. Sinngemäß: /home soll auf eigenes (zu cachendes) LV:
- bei der Partitionierung der Systeminstallation eine eigene /home-Partition vorsehen,
- diese als RAID verknüpfen,
- darauf das LV-home.
- Dieses kannst Du dann nach der (funktionierenden) Anleitung von Thomas Krenn cachen.
Wenn Dein System schon steht und Du noch Plattenplatz hast, kannst Du ja, z.B. mit einem Live-USB, zu cachende Partitionen auch noch nachträglich anlegen, LVs draus machen und dann die Einbindung anpassen.
Bringt einen bemerkenswerten Turbo.
Viel Erfolg. Viele Grüße, commodity
Ein LVM-Cache setzt natürlich voraus, dass ein cachebares LV vorhanden ist. Du kannst nicht nur den SSD-Cache als LV anlegen und damit dann irgendwas cachen. Du brauchst ein LV mit den Daten und ein Cache-LV. In der Anleitung von TK ist das /dev/md/raid-data.
Heißt, dein root-HDD-RAID muss auch in ein LV, wenn es gecached werden soll. Wenn da schon Dein System drauf ist, kannst Du das wohl nicht nachträglich in ein LV konvertieren (siehe Link oben). Du kannst (hättest können) aber bei der Erstellung Deines Systems gleich ein LV für das System anlegen, das kannst Du dann cachen. Das hast Du aber offenbar nicht gemacht.
Wenn du nur Datenpartitionen cachen willst, kannst Du auch jetzt noch entsprechende Partitionen anlegen, diese zum RAID machen, zu einem LV verbinden und mit einem Cache-LV cachen.
Ob es überhaupt sinnvoll ist, sein System auf HDD zu packen und dann zu cachen, kann ich nicht sagen, aber warum eigentlich nicht... Ich habe das bislang nur für Datenpartitionen von Fileservern umgesetzt.
Viele Grüße, commodity
Heißt, dein root-HDD-RAID muss auch in ein LV, wenn es gecached werden soll. Wenn da schon Dein System drauf ist, kannst Du das wohl nicht nachträglich in ein LV konvertieren (siehe Link oben). Du kannst (hättest können) aber bei der Erstellung Deines Systems gleich ein LV für das System anlegen, das kannst Du dann cachen. Das hast Du aber offenbar nicht gemacht.
Wenn du nur Datenpartitionen cachen willst, kannst Du auch jetzt noch entsprechende Partitionen anlegen, diese zum RAID machen, zu einem LV verbinden und mit einem Cache-LV cachen.
Ob es überhaupt sinnvoll ist, sein System auf HDD zu packen und dann zu cachen, kann ich nicht sagen, aber warum eigentlich nicht... Ich habe das bislang nur für Datenpartitionen von Fileservern umgesetzt.
Viele Grüße, commodity
Ich weiß nicht, ob es so gut ist, das LV vorab zu erstellen und dann erst das System.
Ich hätte es so gemacht: https://wiki.ubuntuusers.de/Logical_Volume_Manager/Alternate_Installatio ...
Sollte aber gehen.
https://www.debuntu.org/how-to-install-ubuntu-on-lvm-partitions/
Lass doch das Caching erstmal komplett weg. Wenn das System auf einem LV ist, kannst Du das Caching bauen, wenn alles ohne Caching läuft.
Kriegst Du schon hin.
Viele Grüße, commodity
Ich hätte es so gemacht: https://wiki.ubuntuusers.de/Logical_Volume_Manager/Alternate_Installatio ...
Sollte aber gehen.
https://www.debuntu.org/how-to-install-ubuntu-on-lvm-partitions/
Lass doch das Caching erstmal komplett weg. Wenn das System auf einem LV ist, kannst Du das Caching bauen, wenn alles ohne Caching läuft.
Kriegst Du schon hin.
Viele Grüße, commodity
Ich glaube, Du solltest noch etwas Theorie nacharbeiten. Such Dir was aus:
https://www.thomas-krenn.com/de/wiki/LVM_Grundlagen
https://www.thomas-krenn.com/de/wiki/LVM_Grundkonfiguration
https://wiki.archlinux.org/title/LVM_on_software_RAID
https://wiki.ubuntuusers.de/Logical_Volume_Manager/
https://access.redhat.com/documentation/de-de/red_hat_enterprise_linux/6 ...
https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-lvm.html
Hintergrund auch: https://www.linux-magazin.de/ausgaben/2016/04/flashcache/
Und sehr konkret: https://blog.delouw.ch/2020/01/29/using-lvm-cache-for-storage-tiering/
Es gibt keine LVM-Partition. Eine Partition kann aber als PV in eine VG eingebracht werden. Auf dieser kann dann ein LV erstellt werden. Wenn Du also bei Erstellung der Maschine bereits ein LV (und damit auch eine VG und ein PV) erstellt hast, kannst Du natürlich daraus nicht noch ein LV machen.
Ganz oben wolltest Du doch zudem ein RAID machen. Wo ist das hin?
Hinsichtlich der Anleitung bei TK ist zu beachten, dass es dort nur um das Caching einer Datenpartition bei bereits laufendem System geht. An sich sollte man alles mit dem Installer auch gleich machen können, ich würde aber erstmal das System installieren und dann das Caching. Sinngemäß ist das hier beschrieben - oder hier.
Ich habe es im ersten Post schon beschrieben, hier vielleicht nochmal deutlicher:
1. System mit dem Installer aufsetzen. Wenn RAID 1 gewünscht, dabei auf beiden Platten jeweils gleich große Partitionen anlegen für UEFI-Boot und für das System.
a) Manche verknüpfen nun beide Partitionen jeweils als RAID 1, wenn Ausfallsicherheit gewünscht ist. Ich mache das für die UEFI-Partition aber wegen der überzeugenden Darstellung bei Heise nicht, würde also nur die Systempartition zum RAID 1 machen.
b) Das RAID der Systempartition zum PV definieren (pvcreate)
c) Daraus eine VG erstellen (vgcreate)
d) Darauf ein LV für das System anlegen.
e) Das System auf dem LV installieren. = System fertig. All das geschieht im Installer.
2. Dieses LV, das auf der bzw. (bei RAID) den HDDs liegt, kann dann (muss aber nicht) - entsprechend - der bekannten Anleitung bei TK gecached werden. Dazu machst Du aus dem nun laufenden System.
a) ein RAID (falls gewünscht) aus den SSDs
b) aus diesem ein PV
c) fügst dieses der VG hinzu, die Du in 1.c) angelegt hast
d) erstellst darauf ein CacheDataLV und ein CacheMetaDataLV
e) und konvertierst das Ganze in einen Cache-Pool. = Caching läuft, Feierabend!
Viele Grüße, commodity
https://www.thomas-krenn.com/de/wiki/LVM_Grundlagen
https://www.thomas-krenn.com/de/wiki/LVM_Grundkonfiguration
https://wiki.archlinux.org/title/LVM_on_software_RAID
https://wiki.ubuntuusers.de/Logical_Volume_Manager/
https://access.redhat.com/documentation/de-de/red_hat_enterprise_linux/6 ...
https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-lvm.html
Hintergrund auch: https://www.linux-magazin.de/ausgaben/2016/04/flashcache/
Und sehr konkret: https://blog.delouw.ch/2020/01/29/using-lvm-cache-for-storage-tiering/
Es gibt keine LVM-Partition. Eine Partition kann aber als PV in eine VG eingebracht werden. Auf dieser kann dann ein LV erstellt werden. Wenn Du also bei Erstellung der Maschine bereits ein LV (und damit auch eine VG und ein PV) erstellt hast, kannst Du natürlich daraus nicht noch ein LV machen.
Ganz oben wolltest Du doch zudem ein RAID machen. Wo ist das hin?
Hinsichtlich der Anleitung bei TK ist zu beachten, dass es dort nur um das Caching einer Datenpartition bei bereits laufendem System geht. An sich sollte man alles mit dem Installer auch gleich machen können, ich würde aber erstmal das System installieren und dann das Caching. Sinngemäß ist das hier beschrieben - oder hier.
Ich habe es im ersten Post schon beschrieben, hier vielleicht nochmal deutlicher:
1. System mit dem Installer aufsetzen. Wenn RAID 1 gewünscht, dabei auf beiden Platten jeweils gleich große Partitionen anlegen für UEFI-Boot und für das System.
(Grundsätzlich ist es besser, das System ebenfalls noch aufzuteilen, mindestens mit einer weiteren /home-Partition. Je nach Funktion des Rechners können auch weitere Partitionen sinnvoll sein. Wenn Du aber LVM benutzt ist das nicht so wichtig - also zum Lernen erstmal ruhig weglassen).
b) Das RAID der Systempartition zum PV definieren (pvcreate)
c) Daraus eine VG erstellen (vgcreate)
d) Darauf ein LV für das System anlegen.
e) Das System auf dem LV installieren. = System fertig. All das geschieht im Installer.
2. Dieses LV, das auf der bzw. (bei RAID) den HDDs liegt, kann dann (muss aber nicht) - entsprechend - der bekannten Anleitung bei TK gecached werden. Dazu machst Du aus dem nun laufenden System.
a) ein RAID (falls gewünscht) aus den SSDs
b) aus diesem ein PV
c) fügst dieses der VG hinzu, die Du in 1.c) angelegt hast
d) erstellst darauf ein CacheDataLV und ein CacheMetaDataLV
e) und konvertierst das Ganze in einen Cache-Pool. = Caching läuft, Feierabend!
Viele Grüße, commodity