Riggen_HomeLab_Storage_2 - itnett/FTD02H-N GitHub Wiki

Basert på din lagringsplan med flere ZFS-pools, vil vi bruke M.2 NVMe SSD-en til L2ARC (Read Cache) og SLOG (Separate Log Device) for å forbedre ytelsen til de ulike ZFS-poolene.

Oppsettet ditt:

  1. ZFS-pools:
    • zpool_vm: 2 x 1.6TB SSD for virtuelle maskiner (VM-er)
    • zpool_cont: 2 x 1.2TB SSD for containere
    • zpool_cloudTier: 2 x 4TB SATA spinning disks for cloud-basert eller kald lagring
    • zpool_image: 1 x 500GB SSD for ISO-er, blåkopier, og golden images

Optimal Bruk av M.2 NVMe SSD for L2ARC og SLOG

For å maksimere ytelsen og utnytte M.2 NVMe SSD-en optimalt, anbefaler jeg å opprette flere partisjoner for både L2ARC (Read Cache) og SLOG (Write Cache) på NVMe SSD-en. La oss bryte ned de nødvendige partisjonene og deres anbefalte størrelser.

1. Plan for L2ARC (Read Cache):

  • L2ARC Cache (Read Cache) Mål:

    • Øke lesehastigheten for ZFS-poolene ved å hurtigbufre ofte aksesserte data på den raskeste lagringsenheten (NVMe SSD).
  • Anbefalt L2ARC-størrelse:

    • Størrelsen på L2ARC bestemmes ofte av hvor mye RAM som er tilgjengelig i systemet, da L2ARC er en forlengelse av RAM (L1ARC). En vanlig anbefaling er å ikke bruke mer enn 5-10 ganger mengden RAM som er dedikert til ZFS. Med 64 GB RAM, kan vi bruke opptil 320-640 GB for L2ARC totalt.

2. Plan for SLOG (Separate Intent Log):

  • SLOG (Write Cache) Mål:

    • Forbedre ytelsen for synkrone skriveoperasjoner, spesielt viktig for databasetjenester og applikasjoner som utfører mange synkrone skriver.
  • Anbefalt SLOG-størrelse:

    • SLOG bør være stor nok til å håndtere synkrone skriver i bursts, men trenger ikke være veldig stor. Typisk størrelse er 10-20 GB per pool avhengig av arbeidsbelastning.

Forslag til Partisjonering av M.2 NVMe SSD:

Basert på dine behov og lagringsoppsettet ditt, her er en anbefalt partisjonsplan:

Partisjon Formål Størrelse Beskrivelse
/dev/nvme0n1p1 L2ARC for zpool_vm 150 GiB Cache for VM-pool for å øke lesehastigheten.
/dev/nvme0n1p2 SLOG for zpool_vm 20 GiB Write log for VM-pool for å forbedre synkron skriveytelse.
/dev/nvme0n1p3 L2ARC for zpool_cont 100 GiB Cache for container-pool for å øke lesehastigheten.
/dev/nvme0n1p4 SLOG for zpool_cont 20 GiB Write log for container-pool for å forbedre synkron skriveytelse.
/dev/nvme0n1p5 L2ARC for zpool_cloudTier 150 GiB Cache for kald lagrings-pool for å forbedre lesehastigheten.
/dev/nvme0n1p6 SLOG for zpool_cloudTier 20 GiB Write log for kald lagring, nyttig hvis synkrone skriver kreves.
/dev/nvme0n1p7 L2ARC for zpool_image 50 GiB Cache for ISO- og image-pool for raskere lesetilgang.
/dev/nvme0n1p8 SLOG for zpool_image 20 GiB Write log for image-pool hvis synkrone skriver er nødvendig.
Reservert plass Fremtidig bruk ~470 GiB Resterende plass for fremtidige behov og brukstilfeller.

Total Partisjonsbruk:

  • L2ARC Total: 450 GiB (150 + 100 + 150 + 50)
  • SLOG Total: 80 GiB (20 + 20 + 20 + 20)
  • Reservert plass: ~470 GiB (tilgjengelig for fremtidige behov)

3. Opprettelse av Partisjonene på M.2 NVMe SSD:

Bruk parted for å opprette disse partisjonene på M.2 NVMe SSD-en:

parted /dev/nvme0n1 mklabel gpt
parted /dev/nvme0n1 mkpart primary 0% 150GiB      # L2ARC for zpool_vm
parted /dev/nvme0n1 mkpart primary 150GiB 170GiB  # SLOG for zpool_vm
parted /dev/nvme0n1 mkpart primary 170GiB 270GiB  # L2ARC for zpool_cont
parted /dev/nvme0n1 mkpart primary 270GiB 290GiB  # SLOG for zpool_cont
parted /dev/nvme0n1 mkpart primary 290GiB 440GiB  # L2ARC for zpool_cloudTier
parted /dev/nvme0n1 mkpart primary 440GiB 460GiB  # SLOG for zpool_cloudTier
parted /dev/nvme0n1 mkpart primary 460GiB 510GiB  # L2ARC for zpool_image
parted /dev/nvme0n1 mkpart primary 510GiB 530GiB  # SLOG for zpool_image

4. Konfigurer L2ARC og SLOG i ZFS:

Legg til partisjonene til ZFS-poolene:

  • For zpool_vm:

    zpool add zpool_vm cache /dev/nvme0n1p1
    zpool add zpool_vm log /dev/nvme0n1p2
    
  • For zpool_cont:

    zpool add zpool_cont cache /dev/nvme0n1p3
    zpool add zpool_cont log /dev/nvme0n1p4
    
  • For zpool_cloudTier:

    zpool add zpool_cloudTier cache /dev/nvme0n1p5
    zpool add zpool_cloudTier log /dev/nvme0n1p6
    
  • For zpool_image:

    zpool add zpool_image cache /dev/nvme0n1p7
    zpool add zpool_image log /dev/nvme0n1p8
    

Oppsummering:

  • L2ARC og SLOG Partisjoner: M.2 NVMe SSD-en er delt opp i dedikerte partisjoner for å akselerere lese- og skriveoperasjoner for de forskjellige ZFS-poolene.
  • Optimal Utnyttelse av NVMe SSD-en: Ved å tildele spesifikke mengder lagringsplass for L2ARC og SLOG basert på de forventede arbeidsbelastningene til hver pool, maksimerer du ytelsen uten å overbruke ressurser.
  • Fremtidig Fleksibilitet: Reserverte partisjoner for fremtidige behov gir deg muligheten til å skalere og tilpasse etterhvert som dine lagringsbehov endres.

Dette oppsettet sikrer at du får høy ytelse på lesing og skriving, samtidig som du bevarer fleksibiliteten for fremtidige utvidelser og endringer i lagringskonfigurasjonen.

For å lage en robust og fleksibel lagringsplan som tar hensyn til både nåværende og fremtidig RAM-oppgradering (fra 32 GiB til 64 GiB), samtidig som vi sikrer at M.2 NVMe SSD-en har nok plass for LVM, Proxmox-systemet, og tunge I/O-operasjoner for VM-er og containere, kan vi sette opp en tabell som tar høyde for disse kravene.

Tabell for Partisjoneringsplan på M.2 NVMe og Andre Disker:

Tabellen nedenfor viser partisjonene og deres foreslåtte størrelser, avhengig av om du har 32 GiB RAM nå, og planlegger å utvide til 64 GiB RAM senere.

M.2 NVMe SSD Partisjoneringsplan:

Partisjon Formål Størrelse med 32 GiB RAM Størrelse med 64 GiB RAM Beskrivelse
/dev/nvme0n1p1 Proxmox System (LVM) 100 GiB 100 GiB Dedikert til Proxmox VE-system og nødvendig grunnleggende LVM-oppsett.
/dev/nvme0n1p2 L2ARC for zpool_vm 75 GiB 150 GiB Cache for VM-pool for å øke lesehastigheten.
/dev/nvme0n1p3 SLOG for zpool_vm 20 GiB 20 GiB Write log for VM-pool for å forbedre synkrone skriveytelser.
/dev/nvme0n1p4 L2ARC for zpool_cont 50 GiB 100 GiB Cache for container-pool for å øke lesehastigheten.
/dev/nvme0n1p5 SLOG for zpool_cont 20 GiB 20 GiB Write log for container-pool for å forbedre synkrone skriver.
/dev/nvme0n1p6 L2ARC for zpool_cloudTier 50 GiB 100 GiB Cache for kald lagring for å forbedre lesehastigheten.
/dev/nvme0n1p7 SLOG for zpool_cloudTier 20 GiB 20 GiB Write log for kald lagring (om nødvendig, vanligvis ikke kritisk).
/dev/nvme0n1p8 L2ARC for zpool_image 25 GiB 50 GiB Cache for ISO og image-pool for raskere lesetilgang.
/dev/nvme0n1p9 SLOG for zpool_image 10 GiB 10 GiB Write log for image-pool hvis synkrone skriver er nødvendig.
Reservert plass Fremtidig bruk / buffer ~630 GiB ~430 GiB Resterende plass til fremtidige behov eller justeringer, optimalisering av partisjonsstørrelser.

Partisjoneringsplan for Disker i zpool_vm og zpool_cont:

For å ha en backup og katastrofegjenoppretting-plan, kan vi lage små partisjoner på hver av de andre SSD-ene som kan brukes til å opprette en ny Proxmox-installasjon hvis M.2 NVMe SSD-en blir korrupt.

Disk Partisjon Formål Størrelse Beskrivelse
2x 1.6TB SSD (zpool_vm) /dev/sda1, /dev/sdb1 Backup Proxmox System (LVM) 50 GiB hver Partisjonene på hver disk brukes for en alternativ Proxmox-installasjon med LVM.
Rest ZFS Pool for VM Storage Resten av kapasiteten Brukes til VM-lagring med ZFS (f.eks., RAID1 eller RAIDZ).
2x 1.2TB SSD (zpool_cont) /dev/sdc1, /dev/sdd1 Backup Proxmox System (LVM) 50 GiB hver Alternativ Proxmox-installasjon med LVM som en backup.
Rest ZFS Pool for Container Storage Resten av kapasiteten Brukes til container-lagring med ZFS.

Fordeling av Ressurser avhengig av RAM:

  • Med 32 GiB RAM:

    • L2ARC Størrelse Total: 200 GiB (75+50+50+25 GiB)
    • SLOG Størrelse Total: 70 GiB (20+20+20+10 GiB)
    • Reservert Plass: ~630 GiB
  • Med 64 GiB RAM:

    • L2ARC Størrelse Total: 400 GiB (150+100+100+50 GiB)
    • SLOG Størrelse Total: 70 GiB (20+20+20+10 GiB)
    • Reservert Plass: ~430 GiB

Hvordan Gjøre Proxmox Bootbar fra Alternativ Disk:

For å kunne ha en fungerende og bootbar Proxmox-installasjon fra en av de alternative SSD-ene i tilfelle M.2 NVMe SSD-en blir korrupt:

  1. Opprett Partisjoner på Eksterne Disker:

    • Bruk parted eller lignende verktøy for å opprette en 50 GiB partisjon på hver av SSD-ene for LVM.
    • Opprett resten av kapasiteten som ZFS-pool.

    Eksempel for disk /dev/sda:

    parted /dev/sda mklabel gpt
    parted /dev/sda mkpart primary ext4 1MiB 50GiB      # Backup Proxmox System
    parted /dev/sda mkpart primary 50GiB 100%          # ZFS Pool Partisjon
    
  2. Installer Proxmox på Alternativ Disk:

    • Installer Proxmox på /dev/sda1 (og tilsvarende partisjon på andre disker) ved å bruke en Proxmox ISO og velge denne partisjonen manuelt under installasjonen.
  3. Sett Opp Boot-loader:

    • Sikre at boot-loaderen (GRUB) installeres på begge diskene. Dette kan gjøres ved å manuelt installere GRUB på de alternative diskene etter installasjon:
    grub-install /dev/sda
    grub-install /dev/sdb
    grub-install /dev/sdc
    grub-install /dev/sdd
    

Konklusjon:

Ved å bruke en fleksibel partisjoneringsstrategi på M.2 NVMe SSD-en og å opprette backup-installasjoner på de alternative SSD-ene, sikrer du en robust løsning for både ytelse og gjenoppretting i tilfelle feil. Dette oppsettet gir både optimal bruk av ressurser og fremtidig skalerbarhet, samtidig som det bevarer redundans og gjenopprettingsmuligheter.