Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%
Prvý prototyp slnečného servera s regulátorom nabíjania. Foto: solar.lowtechmagazine.com

V septembri 2018 nadšenec z Low-tech Magazine spustil projekt „nízkotechnologického“ webového servera. Úlohou bolo znížiť spotrebu energie tak, aby domácemu self-hosted serveru stačila jedna slnečná panel. Nie je to jednoduché, pretože webová stránka musí fungovať 24 hodín denne. Pozrime sa, čo sa nakoniec podarilo.

Môžete navštíviť server solar.lowtechmagazine.com, skontrolovať aktuálnu spotrebu energie a úroveň nabitia batérie. Webová stránka je optimalizovaná na minimálny počet požiadaviek z stránky a minimálny prevádzkový tok, takže by mala zvládnuť skok návštevnosti z Habr. Podľa výpočtov vývojára je energia na jedného unikátneho návštevníka 0,021 W⋅h.

Nedlho pred svitaním 31. januára 2020 mu zostalo 42 % nabitia batérie. Svitanie v Barcelone je o 8:04 miestneho času, potom by mal prísť prúd zo slnečného panela.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Prečo?

Pred desiatimi rokmi experti predpovedali, že rozvoj internetu prispeje k „dematerializácii“ spoločnosti, celkovej digitalizácii — a ako dôsledok k zníženiu celkovej spotreby energie. Mýlili sa. V skutočnosti internet sám požadoval obrovské objemy energie, a tie objemy naďalej rastú.

IT spoločnosti spustili iniciatívy na prechod na alternatívne zdroje energie, ale to je v súčasnosti nemožné. Všetky dátové centrá spotrebujú trikrát viac energie, než generujú všetky slnečné a veterné zariadenia na svete. Horšie je, že výroba a pravidelná výmena slnečných panelov a veterných turbín tiež vyžaduje energiu, preto je dnes jednoducho nemožné vzdať sa fosílnych palív (ropa, plyn, urán). Ale tieto rezervy na dlhé pôsobenie nebudú stačiť, takže nevyhnutne musíme premýšľať o tom, ako žiť na obnoviteľných zdrojoch. Vrátane prevádzky počítačovej infraštruktúry, vrátane webových serverov.

Low-tech Magazine považuje problémom príliš rýchle nafukovanie webových stránok. Od roku 2010 do 2018 sa priemerná veľkosť stránky zvýšila z 0,45 MB na 1,7 MB, a na mobilných stránkach — z 0,15 MB na 1,6 MB, podľa konzervatívneho odhadu.

Zvýšenie objemov toku predbehne pokrok v energetickej efektívnosti (energia potrebná na prenos 1 megabajtu informácií), čo spôsobuje neustály rast energetickej náročnosti internetu. Ťažšie a zaťažené stránky nielen zvyšujú záťaž na sieťovú infraštruktúru, ale tiež skracujú "životný cyklus" počítačov a smartfónov, ktoré je potrebné častejšie vyhadzovať a vyrábať nové, čo tiež je dosť energeticky náročný proces.

Samozrejme, zvýšená záťaž je spôsobená aj spôsobom života: ľudia takmer všetok čas trávia online a do veľkej miery sa spoliehajú na rôzne webové služby. Moderné spoločnosti si už len ťažko predstaviť bez cloudovej IT infraštruktúry (sociálne siete, messengery, email atď.)

Konfigurácia servera a webovej stránky

V tomto článku podrobne popisuje hardvérovú konfiguráciu a softvérový stack webového servera.

Jednoplatni počítač Olimex Olinuxino A20 Lime 2 bol vybraný kvôli nízkej energetickej náročnosti a užitočným ďalším funkciám, ako je prítomnosť čipu na správu napájania AXP209. Umožňuje žiadať štatistiku o aktuálnom napätí a prúde z dosky a batérie. Čip automaticky prepína napájanie medzi batériou a DC portom, kam prúdi energia zo slnečnej panelu. Tým sa zabezpečuje neprerušované napájanie servera s podporou batérie.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%
Olimex Olinuxino A20 Lime 2

Pôvodne bola ako batéria vybraná lítium-polymérová batéria s kapacitou 6600 mA⋅h (asi 24 Wh), neskôr bola nahradená kyselinovo-olovenou batériou s kapacitou 84,4 Wh.

Operačný systém sa načíta z SD karty. Hoci OS zaberá neviac ako 1 GB a statická webová stránka okolo 30 MB, neexistoval ekonomický zmysel kupovať kartu menšiu ako Class 10 16 GB.

Server sa pripája na sieť cez 100-megabitové domáce pripojenie v Barcelone a štandardný spotrebiteľský router. Pre neho je rezervovaná statická IP adresa. Prakticky každý môže zdvihnúť takúto stránku vo svojom byte, stačí trochu zmeniť nastavenia firewallu na presmerovanie portov na lokálnu IP:

Port 80 na 80 pre HTTP
Port 443 na 443 pre HTTPS
Port 22 na 22 pre SSH

Operačný systém Armbian Stretch na báze distribúcie Debian a jadra SUNXI, ktorý bol vyvinutý pre jednoplatničky s čipmi AllWinner.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%
50-wattový solárny panel pre webový server a 10-wattový panel pre osvetlenie obývacej izby v byte autora

Statická stránka bola generovaná systémom Pelican (generátor webových stránok na Python). Statické webové stránky sa načítajú rýchlejšie a nezapĺňajú CPU, takže sú efektívnejšie ako dynamicky generované stránky, z hľadiska spotreby energie. Zdrojový kód šablóny sa nachádza tu.

Veľmi dôležitým aspektom je kompresia obrázkov, pretože bez tejto optimalizácie je prakticky nemožné zmenšiť webové stránky na menej ako 1 megabajt. Pre optimalizáciu sa rozhodlo previesť fotografie na polotónové obrázky. Na ukážku, tu je fotografia dievčat-telefonistiek na prepínači z minulého storočia, 253 KB.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

A tu je optimalizovaný polotónový obrázok s veľkosťou 36,5 KB so tromi farbami (čierna, biela, šedá). Vďaka optickej ilúzii sa divákovi zdá, že počet farieb je väčší ako tri.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Polotónové fotografie boli vybrané nielen na optimalizáciu veľkosti (rozhodnutie nie celkom isté), ale aj z estetických dôvodov. Táto stará technika spracovania obrázkov má určité štýlové charakteristiky, takže web dostal v niektorých ohľadoch unikátny dizajn.

623 ilustrácie na stránke časopisu Low-tech Magazine sa po optimalizácii zmenšili zo 194,2 MB na 21,3 MB, teda o 89%.

Všetky staré články boli konvertované do Markdownu na zjednodušenie písania nových článkov, ako aj pre jednoduchú zálohu prostredníctvom git. Zo stránky boli odstránené všetky skripty a trackery, ako aj logo. Používa sa predvolený font v prehliadači klienta. Ako "logo" — názov časopisu písaný veľkými písmenami so šípkou doľava: LOW←TECH MAGAZINE. Celkom 16 bajtov namiesto obrázka.

Na prípad výpadku je pripravená možnosť "offline čítania": texty a obrázky sa exportujú do RSS feedu. Zapnuté je cacheovanie 100% obsahu, vrátane HTML.

Ďalšou optimalizáciou je aktivácia nastavenia HTTP2 v nginx, čo mierne znižuje prenos a skracuje čas načítania stránok v porovnaní s HTTP/1.1. V tabuľke sú porovnané výsledky pre päť rôznych stránok.

| | FP | WE | HS | FW | CW |
|----------|-------|-------|-------|-------|-------|
| HTTP/1.1 | 1.46s | 1.87s | 1.54s | 1.86s | 1.89s |
| HTTP2 | 1.30s | 1.49s | 1.54s | 1.79s | 1.55s |
| Images | 9 | 21 | 11 | 19 | 23 |
| savings | 11% | 21% | 0% | 4% | 18% |

Úplná konfigurácia nginx:

root@solarserver: /var/log/nginx# cat /etc/nginx/sites-enabled/solar.lowtechmagazine.com

# Expires map
map $sent_http_content_type $expires {
default off;
text/html 7d;
text/css max;
application/javascript max;
~image/ max;
}

server {
listen 80;
server_name solar.lowtechmagazine.com;

location / {
return 301 https://$server_name$request_uri;
}
}

server{
listen 443 ssl http2;
server_name solar.lowtechmagazine.com;

charset UTF-8; #improve page speed by sending the charset with the first response.

location / {
root /var/www/html/;
index index.html;
autoindex off;
}


#Caching (save html pages for 7 days, rest as long as possible, no caching on frontpage)
expires $expires;

location @index {
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-cache, no-store';
etag off;
expires off;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /var/www/;
#}

#Compression

gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;


#Caching (save html page for 7 days, rest as long as possible)
expires $expires;

# Logs
access_log /var/log/nginx/solar.lowtechmagazine.com_ssl.access.log;
error_log /var/log/nginx/solar.lowtechmagazine.com_ssl.error.log;

# SSL Settings:
ssl_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/solar.lowtechmagazine.com/privkey.pem;

# Improve HTTPS performance with session resumption
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

# Enable server-side protection against BEAST attacks
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;

# Disable SSLv3
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

# Lower the buffer size to increase TTFB
ssl_buffer_size 4k;

# Diffie-Hellman parameter for DHE ciphersuites
# $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
ssl_dhparam /etc/ssl/certs/dhparam.pem;

# Enable HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";

# Enable OCSP stapling (http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox)
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
resolver 87.98.175.85 193.183.98.66 valid=300s;
resolver_timeout 5s;
}

Ciele 15 mesiacov práce

V období od 12. decembra 2018 do 28. novembra 2019 server vykázal prevádzku 95,26%. To znamená, že kvôli zlému počasiu došlo k výpadku počas roka, ktorý činil 399 hodín.

Avšak ak ignorujeme posledné dva mesiace, prevádzková doba dosiahla 98,2%, pričom výpadok bol len 152 hodín, píšu vývojári. Prevádzková doba klesla na 80% v posledných dvoch mesiacoch, keď sa spotreba energie zvýšila kvôli aktualizácii softvéru. Každú noc bola stránka nedostupná na niekoľko hodín.

Podľa štatistík, za rok (od 3. decembra 2018 do 24. novembra 2019) spotreba elektrickej energie serverom dosiahla 9,53 kWh. Boli zaznamenané značné straty v fotovoltaickom systéme kvôli prevodu napätia a vybitiu batérie. Solárny regulátor ukázal ročnú spotrebu 18,10 kWh, čo znamená účinnosť systému okolo 50%.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%
Zjednodušený diagram. Na ňom nie sú zobrazené napäťový prevodník z 12 na 5 voltov a batériový ukazovateľ ampér-hodín.

Počas skúmaného obdobia sa na webovú stránku dostalo 865 000 jedinečných návštevníkov. Zohľadňujúc všetky straty energie v slnečnej inštalácii, energia na jedného jedinečného návštevníka dosiahla 0,021 Wh. Takže jeden kilowatt-hodina vyrábanej slnečnej energie stačí na obsluhu takmer 50 000 jedinečných návštevníkov.

Počas experimentu sa testovali slnečné panely rôznych rozmerov. V tabuľke sú uvedené výpočty, za aký čas sa nabíjajú batérie rôznej kapacity pri použití slnečných panelov rôznych rozmerov.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Priemerný spotrebovávaný výkon webového servera počas prvého roka, vrátane všetkých energetických strát, dosiahol 1,97 W. Výpočet ukazuje, že na udržanie webovej stránky počas najkratšej noci roka (8 hodín 50 minút, 21. júna) je potrebných 17,40 watt-hodín kapacity ukladania a počas najdlhšej noci (14 hodín 49 minút, 21. decembra) je potrebných 29,19 Wh.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Keďže olovené akumulátorové batérie by sa nemali vybíjať pod polovicu kapacity, server potrebuje batériu s kapacitou 60 Wh, aby prežil najdlhšiu noc pri optimálnom osvetlení cez deň (2×29,19 Wh). Väčšinu roka systém fungoval s batériou 86,4 Wh a 50-wattovým slnečným panelom, pričom sa dosiahol vyššie uvedený uptime 95-98%.

Uptime 100%

Na dosiahnutie uptime 100% je potrebné zvýšiť kapacitu batérií. Pre kompenzáciu jedného dňa veľmi zlého počasia (bez významnej generácie elektrickej energie) je potrebné 47,28 watt-hodín (24 hodín × 1,97 watt) úložného priestoru.

Od 1. decembra 2019 do 12. januára 2020 bola do systému dodaná 168-wattová batéria, ktorá má praktickú kapacitu ukladania 84 watthodín. Tieto úložisko je dostatočné na podporu prevádzky webovej stránky po dobu dvoch nocí a jedného dňa. Konfiguráciu testovali v najtmavšom období roka, ale počasie bolo relatívne dobré — počas uvedeného obdobia bola doba bezchybnej prevádzky 100%.

Ale aby sa zabezpečilo 100% prevádzkový čas počas niekoľkých rokov, bude potrebné zohľadniť aj najhorší scenár, keď zlé počasie trvá niekoľko dní. Výpočty ukazujú: na to, aby webová stránka zostala online počas štyroch dní s nízkou alebo nulovou produkciou energie, bude potrebná olovená kyselinová batéria s kapacitou 440 watthodín, čo je veľkosť automobilovej batérie.

V praxi pri dobrom počasí olovená kyselinová batéria s kapacitou 48 W⋅h podporí prevádzku servera počas noci od marca do septembra. Batéria na 24 W⋅h udrží server najviac 6 hodín, teda sa vypne každú noc, avšak v rôznom čase, v závislosti od mesiaca.

Vo veľkej miere niektoré webové stránky nemusia fungovať v noci, keď je počet návštevníkov minimálny, tvrdia chlapci z Low-tech Magazine. Napríklad, ak ide o regionálny mestský časopis, kam nechodí nikto z iných časových pásiem, iba miestni obyvatelia.

To znamená, že pre webové stránky s rôznou návštevnosťou a rôznou dobou prevádzky sú potrebné batérie s rôznou kapacitou a slnečné panely rôznych rozmerov.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Autor uvádza výpočet, koľko energie je potrebné na výrobu samotných solárnych panelov (embodied energy) a koľko získame, ak túto hodnotu delíme očakávanou dobou životnosti 10 rokov.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Tieto údaje umožňujú vypočítať ekvivalent fosílnych palív, ktoré boli vynaložené na výrobu a prevádzku panelov. Podľa Low-tech Magazine zistili, že v prvom roku prevádzky ich systém (panel 50 W, batéria 86,4 W⋅h) "vygeneroval" približne 9 kg emisií, čo zodpovedá spaľovaniu 3 litrov benzínu: približne toľko, koľko osobné auto vyprodukuje za 50 km jazdy.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Ak server nie je napájaný zo slnečných panelov, ale z verejnej energetickej siete, emisie sú približne šesťkrát nižšie: 1,54 kg (v španielskej energetike je vysoký podiel alternatívnych zdrojov a jadrových elektrární). To však nie je úplne presné porovnanie, píše autor, pretože zohľadňuje embodied energy slnečnej infraštruktúry, no nezohľadňuje tento ukazovateľ pre verejnú energetickú sieť, teda náklady na jej výstavbu a údržbu.

Ďalšie vylepšenia

V priebehu času bolo vykonaných niekoľko optimalizácií, ktoré znížili spotrebu energie servera. Napríklad, v určitom momente vývojár zistil, že 6,63 TB z celkového objemu 11,15 TB prevádzkového toku generuje jedna nefunkčná implementácia RSS feedu, ktorá načítava obsah každých niekoľko minút. Po oprave tejto chyby sa spotreba energie servera (bez zohľadnenia energetických strát) znížila z 1,14 W na približne 0,95 W. Zisk sa môže zdať malý, no rozdiel 0,19 W predstavuje 4,56 watthodín za deň, čo zodpovedá viac ako 2,5 hodinám prevádzky servera na batériu.

V priebehu prvého roku dosiahla účinnosť iba 50%. Straty sa vyskytli pri nabíjaní a vybíjaní batérie (22%) a pri konverzii napätia z 12 V (solárny fotovoltaický systém) na 5 V (USB), kde straty dosahujú až 28%. Vývojár priznáva, že má neoptimálny menič napätia (regulátor bez zabudovaného USB), preto je možné tento aspekt optimalizovať alebo prejsť na solárny systém 5V.

Na zvýšenie účinnosti ukladania energie je možné nahradiť olovené akumulátory drahšími lítium-iónovými batériami, ktoré majú menšie straty pri nabíjaní/vybíjaní (<10%). Teraz konštruktér zvažuje kompaktný systém ukladania elektrickej energie vo forme stlačeného vzduchu (CAES), ktorý má životnosť desiatky rokov, čo znamená menšiu "uhlíkovú stopu" pri jeho výrobe.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%
Kompaktný akumulátor energie na stlačenom vzduchu, zdroj

zvažuje inštaláciu ďalšej veterné turbíny (môže byť vyrobená z dreva) a inštaláciu solárneho sledovača na otáčanie panelov k slnku. Sledovač umožňuje zvýšiť výrobu elektriny o 30%.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%

Ďalší spôsob, ako zvýšiť efektivitu systému, je jeho škálovanie. Na serveri možno hostiť viac webových stránok a spúšťať viac serverov. Tým sa zníži spotreba energie na každý web.

Domáci webový server na solárne baterky fungoval 15 mesiacov: uptime 95,26%
Spoločnosť solárneho hosting. Ilustrácia: Diego Marmolejo

Ak pokryjete celý balkón bytu solárnymi panelmi a otvoríte spoločnosť solárneho webhostingu, náklady na každého zákazníka budú výrazne nižšie, než pri jedinej webovej stránke: úspora z rozsahu.

Celkově tento experiment demonštruje, že za určitých obmedzení počítačová infraštruktúra môže celkom dobre fungovať na obnoviteľných zdrojoch energie.

Teoreticky by taký server mohol dokonca fungovať bez batérie, ak by sa jeho výkon zrkadlil na iných častiach sveta. Napríklad, ak by ste umiestnili zrkadlá na Novom Zélande a v Čile. Tam budú solárne panely fungovať, keď je v Barcelone noc.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster