Il primo prototipo di server solare con controllore di carica. Foto:
Nel settembre 2018, un appassionato di Low-tech Magazine . L'obiettivo era ridurre il consumo energetico a tal punto che un server self-hosted domestico potesse funzionare con un solo pannello solare. Non è semplice, poiché il sito deve essere attivo 24 ore su 24. Vediamo cosa è stato ottenuto alla fine.
Puoi accedere al server , controllare il consumo energetico attuale e il livello di carica della batteria. Il sito è ottimizzato per un numero minimo di richieste per pagina e un traffico ridotto, quindi dovrebbe sopportare un picco di visitatori da Habr. Secondo i calcoli del sviluppatore, il consumo energetico per ogni visitatore unico è di 0,021 W⋅h.
Poco prima dell’alba del 31 gennaio 2020, aveva ancora il 42% di carica della batteria. L'alba a Barcellona è alle 8:04 ora locale, dopodiché dovrebbe iniziare a fluire energia dal pannello solare.

Perché?
Dieci anni fa, gli esperti , che lo sviluppo di internet contribuiva alla "dematerializzazione" della società, alla digitalizzazione universale — e, di conseguenza, alla riduzione del consumo energetico complessivo. Si sbagliavano. In realtà, internet ha richiesto , e queste quantità continuano a crescere.
Le aziende IT hanno avviato iniziative per passare a fonti di energia alternative, ma questo al momento è impossibile. Tutti i data center consumano tre volte più energia di quanta ne generino tutte le installazioni solari e eoliche nel mondo. Peggio ancora, la produzione e la sostituzione regolare di pannelli solari e turbine eoliche , quindi oggi è semplicemente impossibile rinunciare ai combustibili fossili (petrolio, gas, uranio). Ma queste risorse non dureranno a lungo, quindi inevitabilmente dovremo pensare a come vivere di fonti rinnovabili. Compresa l'operatività dell'infrastruttura informatica, inclusi i server web.
Low-tech Magazine l'espansione troppo rapida delle pagine web. Dal 2010 al 2018, la dimensione media di una pagina è aumentata , e per i siti mobili — da 0,15 MB a 1,6 MB, secondo una stima conservativa.
L'aumento dei volumi di traffico (l'energia necessaria per trasmettere 1 megabyte di informazioni), il che provoca una continua crescita del consumo energetico di Internet. I siti più complessi e sovraccaricati non solo aumentano il carico sull'infrastruttura di rete, ma riducono anche il «ciclo di vita» dei computer e degli smartphone, che devono essere sostituiti più frequentemente, il che comporta .
E naturalmente, l'aumento del carico è causato dallo stile di vita stesso: le persone trascorrono quasi tutto il tempo su Internet e fanno molto affidamento su vari servizi web. È difficile immaginare la società moderna senza un'infrastruttura IT basata sul cloud (social network, messenger, email, ecc.)
La configurazione del server e del sito web
In descrive dettagliatamente la configurazione hardware e il software del server web.
Computer a scheda singola scelto per il basso consumo energetico e per funzionalità aggiuntive utili, come la presenza di un chip di gestione dell'alimentazione . Questo chip consente di richiedere statistiche sulla tensione corrente e la corrente dal circuito e dalla batteria. Il chip commuta automaticamente l'alimentazione tra la batteria e il connettore DC, dove arriva la corrente dal pannello solare. In questo modo, è possibile alimentare il server in modo ininterrotto con supporto della batteria.

Olimex Olinuxino A20 Lime 2
Inizialmente, è stata scelta una batteria al litio-polimero da 6600 mAh (circa 24 Wh), poi è stata installata una batteria al piombo-acido da 84,4 Wh.
Il sistema operativo si avvia da una scheda SD. Anche se l'OS occupa non più di 1 GB e un sito web statico circa 30 MB, non aveva senso economico acquistare una scheda più piccola di Class 10 da 16 GB.
Il server si connette a Internet tramite una connessione domestica da 100 megabit a Barcellona e un router standard per consumatori. È riservato un indirizzo IP statico. Praticamente chiunque può creare un sito del genere nel proprio appartamento, è necessario solo modificare leggermente le impostazioni del firewall per il forwarded port sul IP locale:
Porta 80 a 80 per HTTP Porta 443 a 443 per HTTPS Porta 22 a 22 per SSH
Sistema operativo basato su una distribuzione Debian e su un kernel , progettato per i computer a scheda singola con chip AllWinner.

Un pannello solare da 50 watt per il server web e un pannello da 10 watt per l'illuminazione del soggiorno nell'appartamento dell'autore
Il sito statico è stato generato dal sistema (generatore di siti web in Python). I siti statici si caricano più rapidamente e non gravano sulla CPU, quindi sono molto più efficienti delle pagine generate dinamicamente in termini di consumo energetico. Il codice sorgente del tema è. .
Un aspetto molto importante è la compressione delle immagini, poiché senza questa ottimizzazione è praticamente impossibile rendere le pagine web più piccole di 1 megabyte. Per l'ottimizzazione, è stato deciso di convertire le foto in immagini in scala di grigi. Ad esempio, ecco una foto di donne operatrici telefoniche a una centralina del secolo scorso, .

Ecco un'immagine in scala di grigi ottimizzata di dimensioni con tre colori (nero, bianco, grigio). Grazie all'illusione ottica, sembra allo spettatore che il numero dei colori sia maggiore di tre.

Le fotografie in scala di grigi sono state scelte non solo per ottimizzare la dimensione (una scelta piuttosto dubbia), ma anche per motivi estetici. Questa antica tecnica di elaborazione delle immagini ha delle peculiarità stilistiche, così che il sito ha un design unico in un certo senso.
623 illustrazioni sul sito della rivista Low-tech Magazine dopo l'ottimizzazione si sono ridotte da 194,2 MB a 21,3 MB, ovvero dell'89%.
Tutti i vecchi articoli sono stati convertiti in Markdown per semplificare la scrittura di nuovi articoli, oltre che per facilitare i backup tramite . Sono stati rimossi tutti gli script e i tracker dal sito, così come i loghi. Viene usato il font predefinito nel browser del cliente. Come "logo" - il nome della rivista in maiuscolo con una freccia a sinistra: LOW←TECH MAGAZINE. Solo 16 byte invece di un'immagine.
In caso di downtime è stata organizzata la possibilità di "lettura offline": testi e immagini vengono esportati in un feed RSS. È attivata la cache del 100% del contenuto, inclusi HTML.
Un'altra ottimizzazione è l'attivazione della configurazione HTTP2 in nginx, che riduce leggermente il traffico e diminuisce i tempi di caricamento delle pagine, rispetto a HTTP/1.1. Nella tabella vengono confrontati i risultati per cinque diverse pagine.
| | 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 | | Immagini | 9 | 21 | 11 | 19 | 23 | | risparmi | 11% | 21% | 0% | 4% | 18% |
Configurazione completa di nginx:
root@solarserver:/var/log/nginx# cat /etc/nginx/sites-enabled/solar.lowtechmagazine.com
# Mappa delle scadenze
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; #migliora la velocità della pagina inviando il charset con la prima risposta.
location / {
root /var/www/html/;
index index.html;
autoindex off;
}
#Caching (salva le pagine html per 7 giorni, il resto il più a lungo possibile, nessuna cache sulla homepage)
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;
# reindirizza le pagine di errore del server alla pagina statica /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 (salva la pagina html per 7 giorni, il resto il più a lungo possibile)
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;
# Impostazioni SSL:
ssl_certificate /etc/letsencrypt/live/solar.lowtechmagazine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/solar.lowtechmagazine.com/privkey.pem;
# Migliora le prestazioni HTTPS con il ripristino della sessione
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
# Abilita la protezione lato server contro gli attacchi BEAST
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
# Disabilita SSLv3
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# Riduci la dimensione del buffer per aumentare TTFB
ssl_buffer_size 4k;
# Parametro Diffie-Hellman per i cipher DHE
# $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
ssl_dhparam /etc/ssl/certs/dhparam.pem;
# Abilita HSTS (https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security)
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
# Abilita 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;
}Risultati di 15 mesi di attività
Nel periodo dal 12 dicembre 2018 al 28 novembre 2019, il server ha mostrato . Questo significa che a causa di cattive condizioni meteorologiche, il downtime annuale è stato di 399 ore.
Tuttavia, escludendo gli ultimi due mesi, il tempo di operatività è stato del 98,2%, con un downtime totale di solamente 152 ore, riferiscono gli sviluppatori. Il tempo di operatività è sceso all'80% negli ultimi due mesi, quando il consumo energetico è aumentato a causa dell'aggiornamento del software. Ogni notte il sito veniva spento per diverse ore.
Secondo le statistiche, nel corso dell'anno (dal 3 dicembre 2018 al 24 novembre 2019), il consumo di energia del server è stato di 9,53 kWh. Sono state registrate significative perdite nel sistema fotovoltaico a causa della conversione della tensione e della scarica della batteria. Il controller solare ha mostrato un consumo annuo di 18,10 kWh, il che significa un'efficienza del sistema di circa il 50%.

Schema semplificato. Non mostrano il convertitore di tensione da 12 a 5 volt e il contatore della batteria in ampere-ora.
Durante il periodo analizzato, il sito ha ricevuto 865.000 visitatori unici. Incluso tutte le perdite energetiche nell'impianto solare, il consumo di energia per visitatore unico è stato di 0,021 Wh. Quindi, un chilowattora di energia solare generata è sufficiente per servire quasi 50.000 visitatori unici.
Durante il corso dell'esperimento sono stati testati pannelli solari di diverse dimensioni. La tabella mostra i calcoli su quanto tempo impiegheranno a caricarsi batterie di diverse capacità utilizzando pannelli solari di dimensioni diverse.

La potenza media consumata dal server web durante il primo anno, comprese tutte le perdite energetiche, è stata di 1,97 W. Il calcolo mostra che per mantenere il sito web durante la notte più corta dell'anno (8 ore e 50 minuti, 21 giugno) sono necessari 17,40 wattora di capacità di stoccaggio, mentre nella notte più lunga (14 ore e 49 minuti, 21 dicembre) sono necessari 29,19 Wh.

Poiché le batterie al piombo-acido non devono scaricarsi al di sotto della metà della loro capacità, il server richiede una batteria da 60 Wh per sopravvivere alla notte più lunga in condizioni di ottima illuminazione diurna (2×29,19 Wh). La maggior parte dell'anno il sistema ha funzionato con una batteria da 86,4 Wh e un pannello solare da 50 watt, raggiungendo così il suddetto uptime del 95-98%.
Uptime 100%
Per un uptime del 100% è necessario aumentare la capacità delle batterie. Per compensare un giorno di tempo molto brutto (senza generazione significativa di energia elettrica), sono necessari 47,28 wattora (24 ore × 1,97 watt) di stoccaggio.
Dal 1 dicembre 2019 al 12 gennaio 2020, è stata installata una batteria da 168 watt, con una capacità effettiva di immagazzinamento di 84 watt-ora. Questa capacità è sufficiente per mantenere attivo il sito per due notti e un giorno. La configurazione è stata testata nel periodo più buio dell'anno, ma le condizioni meteorologiche erano relativamente buone, e durante questo periodo il tempo di operatività è stato del 100%.
Tuttavia, per garantire un uptime del 100% per diversi anni, è necessario considerare anche lo scenario peggiore, in cui condizioni meteorologiche avverse persistono per diversi giorni. I calcoli mostrano che per mantenere il sito online per quattro giorni con bassa o nessuna generazione di energia, sarà necessaria una batteria al piombo-acido con una capacità di 440 watt-ora, delle dimensioni di una batteria per auto.
In pratica, con buone condizioni meteo, una batteria al piombo-acido da 48 Wh supporterà il server durante la notte da marzo a settembre. Una batteria da 24 Wh durerà al massimo 6 ore, il che significa che il server si spegnerà ogni notte, anche se in orari diversi a seconda del mese.
In generale, alcuni siti non hanno bisogno di funzionare di notte, quando il numero di visitatori è minimo, affermano i ragazzi di Low-tech Magazine. Ad esempio, se si tratta di una pubblicazione locale che non riceve visitatori da altri fusi orari, ma solo da residenti locali.
Ciò significa che siti con diversi livelli di traffico e uptime necessitano di batterie di capacità differente e pannelli solari di dimensioni diverse.


L'autore fornisce un calcolo riguardo a quanta energia è necessaria per la produzione delle stesse pannelli solari (energia incorporata) e quanto si ottiene dividendo questa quantità per il previsto ciclo di vita di 10 anni.

In questo modo, è possibile calcolare l'analogo dei combustibili fossili consumati per la produzione e il funzionamento dei pannelli. Secondo Low-tech Magazine, nel primo anno di funzionamento, il loro sistema (pannello da 50 W, batteria da 86,4 Wh) ha "generato" circa 9 kg di emissioni o l'equivalente bruciando 3 litri di benzina: circa quanto una vettura passeggeri percorre in 50 km.

Se il server non è alimentato da pannelli solari ma dalla rete elettrica generale, l'equivalente delle emissioni risulta essere circa sei volte inferiore: 1,54 kg (nel panorama energetico spagnolo, c'è una grande quota di energia alternativa e nucleare). Tuttavia, questo non è un confronto del tutto corretto, scrive l'autore, poiché tiene conto dell'energia incorporata nelle infrastrutture solari, ma non considera questo dato per la rete elettrica generale, ovvero i costi per la sua costruzione e manutenzione.
Miglioramenti futuri
Nel tempo sono state effettuate varie ottimizzazioni che hanno ridotto il consumo energetico del server. Ad esempio, a un certo punto, lo sviluppatore ha notato che 6,63 TB del traffico totale di 11,15 TB erano generati da un'implementazione errata del feed RSS, che estraeva contenuto ogni pochi minuti. Dopo aver corretto questo bug, il consumo energetico del server (escludendo le perdite di energia) è diminuito da 1,14 W a circa 0,95 W. L'incremento potrebbe sembrare minimo, ma la differenza di 0,19 W corrisponde a 4,56 watt-ora al giorno, cioè più di 2,5 ore di funzionamento autonomo del server.
Nel corso del primo anno, l'efficienza è stata di solo il 50%. Le perdite si sono verificate durante la carica e la scarica della batteria (22%), così come durante la conversione della tensione da 12 V (sistema fotovoltaico) a 5 V (USB), dove le perdite raggiungono fino al 28%. Lo sviluppatore ammette di avere un convertitore di tensione non ottimale (controllore senza USB integrato), quindi è possibile ottimizzare questo aspetto o passare a un'installazione solare a 5V.
Per aumentare l'efficienza di accumulo dell'energia, si possono sostituire le batterie al piombo-acido con batterie agli ioni di litio più costose, che hanno minori perdite di carica/scarica (<10%). Attualmente, il progettista sta considerando un sistema di (CAES), che ha una durata di decenni, il che significa una minore "impronta di carbonio" nella sua produzione.

Batteria compatta di energia ad aria compressa,
Si sta valutando l'installazione di una turbina eolica aggiuntiva (che può essere ) e l'installazione di un tracker solare per orientare i pannelli verso il sole. Il tracker consente di aumentare la produzione di energia elettrica del 30%.

Un altro modo per aumentare l'efficienza del sistema è la sua scalabilità. Gestire più siti web su un server e avviare più server. In questo modo si ridurrà il consumo energetico per ogni sito.

Azienda di hosting solare. Illustrazione: Diego Marmolejo
Se si copre il balcone dell'appartamento con pannelli solari e si avvia un'azienda di hosting web solare, i costi per ogni cliente saranno notevolmente inferiori rispetto a un singolo sito web: risparmi di scala.
In generale, questo esperimento dimostra che, entro certi limiti, l'infrastruttura informatica può funzionare utilizzando fonti di energia rinnovabili.
Teoricamente, un server del genere potrebbe anche funzionare senza batteria, se si effettuasse un mirror in altre parti del mondo. Ad esempio, posizionare specchi in Nuova Zelanda e Cile. Lì i pannelli solari funzionerebbero mentre a Barcellona è notte.
Fonte: habr.com
