- Server 1: historie a záměr
- Server 2: koncept UPS
- Server 3: realizace UPS
- Server 4: komponenty UPS
- Server 5: návrh HW pro server
- Server 6: Konstrukce a chlazení
- Server 7: software
- Server 8: zkušenosti
- Server 9: upgrade a zašifrování RAID pole
- Server 10: automatické odemknutí zašifrovaného pole
- Server 11: přechod na RAID6
- Server 12: UPS baterie umřela
- Server 13: upgrade CPU
- Síť
- NAS a zálohovací server
- Server 14: Výměna disku za pochodu
- Server 15: využití zahálejícího výkonu
- Server 16: výměna chladiče a poučná zkušenost
- Server 17: Virtualizace serveru
- Server 18: Racková skříň a montáž
- Server 19: Spuštění rackového serveru
- Server 20: konečně SAS řadič a další výzva
- Server 21: Zálohy reloaded
- Server 22: Výměna základní desky
- Server 23: Rack
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.
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ý.