diff options
Diffstat (limited to 'blog/2022-11-27-server-build.org')
-rw-r--r-- | blog/2022-11-27-server-build.org | 241 |
1 files changed, 127 insertions, 114 deletions
diff --git a/blog/2022-11-27-server-build.org b/blog/2022-11-27-server-build.org index cbc4855..dd3a0b2 100644 --- a/blog/2022-11-27-server-build.org +++ b/blog/2022-11-27-server-build.org @@ -1,113 +1,124 @@ -+++ -date = 2022-11-27 -title = "Building a Custom Rack-Mount Server" -description = "I finally built my own custom rack-mounted server after years of indecision." -+++ - -## The Dilemma - -For years, I have been using desktops and a Raspberry Pi as the backbone of my -homelab. I have always wanted to move toward a single dedicated server that -could handle all of my tasks, but was often put off by the complexity of the -choices (and financial roadblocks at some times). - -However, after purchasing a small server rack this past year, I have been -researching to see what kind of rack-mounted server I could buy. I initially -bought a Dell R720XD loaded up with everything I could ever want in a server - -but I did not care for it. It was far too loud, and the age of the CPU/RAM was -something I wanted to improve upon. - -After returning the R720XD, I decided that I wanted to build my own server with -modern, consumer-grade PC components. This time, I am very happy with the -results of my server. - -## Components - +#+title: Building a Custom Rack-Mount Server +#+date: 2022-11-27 + +** The Dilemma +:PROPERTIES: +:CUSTOM_ID: the-dilemma +:END: +For years, I have been using desktops and a Raspberry Pi as the backbone +of my homelab. I have always wanted to move toward a single dedicated +server that could handle all of my tasks, but was often put off by the +complexity of the choices (and financial roadblocks at some times). + +However, after purchasing a small server rack this past year, I have +been researching to see what kind of rack-mounted server I could buy. I +initially bought a Dell R720XD loaded up with everything I could ever +want in a server - but I did not care for it. It was far too loud, and +the age of the CPU/RAM was something I wanted to improve upon. + +After returning the R720XD, I decided that I wanted to build my own +server with modern, consumer-grade PC components. This time, I am very +happy with the results of my server. + +** Components +:PROPERTIES: +:CUSTOM_ID: components +:END: I'll start by listing all the components I used for this server build: -- **Case**: [Rosewill RSV-R4100U 4U Server Chassis Rackmount -Case](https://www.rosewill.com/rosewill-rsv-r4100u-black/p/9SIA072GJ92825) -- **Motherboard**: [NZXT B550](https://nzxt.com/product/n7-b550) -- **CPU**: AMD Ryzen 7 5700G with Radeon Graphics -- **GPU**: N/A - I specifically chose one of the few AMD CPUs that support -onboard graphics. -- **RAM**: 64GB RAM (2x32GB) _Max of 128GB RAM on this motherboard_ -- **Boot Drive**: Western Digital 500GB M.2 NVME SSD -- **HDD Bay**: - - 10TB WD White _(shucked, moved from previous server)_ - - 8TB WD White _(shucked, moved from previous server)_ - - 2 x 8TB WD Red Plus _(Black Friday lined up perfectly with this build, so I - grabbed two of these)_ -- **PSU**: Corsair RM850 PSU -- **Extras**: +- *Case*: + [[https://www.rosewill.com/rosewill-rsv-r4100u-black/p/9SIA072GJ92825][Rosewill + RSV-R4100U 4U Server Chassis Rackmount Case]] +- *Motherboard*: [[https://nzxt.com/product/n7-b550][NZXT B550]] +- *CPU*: AMD Ryzen 7 5700G with Radeon Graphics +- *GPU*: N/A - I specifically chose one of the few AMD CPUs that support + onboard graphics. +- *RAM*: 64GB RAM (2x32GB) /Max of 128GB RAM on this motherboard/ +- *Boot Drive*: Western Digital 500GB M.2 NVME SSD +- *HDD Bay*: + - 10TB WD White /(shucked, moved from previous server)/ + - 8TB WD White /(shucked, moved from previous server)/ + - 2 x 8TB WD Red Plus /(Black Friday lined up perfectly with this + build, so I grabbed two of these)/ +- *PSU*: Corsair RM850 PSU +- *Extras*: - Corsair TM3Q Thermal Paste - - Noctua 120mm fan _(replacement for front case fan)_ - - 2 x Noctua 80mm fans _(replacement for rear case fans)_ + - Noctua 120mm fan /(replacement for front case fan)/ + - 2 x Noctua 80mm fans /(replacement for rear case fans)/ - CableMatters 6Gbps SATA Cables -## Building the Server - -This took quite a while for me to build (in my opinion of time), totaling -around 3 hours from start to finish. The case has some peculiar construction, so -you have to completely remove the ODD & HDD cages to install the motherboard and -other components first. - -Now, I've never built a computer of any kind before, so I was quite -nervous. Personally, the only challenging part was getting the CPU cooler to -screw into the motherboard without sliding the thermal paste around too much -underneath. I'm still not entirely sure if I did a great job of it, but -nothing's broken yet. - -The main components were all fine and simple. -However, installing the hard drives is slightly tedious as I need to power -off the server and completely unscrew the HDD cage to install or remove any -drives. -Additionally, the drives are screwed directly into the metal cage with small -screws, which are quite a bit different from the HDD trays I'm used to in -other machines. - -Seeing that the cases with hot-swap bays were 3-4x the price, I'm okay dealing -with the tedium of removing the cage to install new drives. - -## Software - -I'm not going to dive into the software as I have done so in other recent posts. -However, I wanted to note that I am using Alpine Linux on this server and -hosting most services inside Docker. No virtual machines (VMs) and very few -bare-metal services. - -## The Results - -How did my build turn out? Well, after migrating my other servers and their -services over, I found that my server is blazing fast. The heaviest of my -applications, Plex, is handled with ease. Even 4k streaming seems to be -effortless. - -I am very happy with the results and will likely continue to improve on this -server as the years go by rather than buying another used server online. - -### Mistakes I Made - -This post wouldn't be complete unless I wrote about the mistakes I made while -building. The only real mistake I made beyond a "whoops I dropped a screw" -related to airflow and fan direction. - -While installing the two new hard drives that showed up on 2022-11-30 and -getting ready to install the case in my rack, I noticed that the hard drive -temperatures were quite high. - -I used the `smartctl` command for each of my drives (`/dev/sda` through -`/dev/sdd`): - -```sh +** Building the Server +:PROPERTIES: +:CUSTOM_ID: building-the-server +:END: +This took quite a while for me to build (in my opinion of time), +totaling around 3 hours from start to finish. The case has some peculiar +construction, so you have to completely remove the ODD & HDD cages to +install the motherboard and other components first. + +Now, I've never built a computer of any kind before, so I was quite +nervous. Personally, the only challenging part was getting the CPU +cooler to screw into the motherboard without sliding the thermal paste +around too much underneath. I'm still not entirely sure if I did a great +job of it, but nothing's broken yet. + +The main components were all fine and simple. However, installing the +hard drives is slightly tedious as I need to power off the server and +completely unscrew the HDD cage to install or remove any drives. +Additionally, the drives are screwed directly into the metal cage with +small screws, which are quite a bit different from the HDD trays I'm +used to in other machines. + +Seeing that the cases with hot-swap bays were 3-4x the price, I'm okay +dealing with the tedium of removing the cage to install new drives. + +** Software +:PROPERTIES: +:CUSTOM_ID: software +:END: +I'm not going to dive into the software as I have done so in other +recent posts. However, I wanted to note that I am using Alpine Linux on +this server and hosting most services inside Docker. No virtual machines +(VMs) and very few bare-metal services. + +** The Results +:PROPERTIES: +:CUSTOM_ID: the-results +:END: +How did my build turn out? Well, after migrating my other servers and +their services over, I found that my server is blazing fast. The +heaviest of my applications, Plex, is handled with ease. Even 4k +streaming seems to be effortless. + +I am very happy with the results and will likely continue to improve on +this server as the years go by rather than buying another used server +online. + +*** Mistakes I Made +:PROPERTIES: +:CUSTOM_ID: mistakes-i-made +:END: +This post wouldn't be complete unless I wrote about the mistakes I made +while building. The only real mistake I made beyond a "whoops I dropped +a screw" related to airflow and fan direction. + +While installing the two new hard drives that showed up on 2022-11-30 +and getting ready to install the case in my rack, I noticed that the +hard drive temperatures were quite high. + +I used the =smartctl= command for each of my drives (=/dev/sda= through +=/dev/sdd=): + +#+begin_src sh doas smartctl -a /dev/sda | grep Temperature_Celsius -``` +#+end_src -The results were unusual - all four drives were idling at ~44-46 degrees -Celsius. The only drive that was cooler was my 10TB drive, which was at 38 -degrees Celsius. I noted that this 10TB drive was also closest to the case fan. +The results were unusual - all four drives were idling at ~44-46 degrees +Celsius. The only drive that was cooler was my 10TB drive, which was at +38 degrees Celsius. I noted that this 10TB drive was also closest to the +case fan. -```sh +#+begin_src sh ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE # /dev/sda 194 Temperature_Celsius 0x0002 147 147 000 Old_age Always - 44 (Min/Max 22/46) @@ -117,18 +128,19 @@ ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_ 194 Temperature_Celsius 0x0002 144 144 000 Old_age Always - 45 (Min/Max 19/61) # /dev/sdd 194 Temperature_Celsius 0x0002 171 171 000 Old_age Always - 38 (Min/Max 14/56) -``` +#+end_src -After looking to see if I could fit more fans into the case, I noticed that the -120mm fan used for intake from the front of the case was actually pushing air -out of the case by mistake. This fan sits right in front of the hard drive bay. +After looking to see if I could fit more fans into the case, I noticed +that the 120mm fan used for intake from the front of the case was +actually pushing air out of the case by mistake. This fan sits right in +front of the hard drive bay. -Once I flipped the fan around to act as an intake fan, the temperatures dropped -immediately! They are now idling at ~31-33 degrees Celsius. A single fan -spinning the wrong way caused my drives to idle 10-15 degrees higher than they -should have. +Once I flipped the fan around to act as an intake fan, the temperatures +dropped immediately! They are now idling at ~31-33 degrees Celsius. A +single fan spinning the wrong way caused my drives to idle 10-15 degrees +higher than they should have. -```sh +#+begin_src sh ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE # /dev/sda 194 Temperature_Celsius 0x0002 209 209 000 Old_age Always - 31 (Min/Max 14/56) @@ -138,7 +150,8 @@ ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_ 194 Temperature_Celsius 0x0002 203 203 000 Old_age Always - 32 (Min/Max 21/48) # /dev/sdd 194 Temperature_Celsius 0x0002 196 196 000 Old_age Always - 33 (Min/Max 22/46) -``` +#+end_src -This was a silly error to make, but I'm glad I found it today before I screwed -the case into the rack and made things a lot more tedious to fix. +This was a silly error to make, but I'm glad I found it today before I +screwed the case into the rack and made things a lot more tedious to +fix. |