El servidor doméstico alimentado por energía solar funcionó durante 15 meses: tiempo de actividad del 95,26%


El primer prototipo de servidor solar con controlador de carga. Foto: solar.lowtechmagazine.com

En septiembre de 2018, un entusiasta de Low-tech Magazine lanzó un proyecto de servidor web de "baja tecnología" . El objetivo era reducir el consumo de energía para que un solo panel solar fuera suficiente para el servidor doméstico alojado. Esto no es fácil, porque el sitio debería funcionar las 24 horas del día. Veamos qué sucedió al final.

Puedes ir al servidor solar.lowtechmagazine.com, verifique el consumo de corriente y el nivel de batería. El sitio está optimizado para el número mínimo de solicitudes de la página y el tráfico mínimo, por lo que debe soportar el salto en el tráfico de Habr. Según los cálculos del desarrollador, el consumo de energía por visitante único es de 0.021 Wh.

Poco antes del amanecer, el 31 de enero de 2020, le quedaba el 42% de la batería. Amanecer en Barcelona a las 8:04 hora local, después de lo cual la corriente debería ir desde el panel solar.



¿Para qué?


Hace diez años, los expertos predijeron que el desarrollo de Internet contribuye a la "desmaterialización" de la sociedad, la digitalización universal y, como resultado, una disminución en el consumo general de energía. Estaban equivocados. De hecho, Internet en sí misma ha exigido grandes cantidades de energía , y estos volúmenes continúan creciendo.

Las compañías de TI han lanzado iniciativas para cambiar a fuentes de alimentación alternativas, pero ahora esto es imposible. Todos los centros de datos consumen tres veces más energía que todas las instalaciones solares y eólicas del mundo. Peor aún, la producción y el reemplazo regular de paneles solares y molinos de viento también requiere energía.por lo tanto, abandonar el toplif fósil (petróleo, gas, uranio) hoy es simplemente imposible. Pero estas reservas no serán suficientes durante mucho tiempo, por lo que inevitablemente tendremos que pensar en cómo vivir con fuentes renovables. Incluyendo el funcionamiento de la infraestructura informática, incluidos los servidores web.

La revista Low-tech considera que el problema de inflar páginas web es demasiado rápido. De 2010 a 2018, el tamaño promedio de página aumentó de 0,45 MB a 1,7 MB , y para sitios móviles, de 0,15 MB a 1,6 MB, según una estimación conservadora.

Aumento del tráfico antes del progreso en eficiencia energética.(la energía requerida para transferir 1 megabyte de información), lo que provoca un aumento constante en el consumo de energía de Internet. Los sitios cada vez más pesados ​​no solo aumentan la carga en la infraestructura de red, sino que también acortan el "ciclo de vida" de las computadoras y los teléfonos inteligentes, que a menudo deben desecharse y renovarse, lo que también es un proceso que requiere mucha energía .

Y, por supuesto, el estilo de vida mismo crea el aumento de la carga: las personas pasan casi todo el tiempo en Internet y dependen en gran medida de diversos servicios web. Ya es difícil imaginar una sociedad moderna sin una infraestructura de TI en la nube (redes sociales, mensajería instantánea, correo, etc.)

Configuración del servidor y el sitio web


En este artículo se describe en detalle la configuración del hardware y el servidor web de la pila de software.

La computadora de placa única Olimex Olinuxino A20 Lime 2 está seleccionada por su bajo consumo de energía y características adicionales útiles, como el chip de administración de energía AXP209 . Le permite solicitar estadísticas sobre el voltaje y la intensidad de corriente de la placa y de la batería. El chip cambia automáticamente la energía entre la batería y el conector de CC, donde la corriente fluye desde el panel solar. Por lo tanto, es posible una fuente de alimentación ininterrumpida al servidor con soporte de batería.


Olimex Olinuxino A20 Lima 2

Inicialmente, se eligió una batería de polímero de litio con una capacidad de 6600 mAh (aproximadamente 24 Wh) como batería, luego se instaló una batería de ácido-plomo a 84.4 Wh.

