Od doby, kdy jsem začala vyvíjet na volné noze, a to je už nějaký ten pátek, používám domácí servery. Původně sloužil vlastně jen jako print a fileserver a šlo jen o další pc s MS systémem. V okamžiku, kdy jsem se seznámila s linuxem, stal se ze serveru zcela pod mou kontrolou nedocenitelný pomocník. Evoluce pak pokračovala logickou cestou – na vlastní server jsem si přesunula i své domény a spustila jsem i vlastní poštovní server a spoustu dalších služeb, které usnadňují vývoj, jako git, RMS a další. Dnes na tomto serveru hostuji více domén, a funguje k mé spokojenosti. A ve skutečnosti už provozuji serverů vícero, kvůli redundanci a především kvůli bezpečnosti.

Toto je díl 17 z 25 seriálu Projekt domácího serveru

Na svém serveru aktuálně provozuji několik desítek webů na zhruba desítce domén. Ke každé doméně server obsluhuje pár mailových schránek dostupných na IMAP serveru i přes webmail. Do softwarové výbavy mého serveru patří pochopitelně ochrana před spammery a antivirus. Jako další služby poskytuje git server a další drobnosti.

Všechny tyhle úkoly zvládá server výborně, přesto se ale většinu času nudí. Takže mě napadlo zaexperimentovat si s využitím nevyužitého strojového času těžbou nějaké kryptoměny. Prvotně sice nepředpokládám, že by se něco takového mohlo vyplatit, nicméně ráda získám vlastní zkušenosti.

Za tímto účelem jsem si vytvořila KVM virtuální server, kterému jsem postupně přiřazovala další a další virtuální CPU jádra. Virtuální jádro reprezentuje díky multi-threadingu půlku fyzického jádra šestijádrového CPU 5 560. Postupně jsem se dopracovala k osmi virtuálním jádrům – tedy 4 fyzickým, dedikovala jsem na tento experiment s těžbou 67% serverového času. Volná dvě jádra zvládnou obsluhovat primární úlohy serveru stále bez potíží.

Volba padla na Monero, především proto, že jej lze efektivně těžit na běžném CPU a méně tak podporuje mě osobně nesympatické těžební farmy.

Vytvořila jsem si Monero peněženku a získala tak svou Monero adresu. Pak jsem si na virtuální server stáhla těžební opensource software xmrig z gitu a zkompilovala jej. Jako pool jsem si vybrala SupportXMR, proč  ne.

Pak jsem to celé spustila:

 

Co na to teplota CPU? Ze svých standardních přibližně 40° vzrostla na nějakých 75°C, spotřeba serveru v DC se zvýšila asi o 50W, což víceméně koresponduje s tabulkou níže, kdy jedno jádro má při zátěži čtyř jader příkon něco kolem 13W. Celkem má v zátěži server spotřebu nějakých 100W, což je na mé poměry dost.

Spotřeba 5 5600 bude jen o něco málo nižší. Zdroj AnandTech

Smysl má těžba samozřejmě výhradně ze situacích, kdy je dost světla na panelech mé fotovoltaické elektrárny – rozhodně nebudu těžit v režimu vybíjení hlavní baterie své elektrárny (v noci), a už vůbec ne na nakupovaný proud. Nejen kvůli ekologii, ale i proto, že by mě tento experiment stál denně cca 0,05kW x 24 x 10Kč = 12Kč denně vzhledem k tomu, že za kWh z Eonu platím letos téměř 10Kč.

Takže je nutné miner nějak řídit.

Xmrig poskytuje HTTP API pro vzdálené řízení, to je nutné aktivovat v konfiguraci:

“http”: {
“enabled”: true,
“host”: “127.0.0.1”,
“port”: PORT,
“access-token”: SECRET,
“restricted”: false
}

Tohle API je bohužel dost stroze dokumentované, naštěstí se mi po troše úsilí podařilo vygůglit pár tipů jak na to.

Z virtuálního stroje se pak dá spustit:

curl –data ‘{“method”:”ACTION”,”id”:1}’ -H “Content-Type: application/json” -H “Authorization: Bearer SECRET” http://127.0.0.1:PORT/json_rpc

Přičemž podporované metody jsou například pause a resume.

Do webového rozhraní valcMonitoru jsem přidala jednoduchý script, který zjišťuje aktuální stav elektrárny a vrací json s atributem minerAllow, který je v situacích, kdy nesvítí slunce nebo nejsou přebytky, roven nule. Svítí-li, nabývá atribut nenulových hodnot úměrných aktuálnímu solárnímu výkonu. Tohle mám pro budoucí rozšíření na plynulou regulaci těžebního výkonu, prozatím se spokojím s pause a resume.

Na fyzickém stroji, který se stará o  všelijakou rutijní otročinu a o NAS, jsem si napsala bash script, který si z elektrárny stáhne hodnotu flagu minerAllow:

FLAG=$(curl -s ‘https://fve.vata.cz/stateJson.php’ | jq -r ‘.”minerAllow”‘)

A pak už jen přes http API na virtuálním stroji s běžícím minerem spustí požadovanou akci.

Hotový script jsem pak přidala do cronu.

Tohle běží uspokojivě, miner běžící na KVM se šesti dedikovanými jádry (50% 5 5600 CPU) s 10GB RAM, dosahuje přes 4KH/s, což skutečně odpovídá zhruba polovině hodnoty banchmarku Monera na tomhle procesoru.

Miner se tedy do jisté míry chová jako vytěžovač přebytků, nicméně jeho 50W je vzhledem k proudovým poměrům mé elektrárny zanedbatelný.

Mimochodem, při současném kurzu Monera tímhle tempem vytěžím zlomek koruny denně, protože dny se s přicházející zimou krátí, a uvidím, zda mi tenhle experiment může teoreticky přispět alespoň poplatek za mou doménu 🙂

Dalším benefitem těžby může být temperování technické místnosti v zimě, což jistě ocení baterky i kočky 🙂

Celý server se v běžném provozu při téhle zátěži chová tak, jak jsem si na něj už zvykla – uživatelé nepoznají, že se na něm něco děje.

Při napájení serveru z elektrárny s běžícím minerem teče přes 4mm2 DC kabeláž k serveru relativně velký proud (>10A), a ten úbytek na vodiči zase začíná vadit. Bylo třeba kabeláž předělat, zvolila jsem rovnou 10mm2. Po úpravě a navýšení hodnot pojistek je ztrátový výkon na vodiči akceptovatelný.

 

Další díly seriálu<< Server 14: Výměna disku za pochoduServer 16: výměna chladiče a poučná zkušenost >>