[Sammelthread] Proxmox Stammtisch

Das mit der Worker vm ist mist, ich möchte ja die Last beim Backup nicht auf den produktiven Hosts haben, sondern auf dem Backupserver.

Mal schauen, ob sich da noch was ändert.
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Zur verbesserung der Performance möchte Veeam eine "Worker VM" auf dem PVE instalieren, diese bekommt die nächste freie pve ID, ist ein Rocky Linux und belegt 100GB Speicher.
Geht das nur als VM? In unserer VMWare Umgebung nutzen wir mehrere Bare Metal Windows Server als Veeam Backup Proxys, um den Backup Workload auf diese zu verteilen.
 
Moin zusammen,

mein erster Beitrag hier ;-).
Ich nutze seit ein paar Jahren ProxMox und stelle Euch mal mein Setup gehostet bei OVH (genauer: Kimsufi) vor (hoffe, dass es den einen oder anderen interessieren könnte). Zuhause betreibe ich auch noch ein paar ProxMox-Server.

Den Kimsufi-Server habe ich selbst gebootstrapped (also from Scratch selbst aufgesetzt):
- SW-RAID1 über 2 Platten
- über das MD-Device Luks gezogen (also fully discencrypted)
- Auf dem Crypt-Device dann gemäß ProxMox-Vorgaben LVM aufgelegt.
- das Luks-Device kann ich remote entsperren.

Um eine höhere Sicherheit zur gewährleisten:
- Geofirewalling: Zugriffe nur aus DE erlaubt und wenn ich im Urlaub bin, das jeweilige Land dazu
- Zugriffe auf die Proxmox-GUI ist nur via localhost möglich (per ssh-Tunneling)
- ssh auf den physischen Proxmox-Server ist nur aus definierten IP-Ranges möglich.
- Jede VM bekommt für gewöhnlich einen eigenen virtuellen Switch => Segmentierung
- Web-Anwendungen werden via NGinx auf die jeweiligen Server durch SNI via RevProxy durchgereicht. So komme ich mit einer öffentlichen IP aus. Das vereinfacht auch das Zertifikatshandling per Wildcard.
- andere Anwendungen werden via IPtables auf die jeweiligen Systeme durchgereicht. Auch hier reicht mir die eine öffentliche IP.
- Die Kommunikation der Systeme untereinander, soweit nötig, steuere ich via iptables
- zusätzlich noch ein paar nette DNS-Features (sshfp- und https-Resource-Records)

Backup geht auf einen anderen Proxmox-Server, auf dem PBS läuft, sowi bei kleineren VMs auch nach Hause.

Gruß,
Karsten
 
Geht das nur als VM? In unserer VMWare Umgebung nutzen wir mehrere Bare Metal Windows Server als Veeam Backup Proxys, um den Backup Workload auf diese zu verteilen.

Ich habe das bisher so verstanden, das Veeam die WorkerVM also lokale Instanz nutzt, um das Backup schneller durch zu führen, vermutlich um keinen Agent oder so auf dem PVE zu installieren. Von der Funktion dürfte das sowas sein wie das "Framework" das Veeam auch bei ESX installiert. Bin aber noch am testen.
 
Hallo @michsenhalt & willkommen im Forum!

Das ist ja ein ordentliches Featurepaket das Du da aufgebaut hast. Ich würde mich freuen, wenn Du folgende Punkte etwas beschreiben bzw. Tutorial links posten könntest:

- über das MD-Device Luks gezogen (also fully discencrypted)
- Auf dem Crypt-Device dann gemäß ProxMox-Vorgaben LVM aufgelegt.
- das Luks-Device kann ich remote entsperren.

- Jede VM bekommt für gewöhnlich einen eigenen virtuellen Switch => Segmentierung

Insgesamt hätte Dein Setup das Potential für einen Proxmox Setup Guide, da ist für jeden was dabei (y)

Viele Grüße,

Supa
 
Moin @Supaman ,

oh, vielen Dank für die Blumen.

