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:
- ZFS-pools:
zpool_vm
: 2 x 1.6TB SSD for virtuelle maskiner (VM-er)zpool_cont
: 2 x 1.2TB SSD for containerezpool_cloudTier
: 2 x 4TB SATA spinning disks for cloud-basert eller kald lagringzpool_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:
-
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
- Bruk
-
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.
- Installer Proxmox på
-
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.