Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %
Den første prototypen av en solcelleserver med ladekontroller. Foto: solar.lowtechmagazine.com

I september 2018, en entusiast fra Low-tech Magazine lanserte et "lavteknologisk" webserverprosjekt. Målet var å redusere energiforbruket så mye at ett solcellepanel ville være nok for en hjemmeserver. Dette er ikke lett, for siden må fungere 24 timer i døgnet. La oss se hva som skjedde til slutt.

Du kan gå til serveren solar.lowtechmagazine.com, sjekk gjeldende strømforbruk og batteriladenivå. Siden er optimalisert for et minimum antall forespørsler fra siden og minimal trafikk, så det bør tåle en økning i trafikk fra Habr. I følge utbyggers beregninger er energiforbruket per unik besøkende 0,021 Wh.

Rett før daggry 31. januar 2020 hadde den 42 % batteri igjen. Daggry i Barcelona klokken 8:04 lokal tid, hvoretter det skal gå strøm fra solcellepanelet.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Hvorfor?

For ti år siden eksperter spåddat utviklingen av Internett bidrar til «dematerialisering» av samfunnet, universell digitalisering - og som et resultat en reduksjon i det totale energiforbruket. De tok feil. Faktisk krevde Internett selv store mengder energiforsyning, og disse volumene fortsetter å vokse.

IT-selskaper har satt i gang initiativer for å bytte til alternative strømkilder, men dette er nå umulig. Alle datasentre bruker tre ganger mer energi enn alle sol- og vindinstallasjoner i verden genererer. Enda verre, produksjon og regelmessig utskifting av solcellepaneler og vindturbiner krever også energiDerfor er det rett og slett umulig i dag å forlate fossilt brensel (olje, gass, uran). Men disse reservene vil ikke vare lenge, så vi må uunngåelig tenke på hvordan vi skal leve på fornybare kilder. Inkludert drift av datainfrastruktur, inkludert webservere.

Lavteknologisk magasin anser det som et problem Nettsider blåser opp for raskt. Gjennomsnittlig sidestørrelse økte fra 2010 til 2018 fra 0,45 MB til 1,7 MB, og for mobilnettsteder - fra 0,15 MB til 1,6 MB, et konservativt estimat.

Økning i trafikkmengder overgår fremgang i energieffektivitet (energien som kreves for å overføre 1 megabyte med informasjon), noe som forårsaker en konstant økning i Internett-energiforbruket. Tyngre og mer belastede nettsteder øker ikke bare belastningen på nettverksinfrastrukturen, men forkorter også «livssyklusen» til datamaskiner og smarttelefoner, som må kastes ut oftere og nye produseres, som også en svært energikrevende prosess.

Og selvfølgelig er den økte arbeidsmengden skapt av selve livsstilen: folk bruker nesten all sin tid på Internett og er avhengige av ulike nettjenester. Det er allerede vanskelig å forestille seg et moderne samfunn uten sky-IT-infrastruktur (sosiale nettverk, instant messengers, e-post, etc.)

Konfigurasjon av server og nettside

В denne artikkelen Maskinvarekonfigurasjonen og programvarestabelen til webserveren er beskrevet i detalj.

Enkeltbords datamaskin Olimex Olinuxino A20 Lime 2 valgt for lavt strømforbruk og nyttige tilleggsfunksjoner som strømstyringsbrikke AXP209. Den lar deg be om statistikk over gjeldende spenning og strøm fra tavle og batteri. Mikrokretsen bytter automatisk strøm mellom batteriet og DC-kontakten, hvor det går strøm fra solcellepanelet. Dermed er uavbrutt strømforsyning til serveren med batteristøtte mulig.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %
Olimex Olinuxino A20 Lime 2

I utgangspunktet ble et litium-polymerbatteri med en kapasitet på 6600 mAh (ca. 24 Wh) valgt som batteri, deretter ble det installert et blybatteri med en kapasitet på 84,4 Wh.

Operativsystemet starter opp fra SD-kortet. Selv om operativsystemet ikke tar opp mer enn 1 GB og den statiske nettsiden er omtrent 30 MB, var det ingen økonomisk fornuftig å kjøpe et kort som er mindre enn en Class 10 16 GB.

Serveren kobles til Internett via en 100 Mbps hjemmetilkobling i Barcelona og en standard forbrukerruter. En statisk IP-adresse er reservert for den. Nesten alle kan sette opp et slikt nettsted i leiligheten sin; du må endre brannmurinnstillingene litt for å videresende porter til lokal IP:

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

Operativsystem Armbian Stretch basert på Debian-distribusjon og kjerne SUNXI, som er designet for enkeltbrett med AllWinner-brikker.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %
Et 50-watts solcellepanel for en webserver og et 10-watts solcellepanel for belysning av stuen i forfatterens leilighet

Statisk nettsted generert av systemet Pelikan (sidegenerator i Python). Statiske nettsteder lastes inn raskere og er mindre CPU-intensive, så de er mye mer energieffektive enn dynamisk genererte sider. Se kildekoden for temaet. her.

Et veldig viktig poeng er bildekomprimering, siden uten denne optimaliseringen er det nesten umulig å gjøre nettsider mindre enn 1 megabyte. For optimalisering ble det besluttet å konvertere fotografiene til halvtonebilder. For eksempel, her er et fotografi av kvinnelige telefonoperatører på et sentralbord i forrige århundre, 253 KB.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Og her er et optimalisert gråtonebilde av størrelse 36,5 KB med tre farger (svart, hvit, grå). På grunn av den optiske illusjonen ser det ut for betrakteren at det er mer enn tre farger.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Halvtonefotografier ble valgt ikke bare for å optimalisere størrelsen (en ganske tvilsom avgjørelse), men også av estetiske grunner. Denne gamle bildebehandlingsteknikken har visse stilistiske trekk, så siden har en noe unik design.

Etter optimalisering ble 623 illustrasjoner på nettstedet Low-tech Magazine redusert i størrelse fra 194,2 MB til 21,3 MB, det vil si med 89 %.

Alle gamle artikler ble konvertert til Markdown for å gjøre det enklere å skrive nye artikler, samt for enkel sikkerhetskopiering via git. Alle skript og trackere, samt logoer, ble fjernet fra nettstedet. Standardfonten i klientens nettleser brukes. Som en "logo" - navnet på magasinet med store bokstaver med en pil til venstre: LOW←TECH MAGAZINE. Bare 16 byte i stedet for et bilde.

I tilfelle nedetid er muligheten for "offline lesing" organisert: tekster og bilder eksporteres til en RSS-feed. Bufring av 100 % innhold er aktivert, inkludert HTML.

En annen optimalisering er å aktivere HTTP2-innstillinger i nginx, noe som reduserer trafikken litt og reduserer sidelastingstid sammenlignet med HTTP/1.1. Tabellen sammenligner resultatene for fem forskjellige sider.

| | FP | VI | 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 | | Bilder | 9 | 21 | 11 | 19 | 23 | | besparelser | 11 % | 21 % | 0 % | 4 % | 18 % |

Full nginx-konfigurasjon:

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;
}

Resultat av 15 måneders arbeid

For perioden fra 12. desember 2018 til 28. november 2019 viste serveren oppetid 95,26 %. Dette betyr at på grunn av dårlig vær var nedetiden for året 399 timer.

Men hvis du ikke tar med de siste to månedene, var oppetiden 98,2 %, og nedetiden var bare 152 timer, skriver utviklerne. Oppetiden falt til 80 % de siste to månedene da strømforbruket økte på grunn av en programvareoppdatering. Hver kveld gikk siden ned i flere timer.

I følge statistikk, for året (fra 3. desember 2018 til 24. november 2019), var serverens strømforbruk 9,53 kWh. Det er registrert betydelige tap i solcelleanlegget på grunn av spenningskonvertering og batteriutladning. Solcelleregulatoren viste et årlig forbruk på 18,10 kWh, noe som betyr at systemets effektivitet er ca. 50 %.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %
Forenklet diagram. Den viser ikke en spenningsomformer fra 12 til 5 volt og en batteriamperetimeteller

I løpet av studieperioden besøkte 865 000 unike besøkende nettstedet. Inkludert alt energitap i solcelleanlegget var energiforbruket per unik besøkende 0,021 Wh. Dermed er én kilowattime generert solenergi nok til å betjene nesten 50 000 unike besøkende.

Under forsøket ble solcellepaneler i forskjellige størrelser testet. Tabellen viser beregninger av hvor lang tid det vil ta å lade batterier med ulik kapasitet ved bruk av solcellepaneler av ulik størrelse.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Gjennomsnittlig strømforbruk til webserveren det første året, inkludert alle energitap, var 1,97 watt. Beregningen viser at det å kjøre et nettsted over natten på årets korteste natt (8 timer 50 minutter, 21. juni) krever 17,40 watt-timer lagringskraft, og på den lengste natten (14 timer 49 minutter, 21. desember) trenger du 29,19 .XNUMX Wh.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Siden bly-syre-batterier ikke skal utlades under halv kapasitet, krever serveren et 60 Wh batteri for å overleve den lengste natten med optimalt dagslys (2x29,19 Wh). I det meste av året fungerte systemet med et 86,4 Wh-batteri og et 50-watts solcellepanel, og da ble den nevnte 95-98 % oppetiden oppnådd.

Oppetid 100 %

For 100 % oppetid er det nødvendig å øke batterikapasiteten. For å kompensere for én dag med svært dårlig vær (uten betydelig kraftproduksjon), trengs 47,28 watt-timer (24 timer × 1,97 watt) lagring.

Fra 1. desember 2019 til 12. januar 2020 ble det installert et 168-watts batteri i systemet, som har en praktisk lagringskapasitet på 84 watt-timer. Dette er nok lagringsplass til å holde nettstedet i gang i to netter og én dag. Konfigurasjonen ble testet i den mørkeste perioden av året, men været var relativt bra – og over den angitte perioden var oppetiden 100 %.

Men for å garantere 100 % oppetid i flere år, må du sørge for det verste tilfellet, når dårlig vær vedvarer i flere dager. Beregningen viser at for å holde et nettsted online i fire dager med lav eller ingen energiproduksjon, trenger du et blybatteri med en kapasitet på 440 watt-timer, som er på størrelse med et bilbatteri.

I praksis, i gode værforhold, vil et 48 Wh blysyrebatteri holde serveren i gang over natten fra mars til september. Et 24 Wh-batteri vil vare serveren i maksimalt 6 timer, noe som betyr at den vil slå seg av hver natt, men til forskjellige tider avhengig av måneden.

I det store og hele trenger noen nettsteder ikke å jobbe om natten, når antall besøkende er minimalt, sier gutta fra Low-tech Magazine. For eksempel hvis dette er en regional bypublikasjon, hvor besøkende fra andre tidssoner ikke kommer, men kun lokale innbyggere.

Det vil si at for nettsteder med ulik trafikk og ulik oppetid, trengs batterier med ulik kapasitet og solcellepaneler av ulik størrelse.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Forfatteren gir en beregning av hvor mye energi som kreves for produksjon selve solcellepanelene (embodied energy) og hvor mye det blir hvis du deler denne mengden på forventet levetid på 10 år.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

På denne måten er det mulig å beregne ekvivalenten til fossilt brensel som forbrukes i produksjon og drift av panelene. Low-tech Magazine fant ut at systemet deres (50 W panel, 86,4 Wh batteri) i det første driftsåret "genererte" omtrent 9 kg utslipp, eller tilsvarende forbrenning av 3 liter bensin: omtrent det samme som en 50- år gammel personbil km reise.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

Hvis serveren ikke drives fra solcellepaneler, men fra det generelle strømnettet, ser det ut til at tilsvarende utslipp er seks ganger lavere: 1,54 kg (den spanske energisektoren har en høy andel alternativ energi og kjernekraftverk). Men dette er ikke en helt korrekt sammenligning, skriver forfatteren, fordi den tar hensyn til den nedfelte energien til solinfrastrukturen, men tar ikke hensyn til denne indikatoren for det generelle energinettverket, det vil si kostnadene ved konstruksjon og støtte. .

Ytterligere forbedringer

I løpet av den siste tiden har det blitt utført en rekke optimaliseringer som har redusert serverens strømforbruk. For eksempel la utvikleren på et tidspunkt merke til at 6,63 TB av den totale trafikken på 11,15 TB ble generert av en feil RSS-feedimplementering som hentet innhold med noen få minutters mellomrom. Etter å ha rettet denne feilen, sank serverens strømforbruk (ekskludert energitap) fra 1,14 W til omtrent 0,95 W. Gevinsten kan virke liten, men en forskjell på 0,19 W betyr 4,56 watt-timer per dag, noe som tilsvarer mer enn 2,5 timers batterilevetid for serveren.

I løpet av det første året var effektiviteten bare 50 %. Det ble observert tap ved lading og utlading av batteriet (22 %), samt ved konvertering av spenningen fra 12 V (solcelleanlegg) til 5 V (USB), hvor tapene var opptil 28 %. Utvikleren innrømmer at han har en suboptimal spenningsomformer (kontroller uten innebygd USB), så du kan optimere dette punktet eller bytte til en 5V solcelleinstallasjon.

For å forbedre energilagringseffektiviteten kan blybatterier erstattes med dyrere litiumionbatterier, som har lavere ladnings-/utladningstap (<10 %). Nå vurderer designeren en kompakt energilagringssystem i form av trykkluft (CAES), som har en levetid på flere tiår, noe som betyr et mindre karbonavtrykk på produksjonen.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %
Kompakt energiakkumulator for trykkluft, kilde

Installasjon av en ekstra vindturbin vurderes (det kan være lage av tre) og installere en solcellesporer for å rotere panelene mot solen. Trackeren lar deg øke strømproduksjonen med 30 %.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %

En annen måte å øke effektiviteten til systemet på er å skalere det. Opprett flere nettsteder på serveren og start flere servere. Da vil energiforbruket per lokalitet reduseres.

Solcelledrevet hjemmenettserver fungerte i 15 måneder: oppetid 95,26 %
Solar hosting selskap. Illustrasjon: Diego Marmolejo

Hvis du dekker hele leilighetsbalkongen med solcellepaneler og åpner et solcellenettvertsselskap, vil kostnaden per kunde være betydelig lavere enn for en enkelt nettside: stordriftsfordeler.

Samlet sett viser dette eksperimentet at gitt visse begrensninger, er det fullt mulig for datainfrastruktur å kjøre på fornybare energikilder.

Teoretisk sett kan en slik server til og med klare seg uten batteri hvis den speiles i andre deler av verden. Installer for eksempel speil i New Zealand og Chile. Der vil solcellepaneler fungere når det er natt i Barcelona.

Kilde: www.habr.com

Legg til en kommentar