Auf die Schnelle habe ich da jetzt nichts parat. Aber ein paar Links/Erklärungen kann ich mal unvorbereitet bieten:
  • ich habe vor einigen Jahren mal einen längeren Guide geschrieben, der das Aufsetzen und remote Entsperren eines FullDiscEncrypted-Server beschreibt (ist aber jetzt etwas veraltet, aber vieles noch gültig). Liegt bei der LUG HH (https://www.lug-hamburg.de/_media/balista/blog/kwi_cloudserver_01_fde_0.3.pdf ). Ich habe den Artikel bereits um den Punkt MD und LVM ergänzt. Ist aber noch nicht bei der LUG hochgeladen. Ich attache mal die aktuelle Version hier. Hat aber noch keiner Korrektur elesen ;-), also: übernehme keine Verantwortung ;-).
  • Bezüglich der ProxMox-Vorgaben: ich habe mich hieran gehalten:
  • Was die Segmentierung angeht: Anforderung zunächst: die Systeme sollen sicherheitsseitig voneinander getrennt sein und nur kontrolliert miteinander reden können. Das erhöht die Sicherheit dahingehend, dass ein erfolgreicher Angreifer einer VM sich nicht unbegrenzt weiter vorarbeiten kann (Einschränkung des "lateral movements"). Umsetzung: ich habe auf dem Proxmox-Server mehrere virtuelle Switche angelegt, die am Hypervisor "anliegen". Routing läuft dann über den Hypervisor, der via iptables die Kommunikationsbeziehungen kontrolliert/reglementiert.
Hoffe, das hilft erst einmal. Sonst gerne melden.

Gruß,
Karsten
 

Anhänge

  • kwi_cloudserver_01_fde_0.5.pdf
    441,7 KB · Aufrufe: 53
ZFS Verschlüssellung wäre eine Alternative.
Bietet neben unterschiedlichen Keys per Dateisystem eine raw replizierung (Verschlüsseltes zfs send) sowie prompt, file und teils https basierte Keys dazu optional keysplit oder HA mit mehreren Webservern

Einziger Nachteil bei einem VM Dateisystem:
Da sollte man sync aktivieren und ZFS sync + encryption ist nicht sonderlich schnell wegen der dann anfallenden kleinen Datenblöcken.
 
Hallo @michsenhalt ,

vielen Dank schonmal für den Input, HDD encryption ist doch deutlich komplexer als vermutet.

  • Was die Segmentierung angeht: Anforderung zunächst: die Systeme sollen sicherheitsseitig voneinander getrennt sein und nur kontrolliert miteinander reden können. Das erhöht die Sicherheit dahingehend, dass ein erfolgreicher Angreifer einer VM sich nicht unbegrenzt weiter vorarbeiten kann (Einschränkung des "lateral movements"). Umsetzung: ich habe auf dem Proxmox-Server mehrere virtuelle Switche angelegt, die am Hypervisor "anliegen". Routing läuft dann über den Hypervisor, der via iptables die Kommunikationsbeziehungen kontrolliert/reglementiert.

Die Sinnhaltigkeit von Segmentierung und man das in ungefär umsetzen müsste ist mir bekannt, mich würde an der Stelle interessieren, wie Du das umgesetzt hast. Wenn man für jede VM eigene Firewall Regeln aufsetzt, wird das sehr schnell sehr unübersichtlich.
 
Moin zusammen,

  • zfs-Encryption habe ich bei mir nicht am Laufen. Wäre je nach Anwendungsfall aber natürlich auch eine Alternative, ist aber für meinen Anwendungsfall und meine Hardware nicht optimal
  • FullDiscEncryption wirkt natürlich erst einmal komplex, aber ein wenig Üben mit einem vielleicht gerade nicht genutzten Rechner hilft schon einmal. Und mein Guide beschreibt das ja ausführlich.

  • Segmentierung:
    • im Grunde sollte man sich erst einmal Gedanken machen, was für Sicherheitszonen man benötigt. Wenn das entschieden ist, ordnet man die verschiedenen VMs der jeweiligen Zone zu, die dann als eigenes Netzwerksegment realisiert wird. Die Segmente sind technisch bei mir als jeweils eigene Bridges mit einem kleinen /29 angelegt, in der der physische Proxmox-Server als default Gateway fungiert.
    • Meine VMs haben bis auf eine (die fail2ban einsetzt) keine iptables-Regeln. Das Regelwerk ist auf dem physischen Proxmox-Server umgesetzt, da dieser das Default-Gateway für alle Segmente darstellt und daher den Traffic reglementieren kann. Je nach Anwendungsfall kann ein entsprechendes Regelwerk recht einfach (wenn die VMs nicht viel untereinander reden) oder auch komplexer werden. So etwas ist für gewöhnlich aber recht statisch, d.h. man implementiert es einmal und danach gibt es meist eher selten Anpassungen.
  • Weitere Sicherheits-Optionen:
    • ich verwende zusätzlich noch regelmäßig aktualisierte IP-Malware-Listen, die ich via IPSet einbinde und deren IPs sofort geblockt werden. Beispiele dafür zB dshield und SpamHaus edrop.
    • einige meiner Systeme sichere ich auch noch im Rahmen eines HIDS per aide ab.
    • Wenn auch noch outbound-Traffic mehr gesichert werden soll, bieten sich sonst noch RPZs (Response Policy Zones) an, die sich beispielsweise beim Resolver unbound einpflegen lassen.
Gruß,
Karsten
 
Zuletzt bearbeitet:
Ich komme gerade dazu das ich tatsächlich eine windows-Test-VM brauche. Ich habe Windows privat komplett verbannt und bin da etwas raus. Wie installiere und konfiguriere ich so einen Mist?
Meine Idee: Windows 11 IoT Enterprise LTSC ISO runterladen und in eine VM kippen gemäß https://pve.proxmox.com/wiki/Windows_2022_guest_best_practices - bis dahin okay?
Und dann? Krieg ich die ohne Registrierung oder ähnliches sauber zum laufen, und auch geupdated? Wo gibts am günstigsten einen Key? Brauche ich den überhaupt? Werd das Ding alle paar Wochen für 2, 3 Tests hochfahren, updaten, Tests durchführen und wieder schlafenlegen. Am liebsten wäre es mir wenn es gar nicht ins Internet dürfte, sperre das schon in ein eigenes Netz...
 
Windows hat 30 Tage bis aktivert werden muss. Proxmox virtio driver ISO auf den PVE laden, VM Paramater nach gusto zusammenklicken, 2tes CD-Rom angeben mit den VIrtioDrivern, WIndows Setup durchklicken. Wenn der Windwos Desktop da ist, die Windows virtio Driver komplett installieren, und auch den guest-agent. Dann Windows PW setzen, RDP einschalten, Energieoptioen auf Höchstleistung. Windows Updates laufen lassen, fertig.
 
Also die Windows VM läuft jetzt - Extradank an @Supaman der meine doofen Fragen alle mehr als ausreichend beantwortet hat.
Jetzt gleich zum nächsten Problem: Ich wollte meine gute alte 40g Mellanox Karte der VM durchreichen. Also Host runtergefahren, KArte eingebaut, der VM zugewiesen und..... kein boot, statt dessen das hier:
Cannot bind 61:00:0 to vfio
Öhm.... ich find lauter Probleme zum Thema GPU passthrough und nouveau blacklisten - aber das ist ja ne NIC... W00t?
 
Windows hat 30 Tage bis aktivert werden muss. Proxmox virtio driver ISO auf den PVE laden, VM Paramater nach gusto zusammenklicken, 2tes CD-Rom angeben mit den VIrtioDrivern, WIndows Setup durchklicken. Wenn der Windwos Desktop da ist, die Windows virtio Driver komplett installieren, und auch den guest-agent. Dann Windows PW setzen, RDP einschalten, Energieoptioen auf Höchstleistung. Windows Updates laufen lassen, fertig.
Vlt. 'ne blöde Frage, aber warum das?
 
sehe ich auch keinen Sinn drin, da Windows doch erkennt, dass es sich um eine VM handelt.
 
Also die Windows VM läuft jetzt - Extradank an @Supaman der meine doofen Fragen alle mehr als ausreichend beantwortet hat.
Jetzt gleich zum nächsten Problem: Ich wollte meine gute alte 40g Mellanox Karte der VM durchreichen. Also Host runtergefahren, KArte eingebaut, der VM zugewiesen und..... kein boot, statt dessen das hier:
Cannot bind 61:00:0 to vfio
Öhm.... ich find lauter Probleme zum Thema GPU passthrough und nouveau blacklisten - aber das ist ja ne NIC... W00t?
Irgendwer noch ne Idee dazu? Ich will nicht schonwieder neu installieren müssen weil ich nicht weiterkomme...
Ich habe noch ein bisschen geforscht:
Karte wird sauber erkannt:
Code:
lspci
...
60:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B
61:00.0 Ethernet controller: Mellanox Technologies MT27500 Family [ConnectX-3]
61:00.1 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
61:00.2 Ethernet controller: Mellanox Technologies MT27500/MT27520 Family [ConnectX-3/ConnectX-3 Pro Virtual Function]
62:00.0 USB controller: Fresco Logic FL1100 USB 3.0 Host Controller (rev 10)
...

Und auch von mst gelistet:
Code:
mst status
MST modules:
------------
    MST PCI module loaded
    MST PCI configuration module loaded

MST devices:
------------
/dev/mst/mt4099_pciconf0         - PCI configuration cycles access.
                                   domain:bus:dev.fn=0000:61:00.0 addr.reg=88 data.reg=92 cr_bar.gw_offset=-1
                                   Chip revision is: 01
/dev/mst/mt4099_pci_cr0          - PCI direct access.
                                   domain:bus:dev.fn=0000:61:00.0 bar=0xe8200000 size=0x100000
                                   Chip revision is: 01

Aber der Traiber wird offenbar nicht geladen:
Code:
mlxconfig -d /dev/mst/mt4099_pciconf0 query
-E- Failed to open device: /dev/mst/mt4099_pciconf0. Cannot perform operation, Driver might be down.

Aber eigentlich spuckt das hier keinen Fehler aus:
Code:
mst start
Starting MST (Mellanox Software Tools) driver set
[warn] mst_pci is already loaded, skipping
[warn] mst_pciconf is already loaded, skipping
Create devices
Watt?
 
Ich bekomme ASPM L1/L0s einfach nicht für die Trendnet Nic aktiviert, bzw mir fehlen die Kentnisse dies per Shell zu tun.
Ausgabe von lspci -vvv
Code:
01:00.0 Ethernet controller: Aquantia Corp. AQC100 10G Ethernet MAC controller [AQtion] (rev 02)
        Subsystem: TRENDnet AQtion AQC100 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 41
        IOMMU group: 13
        Region 0: Memory at fac40000 (64-bit, non-prefetchable) [size=64K]
        Region 2: Memory at fac50000 (64-bit, non-prefetchable) [size=4K]
        Region 4: Memory at fa800000 (64-bit, non-prefetchable) [size=4M]
        Expansion ROM at fac00000 [disabled] [size=256K]
        Capabilities: [40] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 75W
                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq+
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr+ NoSnoop+ FLReset-
                        MaxPayload 512 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x4
                        TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+ NROPrPrP- LTR-
                         10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- 10BitTagReq- OBFF Disabled,
                         AtomicOpsCtl: ReqEn-
                LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink+ Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
                         EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [80] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] MSI-X: Enable+ Count=32 Masked-
                Vector table: BAR=2 offset=00000000
                PBA: BAR=2 offset=00000200
        Capabilities: [a0] MSI: Enable- Count=1/32 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [c0] Vital Product Data
                Product Name: Atlantic
                Read-only fields:
                        [PN] Part number: 3290495095
                        [EC] Engineering changes: 0
                        [FG] Unknown: 61 62 63
                        [LC] Unknown: 64 65 66
                        [MN] Manufacture ID: AFDSWEWEBSFD
                        [PG] Unknown: 49 49 49
                        [SN] Serial number: CPL5938TLKMY
                        [V0] Vendor specific: wfewfe
                        [V1] Vendor specific: fwewfe
                        [V2] Vendor specific: SDFWI
                        [RV] Reserved: checksum good, 0 byte(s) reserved
                Read/write fields:
                        [YA] Asset tag: 9495829
                        [V0] Vendor specific: f34ge4rsg
                        [V1] Vendor specific: ger35g5rthghgsa3
                        [Y0] System specific: bsdfvbxcz
                        [Y1] System specific: fwefewwfe
                        [RW] Read-write area: 11 byte(s) free
                End
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
                AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
                        MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
                HeaderLog: 00000000 00000000 00000000 00000000
        Capabilities: [150 v1] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
        Capabilities: [180 v1] Secondary PCI Express
                LnkCtl3: LnkEquIntrruptEn- PerformEqu-
                LaneErrStat: 0
        Kernel driver in use: atlantic
        Kernel modules: atlantic

Ich habe versucht dieses Script auszuführen, bekommen aber einen Fehler in Zeile 61 bei den Klammern.
Geändert habe ich entsprechend nur
ROOT_COMPLEX="00:00.0"
ENDPOINT="01:00.0"

Meine KernelCommandline ist um die ASPM Policy für powersave bereits geändert, ein forced hat ebenfalls nichts gebracht.
root=ZFS=rpool/ROOT/pve-1 boot=zfs initcall_blacklist=acpi_cpufreq_init amd_pstate=active pcie_aspm.policy=powersave iommu=pt

Im Verzeichnis sieht es so aus:
1726582839415.png
 
Irgendwer noch ne Idee dazu?
wieso hast du SR-IOV konfiguriert wenn du die Karte an sich durchreichen möchtest?
Ich habe es schon länger nicht mehr mit der CX-3 gemacht, aber aus der Erinnerung war da nicht viel zu machen, Hautsache die Karte ist in ihrer eigenen IOMMU, aber im zweifel einfach wie bei einer GPU konfigurieren.
Die VFs der CX-3 funktionieren übrigens nur noch in Linux VMs, mit Windows geht nichts mehr, ich bin deswegen auf die CX-5 umgestiegen.
 
wieso hast du SR-IOV konfiguriert wenn du die Karte an sich durchreichen möchtest?
Ich habe es schon länger nicht mehr mit der CX-3 gemacht, aber aus der Erinnerung war da nicht viel zu machen, Hautsache die Karte ist in ihrer eigenen IOMMU, aber im zweifel einfach wie bei einer GPU konfigurieren.
Die VFs der CX-3 funktionieren übrigens nur noch in Linux VMs, mit Windows geht nichts mehr, ich bin deswegen auf die CX-5 umgestiegen.
Weil ich SR-IOV grundsätzlich brauche znd auch mit den VFs in einer früheren Versuchsreihe benutzt habe.
 
wenn du die Karte direkt passtrough setzt, wie willst du dann die VFs von SR-IOV benutzen?
Ich würde die SR-IOV Konfig entfernen, kann gut sein das sich deswegen der VFIO Treiber nicht an die Karte binden lässt.
 
Zuletzt bearbeitet:
Kann mir mal jemand einen Tipp geben wie ich am besten meine SSDs unter Proxmox verwende und was ihr für sinnvolle Größen haltet?

Ich werde voraussichtlich 4 NVMEs zur Verfügung haben und hatte 2 (als Raid 1) für Proxmox eingeplant und 2 (als Raid 1) als Schreibcache für die HDDs. Wäre es sinnvoller auf eines der Raids zu verzichten und stattdessen bei Proxmox Boot-Drive und VM-Drive zu trennen?
 
Kann mir mal jemand einen Tipp geben wie ich am besten meine SSDs unter Proxmox verwende und was ihr für sinnvolle Größen haltet?

2x128GB als Boot-Drive im ZFS Mirror für das OS, OS und Daten immer trennen!
Brauchst du Kapazität oder warum benutzt du HDDs für Proxmox?
Für Kapazität ein RaidZ(2) mit gegebenenfalls L2ARC.
Für VM Storage nimmt man Striped Mirrored VDEVs, aber privat ist das alles relativ zu sehen
 
