Thursday, April 06, 2023

Workstations for Proxmox

After migrating my main VMs from the Dell Poweredge R720 to a HP Proliant ML110 Gen9, the next step is to migrate the VMs from the Dell Poweredge R430. While I love the rack servers because they can be fitted with 2 CPUs and tons of RAM, with support for hot-plug drives, they really consume a ton of electricity. Which was the reason for wanting to decommission them. Now that step one is done, next is to find a suitable host for the non-critical VMs on the R430.

The R430 uses Xeon E5-2600v3 or v4 CPUs and DDR4 ECC RAM, so I was searching to see if there is any alternatives where I can reuse the parts. One alternative was to get another ML110 Gen9, but it only has one x16 PCIe slot, which kind of limits the number of concurrent VMs that I can run. I also thought about the ML350 Gen9, but it is a huge monster and I don't think I will need something so big.

Searching around, I found that workstations that use the Xeon E5-1600v3 or v4 series of CPUs can usually use the E5-2600v3 or v4 series too, so I started looking for some possible candidates.
 
And found these two workstations.

On the left is a Lenovo ThinkStation P500. It came with a single Xeon E5-1620v3 CPU, 32GB of RAM, 500GB harddisk, and a Nvidia Quadro K2200 graphics card.

On the right is a Fujitsu Celsius M740 with Xeon E5-1620v4 CPU, 32GB RAM, 512GB SSD, and a Nvidia Quadro M2000 graphics card (this is a second-generation Maxwell card).

Although the K2200 starts with K, it is actually a first-generation Maxwell card. But I have more than enough GPUs (GTX 1050Ti, Quadro P600, T400, T600, T1000) so this is most likely going to end up functioning as paperweight. The M2000 is likely to share the same fate.
 
The best part is, when powered down, with wake-on-LAN enabled and Intel AMT enabled, the workstations consume only about 1W of electricity. This means they can be turned off most of the time at minimum consumption, and remotely powered up using either wake-on-LAN or via Intel AMT. They also come with many PCIe slots, and at least two of them at x16 slots. This means they can easily be fitted with two GPUs that draw up to 75W. They even have power connectors for additional power to GPUs if needed. You can also set the PCIe slot of the GPU to use for boot in the BIOS. This means I can actually fit a simple GPU that draws little power in one of the x4 or x8 slots to use as video output for the host and leave the x16 slots for GPUs that will be passed through to the VMs.

In the end, I decided on this: AMD FirePro W2100. It is rated to draw 26W, has 2GB of DDR3 VRAM, and is natively supported by Linux via radeon and amdgpu drivers. This means it will just work in Linux, without having to install any additional drivers post-installation. I even placed it in a x4 PCIe slot and it worked! But then again, I am just using it to see output from the host, so it won't be doing any heavy lifting (not that it can, even if I wanted it to).

I promptly installed Proxmox on the Celsius M740, followed by Xfce desktop as per the steps here. Then, using the Proxmox Backup Server that I recently set up, I restored the VMs from backed up from the R720 and R430 to the M740. I then started each VM to check that they function.

The M740 came with a Xeon E5-1620v4 CPU, which was a bit underpowered, so I replaced it with a Xeon E5-2690v4 CPU (14 cores, 28 threads, base clock 2.6 GHz, boost to 3.5 GHz, all-core turbo up to 3.2 GHz, TDP of 135W). Plus gave it a lot of RAM, reusing what I had in the R430. The Nvidia T1000 with 8GB of VRAM is also in it now. It is not going to be stellar in single-threaded uses, but with 28 threads, applications that can make use of multi-threading will really benefit. If I am only running one VM, I can even use 26 threads.

I was going to do the same with the ThinkStation P500, but found out (the hard way) that it can only use E5-1600v3 or E5-2600v3 CPUs. No support for E5-1600v4 or E5-2600v4 CPUs... even after updating the BIOS. I guess Lenovo is saying, if you want to use Broadwell Xeon v4 CPUs, pay for the Lenovo ThinkStation P510 (which has the exact look and form factor). So, a Xeon E5-2698v3 CPU (16 cores, 32 threads, base clock 2.3 GHz, boost to 3.6 GHz, all-core turbo up to 2.8 GHz, TDP of 135W) is on its way from AliExpress.

Here are the "paperweights"...
Nvidia Quadro K2200 (Maxwell Gen 1 with 4GB VRAM)

Nvidia Quadro M2000 (Maxwell Gen 2 with 4GB VRAM)

Oh, even with 20+ threads, trying to run a large-language model on a CPU is very slow... The Nvidia T1000 has 8GB of VRAM and can probably squeeze in up to a 13B model that has been quantized, so maybe I will give that a try some day.

Update 24 July 2023: I found out, the hard way, that the Celsius M740's power supply's 8-pin connector for a GPU is... not compatible with the usual 8-pin cables that you usually find. The pinout for a 8-pin connector for GPU's usually have 3 pins for 12V, 3 pins for ground, and 2 pins for sense (which should be ground). The power supply's connector, however, has 4 pins for 12V and 4 pins for ground, which means it will not be able to power a GPU requiring external power if you just use a usual cable. You need to find a cable that connects only to 3 of the 12V pins on the PSU while terminating in the proper pinout configuration on the GPU's end. Or buy it from Fujitsu. In the end, I found a cable that had a 6-pin connector on one end and a 8-pin connector on the other end (with the proper pinout configuration) and was able to use it with my new RTX 4060.

No comments: