Tällä hetkellä palvelimessa on kaksi 10-ytimistä Xeon E5-2690 v2 -prosessoria ja 144 Gt keskusmuistia. Käynnistyslevynä on kaksi 10k rpm 300 Gt SAS-levyä RAID 1 -konfiguraatiossa ja datalevynä kuusi teran SAS-levyä RAID 5 -konfiguraatiossa.

Tämä kirjoitus on julkaistu alkuaan jo noin vuosi sitten, mutta en silloin vielä ottanut palvelinta käyttöön. Syynä oli lähinnä hankaluudet käyttöjärjestelmien kanssa ja kun edeltäjä toimi ongelmitta, ei ollut riittävän hyvää syytä vaihtaa. Lopullinen palvelimien vaihto tapahtui 1.11.2022.

Olen korjannut tärkeimpiä kohtia kirjoituksessa vastaamaan nykyhetkeä, mutta paljon on sellaista, että korjaaminen tai käytännössä uudelleenkirjoittaminen olisi liian työlästä.

Edeltäjä ML350 G5

DL380 tulee korvaamaan nykyisen palvelinkoneeni HP ProLiant ML350 G5:n. ML350 G5 -koneita minulla on kaksi. Alla tiedostopalvelimena toimivan esittelyä.

Tiedostopalvelimen raidz2-pakassa on nyt 23 510 112 tiedostoa tai hakemistoa ja levytilaa on käytetty 19 361 183 872 kilotavua (runsas 19 teratavua). En enää muista tuon projektin alkuvaiheita kunnolla, mutta nykyisessä kokoonpanossaan se on ollut jo 5½ vuotta. Tiedostojärjestelmäksi valitsin ZFS:n ja sen takia käyttöjärjestelmänä oli aluksi OpenSolaris ja pian OpenIndiana. ZFS:ää aloin tutkimaan loppuvuonna 2011 ja alkuvuodesta 2012 sen voi sanoa olleen tuotantokäytössä.

Toinen ML350 G5 toimii yleispalvelimena, mm. www, sähköposti ja ssh, ja reitittimenä sekä palomuurina. Siinä oli jonkin aikaa kaksi neliytimistä Xeon E5440 2,83 GHz -prosessoria, mutta poistin toisen suuren sähkön kulutuksen takia. Se tippui noin 370 Watista noin 230 Wattiin. CPU Mark -arvo vuonna 2009 myyntiin tulleella LGA771-kantaisella prosessorilla on vain 2 246, joten on jo aikakin, että koko kone siirtyy alkuperäiseen käyttötarkoitukseensa, tiedostopalvelimen varaosiksi.

Lopuksi täytyy vielä lisätä, että tiedostopalvelimena oleva ML350 on oikeastaan vain backup-palvelin, niin harvoin se on päällä. Eikä se ole siinä kunnossa, että sitä kannattaisi käynnistää viikottain tai edes kuukausittain. Vuosi voi olla vähän liian pitkä aikaväli, jos ajattelee säännöllistä RAID 5 -pakan backuppia, joka sekin on jo niin hyvin varmistettu, että toisaalta aikaväli voisi olla useampikin vuosi.

Tuota kuntoa pitänee hieman selventää. Kunto tai sen puute on kätevä sana kuvaamaan sitä, että pelkkä tiedostolistauksen tulostaminen juuri käynnistetyltä ML350:n raidz2-pakalta kestää noin vuorokauden. Aikaa voi hyvin merkittävästi lyhentää seuraavilla kerroilla, jos esimerkiksi liittää raidz2-zpooliin cache-laitteeksi nopean NVMe-levyn M.2.-liitännän lisäkortilla, mutta cache-laitteen sisältö merkitään aina likaiseksi, kun se otetaan käyttöön koneen käynnistymisen yhteydessä. Toimivin ratkaisu olisi kuitenkin hakemistopuiden siirtäminen tiedostoineen pakattuihin arkistotiedostoihin eli tiedostomäärän radikaali vähentäminen. Osan voisi ehkä ennen arkistoihin poistamista odottamaan siirtoa poistaa ilman turhaa välivaihettakin.

DL380p Gen8

IT Creationsin vajaa neliminuuttinen DL380p Gen8:n esittely käy läpi koneen tärkeimmät ominaisuudet.

DL380 on 2U eli noin 9 cm korkea räkkiasennettava palvelinmalli. Proliant Gen8-sarjan palvelimissa prosessorikanta on useimmissa malleissa LGA2011 (v1) ja kaksiprosessorisiin malleihin voi asentaa Xeon E5-[24][46]xx (v1) ja v2 eli Sandy Bridge- ja uudemman Ivy Bridge -arkkitehtuurin prosessoreja. V2-prosessorit vaativat BIOS- ja BIOS bootblock -päivityksen, joka on ladattavissa HPE:n sivuilta ilman tukisopimusasiakkuutta. Ohjesivu on Instructions for Upgrading an HP ProLiant Gen8 Server From an Intel Xeon Processor E5-2600, E5-2400, or E5-4600 to an Intel Xeon Processor E5-2600 v2, E5-2400 v2, or E5-4600 v2, jossa on latauslinkki päivityksen käynnistys-CD:n näköistiedostoon.

HP ProLiant DL380p Gen8 julkaistiin jo vuoden 2012 loppupuolella, mutta PCMag UK julkaisi siitä ensiarvion vasta heinäkuussa 2013. Artikkelin mukaan sen lähtöhinta tuolloin oli 2 659 USD ja HP:n lähettämän kokooonpanon hinta oli yli 14 000 USD. Keskeiset tiedot olivat 128 GB keskusmuistia, kahdeksan 300 GB 10k rpm SAS-kiintolevyä ja kaksi Xeon E5-2690 -prosessoria. Minun kokoonpanossani kaikki on nopeampaa, enemmän tai suurempaa. Hinta siis kesällä 2013 olisi ollut vähintään 16 000 USD.

Alla hidastempoinen (yllä olevaa omaa videota on nopeutettu) vilkaisu DL380:n sisälle.

Prosessorit

Aluksi DL380:ssä oli vain yksi Xeon E5-2640, mutta tilasin Saksasta eBayn kautta toisen hintaan 15,84 € postikuluineen. Seuraavaksi tilasin Kiinasta kaksi Xeon E5-2650 v2 -prosessoria hintaan 41,38 € postikuluineen. Viimeisin prosessoritilaus oli Kiinasta kaksi E5-2690 v2:sta hintaan 147,39 € postikuluineen.

Alla on kuvakaappaus cpubenchmark.netin vertailusta, jossa ensimmäinen CPU on Intelin nopein työpöytäkäyttöön valmistama malli silloin, kun ostin DL380:n, seuraava DL380:n alkuperäinen, välivaiheen prosessori ja nykyinen. Viimeinen on Salon kansalaisopiston tietokoneluokkien koneiden prosessori syksyllä 2021. Huomaa että kaksi E5-2690 v2 -prosessoria ovat yhdessä tehokkaampia, yhteenlaskettu CPU Mark 26 812, kuin yksikään tavallinen Intelin työpöytäkone-CPU, joita ei voida käyttää moniprosessoriemolevyissä. AMD:llä tosin on paljon tehokkaampia 16-ytimisiä työpöytäprosessoreja. Lisäksi 4.11.2021 julkaistuissa Intelin Alder Lake prosessorisukupolven prosessoreissa on jo vihdoin tehokkaampia malleja.

Cpubenchmark.netin hintatiedot ovat uusien prosessorien osalta oikeita, mutta käytettyjen hinnat ovat AliExpressissä ja eBayssä paljon halvempia. Verkkokauppa.comissa on myynnissä vain aavistuksen verran hitaampi Intel Core i9-11900K -suoritin hintaan 596,9 € ilman tuuletinta. Amazonissa ja Neweggissä se on 50 USD halvempi kuin Intel Core i9-11900KF. Halvin heti saatavilla oleva LGA1200-emolevy Verkkokauppa.comissa maksaa kirjoitushetkellä (syksy 2021) 219,9 €.

DL380:een saisi hieman vieläkin nopeampia prosessoreita, mutta ne ovat 12-ytimisiä ja yhden ytimen nopeus (Single Thread Rating) on hitaampi. Lisäksi hinta on korkeampi. HP:n tukemien listalla nopeimman, Xeon E5-2697 v2:n CPU Mark on 14 124, Single Thread Rating 1 749 ja kahden kappaleen hinta 213 € postikuluineen.

Yksi prosessorien nopeuteen selvästi vaikuttava tekijä on Spectre- ja Meltdown-haavoittuvuuksien BIOS-korjauspäivitys. Sellaisen asentaminen hidastaisi konetta muistaakseni yli 10 % ja ko. haavoittuvuuksia voidaan hyödyntää vain, jos käytössä on lähinnä haitallinen HyperThreading-ominaisuus. Järkevintä on siis olla asentamatta liian uutta BIOS-versiota ja olla käyttämättä haavoittuvuuksille altistavaa sekä useissa tapauksissa hidastavaa HyperThreadingia.

Kun nykyisessä kokoonpanossa on prosessoriytimiä 16 ja hyvin pian 20, on käytännössä mahdotonta löytää ohjelmistoa, joka skaalautuisi eli osaisi hyödyntää tehokkaasti kaikkia ytimiä. Jos ytimien määrä tuplataan, tuplautuu myös skaalautuvuusongelma ja ydintä kohden varattu prosessorin sisäinen erittäin nopea välimuisti ja ydintä kohden ulkoisen muistiväylän saatavuus puolittuu. HyperThreading on hyödyllinen silloin, kun ytimiä on kaksi tai neljä, kun ytimiä on kahdeksan, se saattaa hyvinkin olla jo haitallinen ja on jo varmasti sitä, kun ytimiä on 16 tai 20.

Keskusmuisti

Vain palvelinkoneisiin sopiva rekisteröity ECC-virheenkorjaava DDR3-muisti on käytettynä hävyttömän halpaa. Olen maksanut neljän 4 Gt 1 333 MHz PC3-10600R-muistikamman setistä yhteensä 10 €. Yhteensä 4-gigaisia kampoja koneessa on nyt 20 kpl, viisi neljän kamman settiä, yhteensä 80 Gt eli 50 Euron arvosta. Lisäksi minulla sattui olemaan neljä 8-gigaista PC3-8500R-kampaa, jolloin kokonaismäärä oli 112 Gt. Vaikka ne ovat hitaampia, 1 067 MHz, tiputtaa BIOS 1 333 MHz muistien nopeuden siihen, jos asennettuna on maksimimäärä 24 muistikampaa. Sillä taas ei ole merkitystä, jos jokaisella muistikanavalla on täydet neljä kampaa. Muistipiirien nopeudella alkaa olla merkitystä vasta, kun kanavalla on vain kaksi muistikampaa.

Muistia tuli hieman vahingossa lisää, kun ostin kesällä HP:n Z420-työasemakoneen käytettynä ja siihen 8- ja myöhemmin 16-gigaisia muistikampoja. 16-gigaiset olivat quad rank -tyyppisiä ja niitä DL380 huolii vain joka toiseen muistikantaan, kun taas Z420:een pystyi asentamaan kaikki 8 ostamaani 16-gigaista eli yhteensä 128 Gt muistia. Z420 on kätevä DL380p G8:n parina, koska niissä voi käyttää lähes kaikkia samoja muistikampoja sekä prosessoreita. Ennen 16-gigaisia muistikampoja olin ostanut Z420:een 8 kpl 8-gigaisia muisteja, joten siirsin ne DL380:een ja muistimäärä kohosi 144 gigaan. Alkuperäinen suunnitelma oli suunnilleen niin, että Z420:een olisi tullut vain puolet 16-gigaisista, ja ostin niitä kuitenkin 8 kpl, koska halusin testata, voiko siihen asentaa peräti kaikki 8 muistikampaa 16-gigaisia. Se että DL380 oli se rajoittuneempi, oli pienoinen yllätys, mutta maksoin 16-gigaisista muisteista vain 15 €/kpl, yhteensä 120 €.

DL380:ssä on ollut kaikkia näitä muisteja. Ylimpänä olevia 8-gigaisia siinä on nyt neljä, Samsungin 4-gigaisia tuli samassa paketissa kuin itse kone 12 kpl, samanlaisia Hynixin kampoja on nyt 8 kpl ja alimmat hieman erilaiset, PC3L-tyyppiset neljä Hynixiä olivat alkuperäisiä, mutta palautan ne myyjälle. Niiden toiminnassa oli eräässä vaiheessa “mielenkiintoisia” ongelmia.

Ulkomailla eli eBayssä ja AliExpressissä DDR3-palvelinmuisti näyttää olevan lähes neljä kertaa kalliimpaa. Suomessa yritysten poistamia tietokoneita ja tarvikkeita myyvä MP-IT Computers ei kuitenkaan myy ulkomaille ja varmaankin sen takia tarjontaa on enemmän kuin kysyntää muisteissa. Toisaalta taas vanhoista prosessoreista suomalaiset alan yritykset pyytävät lähes naurettavan paljon.

Tavallinen DDR3-muisti on käytettynäkin selvästi kalliimpaa kuin käytetty rekisteröity ECC-muisti. Luotettavin vertailukohta on kuitenkin uuden tavallisen muistin hinta. Verkkokauppa.comissa halvin 4-gigainen DDR3 maksaa 20,9 € ja 8-gigainen 37,9 €. Vastaava määrä tavallista muistia maksaisi siis 569,6 €.

Kiintolevyt

Vasemmalla Toshiban valmistama 10k rpm 300-gigainen SAS-levy ja oikealla Seagaten 7200 rpm 1-terainen Constellation.2-sarjan SAS-levy.

Koneessa oli alkuperäisinä kaksi 300-gigaista levyä RAID1 eli peilaavana loogisena levynä. Lisäksi ostin lisää neljä käytettyä teran levyä, jotka ovat RAID5-pakkana eli loogisen levyn koko on kolme teraa.

Toshiban levyjen tiedot valmistajan sivulla: AL13SEBxxx SERIES ENTERPRISE PERFORMANCE HDD ja Seagaten Constellation.2™ Data Sheet.

Koneen emolevyllä oleva 8-porttinen Smart Array P420i Controller SAS-ohjain on hämmästyttävän nopea laitetason RAID-ohjain. Kolmeteraisen RAID5-pakan lukunopeus on hdparm-ohjelman mukaan nopeampi kuin kolme kertaa yksittäisen levyn lukunopeus valmistajan mukaan eli enemmän kuin 3 x 115 Mt/s.

Toinen 300-gigainen levy onkin Seagaten valmistama. Kuvaan mahtui myös M.2-liitäntäisten levyjen adapteri, joka on todella yksinkertainen vehje. Adapterissa on asennettuna yksi NVMe SSD -levy.

Seagaten Savvio® 10K.6 SAS Product Manual kertoo, että levyn suurin lukunopeus on 195 Mt/s. RAID1-pakan lukunopeus on kuitenkin hdparmin mielestä yli 300 Mt/s. sda on alla kuvakaappauksessa suurempi RAID5-pakka ja sdb 300-gigainen RAID1-pakka.

wolrk18.sh on tekemäni hyvin yksinkertainen skripti, jonka tarkoitus on pitää muistissa koneen MAC-osoite. wol on tietysti ohjelma, joka herättää jonkun toisen koneen W(ake)O(n)L(an)-toiminnolla.

[root@rk9 ~]# cat /usr/local/bin/wolrk18.sh
#!/usr/bin/sh
wol ac:16:2d:6e:a6:ac
CPU-päivityksen, Xeon E5-2690 v2, jälkeen keskusmuistin eli cached reads nopeus oli lähes aina yli 10 000 MB/sec.
Proliant Gen8- ja Gen9-levykelkoissa on neljä lediä, joista yksi on neljän ledin ryhmä ja yksi monivärinen. Käynnistyksen yhteydessä levykelkat esittävät lyhyen valoshown.
Vasemmalla ylhäällä on 300-gigaiset levyt, joiden aktiviteettirenkaan ledeistä kaksi on päällä. Oikealla olevia RAID5-pakan levyjä tunnistetaan koneen käynnistyessä.

300-gigaiset kuuluivat koneen hintaan, mutta niitä on kaupattu kympillä. Teran levyistä maksoin 40 €/kpl ja tingin levykelkan hinnan 15 Eurosta kymppiin. Neljä kumpaakin maksoi siis yhteensä 200 €. Koneeseen jäi vielä tilaa kahdelle levylle, mutta kun minulla on erillinen tiedostopalvelinkone ja siellä runsaasti vapaata tilaa, on kolmekin teraa varsin hulppea määrä tallennustilaa. Se nyt hieman harmittaa, että maksamalla satasen lisää, olisi loogisen levyn lukunopeus ollut vähintään 5 x 115 eli 575 Mt/s eli melko tarkkaan SSD-levyjen maksiminopeus. Halvin neliterainen SSD-levy maksaa nyt 390 € Verkkokauppa.comissa.

SAS ja tavallisissa tietokoneissa yleisempi levyliitäntä SATA ovat fyysisesti yhteensopivia. SAS-ohjaimiin voidaankin liittää myös SATA-levyjä, mutta samassa loogisessa taltiossa tai RAID-pakassa levyjen liitännät on oltava samoja. SATA-adaptereihin ei kuitenkaan voi liittää SAS-levyjä, joten käytöstä poistettujen palvelinkoneiden SAS-levyillä on rajoitetut markkinat ja lisäksi ne kilpailevat edullisten uusien SATA-levyjen kanssa. eBayssä vanhoja SAS-levyjä on runsaasti myynnissä ja maksamani 40 € teratavun kokoisesta levystä on melko edullinen, mutta ei halvin mahdollinen hinta.

Levyjen lisäys jälkikäteen RAID-pakkaan

Kyllä kolme teraa pitäisi ihan hyvin riittää, mutta kun paikkoja levyille oli tyhjänä kaksi, niin ne piti täyttää, kun nopeuskin näytti kasvavan ihan lineaarisesti. Päätöstä helpotti se tieto, että jo olemassa olevaan RAID-pakkaan voisi lisätä levyjä rakentamatta sitä uudelleen. Se ominaisuus oli ollut jo vaikka kuinka pitkään Linuxin softa-RAID:ssa, jota en ole edes käyttänyt enää noin kymmeneen vuoteen.

Valmisteluja oli kontrollerin firmwaren päivitys uusimpaan: versio 8.32 (2. 11. 2017), paketista hp-firmware-smartarray-46a4d957a7-8.32-1.1.x86_64.rpm, jonka voi ladata sivulta Supplemental Update / Online ROM Flash Component for Linux (x64) – Smart Array P220i, P222, P420i, P420, P421, P721m, and P822. Vanhan versio oli 3.04 ja varmaankin vuodelta 2012, kuten koneen muutkin alkuperäiset laitteistoohjelmat.

eBayssä on muuten myynnissä samanlaisia käytettyjä SAS/SATA-kontrollereja, mutta tavanomaisena lisäkorttina, noin hintaan 30 €. Esimerkiksi nimikkeellä HP 631670-B21 Smart Array P420 1GB FBWC 6Gb 2-ports SAS Controller with Battery myytävä maksaa juuri nyt 30,01 € ilmaisella postituksella ja siinä on yhtä paljon välimuistiakin. 2 porttia tarkoittaa, että kontrollerin pariksi pitää hankkia kaksi neljään SAS/SATA-datakaapeliksi haarautuvia kaapeleita. eBayssä uusi kaapelipari nimikkeellä 2x Mini SAS to 4 SATA SFF-8087 Multi-Lane Forward Breakout Cable 3 Feet/1M-NEW maksaa 14 € Kiinasta postikuluineen. Muillakin valmistajilla, kuten IBM, Dell ja LSI, on samanlaisia kontrollereita ja niidenkin hinnat ovat varsinkin käytettyinä hyvin alhaisia.

Lisälevyt ovat Dellin leimalla, mutta ihan samoja teran Seagate Constellation.2 7200RPM-levyjä kuin aiemmat HP:n leimaamat.

En ole vielä saanut luottokorttilaskua levyostoksesta, joten en tiedä kahden teran SAS-levyn lopullista hintaa euroissa, mutta 108,34 USD olisi kirjoitushetken kurssin mukaan 96,90 €. Siinä on tietysti postimaksu ja ALV jo mukana. Isommat 3,5-tuumaiset SAS-levyt ovat muuten hyvin halpoja käytettyinä. Olin ostaa 8 kpl kahden teran 3,5-tuumaisia Ranskasta kappalehintaan alle 15 € kunnes huomasin niiden hankalan koon.

RAID 5-pakan koon kasvattamiseen ja uudelleenrakentamisen seuraamiseen käytin komentoriviohjelmaa ssacli, joka löytyi HPE:n Management Component Pack -kokoelmasta. Kokoelman ja ohjelman käytöstä löytyy Wiki-sivusto osoitteessa https://wiki.webko.net.ua/index.php?title=HP_ProLiant_G8.

Ohjelmien asennus, ensimmäisen levyn lisäys RAID 5 -pakkaan, uudelleenrakentamisen seuraaminen ja loogisen levyn koon kasvattaminen:

# yum install -y ssacli ssaducli ssa
# ssacli ctrl all show config

Smart Array P420i in Slot 0 (Embedded)   

Note: Predictive Spare Activation Mode is enabled, physical drives that are in predictive failure state will not be available for use as data or spare drives.

 (sn: 0014380227E4500)



  Internal Drive Cage at Port 1I, Box 2, OK



  Internal Drive Cage at Port 2I, Box 2, OK


  Port Name: 1I

  Port Name: 2I

  Array A (SAS, Unused Space: 0  MB)

     logicaldrive 1 (279.37 GB, RAID 1, OK)

     physicaldrive 1I:2:1 (port 1I:box 2:bay 1, SAS HDD, 300 GB, OK)
     physicaldrive 1I:2:2 (port 1I:box 2:bay 2, SAS HDD, 300 GB, OK)


  Array B (SAS, Unused Space: 0  MB)

     logicaldrive 2 (2.73 TB, RAID 5, OK)

     physicaldrive 2I:2:5 (port 2I:box 2:bay 5, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:6 (port 2I:box 2:bay 6, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:7 (port 2I:box 2:bay 7, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:8 (port 2I:box 2:bay 8, SAS HDD, 1 TB, OK)

  Unassigned

     physicaldrive 1I:2:4 (port 1I:box 2:bay 4, SAS HDD, 1 TB, OK)

  SEP (Vendor ID PMCSIERA, Model SRCv8x6G) 380  (WWID: 50014380227E450F)

[root@rk18 ~]# ssacli ctrl slot=0 ld 2 add drives=allunassigned  
[root@rk18 ~]# ssacli ctrl all show config                      

Smart Array P420i in Slot 0 (Embedded)   

Note: Predictive Spare Activation Mode is enabled, physical drives that are in predictive failure state will not be available for use as data or spare drives.

 (sn: 0014380227E4500)



  Internal Drive Cage at Port 1I, Box 2, OK



  Internal Drive Cage at Port 2I, Box 2, OK


  Port Name: 1I

  Port Name: 2I

  Array A (SAS, Unused Space: 0  MB)

     logicaldrive 1 (279.37 GB, RAID 1, OK)

     physicaldrive 1I:2:1 (port 1I:box 2:bay 1, SAS HDD, 300 GB, OK)
     physicaldrive 1I:2:2 (port 1I:box 2:bay 2, SAS HDD, 300 GB, OK)


  Array B (SAS, Unused Space: 1192297  MB)

     logicaldrive 2 (2.73 TB, RAID 5, Transforming, 0.01% complete)

     physicaldrive 1I:2:4 (port 1I:box 2:bay 4, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:5 (port 2I:box 2:bay 5, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:6 (port 2I:box 2:bay 6, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:7 (port 2I:box 2:bay 7, SAS HDD, 1 TB, OK)
     physicaldrive 2I:2:8 (port 2I:box 2:bay 8, SAS HDD, 1 TB, OK)

  SEP (Vendor ID PMCSIERA, Model SRCv8x6G) 380  (WWID: 50014380227E450F)

[root@rk18 ~]# date ; ssacli ctrl slot=0 ld 2 show status
to 24.2.2022 21.03.47 +0200

  logicaldrive 2 (2.73 TB, RAID 5): Transforming, 10.36% complete


[root@rk18 ~]# date ; ssacli ctrl slot=0 ld 2 modify size=max forced

Käytin date-komentoa, jotta varsinainen komento saisi “aikaleiman” ja laskin jo puolen tunnin kuluttua arvion siitä, milloin homma olisi valmis. Uudelleenrakentuminen vei noin 27 tuntia. Sen jälkeen hdparmilla lukunopeuden testaus:

[root@rk18 ~]# hdparm -Tt /dev/sda

/dev/sda:
Timing cached reads:   20014 MB in  1.99 seconds = 10033.8 MB/sec
Timing buffered disk reads: 1424 MB in  3.00 seconds = 477.8 MB/sec

Luvut ovat kolmen testauskerran keskiarvoja. Kuudennen levyn lisääminen oli yhtä hidasta, noin 27 tuntia, mutta lukunopeus ei enää kasvanutkaan lineaarisesti vaan oli aluksi 523,41 Mt/s, kun sen oli voinut odottaa olevan lähes 600 Mt/s. Neljällä levyllä lukunopeus oli noin 372 Mt/s, joka on yllättäen enemmän kuin kolme kertaa Seagaten ilmoittama lukunopeus 115 Mt/s.

Levyjen lisääminen ja RAID-pakan uudelleenrakennus eivät vaadi koneen sammuttamista ja uudelleenkäynnistystä. Sen sijaan osion tai osioiden koon muuttaminen vaatii sen, koska en löytänyt mitään keinoa saada Linuxin ytimen lukemaan uudelleen SAS-kontrollerin luoman loogisen levylaitteen kokoa uudelleen. Uudelleenkäynnistyksestä oli myös se etu, että RAID-pakan lukunopeus nousi ja oli lähellä viiden levyn yhteistä lukunopeutta (viimeinen eli tässä tapauksessa kuudes “menetetään” pariteetille). Seuraava komentorivi antoi tuloksia välillä 546 ja 573 Mt/s:

hdparm -Tt /dev/sda /dev/sda /dev/sda | awk 'BEGIN{tot=0};/buffered/ {tot=tot+$11};END{print tot/3}'

Laiteostokset

On tähän harrasteprojektiin uponnut jo hieman rahaakin. Osan, ainakin Xeon E5-2650 v2 -prosessorit, aion kyllä myydä pois ja nVidian Quadro K2000 -näyttökortti maksoi 599 USD, kun se julkaistiin. Sitä ei ollut aiemmassa 16 000 USD:n hinta-arviossa vuonna 2013 mukana.

Laite/komponenttiHinta, €
DL380p Gen8220
Jäähdytinsiili10
3 x tuuletin15
Riser-kortti20
8 x 4Gb muistit20
Xeon E5-264015,84
2 x Xeon E5-2650 v241,38
4 x 1 Tt levyt ja kelkat208
nVidia Quadro K2000 näytönohjain30
2 x Xeon E5-2690 v2147,39
4 x 4Gb muistit10
Yhteensä737,61
Kaikissa hinnoissa paitsi viimeisessä on mukana postitus ja ALV.

Jos lähes vastaavaa uutta konetta kasaisi, maksaisi Intel Core i9-11700K -prosessori ja sille halvin emolevy Verkkokauppa.comissa yhteensä 816,8 €. Kun siihen lisäisi yhteensopimasti DDR3-muistia 112 Gt aiemman laskelman mukaisesti, olisi kokonaissumma jo 1 386,4 €.

Laskelmasta puuttuu kaksi lisättyä teratavun levyä ja niiden kelkat, 12 kpl 8 Gt muistikampaa, USB 3.0 lisäkortti ja M.2-liitäntäisten NVMe-levyjen adapteri sekä SSD-levykortti siihen. Lisäkorteilla ei kuitenkaan ole tällä hetkellä käyttöä ja ne voisi poistaa kuten myös näytönohjaimen, joka on jo poistettu. Xeon E5-2650 v2:t on jo myyty pienellä voitolla ja Xeon E5-2640 v1:kin pitäisi myydä. 8-gigaisia muistikampoja en ole ostanut yhtäkään DL380:tä varten, ne ovat vain “kätevästi” jääneet yli muista projekteista. Huippuhalvoilla 4-gigaisillakin, 24*4 = 96 gigaa olisi riittänyt aivan mainiosti ainakin “alkuun”. Toisaalta nyt joulun alla 2022 tuli Huuto.netiin myyntiin varsin mielenkiintoisia muistikampoja, myynti-ilmoituksesta: “32GB 4Rx4 PC3L-10600L, Low Voltage tyyppinen, rekisteröity (ECC Reg.) muisti.
Tämä on ns Quad-rank muistia, mikä on syytä huomioida joittenkin palvelimien muistikonfiguraatioissa. Joihinkin koneisiin voi Quad-rank muisteja laittaa vain joka toiseen muistipaikkaan.” DL380:n maksimimuistimäärä on 768 Gt, joka onnistuu vain tuollaisilla LRDIMM (Load-Reduced DIMM) -palvelinmuisteilla. Kappalehintapyyntö on 30 €. Ostaisiko sitä itselleen vielä joululahjan? Laskelma siis kuitenkin vielä elää.

iLO 4

Ennen käyttöjärjestelmä- ja ohjelmistovalintoja on syytä esitellä HP Integrated Lights-Out tai iLO, joka on laitteiston ja ohjelmiston välimaastossa. Sen edeltäjät olivat lisäkortteja, joilla pystyttiin hallitsemaan palvelinkoneita verkon kautta. iLOn voisi ajatella olevan erillinen palvelimessa oleva tietokone ja ohjelmisto, jolla hallitaan palvelinta silloinkin, kun palvelinta ei ole vielä käynnistetty tai se on jumittunut niin pahoin, että normaalisti jouduttaisiin käyttämään reset- tai virtakatkaisijaa.

Proliant DL380p Gen8:n iLO 4 kuluttaa sähköä noin 8 10 W yhdellä virtalähteellä ja 10 12 W kahdella silloin, kun konetta ei ole käynnistetty. ML350 G5:n iLO 2 taas kuluttaa peräti 18 W yhdellä virtalähteellä, joten Ledvancen kännykällä WiFi-ohjattava sähköpistorasia tai ajastin olisi pidemmällä tähtäimellä järkevä ratkaisu tiedostopalvelimelleni.

Alla on taas melko hidastempoinen video, jota on syytä nopeuttaa ainakin Youtuben mediasoittimen salliman kaksinkertaistuksen verran.


Uhrituulettimet

Pari vuotta sitten redditin r/homelab-palstalla julkaistiin kirjoitus otsikolla “Silence of the fans: Controlling HP server fans with a modified iLO4. And MORE!” (Elokuvan Uhrilampaat alkukielinen nimi on The Silence of the Lambs.)

Ilmeisesti kaikkien Proliant Gen8 ja Gen9 -palvelinten, joissa on iLO 4, ongelmana on tuulettimien äänitaso. Erityisen paha se on matalissa DL380- (2U) ja DL360- (1U) -malleissa. Mitä pienempi tuulettimen halkaisija on eli mitä matalampi kone on, sitä äänekkäämpi se on.

Jos DL380p Gen8:ssa ei ole lisäkortteja, häiritsee tuulettimien melu paljon vain koneen käynnistyessä, mutta ei se kovin hiljainen ole koskaan käynnissä ollessaan. Jos koneeseen kuitenkin asentaa yhdenkin lisäkortin, on melutaso jo melkoisen sietämätön vähänkään pitempään kuunneltuna. Voisi tietysti luulla, että HP:n itse valmistamat ja DL380:n kanssa yhteensopiviksi listaamat lisäkortit eivät saisi tuulettimia villiintymään, mutta ainakin HP:n valmistama tai valmistuttama näyttökortti nVidia Quadro K2000 saa ne huutamaan suunnilleen kaksinkertaisilla kierroksilla.

Redditin kirjoituksessa neuvottiin hakemaan muokattu iLO 4:n versio 2.60 ja kommentoinnissa käy ilmi, että siinä ei ole HTML5 -pohjaista etähallintaa (Remote Console), mutta muuten 2.60 on jo ihan mainio iLOn versio. Se alkuperäinen, koskaan päivittämätön versio oli lähes kokonaan toimimaton. Firefox ei toiminut sen kanssa eikä Android-sovellus, eikä ssh-yhteys, eikä niitä toimimattomuuksia viitsinyt sen tarkemmin kartoittaa, kun se ei yleensäkään oikeastaan toiminut. Noh, en minä saanut tuota 2.60:stä asentumaan, joka oli hyvä asia. Löysin GitHubista ohjelmistopaketin HP-ILO-Fan-Control, jossa on iLOn versio 2.73, päiväys 11.2.2020, kun uusin iLO on 2.78, päiväys 28.4.2021. 2.73:ssa on HTML5-etähallinta eli siinä taitaa olla kaikki uusimmat ominaisuudet.

HP-ILO-Fan-Control on sekin aika ongelmallinen. Install.sh lataa GitHubista tiedostojen sijaan html-sivut, joissa ko. tiedostot näkyvät eli siitä ei ole mitään iloa. Kuitenkin kun varsinaiset tiedostot, varsinkin flash_ilo4 ja ilo4_250.bin, on saanut ladattua, toimii iLOn päivitys. flash_ilo4:lle pitää vielä antaa suoritusoikeudet ja emolevyllä olevalla dippikytkimellä pitää poistaa iLOn kirjoitussuojaus sekä todennäköisesti poistaa hpilo-moduuli rmmod-käskyllä. Dippikytkimen ohjeet ovat koneen kotelon kannen sisäpuolella.

Uudemmalla mukautetulla iLOlla on myös sivu redditissä: Silence of the fans pt 2: HP iLO 4 2.73 now with the fan hack! Kolmas sivu, johon kannattaa tutustua, jos iLO kiinnostaa, on Subverting your server through its BMC: the HPE iLO4 case.

Aputuulettimet

SAS-kontrollerin CPU:n jäähdytyksen toteutus DL380p Gen8:ssa on mielestäni suunnitteluvirhe. Voi tietysti olla, että se kuumenee erityisesti vain laskiessaan RAID5-pakkojen pariteetteja, mutta RAID5:n edut ovat niin suuret, että kyllä sitä käytetään usein. Käynnistyslevyillä RAID1 on tietysti ihan järkevä, mutta minullakin alkuperäiset 300-gigaiset ovat jääneet pois käytöstä ainakin toistaiseksi, koska siellä on Fedora 34:llä luodut osiot, joiden tiedostojärjestelmiä CentOS 7 ei ymmärrä.

Jos edes se jäähdytyssiili olisi korkeampi, niin sekin auttaisi varmaankin jo aika paljon. Siilin mitat ovat 40 x 50 mm ja korkeus uskoakseni 6 mm. Sekin auttoi muutaman asteen verran, kun irrotettuani siilin, poistin kuivuneen lämmönsiirtotahnan ja laitoin uutta tilalle.

Jonkin aikaa pohdittuani ja vanhoja romuja kaiveltuani löysin yllättävän hyvän ja helpon ratkaisun. Vanhasta kiintolevyn jäähdytyslevystä löytyi sopivat Ø 50 mm tuulettimet ja alemman kiinnitin kahdella ruuvilla, jotka sopivat sopivan tiukasti jäähdytyssiilin piikkien väliin ja ylemmän kiinnitin alempaan kahdella M5-ruuvilla. Tuulettimien kiinnitysreikien koko oli juuri sopivasti alle 5 mm, että kierretappi pyöri niissä melkein sormivoimin. Virtaakin sain vanhoilla kaapeleilla ilman kolvin käyttöä. Kuvat alla kertovat tarinan.

Sivuraide: 5 voltin jännite Molex- ja SATA-virtaliittimeen.

Yleensä kiintolevyjen käyttämissä Molex- ja SATA-virtaliittimissä on jännitteet -5 ja -12 V. Edellä aputuulettimille saatiin -12 V jännite ensimmäisestä tai vakio-riseristä (toiseen riseriin ei pitäisi tulla emolevyltä jännitteitä sen 10-napaiseen liittimeen). Helpoin tapa saada elektroniikan ja USB-liitännän käyttämä latausjännite -5 V on ottaa se DVD-asemalle lähtevästä johdosta. Siinä virtajohtoja on vain kaksi, -5 ja 0 V.

Vasemmalla DVD-aseman mini-SATA-data-ja-virta-liitin on irti emolevyltä ja ilmastointiteippi peittää kolvatut virtajohtimet. Keskellä ylhäällä riserissä on USB 3.1 -lisäkortti, joka saa virtansa Molex-SATA-adapterijohdon kautta. Molex-haaroitusjohto saa -12 V jännitteen yllä kuvatun aputuulettimien virtajohdosta ja -5 V jännitteen DVD-aseman johdosta ja vapaita Molex-liittimiä olisi vielä kaksi.

Tuulettimien ohjauksen suunnittelun perusteet ja toteutus

Minä kokeilin molempia mukautettuja iLOn versioita, koska fan-käsky useimmiten ei jostain syystä tulostanut mitään. Esimerkiksi fan show a, jonka pitäisi tulostaa kymmeniä rivejä, toimi vain lyhyen aikaa iLOn mukautetulla versiolla 2.60.17. Kun se jostain syystä ei enää toiminut, vaihdoin takaisin uudempaan iLOn mukautettuun versioon 2.73.2. ja sen kanssa fan-käsky ei ole koskaan tulostanut mitään. Jouduin siis tyytymään siihen tietoon, mitä iLOn www-liittymä tarjosi ja oikeastaan ipmitool sensor kertoo kaiken tarpeellisen.

[root@rk18 wp]# ipmitool sensor | awk '{sub(" na        \\| na        \\| na        \\| na        \\|","",$0);print $0}' 
UID Light                | 0x0        | discrete   | 0x0180| na        | na        
Sys. Health LED          | na         | discrete   | na    | na        | na        
01-Inlet Ambient         | 32.000     | degrees C  | ok    | 42.000    | 46.000    
02-CPU 1                 | 40.000     | degrees C  | ok    | 70.000    | na        
03-CPU 2                 | 40.000     | degrees C  | ok    | 70.000    | na        
04-P1 DIMM 1-3           | 42.000     | degrees C  | ok    | 87.000    | na        
05-P1 DIMM 4-6           | 43.000     | degrees C  | ok    | 87.000    | na        
06-P1 DIMM 7-9           | 46.000     | degrees C  | ok    | 87.000    | na        
07-P1 DIMM 10-12         | 46.000     | degrees C  | ok    | 87.000    | na        
08-P2 DIMM 1-3           | 48.000     | degrees C  | ok    | 87.000    | na        
09-P2 DIMM 4-6           | 52.000     | degrees C  | ok    | 87.000    | na        
10-P2 DIMM 7-9           | 43.000     | degrees C  | ok    | 87.000    | na        
11-P2 DIMM 10-12         | 43.000     | degrees C  | ok    | 87.000    | na        
12-HD Max                | 40.000     | degrees C  | ok    | 60.000    | na        
13-Chipset               | 55.000     | degrees C  | ok    | 105.000   | na        
14-P/S 1                 | 41.000     | degrees C  | ok    | na        | na        
15-P/S 2                 | 44.000     | degrees C  | ok    | na        | na        
16-P/S 2 Zone            | 45.000     | degrees C  | ok    | 75.000    | 80.000    
17-VR P1                 | 47.000     | degrees C  | ok    | 115.000   | 120.000   
18-VR P2                 | 49.000     | degrees C  | ok    | 115.000   | 120.000   
19-VR P1 Mem             | 47.000     | degrees C  | ok    | 115.000   | 120.000   
20-VR P1 Mem             | 46.000     | degrees C  | ok    | 115.000   | 120.000   
21-VR P2 Mem             | 49.000     | degrees C  | ok    | 115.000   | 120.000   
22-VR P2 Mem             | 48.000     | degrees C  | ok    | 115.000   | 120.000   
23-VR P1Vtt Zone         | 47.000     | degrees C  | ok    | 90.000    | 95.000    
24-VR P2Vtt Zone         | 47.000     | degrees C  | ok    | 90.000    | 95.000    
25-HD Controller         | 72.000     | degrees C  | ok    | 100.000   | na        
26-iLO Zone              | 49.000     | degrees C  | ok    | 90.000    | 95.000    
27-LOM Card              | na         |            | na    | 100.000   | na        
28-PCI 1                 | na         |            | na    | 100.000   | na        
29-PCI 2                 | na         |            | na    | 100.000   | na        
30-PCI 3                 | na         |            | na    | 100.000   | na        
31-PCI 4                 | na         |            | na    | 100.000   | na        
32-PCI 5                 | na         |            | na    | 100.000   | na        
33-PCI 6                 | na         |            | na    | 100.000   | na        
34-PCI 1 Zone            | 44.000     | degrees C  | ok    | 65.000    | 70.000    
35-PCI 2 Zone            | 45.000     | degrees C  | ok    | 66.000    | 71.000    
36-PCI 3 Zone            | 46.000     | degrees C  | ok    | 66.000    | 71.000    
37-PCI 4 Zone            | na         |            | na    | 65.000    | 70.000    
38-PCI 5 Zone            | na         |            | na    | 65.000    | 70.000    
39-PCI 6 Zone            | na         |            | na    | 65.000    | 70.000    
40-I/O Board 1           | 47.000     | degrees C  | ok    | 66.000    | 71.000    
41-I/O Board 2           | na         |            | na    | 66.000    | 71.000    
42-VR P1 Zone            | 39.000     | degrees C  | ok    | 95.000    | 100.000   
43-BIOS Zone             | 51.000     | degrees C  | ok    | 90.000    | 95.000    
44-System Board          | 47.000     | degrees C  | ok    | 80.000    | 85.000    
45-SuperCap Max          | 36.000     | degrees C  | ok    | 65.000    | na        
46-Chipset Zone          | 48.000     | degrees C  | ok    | 75.000    | 80.000    
47-Battery Zone          | 45.000     | degrees C  | ok    | 75.000    | 80.000    
48-I/O Zone              | 48.000     | degrees C  | ok    | 75.000    | 80.000    
49-Sys Exhaust           | 47.000     | degrees C  | ok    | 75.000    | 80.000    
50-Sys Exhaust           | 47.000     | degrees C  | ok    | 75.000    | 80.000    
Fan 1                    | 6.272      | percent    | ok    | na        | na        
Fan 2                    | 6.272      | percent    | ok    | na        | na        
Fan 3                    | 6.272      | percent    | ok    | na        | na        
Fan 4                    | 18.816     | percent    | ok    | na        | na        
Fan 5                    | 18.816     | percent    | ok    | na        | na        
Fan 6                    | 18.816     | percent    | ok    | na        | na        
Power Supply 1           | 20         | Watts      | ok    | na        | na        
Power Supply 2           | 150        | Watts      | ok    | na        | na        
Power Meter              | 148        | Watts      | ok    | na        | na        
Power Supplies           | 0x0        | discrete   | 0x0180| na        | na        
Fans                     | 0x0        | discrete   | 0x0180| na        | na        
Memory                   | 0x0        | discrete   | 0x4080| na        | na        
C1 P1I Bay 1             | 0x1        | discrete   | 0x0180| na        | na        
C1 P1I Bay 2             | 0x1        | discrete   | 0x0180| na        | na        
C1 P2I Bay 5             | 0x1        | discrete   | 0x0180| na        | na        
C1 P2I Bay 6             | 0x1        | discrete   | 0x0180| na        | na        
C1 P2I Bay 7             | 0x1        | discrete   | 0x0180| na        | na        
C1 P2I Bay 8             | 0x1        | discrete   | 0x0180| na        | na        
C1 P1I Bay 4             | 0x1        | discrete   | 0x0180| na        | na        
C1 P1I Bay 3             | 0x1        | discrete   | 0x0180| na        | na

Minulle on kaksi kertaa tapahtunut niin, että “ipmitool sensor” ei ole tulostanut juuri mitään arvoja ja silloin jäljempänä esiteltävä tuulettimien ohjaus ei ole toiminut. Ensimmäisellä kerralla olin käynnistänyt 300-gigaisilla levyillä olevan Fedora 34:n ja yritin saada tuulettimien ohjauksen toimimaan. Jäljitin ongelmaa sen verran, että ipmitool ei toiminut. Syyksi epäilin sitä, että palvelimille suunnattu ipmitool ei syystä tai toisesta toiminut enemmänkin työasema- ja kannettava-käyttöön suuntautuneessa Fedorassa.

Jälkimmäisellä kerralla DL380p oli ollut jonkin aikaa irti sähköverkosta ja silloin huomasin, että myöskään iLO ei näyttänyt juuri mitään arvoja ja tilanne korjaantui käynnistämällä kone uudelleen parin minuutin päästä sammutuksesta. Suora uudelleenkäynnistys on aiheuttanut usein virhetilanteita, joten pyrin välttämään sitä.

Ensimmäinen tehtävä tuulettimien ohjauksessa oli määrittää alin riittävä tuulettimien pyörimisnopeustaso. Sitä varten tein useita alla olevan kaltaisia skriptejä.

[root@rk18 ~]# cat fanset18.sh  
#!/bin/bash
USERNAME="root"
ILOIP="192.168.0.122"
ssh $USERNAME@$ILOIP 'fan p 0 max 48'
ssh $USERNAME@$ILOIP 'fan p 1 max 48'
ssh $USERNAME@$ILOIP 'fan p 2 max 48'
ssh $USERNAME@$ILOIP 'fan p 3 max 48'
ssh $USERNAME@$ILOIP 'fan p 4 max 48'
ssh $USERNAME@$ILOIP 'fan p 5 max 48'

Tuota ennen olin luonut iLOn www-liittymän kautta uuden käyttäjätunnuksen root, antanut sille täydet oikeudet ja ladannut koneen pääkäyttäjän julkisen ssh-avaimen (/root/.ssh/id_rsa.pub, luodaan ssh-keygen-ohjelmalla) iLOn www-liittymässä reittiä Administration -> Security -> Secure Shell Key -> Authorize New Key.

Virittämäni SAS-kontrollerin CPU:n jäähdytys toimi niin hyvin, että CPU ei lähellekään ylikuumentunut vaikka tuulettimet pyörivät vain 6 % teholla, mutta koko lähialue kuumeni, tosin hitaasti, useiden tuntien aikana.

Kuuma pinta -varoitustarran pitäisi olla hieman ylempänä kuin missä kuumemittari on kuvassa. Jossain muualla väitettiin, että DL380p painaisi vähintään vain 18 kg, mutta en ole viitsinyt omaani punnita. 23 kg ja varsinkin 37 kg vaikuttaa kyllä liioittelulta vaikka kone kyllä painava on.

Päädyin kuitenkin 18 % tehoon, koska silloin tuulettimien äänitaso jo hukkuu muuhun taustameluun asunnossani.

Seuraava vaihe oli tehdä skripti, joka nostaa tuulettimien nopeusrajoitusta, kun prosessorit saavat työtä. E5-2690 v2 -prosessorit pysähtyvät lähes kokonaan ja säästävät virtaa silloin kun niitä ei rasiteta. Alla atop:in näkemys kahdesta laiskasta CPU:sta.

Hitain käynnissä oleva ydin tikittää vain 1 MHz taajuudella ja nopein 824 MHz. Yhteensä prosessorit laiskottelevat 1972 %.

Silloin kun vain yhtä ydintä rasitetaan, sen nimellinen kellotaajuus nousee 3 GHz:iin ja todellinen 3,58:aan. Jos useampia ytimiä rasitetaan, on korkein keskimääräinen kellotaajuus 3,3 GHz. Virran kulutuksessa prosessorien hyvin dynaaminen virransäästö näkyy iLOn kautta esimerkiksi seuraavasti:

Tarvitsin siis jonkun testiohjelman, joka skaalautuisi niin hyvin, että molempien prosessorien kaikki ytimet, yhteensä 20 kpl, olisivat täysin työllistettyjä. Varsin hyvä sellainen löytyi Phoronixin testikokoelmasta, käynnistyskomento phoronix-test-suite benchmark blender. Phoronixin testikokoelman voi ladata sivun Phoronix Test Suite Download kautta.

Testiajon aikana seurasin tekemäni skriptin, fancontrol.sh, toimintaa ja tein välillä siihen pieniä muutoksia. Valmiissa muodossaan se oli seuraava:

#!/bin/bash
USERNAME="root"
ILOIP="192.168.0.122"

# CPU Temperature limit
TLIMIT="56"
# When to double speed up
HLIMIT="61"
# When to slow down
TLLIMIT="49"
# Speed inc/dec step
STEP=3
# Fan lowest speed percentage
FLIMIT="16"
# 0 = be quiet, 1 = report changes, 2 = report state also with changes, 3 = report state always
DEBUG=2

ipmitool sensor > /var/tmp/fancontrol.tmp
T1=`cat /var/tmp/fancontrol.tmp | awk '/02-CPU 1/{sub(".000","",$4);print $4}'`
T2=`cat /var/tmp/fancontrol.tmp | awk '/03-CPU 2/{sub(".000","",$4);print $4}'`
F2=`cat /var/tmp/fancontrol.tmp | awk '/Fan 2/{prc=substr($4,1,2);sub("\\\.","",prc);print prc}'`
F5=`cat /var/tmp/fancontrol.tmp | awk '/Fan 5/{prc=substr($4,1,2);sub("\\\.","",prc);print prc}'`
if [ $DEBUG -gt 2 ] ; then echo "T1="$T1", T2="$T2", F2="$F2", F5="$F5 ; fi

if [ $T1 -gt $TLIMIT ]
   then
   if [ $T1 -gt $HLIMIT ]
      then
      NEWF5=`echo $F5" "$STEP | awk '{print int(2.55*($1+2*$2))}'`
   else
      NEWF5=`echo $F5" "$STEP | awk '{print int(2.55*($1+$2))}'`
   fi
   if [ $DEBUG -gt 1 ] ; then echo -n "T1="$T1", F5="$F5"  " ; fi
   if [ $DEBUG -gt 0 ] ; then echo "Fans 3 to 5 are set up to level "$NEWF5 ; fi
   ssh $USERNAME@$ILOIP "fan p 3 max $NEWF5" > /dev/null
   ssh $USERNAME@$ILOIP "fan p 4 max $NEWF5" > /dev/null
   ssh $USERNAME@$ILOIP "fan p 5 max $NEWF5" > /dev/null
elif [ $F5 -gt $FLIMIT -a $T1 -lt $TLLIMIT ]
   then
      NEWF5=`echo $F5" "$STEP | awk '{print int(2.55*($1-$2))}'`
      if [ $DEBUG -gt 1 ] ; then echo -n "T1="$T1", F5="$F5"  " ; fi
      if [ $DEBUG -gt 0 ] ; then echo "Fans 4 to 6 are set down to level "$NEWF5 ; fi
      ssh $USERNAME@$ILOIP "fan p 3 max $NEWF5" > /dev/null
      ssh $USERNAME@$ILOIP "fan p 4 max $NEWF5" > /dev/null
      ssh $USERNAME@$ILOIP "fan p 5 max $NEWF5" > /dev/null
fi

if [ $T2 -gt $TLIMIT ]
   then
   if [ $T2 -gt $HLIMIT ]
      then
      NEWF2=`echo $F2" "$STEP | awk '{print int(2.55*($1+2*$2))}'`
   else
      NEWF2=`echo $F2" "$STEP | awk '{print int(2.55*($1+$2))}'`
   fi
   if [ $DEBUG -gt 1 ] ; then echo -n "T2="$T2", F2="$F2"  " ; fi
   if [ $DEBUG -gt 0 ] ; then echo "Fans 1 to 3 are set up to level "$NEWF2 ; fi
   ssh $USERNAME@$ILOIP "fan p 0 max $NEWF2" > /dev/null
   ssh $USERNAME@$ILOIP "fan p 1 max $NEWF2" > /dev/null
   ssh $USERNAME@$ILOIP "fan p 2 max $NEWF2" > /dev/null
elif [ $F2 -gt $FLIMIT -a $T2 -lt $TLLIMIT ]
   then
      NEWF2=`echo $F2" "$STEP | awk '{print int(2.55*($1-$2))}'`
      if [ $DEBUG -gt 1 ] ; then echo -n "T2="$T2", F2="$F2"  " ; fi
      if [ $DEBUG -gt 0 ] ; then echo "Fans 1 to 3 are set down to level "$NEWF2 ; fi
      ssh $USERNAME@$ILOIP "fan p 0 max $NEWF2" > /dev/null
      ssh $USERNAME@$ILOIP "fan p 1 max $NEWF2" > /dev/null
      ssh $USERNAME@$ILOIP "fan p 2 max $NEWF2" > /dev/null
fi

Käynnistys testausta varten komennolla:

for i in `seq 1 400` ; do sh fancontrol.sh ; sleep 3 ; done

Tein skriptistä palvelun tai demonin ja siirsin muuttujat konfigurointiedostoon, jolloin skriptin toimintaa enää siinä muodossa ei ole niin helppo ymmärtää. Lisäksi tein siitä rpm-paketin, jotta se olisi helppo asentaa ja levittää.

Toistaiseksi fand on System V -tyyppinen palvelu eikä paketissa ole mitään dokumentointia. Tämän kirjoituksen pitäisi toimia kuitenkin varsin hyvin sen dokumentointina. Binääripaketti on fand-0.9-1.noarch.rpm ja lähdekoodi fand-0.9-1.src.rpm. Ne on paketoitu CentOS Linux release 7.9.2009 (Core) -käyttöjärjestelmässä.

Käyttöjärjestelmä ja ohjelmistot

Käyttöjärjestelmäksi valikoitui CentOS 7 lähinnä koska se on videoeditointiohjelma Da Vincin suositelluin alusta Linuxille ja väistyvän palvelimen CentOS 8 vaikuttaa edelleen olevan rikki liian monesta kohtaa. En ole tosin sen kanssa viitsinyt taistella enää viime aikoina muutosta odotellessa ja CentOS 8:n tukikin loppuu tämän vuoden aikana.

DL380p Gen8:n eräs tärkeä tehtävä tulee olemaan päätepalvelimena toimiminen. Siihen on kaksi tapaa, perinteinen X-ohjelmien ajo verkon yli ja VNC. Molemmissa on jonkintasoisena ongelmana ääni, mutta se on kummassakin tapauksessa ratkaistavissa. Lisäksi äänen tuonti johdolla viritinvahvistimeeni ja äänilähteen vaihto kauko-ohjaimella on aina yksi mahdollisuus, mutta internetin kautta se ei ole mahdollista. VDSL-liittymäni paluukanavan nopeus on tosin vain 50 Mbps, mutta kun talojakamoon tulee valokaapeli, on Lounea jo kysellyt mielenkiintoani gigabitin liittymään.

VNC on minulle tuttu jo vuosituhannen alkuvuosilta, mutta olin jo unohtanut, miten käyttökelpoinen se on. Vaikka päätepalvelimella pyörivältä etätyöpöydältä kirjautuu ulos, jäävät ohjelmat ja koko työpöytä odottamaan samassa tilassa ja kirjautua voi miltä tahansa koneelta ja Windowsillekin löytyy asiakasohjelmia. Kaupallisessa RealVNC:ssä on mukana myös äänituki.

Lähes vuosi myöhemmin

Julkaisin tämän kirjoituksen jo marraskuun alussa 2021, mutta täydensin sitä vielä vuoden 2022 helmikuussa. Sen jälkeen DL380 oli pitkään käyttämättömänä ja loppukesällä ostin HP Z420 työaseman, joka on “samaa sarjaa” kuin DL380 G8, siihen sopii samat prosessorit ja muistit. Kun Z420 oli “valmis” hieman myöhemmin syksyllä, palasin DL380:n pariin ja huomasin, että Red Hat Enterprise Linuxista oli ilmestynyt keväällä versio 9.0 ja sen sai ladattua ja rekisteröityä ilmaiseksi harrastajakäyttöön. Toistaiseksi RHEL 9:n suurin ongelma on ollut ssh, joka ei suostu toimimaan ilman säätöjä iLO 4:n kanssa. fand on siis toistaiseksi rikki, mutta on koneenkin rasitus ollut niin vähäistä, että tuulettimia ei ole ollut tarvetta kiihdyttää perusasetuksena laitetusta hitaasta ja hiljaisesta vauhdista.

Työtä siis vielä on ja kaikenlaisia ajatuksia siitä, mitä vielä voisi rakentaa. Levytilaa ja muistia lisää, kun halvalla saa, mutta ensin täytyy laittaa paljon ohjelmistoja toimimaan.

Väliaikapäivitys, maaliskuun alku

Keskusmuistia on nyt 256 Gt, joka on järkevä minimi maksimista. Muistikammat ovat Reduced Load -tyyppisiä, vain 1,35 V jännitteellä toimivia, kun normaalin DDR3-muistin jännite on 1,5 V. Se on ainoa muistityyppi, jota voi käyttää tai tod. näk., on edes saatavilla 32-gigaisina kampoina. Prosessoreissa on neljä muistikanavaa, joten muistia kannattaa lisätä neljä kampaa jokaista prosessoria kohden. 2 (CPU) x 4 (muistikampaa) x 32 Gt on 256 Gt. 1,5 V DDR3-muistia ei voi samaan aikaan käyttää, joten hyllyssä on lähes 200 gigaa käyttämätöntä muistia!

Kiinnitin jo aiemmin huomiota SSD-levyjen reippaasti halvempiin hintoihin, mutta merkit olivat outoja ja uusia (joku Somnabulist (unissakävelijä!) oli eräs). Jokunen viikko sen jälkeen oli tuttu merkki ja lähes yhtä halvat hinnat. Tilasin 3 kpl KingSpecin 512-gigaisia ja 2,5-tuumaisia yhteishintaan 76 €. Kaksi niistä tulee korvaamaan 300-gigaiset RAID1-SAS-levyt. Odottavat vielä lähtöä Kiinasta.

RHEL 9 ja tuulettimien nopeussäätö

fand 0.9 oli system V init-skripti, joka toimi hyvin vielä Centos 7:ssä, mutta RHEL 9:ssä ei. Versio 0.99 on sen takia systemd-palvelu, mutta myös ssh vaati säätöjä. En ole varma oliko seuraava lisäys lopulta tarpeellinen, mutta sillä pääsi hieman eteenpäin:

[root@rk18 ~]# cat .ssh/config
Host 192.168.0.122
##Legacy changes
       KexAlgorithms +diffie-hellman-group1-sha1
       HostKeyAlgorithms +ssh-dss,ssh-rsa
       Ciphers +aes128-cbc

Suunnilleen samaa yritin komentorivilläkin: “ssh -oPubkeyAcceptedAlgorithms=+ssh-dss 192.168.0.122”, mutta RHEL 9:ssä on parannettu turvallisuutta: “Disabled TLS and SSH algorithms using SHA-1, with an exception of SHA-1 usage in Hash-based Message Authentication Codes (HMACs).” (kopioitu version 9 Release Notes‘ista). Ratkaisu löytyi RH:n Knowledgebasesta, joka vaatii kirjautumisen, otsikolla SSH from RHEL 9 to RHEL 6 systems does not work. Jos ssh valittaa: “ssh_dispatch_run_fatal: Connection to 1.2.3.4 port 22: error in libcrypto” ja tässä tapauksessa, kun palvelimena on iLO eikä RHEL 6, ei palvelimen puolella ole ainakaan helppoa tehdä säätöjä, on säätö tehtävä asiakaspäässä RHEL 9:ssä ja se tehdään komennolla:

[root@rk18 rpmbuild]#  update-crypto-policies --set DEFAULT:SHA1

dnf taitaa tuonkin osata asentaa itse, jos se puuttuu ja antaa luvan, mutta “dnf install crypto-policies-scripts” sen viimeistään hoitaa.

Paketit ovat:

Ennen kuin tuon voi ottaa käyttöön, on syytä varmistaa, että ssh-yhteys toimii ja iLO:on on asennettu pääkäyttäjän ssh-avain, se onnistuu selaimella:

Kun ssh-yhteys on todettu toimivaksi, palvelun voi käynnistää komennolla “systemctl start fand”, tarkistaa toiminta:

systemd seuraa palvelujen käyttämää prosessoriaikaakin.

ja lopulta laittaa käynnistymään aina koneen käynnistyessä komennolla “systemctl enable fand”.