server_und_serverdienste:linux_zfs
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
server_und_serverdienste:linux_zfs [2024/08/20 08:25] – loma | server_und_serverdienste:linux_zfs [2025/05/27 12:13] (aktuell) – loma | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | {{datei: | + | {{datei: |
====== Linux ZFS ====== | ====== Linux ZFS ====== | ||
- | Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! | + | Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! |
- | [[https:// | + | [[https:// |
\\ | \\ | ||
- | Hauseigenes Apt-Repo: | + | Zum frei verfügbaren |
\\ | \\ | ||
- | GITLAB | + | GITLAB: [[https:// |
\\ | \\ | ||
\\ | \\ | ||
Zeile 17: | Zeile 18: | ||
* Kernel: 3.10.0-10-pve / 4.2.3-2-pve / 4.10.17-4-pve | * Kernel: 3.10.0-10-pve / 4.2.3-2-pve / 4.10.17-4-pve | ||
- | Alles was unter diese Version liegt, ist entweder durch Bugs, oder fehlende Features wie z.B. das ZFS die Geräte per ID anspricht, nicht brauchbar. | + | Alles, was unter diese Version liegt, ist entweder durch Bugs, oder fehlende Features wie z.B. das ZFS die Geräte per ID anspricht, nicht brauchbar. |
Zeile 53: | Zeile 54: | ||
arc_summary | arc_summary | ||
- | Wenn man möchte kann man ZFS ein Memorylimit setzten. | + | Wenn man möchte, kann man ZFS ein Memorylimit setzten. |
| | ||
nano / | nano / | ||
Zeile 78: | Zeile 79: | ||
zpool create -f -o ashift=12 v-machines mirror ata-WDC_WD2001FFSX-68JNUN0_WD-WMC5C0D0KRWP ata-WDC_WD20EARX-00ZUDB0_WD-WCC1H0343538 mirror ata-WDC_WD2001FFSX-68JNUN0_WD-WMC5C0D688XW ata-WDC_WD2001FFSX-68JNUN0_WD-WMC5C0D63WM0 | zpool create -f -o ashift=12 v-machines mirror ata-WDC_WD2001FFSX-68JNUN0_WD-WMC5C0D0KRWP ata-WDC_WD20EARX-00ZUDB0_WD-WCC1H0343538 mirror ata-WDC_WD2001FFSX-68JNUN0_WD-WMC5C0D688XW ata-WDC_WD2001FFSX-68JNUN0_WD-WMC5C0D63WM0 | ||
- | Wichtig ist immer die ID' | + | Wichtig ist immer die IDs zu benutzen. Würde man z.B. sda oder sdb nehmen, wird es vorkommen das sich die Reihenfolge beim Booten |
| | ||
ls / | ls / | ||
Zeile 91: | Zeile 92: | ||
lrwxrwxrwx 1 root root 10 May 23 11:50 wwn-0x50014ee003f548a4-part9 -> ../../sdb9 | lrwxrwxrwx 1 root root 10 May 23 11:50 wwn-0x50014ee003f548a4-part9 -> ../../sdb9 | ||
- | Wenn man eine Festplatte einsteckt, werden auch im Syslog alle wichtigen | + | Wenn man eine Festplatte einsteckt, werden auch im Syslog alle wichtigen |
| | ||
zpool add -o ashift=12 v-machines mirror ata-WDC_WD20EARX-00ZUDB0_WD-WCC1H0381420 ata-WDC_WD20EURS-63S48Y0_WD-WMAZA9381012 | zpool add -o ashift=12 v-machines mirror ata-WDC_WD20EARX-00ZUDB0_WD-WCC1H0381420 ata-WDC_WD20EURS-63S48Y0_WD-WMAZA9381012 | ||
Zeile 121: | Zeile 122: | ||
Die Daten werden bei einer Erweiterung nicht gesynct. Somit ist der Erweitungsprozess binnen Minuten abgeschlossen. Unabhängig von der Speichergröße. Daten werden erst dann auf die neuen Platten verteilt wenn diese das erste mal geschrieben werden. | Die Daten werden bei einer Erweiterung nicht gesynct. Somit ist der Erweitungsprozess binnen Minuten abgeschlossen. Unabhängig von der Speichergröße. Daten werden erst dann auf die neuen Platten verteilt wenn diese das erste mal geschrieben werden. | ||
- | **Wichtig ist auch zu erwähnen | + | **Wichtig ist auch zu erwähnen, dass die neu hinzugefügten Platten zuerst bevorzugt auf den Füllstand der anderen Platten gebracht werden, erst dann werden wieder immer alle HDD's gleichzeitg verwendet.** |
- | Als addon kann man noch eine spare disk hinzfügen, die man in Falle eines Ausfalls der produktiven Disks verwenden kann: | + | Als Add-on |
zpool add < | zpool add < | ||
Zeile 217: | Zeile 218: | ||
- | Um eine defekte Fesplatte zu ersetzen geht man folgender Maßen | + | Um eine defekte Fesplatte zu ersetzen, geht man folgendermaßen |
| | ||
zpool replace < | zpool replace < | ||
Zeile 227: | Zeile 228: | ||
- | Im Rpool ist etwas mehr zu tun, da Linux nicht von ZFS booten kann. Wir gehen hier davon aus wir die Platte im gleichen Festplattenslot tauschen, was bei einen Rpool auf z.B. SSD nicht ungewöhnlich ist. Zuerst übernehmen wir mal den Partiontable einer anderen Platte im Pool. Hier ein RaidZ-1. | + | Im Rpool ist etwas mehr zu tun, da Linux nicht von ZFS booten kann. Wir gehen hier davon aus wir die Platte im gleichen Festplattenslot tauschen, was bei einem Rpool auf z.B. SSD nicht ungewöhnlich ist. Zuerst übernehmen wir mal den Partiontable einer anderen Platte im Pool. Hier ein RaidZ-1. |
SDB ist die neue Platte und war gleichzeitig auch die defekte. SDA ist eine andere Platte im Rpool. | SDB ist die neue Platte und war gleichzeitig auch die defekte. SDA ist eine andere Platte im Rpool. | ||
Zeile 242: | Zeile 243: | ||
Make sure to wait until resilver is done before rebooting. | Make sure to wait until resilver is done before rebooting. | ||
- | Da wir ja den gleichen Festplattenslot verwenden ersetzen wir die Platte mit sich selbst. Zum Besseren | + | Da wir ja den gleichen Festplattenslot verwenden ersetzen wir die Platte mit sich selbst. Zum besseren |
- | Es es wirklich die gleiche Platte, also nicht nur der gleiche Anschluss, genügt ein | + | das dies wirklich die gleiche Platte |
| | ||
zpool online rpool sdb2 | zpool online rpool sdb2 | ||
Zeile 357: | Zeile 358: | ||
rpool/ | rpool/ | ||
- | Hier sieht man der Rpool aus den Datasets pve-1,swap und home besteht. Die Einträge mit dem " | + | Hier sieht man der Rpool aus den Datasets pve-1,swap und home besteht. Die Einträge mit dem " |
| | ||
zfs rollback rpool/ | zfs rollback rpool/ | ||
Zeile 366: | Zeile 367: | ||
Sind neuere Snapshots vorhanden muss man die vorher löschen. Man kann das aber auch gleich im obigen Befehle mit der Option " | Sind neuere Snapshots vorhanden muss man die vorher löschen. Man kann das aber auch gleich im obigen Befehle mit der Option " | ||
- | Natürlich kommt es Rootfilesystem auf die Änderungen an. Wenn man z.B. den Teil vernichtet der für die Snapshots zuständig ist, geht das dann natürlich nicht mehr. Deswegen sollte man ich immer den Rpool nur für das nackte System verwenden und eigene Pools mit eigenen Datasets generieren um solchen Dingen zu entgehen. Wann Snapshots erstellt wurden kann mit folgenden Befehl gut sehen: Hier mit dem Rpool. | + | Natürlich kommt es Rootfilesystem auf die Änderungen an. Wenn man z.B. den Teil vernichtet, der für die Snapshots zuständig ist, geht das dann natürlich nicht mehr. Deswegen sollte man ich immer den Rpool nur für das nackte System verwenden und eigene Pools mit eigenen Datasets generieren um solchen Dingen zu entgehen. Wann Snapshots erstellt wurden kann mit folgenden Befehl gut sehen: Hier mit dem Rpool. |
| | ||
zfs list -r -t snapshot -o name, | zfs list -r -t snapshot -o name, | ||
Zeile 378: | Zeile 379: | ||
==== Snapshots Remote abspeichern ==== | ==== Snapshots Remote abspeichern ==== | ||
- | Um nun auch wirkliche Backups zu generieren muss man die Snapshots natürlich außerhalb des Servers ablegen. In unserem ersten Beispiel senden wir einen Snapshot auf eine Backupfestplatte in unserem Server. | + | Um nun auch wirkliche Backups zu generieren, muss man die Snapshots natürlich außerhalb des Servers ablegen. In unserem ersten Beispiel senden wir einen Snapshot auf eine Backupfestplatte in unserem Server. |
| | ||
zpool list backup | zpool list backup | ||
Zeile 426: | Zeile 427: | ||
zfs umount backup/home | zfs umount backup/home | ||
- | Möchte man nun das Backup | + | Möchte man nun das Backup |
| | ||
zfs send -v backup/ | zfs send -v backup/ | ||
Zeile 471: | Zeile 472: | ||
zfs destroy rpool/ | zfs destroy rpool/ | ||
- | Um nun das Snapshot von unserem zweiten Beispiel von /backup wieder | + | Um nun das Snapshot von unserem zweiten Beispiel von /backup wieder |
| | ||
pigz -d -c / | pigz -d -c / | ||
Zeile 522: | Zeile 523: | ||
Ist " | Ist " | ||
- | Um für alle Pools abzugragen ob die Funktion aktiv ist gibt man folgendes Befehl ein: | + | Um für alle Pools abzugragen, ob die Funktion aktiv ist gibt man folgendes Befehl ein: |
| | ||
zpool get autoexpand | zpool get autoexpand | ||
Zeile 538: | Zeile 539: | ||
==== Autoexpand auf einem Rootpool ==== | ==== Autoexpand auf einem Rootpool ==== | ||
- | Das ganze ist ein wenig komplizierter da man die GPT Bootpartion beachten muss. Zuerst erstellt auf der neuen getauschten Disk eine GPT Partition: | + | Das Ganze ist ein wenig komplizierter da man die GPT Bootpartion beachten muss. Zuerst erstellt auf der neuen getauschten Disk eine GPT Partition: |
| | ||
< | < | ||
Zeile 560: | Zeile 561: | ||
=== Partitionieren ab Proxmox-Boot-Tool === | === Partitionieren ab Proxmox-Boot-Tool === | ||
- | Bei neuen Systemen wird nicht mehr Grub sondern Proxmox Boottool verwendet. Dabei wird für EFI eine extra 512MB Partition benötigt. Der Befehl dazu sieht dann so aus: Die erste zwei Befehle können auch über die Webgui durch einen Mausklick ausgeführt werden (Initialisiere Disk mit GPT) | + | Bei neuen Systemen wird nicht mehr Grub, sondern Proxmox Boottool verwendet. Dabei wird für EFI eine extra 512MB Partition benötigt. Der Befehl dazu sieht dann so aus: Die erste zwei Befehle können auch über die Webgui durch einen Mausklick ausgeführt werden (Initialisiere Disk mit GPT) |
< | < | ||
sgdisk -Z / | sgdisk -Z / | ||
Zeile 691: | Zeile 692: | ||
===== Proxmox spezifisches ===== | ===== Proxmox spezifisches ===== | ||
- | Unter Proxmox wird LVM defaultmäßing mitinstalliert, | + | Unter Proxmox wird LVM defaultmäßing mitinstalliert, |
| | ||
nano / | nano / | ||
Zeile 742: | Zeile 743: | ||
</ | </ | ||
Das Dataset löschen, löscht natürlich auch die Freigabe. | Das Dataset löschen, löscht natürlich auch die Freigabe. | ||
- | Um zu sehen welche Freigaben nun aktiv sind gibt es mehrere Möglichkeiten. Am Host selbst: | + | Um zu sehen, welche Freigaben nun aktiv sind, gibt es mehrere Möglichkeiten. Am Host selbst: |
< | < | ||
cat / | cat / |
server_und_serverdienste/linux_zfs.1724142327.txt.gz · Zuletzt geändert: von loma