Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%
Primul prototip de server solar cu controller de încărcare. Foto: solar.lowtechmagazine.com

În septembrie 2018, un entuziast de la Low-tech Magazine a lansat un proiect de „server web cu tehnologie scăzută”. Obiectivul a fost de a reduce consumul de energie atât de mult încât un server self-hosted de acasă să poată funcționa cu un singur panou solar. Aceasta nu este o sarcină simplă, deoarece site-ul trebuie să funcționeze 24 de ore pe zi. Să vedem ce a ieșit în final.

Puteți accesa serverul solar.lowtechmagazine.com, verifica consumul actual de energie și nivelul de încărcare al bateriei. Site-ul este optimizat pentru un număr minim de cereri pe pagină și un trafic minim, astfel că ar trebui să reziste la un vârf de accesări de pe Habr. Potrivit calculului dezvoltatorului, consumul de energie pentru un vizitator unic este de 0,021 W⋅h.

Cu puțin înainte de zorii zilei de 31 ianuarie 2020, îi mai rămânea 42% din încărcarea bateriei. Zorile în Barcelona sunt la 8:04 ora locală, iar după aceea ar trebui să curgă curentul de la panoul solar.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

De ce?

Acum zece ani, experții previzionau, că dezvoltarea internetului contribuie la „dematerializarea” societății, digitalizarea generalizată — și, ca urmare, reducerea consumului total de energie. S-au înșelat. De fapt, internetul însuși a solicitat cantități enorme de energie, iar aceste cantități continuă să crească.

Companiile IT au lansat inițiative pentru a trece la surse alternative de energie, dar acest lucru este imposibil în prezent. Toate centrele de date consumă de trei ori mai multă energie decât generează toate instalațiile solare și eoliene din lume. Și mai rău, producția și înlocuirea regulată a panourilor solare și a turbinelor eoliene de asemenea, necesită energie, așadar, renunțarea la combustibilii fosili (petrol, gaz, uraniu) este în prezent pur și simplu imposibilă. Dar aceste resurse nu vor dura mult, așa că va trebui să ne gândim la cum să trăim din surse regenerabile. Inclusiv funcționarea infrastructurii computerizate, inclusiv serverele web.

Low-tech Magazine consideră o problemă umflarea prea rapidă a paginilor web. Între 2010 și 2018, dimensiunea medie a unei pagini a crescut de la 0,45 MB la 1,7 MB, iar pentru site-urile mobile — de la 0,15 MB la 1,6 MB, conform unei estimări conservatoare.

Creșterea volumului de trafic depășește progresul în eficiența energetică (energia necesară pentru a transfera 1 megabyte de informație), ceea ce determină o creștere constantă a consumului de energie al internetului. Site-urile mai grele și mai împovărate nu doar că sporesc sarcina infrastructurii de rețea, dar scurtează și „ciclul de viață” al calculatoarelor și smartphone-urilor, care trebuie aruncate mai des și produse noi, ceea ce de asemenea un proces destul de consumator de energie.

Și, desigur, creșterea sarcinii este generată de stilul de viață: oamenii petrec aproape tot timpul pe internet și se bazează în mare măsură pe diferite servicii web. Societatea modernă este deja greu de imaginat fără infrastructura IT în cloud (rețele sociale, mesagerie, e-mail etc.)

Configurația serverului și a site-ului

În această articole este detaliată configurația hardware și stiva software a serverului web.

Computer pe un singur circuit Olimex Olinuxino A20 Lime 2 selectat pentru consumul redus de energie și caracteristicile suplimentare utile, cum ar fi prezența unui cip de management al energiei AXP209. Acesta permite solicitarea de statistici cu privire la tensiunea și curentul curent de pe placă și baterie. Cipul comută automat alimentarea între baterie și portul DC, unde curge curentul de la panoul solar. Astfel, este posibilă alimentarea neîntreruptă a serverului cu suport pentru baterie.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%
Olimex Olinuxino A20 Lime 2

Inițial, ca baterie a fost ales o baterie litiu-polimer cu o capacitate de 6600 mA⋅h (aproximativ 24 Wh), apoi a fost instalată o baterie plumb-acid de 84,4 Wh.

Sistemul de operare se încarcă de pe un card SD. Deși OS ocupă mai puțin de 1 GB, iar un site web static aproximativ 30 MB, nu a avut sens economic să se cumpere un card mai mic de 16 GB Class 10.

Serverul este conectat la rețea printr-o conexiune de acasă de 100 Mbps în Barcelona și un router de consum standard. I s-a rezervat o adresă IP statică. Practic, oricine poate ridica un astfel de site în apartamentul său, este nevoie doar să se schimbe ușor configurația firewall-ului pentru a face forwarding porturilor la IP-ul local:

Port 80 la 80 pentru HTTP
Port 443 la 443 pentru HTTPS
Port 22 la 22 pentru SSH

Sistem de operare Armbian Stretch bazat pe distribuția Debian și nucleul SUNXI, care a fost dezvoltat pentru single-board-uri cu cipuri AllWinner.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%
Panou solar de 50 de wați pentru server web și un panou de 10 wați pentru iluminarea livingului în apartamentul autorului

Site-ul static a fost generat de sistemul Pelican (generator de site-uri pe Python). Site-urile statice se încarcă mai repede și nu generează o presiune pe CPU, de aceea sunt mult mai eficiente decât paginile generatoare dinamice, din punct de vedere al consumului de energie. Codul sursă al temei se. aici.

Un aspect foarte important este comprimarea imaginilor, deoarece fără această optimizare este practic imposibil să faci paginile web mai mici de 1 megabyte. Pentru optimizare, s-a decis să se transforme fotografiile în imagini în tonuri de gri. De exemplu, iată o fotografie cu recepționere de telefon din secolul trecut. 253 KB.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Iată o imagine optimizată în tonuri de gri cu dimensiunea 36,5 KB cu trei culori (negru, alb, gri). Datorită iluziei optice, pare că numărul culorilor este mai mare de trei.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Am ales fotografiile în tonuri de gri nu doar pentru optimizarea dimensiunii (ceea ce este o alegere destul de discutabilă), ci și pentru motive estetice. Această tehnică veche de procesare a imaginilor are anumite trăsături stilistice, astfel încât site-ul a primit, în vreun fel, un design unic.

623 ilustrații de pe site-ul revistei Low-tech Magazine, după optimizare, au fost reduse ca dimensiune de la 194,2 MB la 21,3 MB, adică cu 89%.

Toate articolele vechi au fost convertite în Markdown pentru a facilita scrierea de noi articole, precum și pentru a simplifica backup-ul prin. git. Au fost eliminate toate scripturile și trackerele de pe site, precum și logourile. Se folosește fontul implicit al browserului clientului. Ca „logo”, numele revistei este scris cu litere mari cu o săgeată spre stânga: LOW←TECH MAGAZINE. În total 16 bytes în loc de imagine.

În cazul unei perioade de nefuncționare, a fost organizată posibilitatea de „citire offline”: textele și imaginile sunt exportate într-un RSS feed. Este activată cache-izarea 100% a conținutului, inclusiv HTML.

O altă optimizare este activarea setării HTTP2 în nginx, ceea ce reduce puțin traficul și scurtează timpul de încărcare a paginilor, comparativ cu HTTP/1.1. În tabel sunt comparate rezultatele pentru cinci pagini diferite.

| | 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 |
| Imagini | 9 | 21 | 11 | 19 | 23 |
| economii | 11% | 21% | 0% | 4% | 18% |

Configurația completă 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;
}

Rezultatele celor 15 luni de activitate

În perioada 12 decembrie 2018 - 28 noiembrie 2019, serverul a înregistrat uptime de 95,26%. Aceasta înseamnă că, din cauza vremii nefavorabile, timpul de nefuncționare în acest an a fost de 399 de ore.

Dar, dacă nu luăm în considerare ultimele două luni, timpul de funcționare fără întreruperi a fost de 98,2%, iar timpul de nefuncționare a fost de doar 152 de ore, spun dezvoltatorii. Timpul de funcționare fără întreruperi a scăzut la 80% în ultimele două luni, când consumul de energie a crescut din cauza update-ului software-ului. În fiecare noapte, site-ul a fost oprit timp de câteva ore.

Conform statisticilor, pe parcursul unui an (între 3 decembrie 2018 și 24 noiembrie 2019), consumul de energie electrică al serverului a fost de 9,53 kWh. S-au înregistrat pierderi semnificative în sistemul fotovoltaic din cauza conversiei tensiunii și descărcării bateriei. Controlerul solar a arătat un consum anual de 18,10 kWh, ceea ce indică o eficiență a sistemului de aproximativ 50%.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%
Schema simplificată. Nu sunt prezentate convertorul de tensiune de la 12 la 5 volți și contorul de amperi-ore pentru baterii.

În perioada studiată, site-ul a fost vizitat de 865.000 de vizitatori unici. Incluzând toate pierderile de energie din instalația solară, consumul de energie pe un vizitator unic a fost de 0,021 Wh. Astfel, o kilowatt-oră de energie solară generată este suficientă pentru a deservi aproape 50.000 de vizitatori unici.

Pe durata experimentului, au fost testate panouri solare de diferite dimensiuni. În tabel sunt prezentate calculele privind timpul necesar pentru a încărca bateriile de diverse capacități utilizând panouri solare de diferite dimensiuni.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Puterea medie consumată de serverul web în primul an, inclusiv toate pierderile de energie, a fost de 1,97 W. Calculul arată că pentru a menține website-ul noaptea în cea mai scurtă noapte a anului (8 ore și 50 de minute, 21 iunie) sunt necesare 17,40 Wh de putere de stocare, iar în cea mai lungă noapte (14 ore și 49 de minute, 21 decembrie) sunt necesare 29,19 Wh.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Deoarece bateriile cu plumb-acid nu trebuie descărcate sub jumătate din capacitate, serverul necesită o baterie de 60 Wh pentru a supraviețui celei mai lungi nopți cu iluminare optimă în timpul zilei (2×29,19 Wh). Marea majoritate a anului, sistemul a funcționat cu o baterie de 86,4 Wh și un panou solar de 50 de wați, atingând astfel uptime-ul menționat de 95-98%.

Uptime 100%

Pentru un uptime de 100%, este necesară creșterea capacității bateriilor. Pentru a compensa o zi cu vreme foarte rea (fără o generare semnificativă de energie electrică), sunt necesare 47,28 Wh (24 de ore × 1,97 wați) de stocare.

În perioada 1 decembrie 2019 - 12 ianuarie 2020, sistemul a fost dotat cu o baterie de 168 W, care are o capacitate practică de stocare de 84 Wh. Această capacitate este suficientă pentru a menține funcționarea site-ului timp de două nopți și o zi. Configurația a fost testată în cea mai întunecată perioadă a anului, dar vremea a fost relativ bună - iar în această perioadă, timpul de funcționare fără defecțiuni a fost de 100%.

Dar pentru a garanta o disponibilitate de 100% pe parcursul mai multor ani, va trebui să se ia în considerare cel mai prost scenariu, când vremea rea persistă câteva zile. Calculul arată: pentru a menține site-ul online timp de patru zile cu o generare de energie scăzută sau nulă, va fi necesară o baterie cu plumb-acid cu o capacitate de 440 Wh, adică de dimensiunea unei baterii auto.

În practică, în condiții meteorologice favorabile, o baterie cu plumb-acid de 48 Wh va menține funcționarea serverului timp de o noapte, din martie până în septembrie. O baterie de 24 Wh va menține serverul maxim 6 ore, ceea ce înseamnă că se va opri în fiecare noapte, deși la ore diferite, în funcție de lună.

În general, unele site-uri nu trebuie să funcționeze pe timp de noapte, când numărul vizitatorilor este minim, consideră cei de la Low-tech Magazine. De exemplu, dacă este o publicație locală de oraș, la care nu accesează vizitatori din alte fusuri orare, ci doar localnici.

Așadar, pentru site-uri cu trafic diferit și timp de funcționare diferit sunt necesare baterii de capacitate diferită și panouri solare de dimensiuni diverse.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Autorul prezintă un calcul al energiei necesare pentru producția panourilor solare (energia îngropată) și cât se obține dacă se împarte această cantitate la durata de viață estimată de 10 ani.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Astfel, se poate calcula echivalentul combustibililor fosili cheltuiți pentru producerea și exploatarea panourilor. De la Low-tech Magazine s-a obținut că, în primul an de funcționare, sistemul lor (panou de 50 W, baterie de 86,4 Wh) a „generat” aproximativ 9 kg de emisii sau echivalentul arderii a 3 l de benzină: aproximativ cât consumă o mașină personală pe o distanță de 50 km.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

Dacă un server nu este alimentat de panouri solare, ci de rețeaua electrică generală, atunci emisiile echivalente sunt de aproximativ șase ori mai mici: 1,54 kg (în energetică spaniolă, cotele de energie alternativă și de centrale nucleare sunt ridicate). Totuși, aceasta nu este o comparație complet corectă, scrie autorul, deoarece ia în considerare energia încorporată a infrastructurii solare, dar nu ia în considerare acest indicator pentru rețeaua electrică generală, adică costurile de construcție și întreținere.

Îmbunătățiri suplimentare

În timp, s-au realizat o serie de optimizări care au redus consumul de energie al serverului. De exemplu, la un moment dat, dezvoltatorul a observat că 6,63 TB dintr-un total de 11,15 TB de trafic este generat de o implementare greșită a unui RSS feed, care extrăgea conținutul la fiecare câteva minute. După corectarea acestei erori, consumul de energie al serverului (fără a lua în considerare pierderile de energie) a scăzut de la 1,14 W la aproximativ 0,95 W. Câștigul poate părea mic, dar diferența de 0,19 W reprezintă 4,56 watt-ore pe zi, ceea ce corespunde cu peste 2,5 ore de funcționare autonomă a serverului.

În prima anul, eficiența a fost de doar 50%. Pierderile au fost observate în timpul încărcării și descărcării acumulatorului (22%), precum și la conversia tensiunii de la 12 V (sistemul fotovoltaic solar) la 5 V (USB), unde pierderile pot ajunge până la 28%. Dezvoltatorul recunoaște că are un convertor de tensiune neoptimizat (un controler fără USB integrat), așa că acest aspect poate fi optimizat sau se poate trece la o instalație solară de 5V.

Pentru a crește eficiența stocării energiei, acumulatorii cu plumb-acid pot fi înlocuiți cu baterii litiu-ion mai scumpe, care au pierderi de încărcare/descărcare mai mici (<10%). Acum, designerul ia în considerare o sistem de stocare a energiei sub formă de aer comprimat (CAES), care are o durată de viață de zeci de ani, ceea ce înseamnă o amprenta de carbon mai mică pentru producerea sa.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%
Baterie compactă de energie pe bază de aer comprimat, sursa

Se ia în considerare instalarea unei turbine eoliene suplimentare (aceasta poate fi fabricată din lemn) și instalarea unui tracker solar pentru a orienta panourile spre soare. Tracker-ul permite o creștere a producției de electricitate cu 30%.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%

O altă modalitate de a îmbunătăți eficiența sistemului este scalarea acestuia. Găzduind mai multe site-uri web pe server și lansând mai multe servere. Astfel, consumul de energie pe fiecare site va scădea.

Un server web de acasă pe energie solară a funcționat timp de 15 luni: uptime 95,26%
Compania de hosting solar. Ilustrație: Diego Marmolejo

Dacă acoperi tot balconul apartamentului cu panouri solare și deschizi o companie de hosting web solar, costurile pe fiecare client vor fi semnificativ mai mici decât pentru un singur site web: economii de scară.

În general, acest experiment demonstrează că, sub anumite restricții, infrastructura IT poate funcționa complet pe surse de energie regenerabilă.

Teoretic, un astfel de server ar putea chiar să se descurce fără baterii, dacă este reflectat în alte părți ale lumii. De exemplu, instalând oglinzi în Noua Zeelandă și Chile. Acolo, panourile solare vor funcționa când este noapte în Barcelona.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster