I am a self taught systems/test engineer and software architect. I have been retired for 4 years. I have been involved with the latest and greatest since 1975 (high school gifted program, and dad an EE). Just because I am retired, I don't plan on slowing down. I have big projects in the pipeline, including designing a programming language for test and measurement that is based on information and category theory. My old Ubuntu is garbage and broken. I was going to install Debian, but it seems that installing Proxmox on my workstation and going virtual with a VLAN would click all the boxes, e.g. a Virtual Spectrum Analyzer and Signal Generator in LXCs 
I have a plan worked up, but after 45 years of engineering, I have become a big fan of "design review". I would be thrilled if someone could look it over and tell me what I have messed up. I find that the Proxmox documentation is not very useful. In the spirit of keeping up with technology, I used Grok AI to generate a procedure for me. I have been verifying all of the steps. Some things I can't find, e.g "-cpu host,+rt". I understand what this does, it is just that I find no reference to the +rt flag anywhere to verify.
I am building on a Dell Precision 7820 with a Intel Xeon Silver 4215R 3.2 GHz cpu. I have 64GB RAM, 2 512GB NVMe SSDs for storage and a 256GB SATA for my Ubuntu boot, plus NVIDIA graphics. I am adding a 2TB NVMe. I have normal home Xfinity internet, 10.0.0.1.
My plan is to leave the SATA drive alone and to make my first 512 SSD the Proxmox boot drive. with the 2TB and the second 512GB SSDs used in a RAID1 configuration. This will be using ZFS. I love ZFS, I almost went for Open Indiana/illumos as my OS. Next I want to create a "Lab" VPN (vmbr1)
My planed initial layout:
VM0: "Internet", Debian on vmbr0 for Email and Web browsing.
VM1: "Dev", Debian on vmbr1 (lab) for software development. I use C, C++, Python, Java, Go Lang, Mono, and soon Julia.
VM2: "Art", Debian on vmbr1 (lab) for art (GIMP, Krita, Inkscape), document authoring (LibraOffice, Scribus), CAD (FreeCAD?), and later animation.
VM3: "Music", Debian, with low-latency kernel, on vmbr1 (lab) for MIDI and my Roland drum kit and keyboard.
LXC0: "Firewall", Debian on vmbr0.
LXC1: "GIT-DB", Debian on vmbr1 (lab) with a GIT server and SQlite, later a graph DB and maybe Artifactory.
LXC2: "Media", Debian on vmbr0 as my home media server.
The internet "world mind", according to Grok AI suggests the following, BTW, I am very comfortable with the command line:
1. Plug in 2TB NVMe and boot into BIOS.
Advanced -> NVMe Configuration : Enable both slots
Boot -> CSM : Disabled
And it said nothing about setting the first NVMe to a boot drive, so I am a bit confused.
2. Boot Proxmox USB (Grok said nothing about using F12 to change boot drive to USB)
Target: /dev/nvme0n1
Filesystem: ext4
Network: Static IP 10.0.0.1/24
Password: My WIFI Network IP
3. Post installation in Proxmox shell:
>apt update && apt full-upgrade -y
4. Create ZFS mirror and Datasets:
>zpool create -O compression=lz4 \
-O acltype=posixacl \
-O xattr=sa \
fastpool mirror /dev/nvme1n1 /dev/nvme2n1
>zpool status # to verify
>zfs create -o compression=lz4 fastpool/dev
>zfs create -o compression=lz4 fastpool/art
>zfs create -o compression=lz4 fastpool/music
>zfs create -o compression=lz4 fastpool/gitdb
>zfs create -o compression=zstd-3 fastpool/media
>zfs create -o compression=off fastpool/vms # QCOW2
>zfs create -o compression=lz4 fastpool/backup
5. Lab VPN (10.0.2.0/24) This is were I am a bit confused because the documentation is not clear at all. The documentation is nothing like the way that I document a GUI or Web Service at all. This is what Grok said. It is wrong.
Using the Proxmox Web: Datacenter -> Network -> Create Linux Bridge
Name: vmbr1
IP: 10.0.2.1/24
VLAN aware: No
Bridge ports: none
Autostart: Yes
Because the GUI path from Grok is wrong, I did a search online. I got NodeName -> Create -> Linux Bridge. What is NodeName? I don't like needing to run to YouTube videos or Stackoverflow to learn stuff that the documentation should provide. I don't like not
being able to verify this in the documentation.
6. Create the VMs and LXCs:
VM0 (Web + Mail)
qm create 100 --name internet --cores 4 --memory 8192 \
--net0 virtio,bridge=vmbr0 \
--cdrom local:iso/debian-12.7.0-amd64-netinst.iso # The docs don't explain this at all. Btw, I have Debian 13.2
qm set 100 --scsi0 fastpool/vms:100
VM1 (Software Development)
qm create 101 --name dev --cores 24 --memory 98304 \
--net0 virtio,bridge=vmbr1 \
--scsi0 fastpool/dev:250
qm set 101 --vga qx1 --args "-cpu host" # Finding out what this meant was a PITA.
VM2 (Art)
qm create 102 --name art --cores 8 --memory 32768 \
--net0 virtio,bridge=vmbr1 \
--scsi0 fastpool/art:400
qm set 102 --vga qx1 # No --args "-cpu host" ???
VM3 (Music) RT
qm create 103 --name music --cores 8 --memory 32768 \
--net0 virtio,bridge=vmbr1 \
--scsi0 fastpool/music:150 \
--args "-cpu host,+rt" # The documentation references the nvm(1) manpage with no link to it! That is less then helpful.
qm set 103 --usb0 host=1234.5678 # Roland V-Drums, but 1234.5678 ???
LCX0 (Firewall)
pct create 200 local:vztmpl/debian-12-standard_... \
--cores=1 --memory 1024 --rootfs fastpool/firewall:20 \ # Grok didn't tell me to make a fastpool/firewall dataset
--net0 name=eth0,bridge=vmbr0,ip=dhcp
LCX1 (GIT-DB) Lab VPN
pct create 201 local:vztmpl/debian-12-standard_... \
--cores=2 --memory 4096 --rootfs fastpool/gitdb:200 \
--net0 name=eth0,bridge=vmbr1,ip=10.0.2.10/24
LCX2 (Media)
pct create 202 local:vztmpl/debian-12-standard_... \
--cores=2 --memory 4096 --rootfs fastpool/media:1000 \
--net0 name=eth0,bridge=vmbr0
7. Install Debian in VMs:
For each VM: Start -> Console -> Install
Root password: My Proxmox root pasword ?
Partition: Use entire disk
Packages; SSH server, standard utilities
8. Post-Install for each VM:
apt update && apt install -y \
build-essentials git curl zsh tmux neovim python3-pip openjdk-17-jdk julia i3 wmctrl xdotool htop nvtop # VM1: Dev
gimp scribus krita libraoffice inkscape # VM2: Art
ardour hydrogen qjackctl linux-lowlatency # VM3: Music
gitea sqlite3 # LXC1: GIT-DB
9: Lab VPN Firewall:
In firewall LXC (OPNsense or iptables) # Groks instructions aren't very helpful here. Do I need to install OPNsense? Is this in a gui?
Allow:
vmbr0 -> Internet
vmbr1 -> 10.0.2.0/24
Block:
10.0.2.0/24 -> Internet # I am unsure about this
I want to be sure of everything before I start. I need to understand everything that I am doing. I have only one workstation and I don't want to screw it up with a failed Proxmox installation attempt. This needs to work first time. I could really use some advice on this.
thx, Bob
I have a plan worked up, but after 45 years of engineering, I have become a big fan of "design review". I would be thrilled if someone could look it over and tell me what I have messed up. I find that the Proxmox documentation is not very useful. In the spirit of keeping up with technology, I used Grok AI to generate a procedure for me. I have been verifying all of the steps. Some things I can't find, e.g "-cpu host,+rt". I understand what this does, it is just that I find no reference to the +rt flag anywhere to verify.
I am building on a Dell Precision 7820 with a Intel Xeon Silver 4215R 3.2 GHz cpu. I have 64GB RAM, 2 512GB NVMe SSDs for storage and a 256GB SATA for my Ubuntu boot, plus NVIDIA graphics. I am adding a 2TB NVMe. I have normal home Xfinity internet, 10.0.0.1.
My plan is to leave the SATA drive alone and to make my first 512 SSD the Proxmox boot drive. with the 2TB and the second 512GB SSDs used in a RAID1 configuration. This will be using ZFS. I love ZFS, I almost went for Open Indiana/illumos as my OS. Next I want to create a "Lab" VPN (vmbr1)
My planed initial layout:
VM0: "Internet", Debian on vmbr0 for Email and Web browsing.
VM1: "Dev", Debian on vmbr1 (lab) for software development. I use C, C++, Python, Java, Go Lang, Mono, and soon Julia.
VM2: "Art", Debian on vmbr1 (lab) for art (GIMP, Krita, Inkscape), document authoring (LibraOffice, Scribus), CAD (FreeCAD?), and later animation.
VM3: "Music", Debian, with low-latency kernel, on vmbr1 (lab) for MIDI and my Roland drum kit and keyboard.
LXC0: "Firewall", Debian on vmbr0.
LXC1: "GIT-DB", Debian on vmbr1 (lab) with a GIT server and SQlite, later a graph DB and maybe Artifactory.
LXC2: "Media", Debian on vmbr0 as my home media server.
The internet "world mind", according to Grok AI suggests the following, BTW, I am very comfortable with the command line:
1. Plug in 2TB NVMe and boot into BIOS.
Advanced -> NVMe Configuration : Enable both slots
Boot -> CSM : Disabled
And it said nothing about setting the first NVMe to a boot drive, so I am a bit confused.
2. Boot Proxmox USB (Grok said nothing about using F12 to change boot drive to USB)
Target: /dev/nvme0n1
Filesystem: ext4
Network: Static IP 10.0.0.1/24
Password: My WIFI Network IP
3. Post installation in Proxmox shell:
>apt update && apt full-upgrade -y
4. Create ZFS mirror and Datasets:
>zpool create -O compression=lz4 \
-O acltype=posixacl \
-O xattr=sa \
fastpool mirror /dev/nvme1n1 /dev/nvme2n1
>zpool status # to verify
>zfs create -o compression=lz4 fastpool/dev
>zfs create -o compression=lz4 fastpool/art
>zfs create -o compression=lz4 fastpool/music
>zfs create -o compression=lz4 fastpool/gitdb
>zfs create -o compression=zstd-3 fastpool/media
>zfs create -o compression=off fastpool/vms # QCOW2
>zfs create -o compression=lz4 fastpool/backup
5. Lab VPN (10.0.2.0/24) This is were I am a bit confused because the documentation is not clear at all. The documentation is nothing like the way that I document a GUI or Web Service at all. This is what Grok said. It is wrong.
Using the Proxmox Web: Datacenter -> Network -> Create Linux Bridge
Name: vmbr1
IP: 10.0.2.1/24
VLAN aware: No
Bridge ports: none
Autostart: Yes
Because the GUI path from Grok is wrong, I did a search online. I got NodeName -> Create -> Linux Bridge. What is NodeName? I don't like needing to run to YouTube videos or Stackoverflow to learn stuff that the documentation should provide. I don't like not
being able to verify this in the documentation.
6. Create the VMs and LXCs:
VM0 (Web + Mail)
qm create 100 --name internet --cores 4 --memory 8192 \
--net0 virtio,bridge=vmbr0 \
--cdrom local:iso/debian-12.7.0-amd64-netinst.iso # The docs don't explain this at all. Btw, I have Debian 13.2
qm set 100 --scsi0 fastpool/vms:100
VM1 (Software Development)
qm create 101 --name dev --cores 24 --memory 98304 \
--net0 virtio,bridge=vmbr1 \
--scsi0 fastpool/dev:250
qm set 101 --vga qx1 --args "-cpu host" # Finding out what this meant was a PITA.
VM2 (Art)
qm create 102 --name art --cores 8 --memory 32768 \
--net0 virtio,bridge=vmbr1 \
--scsi0 fastpool/art:400
qm set 102 --vga qx1 # No --args "-cpu host" ???
VM3 (Music) RT
qm create 103 --name music --cores 8 --memory 32768 \
--net0 virtio,bridge=vmbr1 \
--scsi0 fastpool/music:150 \
--args "-cpu host,+rt" # The documentation references the nvm(1) manpage with no link to it! That is less then helpful.
qm set 103 --usb0 host=1234.5678 # Roland V-Drums, but 1234.5678 ???
LCX0 (Firewall)
pct create 200 local:vztmpl/debian-12-standard_... \
--cores=1 --memory 1024 --rootfs fastpool/firewall:20 \ # Grok didn't tell me to make a fastpool/firewall dataset
--net0 name=eth0,bridge=vmbr0,ip=dhcp
LCX1 (GIT-DB) Lab VPN
pct create 201 local:vztmpl/debian-12-standard_... \
--cores=2 --memory 4096 --rootfs fastpool/gitdb:200 \
--net0 name=eth0,bridge=vmbr1,ip=10.0.2.10/24
LCX2 (Media)
pct create 202 local:vztmpl/debian-12-standard_... \
--cores=2 --memory 4096 --rootfs fastpool/media:1000 \
--net0 name=eth0,bridge=vmbr0
7. Install Debian in VMs:
For each VM: Start -> Console -> Install
Root password: My Proxmox root pasword ?
Partition: Use entire disk
Packages; SSH server, standard utilities
8. Post-Install for each VM:
apt update && apt install -y \
build-essentials git curl zsh tmux neovim python3-pip openjdk-17-jdk julia i3 wmctrl xdotool htop nvtop # VM1: Dev
gimp scribus krita libraoffice inkscape # VM2: Art
ardour hydrogen qjackctl linux-lowlatency # VM3: Music
gitea sqlite3 # LXC1: GIT-DB
9: Lab VPN Firewall:
In firewall LXC (OPNsense or iptables) # Groks instructions aren't very helpful here. Do I need to install OPNsense? Is this in a gui?
Allow:
vmbr0 -> Internet
vmbr1 -> 10.0.2.0/24
Block:
10.0.2.0/24 -> Internet # I am unsure about this
I want to be sure of everything before I start. I need to understand everything that I am doing. I have only one workstation and I don't want to screw it up with a failed Proxmox installation attempt. This needs to work first time. I could really use some advice on this.
thx, Bob
Last edited: