HP MicroServer Gen 8 - NVMe, Upgrading the SATA SSD, Installing Oracle Linux 8

The centerpiece of my home LAN is an HPE ProLiant MicroServer Gen8, that replaced an old N36L back in 2014. (The N36L was a great starter server, but the 2TB limit on drives and the lack of support for jumbo frames were ultimately pretty limiting.) According to the specs, it has:
  • A Celeron G1610T (2.3 GHz/2-core/2MB/35 W) processor
  • 2GB RAM (HPE Smart Memory, DDR3 Unbuffered, PC3L-12800E Dual Data Rate (DDR3) UDIMM)
  • 3x 3GB/s SATA ports, two connected to non-hot-swap externally accessible drive bays, one that’s intended for an optical drive
  • 2x 6GB/s SATA ports, connected to non-hot-swap externally accessible drive bays
  • An on-board (internal) USB 2.0 port
  • An on-board (internal) microSD socket
  • A PCIe 2.0 x16 slot
  • 2x rear, 2x front USB 2.0 ports
  • 2x rear USB 3.0 ports (requires an OS to be running)
  • 2x Gigabit Ethernet ports
  • 1x Ethernet port for iLO
Like many others, I’ve repurposed the optical drive bay to hold a boot drive. This used to be a 120GB SanDisk that served admirably, but since I was redoing everything else, I figured this was the perfect time to swap in a fresh, new, 500GB Crucial MX500 drive. That drive is hanging off a 4-Pin Floppy FDD Male to 15-Pin SATA Female Power Cable (eBay - the one I have; Amazon), something of an oddball adapter. (Make sure the floppy connector end is male; most are female).

(Side note, the difference between the onboard 3 GB/s SATA port and the NVMe storage is staggering; buffered reads (tested with hdparm -Ttv) climbed from 266.46 MB/sec (SATA) to 956.84 MB/sec (NVMe), writes (tested writing a 100GB blank image using dd if=/dev/zero) leapt from 186MB/s to 1.0 GB/s.)

The two 6 GB/s external bays are each populated with a WDC 6TB Red hard drive, in a software RAID1 mirror. (And I just noticed the “shingled” warning on the Linux Raid Wiki, admonishing not to use post-2019 Red drives, or desktop drives, in an array. Well, crap. There goes my cheap upgrade plans...)

I have a relatively large (45GB online) database that could stand some optimization, which it will get eventually, but in the meantime I need it to be online and usable. Moving the data store off the spinning-rust RAID helped immensely (queries dropped from ~45 minutes to a minute or two, often only seconds), but it wasn’t good enough. So I learned what I needed to about NVMe and PCIe etc., and went with this solution:
I’m not using the heat sink; reviews on Amazon suggest that it did generally more harm than good (reduced airflow), and the HP drive admonishes not to remove the sticker lest you void the warranty, and I wasn’t sure how the thermal pad would work, or not, with that sticker, etc. Anyway.

The Sabrent card advertises itself as an x16 device, and that’s the form factor, true, but it’s actually an x4 card with a bunch of dead pins on the longer part of the connector. I don’t really care, the M.2 card is x4 itself and certainly fast enough no matter what. Just FYI.

I took out the old 120GB drive and hooked it up to a KINGWIN USI-2535 I happened to have handy (Amazon, though mine came from Fry’s, RIP). I’d already backed everything up to an external 2TB USB drive, and I removed the “NAS” 6TB drives while upgrading, just in case.

The server was running CentOS 6.10, which is dead (even as to maintenance updates) as of November 2020. With the brouhaha over CentOS 8 moving to “streams” and support for CentOS 7 ending in a few short years, I elected to move the system over to Oracle Linux.

At first I tried updating in place using the Oracle centos2ol.sh script, but my install was too bastardized for that to work (and it would have left me on Oracle Linux 6, which kinda defeats the purpose). So I just nuked everything and installed a clean Oracle Linux 8.3.

Because the internal optical bay SATA connection is not (to my knowledge) bootable, I have an 8GB SanDisk Cruzer Fit installed in the internal USB connector. That drive is partitioned MBR, with a 500MB /boot volume that's flagged bootable:

# parted -l

Model: SanDisk Cruzer Fit (scsi)

Disk /dev/sdb: 8003MB

Sector size (logical/physical): 512B/512B

Partition Table: msdos

Disk Flags: 


Number  Start   End    Size   Type     File system  Flags

 1      1049kB  525MB  524MB  primary  ext4         boot


The grub install under /boot points (by UUID) to kernels, etc. on the root volume, the 500GB SATA drive. The BIOS, of course, is set to boot from USB disk keys before other devices (and can be toggled between external and internal USB boot keys).

I downloaded OracleLinux-R8-U3-x86_64-dvd.iso and wrote it to a 32GB Patriot USB drive (on a USB 2.0 MacBook Air from 2010; it took about 2 hours 40 minutes!) with: 

$ sudo dd if=OracleLinux-R8-U3-x86_64-dvd.iso of=/dev/disk1 bs=8388608


And I used iLO from an iPad to get a console to install the operating system.





Comments

  1. my trick to boot from the optical bay SATA (where i have my SSD attached) is just to create on the HDD inside the cage a small (GPT BIOSBOOT) bootpartition (e.g. on all just in case).
    its easily done even without repartition/loose data if it GPT because standard is to start at sector 2048, give enough space to create a small bootpart.
    my config:

    $ sudo fdisk -l /dev/sdc
    Festplatte /dev/sdc: 4,55 TiB, 5000981078016 Bytes, 9767541168 Sektoren
    Festplattenmodell: WDC WD50EZRX-00M
    Festplattenbezeichnungstyp: gpt

    Gerät Anfang Ende Sektoren Größe Typ
    /dev/sdc1 2048 5860532223 5860530176 2,7T Linux RAID
    /dev/sdc2 34 2046 2013 1006,5K BIOS boot
    /dev/sdc3 5860532224 9767541134 3907008911 1,8T Linux RAID

    make bootable with grub2-install

    ReplyDelete

Post a Comment