Benutzer-Werkzeuge

Webseiten-Werkzeuge


server_und_serverdienste:linux_zfs

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
server_und_serverdienste:linux_zfs [2024/08/20 08:25] lomaserver_und_serverdienste:linux_zfs [2025/05/27 12:13] (aktuell) loma
Zeile 1: Zeile 1:
-{{datei:zfs-linux.png?nolink}}+{{datei:zfs-linux.png?300}} 
  
 ====== 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! LOL \\ +Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen 8-o. Gerne. Wir bedanken uns bei dir für deine Spende! 🙏 \\ 
-[[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KE592Y5993ZKW|{{:wiki:btn_donatecc_lg.gif|}}]] \\+[[https://www.paypal.com/donate/?hosted_button_id=KE592Y5993ZKW|{{:spenden.gif|}}]] \\
 \\ \\
-Hauseigenes Apt-Repo: [[https://apt.iteas.at]]   +Zum frei verfügbaren [[:apt-repository|Apt-Repository]]
 \\ \\
-GITLAB Enterprise: [[https://git.osit.cc|{{:gitlab_logo.png?nolink&60|}}]] +GITLAB: [[https://git.osit.cc|{{:gitlab_logo.png?nolink&60|}}]]
 \\ \\
 \\ \\
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.+Alleswas 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öchtekann man ZFS ein Memorylimit setzten.
      
   nano  /etc/modprobe.d/zfs.conf   nano  /etc/modprobe.d/zfs.conf
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'zu benutzen. Würde man z.B. sda oder sdb nehmen, wird es vorkommen das sich die Reihenfolge beim booten irgendwann mal ändert, und dann fehlen Platten. Insbesondere wenn man mehrere SAS/SATA Controller zur Verfügung hat. Die IDs kann man hier auslesen: Als Beispiel SDB+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 irgendwann mal ändert, und dann fehlen Platten. Insbesondere wenn man mehrere SAS/SATA Controller zur Verfügung hat. Die IDs kann man hier auslesen: Als Beispiel SDB
      
   ls  /dev/disk/by-id/ -l | grep sdb   ls  /dev/disk/by-id/ -l | grep sdb
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 Infos angezeigt. Um dann noch zwei weitere Platten zu unserem 4er Gespann hinzuzufügen bedient man diesen Befehl:+Wenn man eine Festplatte einsteckt, werden auch im Syslog alle wichtigen Informationen angezeigt. Um dann noch zwei weitere Platten zu unserem 4er Gespann hinzuzufügenbedient man diesen Befehl:
      
   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 das 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.**+**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 kann man noch eine spare disk hinzfügen, die man in Falle eines Ausfalls der produktiven Disks verwenden kann:
  
  zpool add <poolname> spare <device>  zpool add <poolname> spare <device>
Zeile 217: Zeile 218:
  
  
-Um eine defekte Fesplatte zu ersetzen geht man folgender Maßen vor. Um event. Probleme zu vermeiden kann man die Platte vorher auch partitionslos machen.+Um eine defekte Fesplatte zu ersetzengeht man folgendermaßen vor. Um event. Probleme zu vermeiden kann man die Platte vorher auch partitionslos machen.
      
   zpool replace <poolname> <alte ID> <neue ID>   zpool replace <poolname> <alte ID> <neue ID>
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 Verständnis kann man natürlich immer mit den DiskID's arbeiten. **/dev/disk/by-id/** +Da wir ja den gleichen Festplattenslot verwenden ersetzen wir die Platte mit sich selbst. Zum besseren Verständnis kann man natürlich immer mit den DiskID's arbeiten. **/dev/disk/by-id/** 
-Es es wirklich die gleiche Platte, also nicht nur der gleiche Anschluss, genügt ein+das dies wirklich die gleiche Platte ist, also nicht nur der gleiche Anschluss, genügt ein
      
   zpool online rpool sdb2   zpool online rpool sdb2
Zeile 357: Zeile 358:
   rpool/swap                4.25G   841G  85.2K  -   rpool/swap                4.25G   841G  85.2K  -
  
-Hier sieht man der Rpool aus den Datasets pve-1,swap und home besteht. Die Einträge mit dem "@" sind snapshots. Um nun ein Snapshot zurück zu spielen z.B. am Dataset home bedient man sich diesem Befehle:+Hier sieht man der Rpool aus den Datasets pve-1,swap und home besteht. Die Einträge mit dem "@" sind snapshots. Um nun ein Snapshot zurückzuspielen z.B. am Dataset home bedient man sich diesem Befehle:
      
   zfs rollback rpool/home@Freitag   zfs rollback rpool/home@Freitag
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 "r" forcen und includen. Sind neuere Snapshots vorhanden muss man die vorher löschen. Man kann das aber auch gleich im obigen Befehle mit der Option "r" forcen und includen.
-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 vernichtetder 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,creation rpool   zfs list -r -t snapshot -o name,creation rpool
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 generierenmuss 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 zurück spielen, geht man gleicher Maßen vor, nur umgekehrt:+Möchte man nun das Backup zurückspielen, geht man gleichermaßen vor, nur umgekehrt:
      
   zfs send -v backup/home@Dienstag | zfs receive  rpool/home -F   zfs send -v backup/home@Dienstag | zfs receive  rpool/home -F
Zeile 471: Zeile 472:
   zfs destroy rpool/home@Freitag   zfs destroy rpool/home@Freitag
  
-Um nun das Snapshot von unserem zweiten Beispiel von /backup wieder zurück zu spielen geht man folgender maßen vor. +Um nun das Snapshot von unserem zweiten Beispiel von /backup wieder zurückzuspielen, geht man folgendermaßen vor. 
      
   pigz -d -c /backup/home@bla1.gz | zfs receive -F rpool/home   pigz -d -c /backup/home@bla1.gz | zfs receive -F rpool/home
Zeile 522: Zeile 523:
 Ist "autoexpand" aktiviert vergrößert sich der Festplattenspeicher beim Tausch einer kleineren durch eine größere Platte automatisch. Beispiel: Man hat ein Raid1 mit 2x500GB Festplatten. Man tauscht die platten nacheinander aus (replace/resilvern). Ist die zweite Platte getauscht ist der Mehrspeicher sofort verfügbar.  Ist "autoexpand" aktiviert vergrößert sich der Festplattenspeicher beim Tausch einer kleineren durch eine größere Platte automatisch. Beispiel: Man hat ein Raid1 mit 2x500GB Festplatten. Man tauscht die platten nacheinander aus (replace/resilvern). Ist die zweite Platte getauscht ist der Mehrspeicher sofort verfügbar. 
  
-Um für alle Pools abzugragen ob die Funktion aktiv ist gibt man folgendes Befehl ein:+Um für alle Pools abzugragenob 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:
      
 <code> <code>
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 Grubsondern 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)
 <code> <code>
 sgdisk -Z /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX # löscht nur gpt und mbr struktur sgdisk -Z /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX # löscht nur gpt und mbr struktur
Zeile 691: Zeile 692:
 ===== Proxmox spezifisches ===== ===== Proxmox spezifisches =====
  
-Unter Proxmox wird LVM defaultmäßing mitinstalliert, man im Installer wählen kann ob man ZFS oder EXT4 mit LVM haben möchte. Unter ZFS kann LVM einen Filter erstellen damit der HOST die LVMs von den Gästen nicht sieht. Ist sauberer.+Unter Proxmox wird LVM defaultmäßing mitinstalliert, man im Installer wählen kannob man ZFS oder EXT4 mit LVM haben möchte. Unter ZFS kann LVM einen Filter erstellen damit der HOST die LVMs von den Gästen nicht sieht. Ist sauberer.
      
   nano /etc/lvm/lvm.conf   nano /etc/lvm/lvm.conf
Zeile 742: Zeile 743:
 </code> </code>
 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 sehenwelche Freigaben nun aktiv sindgibt es mehrere Möglichkeiten. Am Host selbst:
 <code> <code>
 cat /etc/dfs/sharetab cat /etc/dfs/sharetab
server_und_serverdienste/linux_zfs.1724142327.txt.gz · Zuletzt geändert: von loma