El sistema operativo se inicia desde la tarjeta SD. Aunque el sistema operativo no ocupa más de 1 GB y un sitio web estático es de aproximadamente 30 MB, no había ninguna razón económica para comprar una tarjeta más pequeña que la Clase 10 de 16 GB.

El servidor se conecta a la red a través de una conexión doméstica de 100 megabytes en Barcelona y un enrutador de consumidor estándar. Una dirección IP estática está reservada para ello. Casi todos pueden crear un sitio de este tipo en su departamento, debe cambiar ligeramente la configuración del firewall para el reenvío de puertos a la IP local:

Puerto 80 a 80 para HTTP
Puerto 443 a 443 para HTTPS
Puerto 22 a 22 para SSH

Sistema operativo Armbian Stretch basado en la distribución Debian y el kernel SUNXI , que está diseñado para tarjetas de placa única con chips AllWinner.


Un panel solar de 50 vatios para un servidor web y un panel de 10 vatios para iluminar una sala de estar en el apartamento del autor.

El sistema Pelican (generador del sitio web de Python) genera un sitio estático . Los sitios estáticos se cargan más rápido y no crean una carga en la CPU, por lo que son mucho más eficientes que las páginas generadas dinámicamente desde el punto de consumo de energía. Vea el código fuente del tema aquí .

Un punto muy importante es la compresión de imágenes, porque sin esta optimización es casi imposible crear páginas web de menos de 1 megabyte. Para la optimización, se decidió convertir las fotos en imágenes en escala de grises. Por ejemplo, aquí hay una foto de una operadora telefónica en un interruptor en el siglo pasado, 253 KB .



Pero la imagen optimizada en escala de grises de 36,5 KB de tamaño con tres colores (negro, blanco, gris). Debido a la ilusión óptica, el espectador parece tener más de tres colores.



Las fotografías de medios tonos se eligieron no solo para la optimización del tamaño (la solución es bastante dudosa), sino también por razones estéticas. Esta antigua técnica de procesamiento de imágenes tiene ciertas características estilísticas, por lo que el sitio se ha convertido en un diseño único.

623 ilustraciones en el sitio web de la revista Low-tech después de la optimización disminuyeron en tamaño de 194.2 MB a 21.3 MB, es decir, 89%.

Todos los artículos antiguos se convirtieron a Markdown para facilitar la escritura de nuevos artículos, así como para facilitar la copia de seguridad a través de git . Todos los scripts y rastreadores, así como los logotipos, se eliminaron del sitio. La fuente predeterminada se usa en el navegador del cliente. Como un "logotipo": el nombre de la revista en mayúsculas con una flecha hacia la izquierda: LOW ← TECH MAGAZINE. Solo 16 bytes en lugar de una imagen.

En caso de inactividad, se organiza la posibilidad de "lectura fuera de línea": los textos y las imágenes se exportan a la fuente RSS. Se incluye el almacenamiento en caché del 100% de contenido, incluido HTML.

Otra optimización es la inclusión de la configuración HTTP2 en nginx, que reduce ligeramente el tráfico y acorta el tiempo de carga de la página, en comparación con HTTP / 1.1. La tabla compara los resultados de cinco páginas diferentes.

El | El | FP | Nosotros | Hs | Fw | CW |
| ---------- | ------- | ------- | ------- | ------- | ------ - |
El | HTTP / 1.1 | 1.46s | 1.87s | 1.54s | 1.86s | 1.89s |
El | HTTP2 | 1,30 s | 1.49s | 1.54s | 1.79s | 1.55s |
El | Imágenes | 9 | 21 | 11 | 19 23 |
El | ahorro | 11% | 21% | 0% | 4% | 18% |


Configuración completa de 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;
}

Resultados de 15 meses de trabajo.


Para el período comprendido entre el 12 de diciembre de 2018 y el 28 de noviembre de 2019, el servidor mostró un tiempo de actividad del 95,26% . Esto significa que debido al mal tiempo, el tiempo de inactividad del año fue de 399 horas.

Pero si no tiene en cuenta los últimos dos meses, el tiempo de actividad es del 98.2% y el tiempo de inactividad es de solo 152 horas, escriben los desarrolladores. El tiempo de actividad ha caído al 80% en los últimos dos meses, cuando el consumo de energía aumentó debido a las actualizaciones de software. Todas las noches el sitio estuvo inactivo durante varias horas.

Según las estadísticas, para el año (del 3 de diciembre de 2018 al 24 de noviembre de 2019), el consumo de energía del servidor fue de 9.53 kWh. Se registraron pérdidas significativas en el sistema fotovoltaico debido a la conversión de voltaje y la descarga de la batería. El controlador solar mostró un consumo anual de 18,10 kWh, lo que significa una eficiencia del sistema de aproximadamente el 50%.


Esquema simplificado. No muestra un convertidor de voltaje de 12 a 5 voltios y un amperímetro de batería amperios.

Durante el período de estudio, 865,000 visitantes únicos visitaron el sitio. Incluyendo todas las pérdidas de energía en la instalación solar, el consumo de energía por visitante único fue de 0.021 Wh. Por lo tanto, un kilovatio-hora de energía solar generada es suficiente para atender a casi 50,000 visitantes únicos.

Durante el experimento, se probaron paneles solares de diferentes tamaños. La tabla muestra los cálculos de cuánto tiempo se cargan las baterías de diferentes capacidades cuando se usan paneles solares de diferentes tamaños.



El consumo de energía promedio del servidor web durante el primer año, incluidas todas las pérdidas de energía, fue de 1.97 vatios. El cálculo muestra que para mantener un sitio web por la noche en la noche más corta del año (8 horas 50 minutos, 21 de junio), necesita 17,40 vatios-hora de energía de almacenamiento, y en la noche más larga (14 horas 49 minutos, 21 de diciembre) , 19 Wh



Dado que las baterías de plomo-ácido no deben descargarse por debajo de la mitad de la capacidad, el servidor necesita una batería de 60 Wh para sobrevivir la noche más larga en condiciones óptimas de luz diurna (2 × 29.19 Wh). Durante la mayor parte del año, el sistema funcionó con una batería de 86.4 Wh / hy un panel solar de 50 vatios, luego se logró el tiempo de actividad mencionado anteriormente del 95-98%.

Tiempo de actividad 100%


Para el tiempo de actividad, el 100% requiere un aumento en la capacidad de la batería. Para compensar un día de mal tiempo (sin una generación de energía significativa), necesita 47.28 vatios-hora (24 horas × 1.97 vatios) de almacenamiento.

Desde el 1 de diciembre de 2019 hasta el 12 de enero de 2020, se instaló una batería de 168 vatios en el sistema, que tiene una capacidad de almacenamiento práctica de 84 vatios-hora. Este almacenamiento es suficiente para mantener el sitio durante dos noches y un día. La configuración se probó en el período más oscuro del año, pero el clima fue relativamente bueno, y durante este período, el tiempo de actividad fue del 100%.

Pero para garantizar un tiempo de actividad del 100% durante varios años, es necesario prever el peor de los casos, cuando el mal tiempo persiste durante varios días. El cálculo muestra: para mantener el sitio en línea durante cuatro días con una generación de energía baja o nula, necesitará una batería de plomo-ácido con una capacidad de 440 vatios-hora, es decir, el tamaño de la batería de un automóvil.

En la práctica, cuando hace buen tiempo, una batería de plomo-ácido de 48 Wh será compatible con el servidor durante la noche de marzo a septiembre. Una batería de 24 Wh mantendrá el servidor durante un máximo de 6 horas, es decir, se apagará todas las noches, aunque en diferentes momentos, según el mes.

En general, algunos sitios no tienen que trabajar de noche, cuando el número de visitantes es mínimo, según los chicos de la revista Low-tech. Por ejemplo, si se trata de una publicación regional de la ciudad, donde los visitantes de otras zonas horarias no van, sino solo los residentes locales.

Es decir, para sitios con tráfico diferente y tiempo de actividad diferente, se necesitan baterías de diferentes capacidades y paneles solares de diferentes tamaños.





El autor calcula cuánta energía se requiere para producir los paneles solares (energía realizada) y cuánta se obtiene si divide esta cantidad por la vida útil esperada de 10 años.



Por lo tanto, es posible calcular un análogo de los combustibles fósiles, que se gasta en la producción y operación de paneles. En la revista Low-tech, resultó que en el primer año de funcionamiento, su sistema (panel de 50 W, batería de 86.4 Wh) "generó" aproximadamente 9 kg de emisiones o el equivalente de quemar 3 litros de gasolina: casi lo mismo que un automóvil de pasajeros por 50 km de progreso.



Si el servidor no funciona con paneles solares, sino con la red general, entonces el equivalente de las emisiones parece ser seis veces menor: 1.54 kg (la proporción de energía alternativa y centrales nucleares es alta en energía española). Pero esta no es una comparación completamente correcta, escribe el autor, porque tiene en cuenta la energía implementada de la infraestructura solar, pero no tiene en cuenta este indicador para la red energética total, es decir, los costos de su construcción y soporte.

Futuras mejoras


En el pasado, se han llevado a cabo una serie de optimizaciones que han reducido el consumo de energía del servidor. Por ejemplo, en algún momento, el desarrollador notó que 6.63 TB del tráfico total de 11.15 TB generado por una implementación incorrecta de la fuente RSS, que extrae contenido cada pocos minutos. Después de corregir este error, el consumo de energía del servidor (excluyendo las pérdidas de energía) disminuyó de 1.14 vatios a aproximadamente 0.95 vatios. La ganancia puede parecer pequeña, pero la diferencia de 0.19 vatios significa 4.56 vatios-hora por día, lo que corresponde a más de 2.5 horas de duración de la batería.

En el primer año, la eficiencia fue solo del 50%. Se observaron pérdidas al cargar y descargar la batería (22%), así como al convertir el voltaje de 12 V (sistema solar fotovoltaico) a 5 V (USB), donde las pérdidas son de hasta el 28%. El desarrollador admite que no tiene un convertidor de voltaje óptimo (controlador sin USB incorporado), por lo que puede optimizar este momento o cambiar a una instalación solar de 5V.

Para aumentar la eficiencia del almacenamiento de energía, las baterías de plomo-ácido pueden reemplazarse por baterías de iones de litio más caras, que tienen menos pérdida de carga / descarga (<10%). Ahora el diseñador está considerando un sistema compacto para almacenar electricidad en forma de aire comprimido.(CAES), que tiene una vida útil de diez años, lo que significa menos huella de carbono.


Acumulador de energía compacto en aire comprimido, fuente

Estamos considerando instalar una turbina eólica adicional (puede ser de madera ) e instalar un seguidor solar para convertir los paneles al sol. El rastreador le permite aumentar la generación de electricidad en un 30%.



Otra forma de aumentar la eficiencia del sistema es escalarlo. Levante más sitios web en el servidor y ejecute más servidores. Entonces el consumo de energía por cada sitio disminuirá.


Empresa de alojamiento solar. Ilustración: Diego Marmolejo

Si cubre todo el balcón del apartamento con paneles solares y abre una empresa de alojamiento web solar, los costos para cada cliente serán significativamente más bajos que para un solo sitio web: economías de escala.

En general, este experimento demuestra que, bajo ciertas limitaciones, la infraestructura informática puede funcionar con fuentes de energía renovables.

Teóricamente, dicho servidor puede incluso funcionar sin batería si lo duplica en otras partes del mundo. Por ejemplo, poner espejos en Nueva Zelanda y Chile. Allí, los paneles solares funcionarán cuando sea de noche en Barcelona.

Source: https://habr.com/ru/post/undefined/


All Articles