Brauchst du Kapazität oder warum benutzt du HDDs für Proxmox?
Da habe ich mich doof ausgedrückt. Ich habe nach derzeitiger Planung 12*SATA, die ich möglichst mit HDDs nutzen bzw. frei haben will. Dann bleibt noch ein 16x PCI-E 4x, sodass ich mit einer entsprechenden 4x M2 zu PCI-E Karte maximal 4 NVMEs nutzen kann. Ich dachte ich nutze zwei davon als Raid 1 für Proxmox und habe dann die zwei anderen (als Raid 1) zum Durchreichen an TrueNas/OMV als Schreibcache.
 
warum der Fokus auf Schreibcache, wegen den VMs oder einer Datenbank?
Bei Trunas bzw. ZFS hast du die Möglichkeit die NVMEs als SLOG vdev zu benutzen, was aber nur bei synchronous writes die Latenzen verbessert und bei SMB nichts bringt.
Bei OMV geht das mit LVM, aber das habe ich selbst noch nicht getestet, ich lege meine wichtigen Daten nur noch auf ZFS mit rolling snapshots ab.
Was für ein Netzwerk soll das System bedienen, 1Gb, 10Gb oder 25Gb, wie viele Clients und was sind das für Daten?
Wenn es dir z.B darum geht große ISOs oder MKV Dateien über einen 10Gb Link zu schreiben, dann reichen 7 oder 8 HDDs im RaidZ um den Link auszulasten.
Wenn dir eine einfache GUI für SAMBA ausreicht, kannst du auch SAMBA direkt auf Promox instalieren und über Webmin verwalten, was dir wieder andere Optionen für dein Storage Layout gibt.
Bei mir hat ein Metadata Special Device den Storage Pool merglich aufgewertet und meine VMs liegen auf einem NVME Pool der täglich auf den Storage Pool via ZFS Snapshot repliziert wird.
 
Zuletzt bearbeitet:
zum Durchreichen an TrueNas/OMV als Schreibcache
Solltest du das SLOG/ZIL unter ZFS meinen, das ist kein Schreibcache, bei ZFS ist nur der RAM der Schreibcache
Beitrag automatisch zusammengeführt:

was aber nur bei synchronous writes die Latenzen verbessert und bei SMB nichts bringt.
Sync= always nutzen. Dürfte ja sync bei allem erzwingen.
 
Zuletzt bearbeitet:
Imho bringen SLOG/ZIL und L2ARC nicht besonders viel.
Vor allem bringt dir der L2ARC wenig, wenn die Daten ohnehin am SSD Pool liegen. Ich hab den L2ARC metadata-only "Trick" eingerichtet (um quasi ein ausfallsunkritisches pseudo-special-vdev zu erzeugen) sowie SLOG/ZIL eingerichtet.
Von der Geschwindigkeit her bringts wohl nicht wirklich was, wobei das SLOG/ZIL schon eine gewisse Menge writes abfängt, die so die SSD nicht belasten, ist aber wohl eher akademisch.
Mein Metadata L2ARC bringt wohl real auch eher nichts, ich hab das Gefühl, dass genug Platz dafür im ARC ist und diese vom ARC deshalb nie in den L2ARC wandern.
=> Die Aktion war wohl eher sinnlos, außer, dass ich jetzt ne SSD hab mit 6 Partitionen (3x L2ARC, 3x SLOG), welche ich händisch reingefickelt hab... auch was gelernt.
Zudem muss ein SLOG/ZIL bzw. L2ARC Drive nicht redundant sein.

=> Wie gea schon immer sagt, ein sdev (Metadaten + Minidateien) ist bestimmt die bessere Wahl. Das muss dann aber ausfallsicher sein.

TrueNAS ist kein Unraid-Ersatz und für so Heim-Zwecke vielelicht nicht immer die beste Wahl, ist halt eine starke saubere Software, hat aber ihre Einschränkungen für Privat - im Sinn von "Features", die den Privato eher stören als nützen. Eben die Sache dass es keinen "(SSD) Cache" gibt, das die Platten nie richtig "schlafen gehen" und so.
 
Versuche es Mal mit ASPM Tools wie dem hier:


Es gibt sicherlich bessere, aber das was ich benutze finde ich gerade nicht.
Das habe ich bereits versucht, die Ausführscheitert mit
root@prox1:~/trendnet# sh ./enable_aspm.sh
./enable_aspm.sh: 61: Syntax error: "(" unexpected
Nur verstehe ich zu wenig von dem Code, warum die Klammer nach dem Funktionsnamen ein Problem ist.

C:
function aspm_setting_to_string()
{
    case $1 in
    0)
        echo -e "\t${BLUE}L0 only${NORMAL}, ${RED}ASPM disabled${NORMAL}"
        ;;
    1)
        ;;
    2)
        echo -e "\t${GREEN}L1 only${NORMAL}"
        ;;
    3)
        echo -e "\t${GREEN}L1 and L0s${NORMAL}"
        ;;
    *)
        echo -e "\t${RED}Invalid${NORMAL}"
        ;;
    esac
}
 
@Kavendish ich habe nochmal geschaut, ich nutze das hier:


und mit dem Befehl den ASPM-Status prüfen:

Code:
lspci -vv | awk '/ASPM/{print $0}' RS= | grep --color -P '(^[a-z0-9:.]+|ASPM )'

du musst das enable-aspm.sh script so ausführen:

Code:
./enable-aspm.sh

ohne das "sh" am Anfang. Das führt zu deinem genannten Fehler.
 
@MisterY Ha, das falsche sh davor war es!
Ist nun aktiv:
Code:
01:00.0 Ethernet controller: Aquantia Corp. AQC100 10G Ethernet MAC controller [AQtion] (rev 02)
                LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited
                LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes, Disabled- CommClk+
 
super :bigok:

nun nicht vergessen das per crontab bei jedem boot auführen zu lassen.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh