proxmox

proxmox - playing with setup and install (updated)

15:25

one of the first things i did when setting up my server, was take it out of the box and check everything out. i've never had a server before, been mostly building hi-end pcs for years and playing with all os's. but i started looking into homelabbing and ordered what i thought i needed. i ordered semi-custom and it arrived packaged and ready to go. i probably could have kept the ram, the cpus, the psus, and the raid card (mini-monolithic), but some initial reading convinced me i needed more. here's what i ended up with (updated):

 Dell 730xd chassis with 12x3.5 HDD up front and the rear 2x2.5 HDD
  - rear slots, 800gb SAS 12gbs HDD's in raid 0 with zfs for OS, EFI etc
  - up front, 6x19TB SAS 10gbs HDDs in raidz1-0 for storage
  - up front, 2x2TB SAS 7gbs HDD in Raidz1-0 for local backup
  - ASUS Hyper M.2 X16 Gen 4 PCIE 4.0/3.0 x4 NVME RAID Expansion Card mgx
  - Dell HBA330 mini monolithic (=9300-8i) w/ P16 IT mode
  - 2x SR2JW INTEL XEON E5-2698V4 2.20GHZ 20-CORE 50MB 135W CPU PROCESSOR
  - 2x 750W PSUs
  - 512GB (8x 64gb ) DDR4 2400T 2400Mhz ECC REG RAM
  - NVIDIA Quadro P2000 5GB GDDR5 Quad PCIe graphics card
  - 4 port NIC 2x10gb 2x1GB (kept)

knowing what my average use is rn, i'd say i overkilled the ram by about 2x...ill move 256GB over to the next build, and I could have kept the processors, but it never hurts and im not sure how many lxc/vms i'll end up with.

one of the most fun parts of the initial boot, which took me about 1 month to prep with given all the upgrades above, was the lack of screen/mouse/keyboard and monitor...i patched this together and after being very frustrated bought an old used console for 50 bucks - shipped! this made startup easier. the second most interesting thing was the fans absolutely screaming at me. apparently after adding non-compatible pcie devices the bios defaults to 80% fan. this is fixable with a script, but made initial boot and install super annoying!

to be continued...

so the first thing to create was a bash script that runs every minute monitoring the ipmi values for cpu. enable the ipmi in your bios so you can talk to the interface. then create a simple bash script. i websearched the dell 730-xd fan problem, found a base of code to start with and resolved the code to the below:

#!/bin/bash

# define some temp for server
low="45"
low2="50"
mid1="58"
mid2="66"
high="74"
hot="89"


maxtemp=0

# Read the max CPU temp from sensors (ipmitools)
# On Dell R730XD this can figure out the temp of CPU 1 and 2, then use the max value
tempCpu1=$(ipmitool  sdr entity 3.1|grep Temp|sed 's/Temp             | 0Eh | ok  |  3.1 | //' | sed 's/ degrees C//')
tempCpu2=$(ipmitool  sdr entity 3.2|grep Temp|sed 's/Temp             | 0Fh | ok  |  3.2 | //' | sed 's/ degrees C//')


if [ "$tempCpu1" -gt "$tempCpu2" ]; then
    maxtemp=$tempCpu1
else
    maxtemp=$tempCpu2
fi



# Define CPU limit


if [ $maxtemp -le $low ] ; then

        ipmitool  raw 0x30 0x30 0x01 0x00 >> /dev/null
        ipmitool  raw 0x30 0x30 0x02 0xff 10 >> /dev/null

elif [ $maxtemp -le $low2 ] ; then

        ipmitool  raw 0x30 0x30 0x01 0x00 >> /dev/null
        ipmitool  raw 0x30 0x30 0x02 0xff 15 >> /dev/null

elif [ $maxtemp -le $mid1 ] ; then

        ipmitool  raw 0x30 0x30 0x01 0x00 >> /dev/null
        ipmitool  raw 0x30 0x30 0x02 0xff 20 >> /dev/null

elif [ $maxtemp -le $mid2 ] ; then

        ipmitool  raw 0x30 0x30 0x01 0x00 >> /dev/null
        ipmitool  raw 0x30 0x30 0x02 0xff 25 >> /dev/null

elif [ $maxtemp -le $high ] ; then

        ipmitool  raw 0x30 0x30 0x01 0x00 >> /dev/null
        ipmitool  raw 0x30 0x30 0x02 0xff 30 >> /dev/null

elif [ $maxtemp -le $hot ] ; then

        ipmitool  raw 0x30 0x30 0x01 0x00 >> /dev/null
        ipmitool  raw 0x30 0x30 0x02 0xff 35 >> /dev/null

# If temp higher than hot, give fan control back to BIOS
else
        ipmitool  raw 0x30 0x30 0x01 0x01 >> /dev/null

fi

chmod this to an executable and start a new crontab crontab -e and add a new line as follows:

*/1 * * * * /bin/bash /home/scripts/fan_speed.sh > /dev/null 2>&1

this lets it run every minute. with this initial setup done, its time to get to work. i made sure all server updates were applied, updated the os and started to monkey around with installing vms, lxcs and whatnot