Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
server_und_serverdienste:linux_zfs [2019/01/22 20:02] boospyserver_und_serverdienste:linux_zfs [2023/01/23 15:12] (aktuell) – [Die wichtigsten ZFS-Befehle auf einen Blick] loma
Zeile 3: Zeile 3:
 ====== 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 \\ 
 +[[https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KE592Y5993ZKW|{{:wiki:btn_donatecc_lg.gif|}}]] \\ 
 +\\ 
 +Hauseigenes Apt-Repo: [[https://apt.iteas.at]]    
 +\\ 
 +GITLAB Enterprise: [[https://git.osit.cc|{{:gitlab_logo.png?nolink&60|}}]]  
 +\\ 
 +\\
 ZFS (ursprünglich Zettabyte File System) wird oft als Dateisystem angesehen, was im Grunde genommen ein Missverständnis darstellt. ZFS kann ein Dateisystem sein, aber beherrscht auch noch einiges mehr. Es vereint die Funktionalität eines Logical Volume Managers und eines Software-RAID mit einem Copy-on-Write-Dateisystem (COW). Das heißt, dass es (aufgrund seiner Kenntnisse der Festplattenbelegung) effizienter als jedes Hardware-RAID arbeitet, Daten-Integrität per Transaktionen ähnlich wie bei relationalen Datenbanken sichert und im Falle von Daten-Redundanz (Mehrfachspeicherung) sogar selbständig Daten repariert. ZFS (ursprünglich Zettabyte File System) wird oft als Dateisystem angesehen, was im Grunde genommen ein Missverständnis darstellt. ZFS kann ein Dateisystem sein, aber beherrscht auch noch einiges mehr. Es vereint die Funktionalität eines Logical Volume Managers und eines Software-RAID mit einem Copy-on-Write-Dateisystem (COW). Das heißt, dass es (aufgrund seiner Kenntnisse der Festplattenbelegung) effizienter als jedes Hardware-RAID arbeitet, Daten-Integrität per Transaktionen ähnlich wie bei relationalen Datenbanken sichert und im Falle von Daten-Redundanz (Mehrfachspeicherung) sogar selbständig Daten repariert.
  
Zeile 41: Zeile 48:
  
 ===== Memorylimit setzen ===== ===== Memorylimit setzen =====
 +Genaue Info zu den aktuellen Werten bekommt man mit:
 +  arcstat
 +oder
 +  arc_summary
  
 Wenn man möchte kann man ZFS ein Memorylimit setzten. Wenn man möchte kann man ZFS ein Memorylimit setzten.
Zeile 46: Zeile 57:
   nano  /etc/modprobe.d/zfs.conf   nano  /etc/modprobe.d/zfs.conf
   options zfs zfs_arc_max=10737418240   options zfs zfs_arc_max=10737418240
 +  
 +oder 8GB
 +  8589934592
  
 Danach noch die initram updaten und rebooten. Danach noch die initram updaten und rebooten.
Zeile 203: Zeile 217:
   sgdisk -G /dev/sdb   sgdisk -G /dev/sdb
  
-Nun den Resilverprozess anstoßen.+Nun den Resilverprozess der Partition anstoßen.
      
   zpool replace -f rpool sdb2 sdb2   zpool replace -f rpool sdb2 sdb2
Zeile 260: Zeile 274:
   Write failed: Broken pipe   Write failed: Broken pipe
  
 +Neuere Proxmoxsysteme haben ZFS immer beides. Grub und EFI. Verwendet man zum Booten Grub, verwendet man den ''grub-install''. Verwendet man EFI, bedient man sich systemd-boot: 
 +<code> 
 +pve-efiboot-tool format <new disk's ESP> 
 +pve-efiboot-tool init <new disk's ESP> 
 +</code>
  
 ===== Die wichtigsten ZFS-Befehle auf einen Blick ===== ===== Die wichtigsten ZFS-Befehle auf einen Blick =====
Zeile 283: Zeile 301:
 | zpool import -d /dev/disk/by-id/ -a| ersetzt SDX durch die ID der Festplatte | | zpool import -d /dev/disk/by-id/ -a| ersetzt SDX durch die ID der Festplatte |
 | zpool import v-machines neuepoolname| importiert einen bestehenden Pool mit einem anderen Namen | | zpool import v-machines neuepoolname| importiert einen bestehenden Pool mit einem anderen Namen |
 +| zpool import -f -R /mnt rpool| importiert einen Rootpool auf einen anderen Mountpoint |
 | zfs list -t snapshot| zeigt alle Snapshots an | | zfs list -t snapshot| zeigt alle Snapshots an |
 | zpool set listsnapshots=on rpool| zeigt bei "zfs list" auch snapshots an | | zpool set listsnapshots=on rpool| zeigt bei "zfs list" auch snapshots an |
 | zfs list -r -t snapshot -o name,creation rpool| Snapshots mit Datum anzeigen | | zfs list -r -t snapshot -o name,creation rpool| Snapshots mit Datum anzeigen |
-| zfs get volsize v-machines/HDD-vmdata-KVM/vm-113-disk-1  NAME                                     PROPERTY  VALUE    SOURCE  v-machines/HDD-vmdata-KVM/vm-113-disk-1  volsize   36G      local| zeigt den maximal möglichen Speicher eines Volumes an |+| zfs get volsize v-machines/HDD-vmdata-KVM/vm-113-disk-1 | zeigt den maximal möglichen Speicher eines Volumes an |
 | zfs set volsize=32g v-machines/HDD-vmdata-KVM/vm-113-disk-1| Verkleinert/Vergrößert das zvol auf 32GB \\ (Blockdevice)| | zfs set volsize=32g v-machines/HDD-vmdata-KVM/vm-113-disk-1| Verkleinert/Vergrößert das zvol auf 32GB \\ (Blockdevice)|
 | zfs create -V 5gb tank/vol| legt ein neues zvol mit einer maximalen Größe von 5G an \\ (Blockdevice) | | zfs create -V 5gb tank/vol| legt ein neues zvol mit einer maximalen Größe von 5G an \\ (Blockdevice) |
Zeile 500: Zeile 519:
 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:
      
-  sgdisk -Z /dev/sdf # löscht nur gpt und mbr struktur +<code> 
-  sgdisk -Z -o /dev/sdf # löscht auch Partitionen +sgdisk -Z /dev/sdf # löscht nur gpt und mbr struktur 
-  sgdisk -a1 -n1:34:2047 -t1:EF02 -n9:-8M:0 -t9:BF07 -n2:2048:0 -t2:BF01 -c 2:zfs /dev/sdf +sgdisk -Z -o /dev/sdf # löscht auch Partitionen 
-  zpool replace rpool 10714300945297318711 sdf2 +sgdisk -a1 -n1:34:2047 -t1:EF02 -n9:-8M:0 -t9:BF07 -n2:2048:0 -t2:BF01 -c 2:zfs /dev/sdf 
-  grub-install /dev/sdf+partx -s /dev/sdf (hier sieht man die Partionierung) 
 +zpool replace rpool 10714300945297318711 sdf2 
 +grub-install /dev/sdf 
 +</code>
  
 Das natürlich mit jeder Platte wiederholen. Das natürlich mit jeder Platte wiederholen.
Zeile 516: Zeile 538:
 9: reserved space (8MB) 9: reserved space (8MB)
  
 +=== 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)
 +<code>
 +sgdisk -Z /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX # löscht nur gpt und mbr struktur
 +sgdisk -Z -o /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX # löscht auch Partitionen
 +sgdisk -a1 -n1:34:2047 -t1:EF02 -n2:2048:+512M -t2:EF00 -n3:0:0 -t3:BF01 -c 3:zfs /dev/sdX
 +partx -s /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX (hier sieht man die Partionierung)
 +zpool replace rpool 10714300945297318711 ata-ST8000VN004-3CP101_XXXXXX-part3
 +proxmox-boot-tool format /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX-part2
 +proxmox-boot-tool init /dev/disk/by-id/ata-ST8000VN004-3CP101_XXXXXX-part2
 +</code>
 ==== Umwandeln eines Rpool Singledisk in einen Mirror inkl. Autoexpand ==== ==== Umwandeln eines Rpool Singledisk in einen Mirror inkl. Autoexpand ====
 Annahme ist hier ein Rpool mit einer Samsung EVO750. Da die Disk nicht Enterprise ist und das Wearoutlevel schon bei 90% ist, fügen wir eine Samsung SM863a als Mirror hinzu. Dann können wir beim Ausfall der EVO bequem eine weitere SM863a hinzufügen. Der zeitiger Status ist: Annahme ist hier ein Rpool mit einer Samsung EVO750. Da die Disk nicht Enterprise ist und das Wearoutlevel schon bei 90% ist, fügen wir eine Samsung SM863a als Mirror hinzu. Dann können wir beim Ausfall der EVO bequem eine weitere SM863a hinzufügen. Der zeitiger Status ist: