Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%
Il primo prototipo di server solare con controller di carica. Foto: solar.lowtechmagazine.com

Nel settembre 2018, un appassionato di Low-tech Magazine ha lanciato un progetto di "server web a bassa tecnologia". L'obiettivo era ridurre il consumo energetico al punto da far funzionare un server domestico self-hosted con un solo pannello solare. Non è facile, poiché il sito deve funzionare 24 ore su 24. Vediamo quale sia stato il risultato finale.

Puoi accedere al server solar.lowtechmagazine.com, controllare l'attuale consumo energetico e il livello di carica della batteria. Il sito è ottimizzato per il minor numero possibile di richieste per pagina e traffico minimo, quindi dovrebbe resistere a un picco di visitatori provenienti da Habr. Secondo i calcoli del designer, il consumo energetico per unico visitatore è di 0,021 Wh.

Poco prima dell'alba del 31 gennaio 2020, aveva il 42% di carica della batteria rimasta. L'alba a Barcellona è alle 8:04 ora locale, dopo di che dovrebbe partire la corrente dal pannello solare.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Perché?

Dieci anni fa, gli esperti prevedevano, che lo sviluppo di Internet portasse a una "dematerializzazione" della società, a una digitalizzazione generale — e, di conseguenza, a una riduzione del consumo energetico totale. Si sbagliavano. In realtà, Internet stesso richiese ingenti quantità di energia, e queste quantità continuano a crescere.

Le aziende IT hanno avviato iniziative per passare a fonti di energia alternative, ma ora è impossibile. Tutti i data center consumano tre volte più energia di quanto generino tutte le installazioni solari e eoliche del mondo. Peggio ancora, la produzione e la sostituzione regolare di pannelli solari e turbine eoliche richiede anch'essa energia, quindi rinunciare ai combustibili fossili (petrolio, gas, uranio) oggi è semplicemente impossibile. Ma queste riserve non dureranno a lungo, quindi dovremo inevitabilmente pensare a come vivere con fonti rinnovabili. Compresa l'operatività delle infrastrutture informatiche, inclusi i server web.

Low-tech Magazine considera un problema l'eccessivo gonfiamento delle pagine web. Dal 2010 al 2018, la dimensione media della pagina è aumentata da 0,45 MB a 1,7 MB, e per i siti mobili — da 0,15 MB a 1,6 MB, secondo una stima conservativa.

L'aumento del traffico supera i progressi in efficienza energetica (energia necessaria per trasmettere 1 megabyte di informazioni), il che causa un costante aumento del consumo energetico di Internet. Siti più pesanti e affollati non solo aumentano il carico sull'infrastruttura di rete, ma accorciano anche il "ciclo di vita" di computer e smartphone, che devono essere smaltiti più spesso e sostituiti, il che è anch'esso un processo molto dispendioso in termini di energia.

E naturalmente, l'aumento del carico è generato dallo stile di vita stesso: le persone trascorrono quasi tutto il loro tempo su Internet e si affidano in gran parte a vari servizi web. Oggi è difficile immaginare la società moderna senza infrastrutture IT basate sul cloud (social network, messaggeri, email, ecc.)

La configurazione del server e del sito web

In questo articolo descrive in dettaglio la configurazione hardware e il software del server web.

Un computer a scheda singola Olimex Olinuxino A20 Lime 2 è stato scelto per il basso consumo energetico e per utili funzionalità aggiuntive, come la presenza di un chip di gestione dell'alimentazione AXP209. Questo chip consente di richiedere statistiche sulla tensione e sulla corrente in corso dalla scheda e dalla batteria. Il chip commuta automaticamente l'alimentazione tra la batteria e la porta DC, dove fluisce la corrente dal pannello solare. In questo modo, è possibile garantire un'alimentazione continua al server con supporto per la batteria.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%
Olimex Olinuxino A20 Lime 2

Inizialmente è stata scelta una batteria agli ioni di litio 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 c'era alcun senso economico nell'acquistare una scheda più piccola di Class 10 16 GB.

Il server è collegato a Internet tramite una connessione domestica da 100 megabit a Barcellona e un router consumer standard. È riservato un indirizzo IP statico. Praticamente chiunque può creare un sito del genere nel proprio appartamento, è necessario modificare lievemente le impostazioni del firewall per il forwarding delle porte all'IP locale:

Port 80 to 80 for HTTP
Port 443 to 443 for HTTPS
Port 22 to 22 for SSH

Il sistema operativo Armbian Stretch basato sulla distribuzione Debian e sul kernel SUNXI, sviluppato per schede singole con chip AllWinner.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%
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 Pelican (generatore di siti web in Python). I siti statici si caricano più rapidamente e non sovraccaricano la CPU, quindi sono molto più efficienti rispetto alle pagine generate dinamicamente, in termini di consumo energetico. Il codice sorgente del tema è. qui.

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, è stata presa la decisione di convertire le foto in immagini in scala di grigi. Ad esempio, ecco una foto di operatrici telefoniche ai commutatori nel secolo scorso. 253 KB.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Ecco un'immagine in scala di grigi ottimizzata di dimensioni 36,5 KB con tre colori (nero, bianco, grigio). Grazie a un'illusione ottica, lo spettatore ha l'impressione che ci siano più di tre colori.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Le fotografie in scala di grigi sono state scelte non solo per l'ottimizzazione della dimensione (una decisione piuttosto discutibile), ma anche per motivi estetici. Questa antica tecnica di elaborazione delle immagini ha determinate caratteristiche stilistiche, dando al sito un design unico in un certo senso.

623 illustrazioni sul sito della rivista Low-tech Magazine dopo l'ottimizzazione sono diminuite 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, nonché per facilitare il backup tramite git. Sono stati rimossi tutti gli script e i tracker dal sito, compresi i loghi. Viene utilizzato il font predefinito nel browser del cliente. Come "logo" - il nome della rivista in maiuscolo con una freccia verso sinistra: LOW←TECH MAGAZINE. Solo 16 byte invece di un'immagine.

In caso di inattività, è organizzata la possibilità di "lettura offline": testi e immagini vengono esportati in un feed RSS. È stata attivata la memorizzazione nella cache del 100% dei contenuti, compreso l'HTML.

Un'altra ottimizzazione è l'abilitazione della configurazione HTTP2 in nginx, che riduce leggermente il traffico e accorcia i tempi di caricamento delle pagine, rispetto a HTTP/1.1. La tabella confronta i risultati per cinque pagine diverse.

| | 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 nella 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 delle sessioni
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

# Abilita la protezione lato server contro 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 ciphersuites 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 un uptime del 95,26%.Ciò significa che a causa del maltempo, il downtime annuale è stato di 399 ore.

Tuttavia, se si escludono gli ultimi due mesi, il tempo di operatività è stato del 98,2%, con solo 152 ore di inattività, riferiscono gli sviluppatori. Il tempo di operatività è sceso all'80% durante gli ultimi due mesi, quando il consumo energetico è aumentato a causa di un aggiornamento del software. Ogni notte il sito si spegneva per alcune 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 annuale di 18,10 kWh, il che significa un'efficienza del sistema di circa il 50%.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%
Schema semplificata. Non mostrano il convertitore di tensione da 12 a 5 volt e il contatore degli ampere-ora della batteria.

Nel periodo analizzato, il sito ha ricevuto 865.000 visitatori unici. Compreso il consumo energetico totale dell'impianto solare, il consumo energetico per visitatore unico è stato di 0,021 Wh. Pertanto, un kilowattora di energia solare è sufficiente per gestire quasi 50.000 visitatori unici.

Durante l'esperimento, sono stati testati pannelli solari di diverse dimensioni. La tabella riporta i calcoli su quanto tempo ci vorrà per caricare batterie di diverse capacità utilizzando pannelli solari di diverse dimensioni.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

La potenza media consumata dal server web durante il primo anno, inclusi tutti i consumi energetici, è stata di 1,97 W. I calcoli mostrano che per mantenere il sito web attivo durante la notte più corta dell'anno (8 ore e 50 minuti, 21 giugno) sono necessari 17,40 Wh di capacità di accumulo, mentre nella notte più lunga (14 ore e 49 minuti, 21 dicembre) sono necessari 29,19 Wh.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Poiché le batterie al piombo-acido non devono scaricarsi al di sotto della metà della capacità, il server richiede una batteria da 60 Wh per sopravvivere alla notte più lunga in condizioni ottimali di luce diurna (2×29,19 Wh). Per la maggior parte dell'anno, il sistema ha funzionato con una batteria da 86,4 Wh e un pannello solare da 50 W, raggiungendo così un uptime tra il 95% e il 98%.

Uptime 100%

Per ottenere un uptime del 100% è necessario aumentare la capacità delle batterie. Per compensare un giorno di maltempo (senza una generazione significativa di energia) sono necessari 47,28 Wh (24 ore × 1,97 W) di capacità di accumulo.

Dal 1 dicembre 2019 al 12 gennaio 2020, è stata installata una batteria da 168 W, con una capacità pratica di accumulo di 84 Wh. Questa quantità di accumulo è sufficiente per mantenere il sito operativo per due notti e un giorno. La configurazione è stata testata nel periodo più buio dell'anno, ma il tempo è stato relativamente buono, e durante il periodo indicato il tempo di attività senza interruzioni è stato del 100%.

Tuttavia, per garantire un uptime del 100% per diversi anni, è necessario pianificare anche lo scenario peggiore, in cui il maltempo persiste per diversi giorni. I calcoli mostrano che, per mantenere il sito online per quattro giorni con bassa o zero generazione di energia, sarà necessaria una batteria al piombo-acido con una capacità di 440 Wh, ovvero delle dimensioni di una batteria per auto.

Nella pratica, in buone condizioni meteorologiche, una batteria al piombo-acido con capacità di 48 Wh supporterà il server durante la notte da marzo a settembre. Una batteria da 24 Wh manterrà il server acceso per un massimo di 6 ore, il che significa che si spegnerà ogni notte, anche se a orari diversi, a seconda del mese.

In generale, a alcuni siti non è necessario funzionare di notte, quando il numero di visitatori è minimo, secondo i ragazzi di Low-tech Magazine. Ad esempio, se si tratta di una pubblicazione locale regionale, alla quale non accedono visitatori da altri fusi orari, ma solo residenti locali.

Quindi, per siti con diverse affluenze e uptime, sono necessarie batterie di diverse capacità e pannelli solari di diverse dimensioni.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

L'autore fornisce un calcolo su quanta energia è necessaria per la produzione dei pannelli solari stessi (energy embodied) e quanto si ottiene dividendo questo numero per la vita attesa di 10 anni.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

In questo modo, è possibile calcolare un'analogia con i combustibili fossili consumati per la produzione e l'operatività dei pannelli. Low-tech Magazine ha scoperto che nel primo anno di funzionamento il loro sistema (pannello da 50 W, batteria da 86,4 Wh) ha "generato" circa 9 kg di emissioni, equivalenti alla combustione di 3 litri di benzina: all'incirca quanto un'automobile consuma per 50 km.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Se il server non è alimentato da pannelli solari ma dalla rete elettrica generale, l'equivalente delle emissioni appare circa sei volte inferiore: 1,54 kg (nella rete elettrica spagnola è alta la quota di energia alternativa e nucleare). Ma questa non è un comparazione completamente corretta, scrive l'autore, perché considera l'energia embodied dell'infrastruttura solare ma non considera questo parametro per la rete elettrica generale, ovvero i costi per la sua costruzione e manutenzione.

Miglioramenti futuri

Nel tempo trascorso, sono state effettuate diverse ottimizzazioni che hanno ridotto il consumo energetico del server. Ad esempio, in un certo momento, lo sviluppatore ha notato che 6,63 TB di un volume totale di 11,15 TB di traffico erano generati da un'errata implementazione del feed RSS, che estraeva contenuti ogni pochi minuti. Dopo la correzione di questo bug, il consumo energetico del server (senza considerare le perdite) è sceso da 1,14 W a circa 0,95 W. Il guadagno potrebbe sembrare esiguo, ma la differenza di 0,19 W significa 4,56 wattora al giorno, corrispondenti a oltre 2,5 ore di autonomia del server.

Durante il primo anno, l'efficienza è stata solo del 50%. Le perdite si sono verificate durante la ricarica e la scarica della batteria (22%), oltre che nella conversione della tensione da 12 V (sistema fotovoltaico solare) a 5 V (USB), dove le perdite possono arrivare fino al 28%. Lo sviluppatore riconosce di avere un convertitore di tensione subottimale (un controller senza USB integrato), quindi è possibile ottimizzare questo aspetto o passare a un'installazione solare da 5V.

Per migliorare l'efficienza dello stoccaggio energetico, è possibile sostituire le batterie al piombo con batterie agli ioni di litio più costose, che presentano minori perdite di carica/scarica (<10%). Attualmente, il progettista sta considerando un compatto sistema di stoccaggio dell'energia sotto forma di aria compressa (CAES), che ha una durata di decenni, il che significa un'impronta di carbonio ridotto nella sua produzione.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%
Batteria compatta di energia ad aria compressa, fonte

si sta valutando l'installazione di una turbina eolica aggiuntiva (che può essere realizzata in legno) e l'installazione di un tracker solare per orientare i pannelli verso il sole. Il tracker permette di aumentare la produzione di energia elettrica del 30%.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%

Un altro modo per aumentare l'efficienza del sistema è scalarlo. Ospitare più siti web su un server e avviare più server. Così si ridurrà il consumo energetico per ogni sito.

Il server web domestico alimentato a energia solare ha funzionato per 15 mesi: uptime 95,26%
Azienda di hosting solare. Illustrazione: Diego Marmolejo

Se si copre interamente il balcone dell’appartamento con pannelli solari e si apre un'azienda di hosting web solare, i costi per ciascun cliente saranno notevolmente ridotti rispetto a un singolo sito web: risparmio di scala.

In generale, questo esperimento dimostra che, con alcune limitazioni, l'infrastruttura informatica può funzionare su fonti di energia rinnovabili.

Teoricamente, tale server potrebbe addirittura fare a meno di una batteria, se si specchiasse in altre parti del mondo. Ad esempio, posizionare specchi in Nuova Zelanda e Cile. Lì, i pannelli solari funzionerebbero quando a Barcellona è notte.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster