Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%
Първият прототип на соларен сървър с контролер за зареждане. Снимка: solar.lowtechmagazine.com

През септември 2018 година ентусиаст от Low-tech Magazine стартира проект за «ниско-технологичен» уеб сървър. Целта беше да се намали консумацията на енергия достатъчно, така че за домашен self-hosted сървър да е достатъчна една соларна панел. Това не е лесно, тъй като сайтът трябва да работи 24 часа в денонощието. Нека видим какво се е получило в крайна сметка.

Можете да посетите сървъра solar.lowtechmagazine.com, да проверите текущото енергопотребление и нивото на заряда на батерията. Сайтът е оптимизиран за минимален брой заявки на страница и минимален трафик, така че би трябвало да устои на покачването на посещаемостта от Хабра. Според изчисленията на разработчика, разходът на енергия на един уникален посетител е 0,021 Вт⋅ч.

Незадолго преди изгрева на 31 януари 2020 година, му е оставало 42% заряд на батерията. Изгревът в Барселона е в 8:04 местно време, след което трябва да започне токът от соларната панел.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

ЗАЩО?

Десет години назад експерти предсказваха, че развитието на интернет ще допринесе за «дематериализация» на обществото, всеобхватна цифровизация — и, като следствие, намаляване на общото енергопотребление. Те бяха в грешка. Всъщност интернет сам изисква огромни количества енергия, а тези количества продължават да растат.

IT компаниите стартираха инициативи за преминаване към алтернативни източници на енергия, но това в момента е невъзможно. Всички дата центрове консумират три пъти повече енергия, отколкото произвеждат всички соларни и вятърни инсталации в света. По-лошото е, че производството и редовната подмяна на соларни панели и вятърни турбини също изисква енергия, затова отказът от изкопаеми горива (нефт, газ, уран) днес е просто невъзможен. Но тези запаси не са дълготрайни, така че неизменно ще трябва да мислим как да живеем на възобновяеми източници. Включително работата на компютърната инфраструктура, включително уеб сървърите.

Low-tech Magazine счита за проблем твърде бързото надуване на уеб страниците. От 2010 до 2018 година средният размер на страницата се е увеличил от 0,45 МБ до 1,7 МБ, а при мобилните сайтове — от 0,15 МБ до 1,6 МБ, според консервативна оценка.

Увеличението на трафика надминава напредъка в енергийната ефективност (енергия, необходима за предаване на 1 мегабайт информация), което води до постоянно нарастваща консумация на енергия от интернет. По-тежките и натоварени сайтове не само увеличават натоварването на мрежовата инфраструктура, но също така съкращават „животния цикъл“ на компютрите и смартфоните, които се налага да се изхвърлят по-често и да се произвеждат нови, което също е доста енергоемък процес.

Разбира се, увеличаването на натоварването се дължи на самия начин на живот: хората прекарват почти всичкото си време в интернет и до голяма степен разчитат на различни уеб услуги. Съвременното общество вече е трудно да си представим без облачната ИТ инфраструктура (социални мрежи, месинджъри, имейл и т.н.)

Конфигурацията на сървъра и уебсайта

В тази статия подробно описва хардуерната конфигурация и софтуерния стек на уеб сървъра.

Едноплатков компютър Olimex Olinuxino A20 Lime 2 е избран за ниска консумация на енергия и полезни допълнителни функции, като наличието на микрочип за управление на захранването AXP209. Той позволява да се извлекат статистически данни за текущото напрежение и ток от платката и от батерията. Микрочипът автоматично превключва захранването между акумулатора и DC порта, където тече ток от соларния панел. По този начин, възможно е безпроблемно захранване на сървера с поддръжка на акумулатора.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%
Olimex Olinuxino A20 Lime 2

Първоначално за акумулатор е избрана литиево-полимерна батерия с капацитет 6600 мА⋅ч (около 24 Вт⋅ч), а след това е поставена оловно-киселинна батерия с капацитет 84,4 Вт⋅ч.

Операционната система стартира от SD карта. Въпреки че ОС заема не повече от 1 ГБ, а статичният уебсайт около 30 МБ, нямаше икономически смисъл да се купува карта под Class 10 16 ГБ.

Сървърът се свързва с Интернет чрез 100-мегабитна домашна връзка в Барселона и стандартен потребителски рутер. За него е резервиран статичен IP адрес. Почти всеки може да създаде такъв сайт в апартамента си, необходимо е само да се направят леки настройки на фаервала за пренаправяне на портовете към локалния IP:

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

Операционна система Armbian Stretch на базата на дистрибуцията Debian и ядрото SUNXI, което е разработено за едноплаткови компютри с чипове AllWinner.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%
50-ватова слънчева панел за уеб сървъра и 10-ватова панел за осветление на дневната в апартамента на автора

Статичният сайт е генериран от системата Pelican (генератор сайтов на Python). Статичните сайтове се зареждат по-бързо и не натоварват CPU, затова те са значително по-ефективни от динамично генерираните страници, що се отнася до енергийна ефективност. Изходният код на темата. тук.

Много важен момент е компресирането на изображения, тъй като без тази оптимизация е почти невъзможно да се направят уеб страниците по-малки от 1 мегабайт. За оптимизацията решихме да превърнем фотографиите в полутонови изображения. Например, ето снимка на операторки от миналия век, 253 КБ.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

А ето оптимизираното полутоново изображение с размер 36,5 КБ с три цвята (черен, бял, сив). Поради оптическата илюзия на зрителя му изглежда, че цветове са повече от три.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Полутоновите фотографии избрани не само за оптимизация на размера (което е доста съмнително решение), но и по естетически причини. Техниката за обработка на изображенията носи определени стилови особености, така че сайтът получи в някакъв смисъл уникален дизайн.

623 илюстрации на сайта на Low-tech Magazine след оптимизацията намалиха размера си от 194,2 МБ на 21,3 МБ, тоест с 89%.

Всички стари статии бяха конвертирани в Markdown за улеснение на писането на нови статии, както и за лесна резервна копия през git. От сайта бяха премахнати всички скриптове и тракери, както и логотипите. Използва се шрифт по подразбиране в браузъра на клиента. Като „логотип“ — названието на списанието с големи букви и стрелка наляво: LOW←TECH MAGAZINE. Всичко сумарно 16 байта вместо изображение.

В случай на непредвидено спиране на услугата е организирана възможността за „офлайн четене”: текстовете и изображенията се експортират в RSS-фийд. Включено е кеширане на 100% от съдържанието, включително HTML.

Още една оптимизация — активирането на настройката HTTP2 в nginx, което малко намалява трафика и съкращава времето за зареждане на страници в сравнение с HTTP/1.1. В таблицата се сравняват резултатите за пет различни страници.

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

Пълната конфигурация на 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;
}

Резюме за 15 месеца работа

В периода от 12 декември 2018 година до 28 ноември 2019 година, сървърът показа аптайм 95,26%. Това означава, че заради лошото време, времето на неработоспособност за годината е било 399 часа.

Но ако не се вземат предвид последните два месеца, времето на безотказна работа е било 98,2%, а времето на простои — само 152 часа, пишат разработчиците. Времето на безотказна работа спадна до 80% през последните два месеца, когато консумацията на енергия се увеличи заради обновление на софтуера. Всяка вечер сайтът беше изключван за няколко часа.

Според статистиката, за една година (от 3 декември 2018 до 24 ноември 2019) консумацията на електрическа енергия от сървъра е била 9,53 кВт⋅ч. Регистрирани са значителни загуби в фотоелектрическата система поради преобразуването на напрежение и разреждането на батерията. Слънчевият контролер е показал годишно потребление от 18,10 кВт⋅ч, което означава ефективност на системата около 50%.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%
Оптимизирана схема. Не са показани преобразувателят на напрежение от 12 на 5 волта и акумулаторният измервател на амперчасове.

През проучвания период сайтът е посетен от 865 000 уникални посетители. Включвайки всичките загуби на енергия в слънчевата установка, консумацията на енергия на един уникален посетител е била 0,021 Вт⋅ч. Така един киловатчас генерирана слънчева енергия е достатъчен за обслужването на почти 50 000 уникални посетители.

През времето на експеримента са тествани слънчеви панели с различен размер. В таблицата са представени изчисленията, за колко време ще се заредят акумулаторите с различна капацитет при използване на слънчеви панели с различен размер.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Средната консумирана мощност на уеб сървъра през първата година, включително всички загуби на енергия, е била 1,97 Вт. Изчисленията показват, че за поддържане на уебсайта през нощта в най-кратката нощ на годината (8 часа и 50 минути на 21 юни) са необходими 17,40 ваттчаса мощност на съхранение, а в най-дългата нощ (14 часа и 49 минути на 21 декември) са необходими 29,19 Вт⋅ч.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Тъй като оловно-киселинните батерии не трябва да се разреждат под половината от капацитета си, на сървъра е необходима батерия с капацитет 60 Вт⋅ч, за да оцелее в най-дългата нощ при оптимално дневно осветление (2×29,19 Вт⋅ч). През по-голямата част от годината системата е работила с акумулатор от 86,4 Вт⋅ч и 50-ватов слънчев панел, като по този начин е постигнат споменатият ъптайм 95-98%.

100% ъптайм

За 100% ъптайм е необходимо да се увеличи капацитетът на акумулаторите. За компенсиране на един ден с много лошо време (без значителна генерация на електрическа енергия) са необходими 47,28 ваттчаса (24 часа × 1,97 вата) съхранение.

От 1 декември 2019 г. до 12 януари 2020 г. в системата е инсталирана 168-ватова батерия, чиято практическа капацитет за съхранение е 84 ватчаса. Това хранилище е достатъчно, за да поддържа работата на сайта в продължение на две нощи и един ден. Конфигурацията е тествана в най-тъмния период на годината, но времето беше сравнително добро - и през посочения период времето на безотказна работа е било 100%.

Но за да се гарантира 100% аптайм в продължение на няколко години, трябва да се предвиди и най-лошият сценарий, при който лошото време продължава няколко дни. Изчисленията показват: за да се поддържа сайтът онлайн за четири дни с ниска или нулева продукция на енергия, ще бъде необходима оловно-киселинна батерия с капацитет от 440 ватчаса, тоест размер на автомобилна акумулаторна батерия.

На практика при добро време оловно-киселинна батерия с капацитет 48 Вт⋅ч ще поддържа работата на сървъра през нощта от март до септември. Батерия с капацитет 24 Вт⋅ч ще издържи максимум 6 часа, което означава, че ще се изключва всяка нощ, макар и по различно време в зависимост от месеца.

По същество, на някои сайтове не е необходимо да работят през нощта, когато трафикът е минимален, смятат момчетата от Low-tech Magazine. Например, ако това е регионално градско издание, където посетители от други часови зони не влизат, а само местни жители.

Така че за сайтове с различен трафик и различен аптайм са необходими акумулатори с различен капацитет и соларни панели с различен размер.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Авторът предоставя изчисление колко енергия е необходима за производството на самите соларни панели (вградена енергия) и колко е получено, ако тази стойност се раздели на очаквания експлоатационен срок от 10 години.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Така че може да се изчисли аналог на изкопаемото гориво, изразходвано за производството и експлоатацията на панелите. В Low-tech Magazine установиха, че през първата година на работа тяхната система (панел 50 W, батерия 86,4 Вт⋅ч) е "генерирала" около 9 кг емисии или еквивалента на изгаряне на 3 литра бензин: приблизително толкова, колкото лека кола за 50 км пробег.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Ако захранваме сървъра не от слънчеви панели, а от общата енергийна мрежа, то емисиите на въглерод са около шест пъти по-ниски: 1,54 кг (в испанската енергийна система голяма част от енергията е от възобновяеми източници и АЕЦ). Но това не е напълно коректно сравнение, пише авторът, защото то отчита embodied energy на слънчевата инфраструктура, но не отчита този показател за общата енергийна мрежа, т.е. разходите за нейното изграждане и поддръжка.

Допълнителни подобрения

През изминалото време беше проведен редица оптимизации, които намалиха енергийното потребление на сървъра. Например, в някой момент разработчикът забеляза, че 6,63 ТБ от общия обем на 11,15 ТБ трафик генерира една неправилна реализация на RSS фид, която изтегля съдържание на всеки няколко минути. След коригирането на този бъг енергийното потребление на сървъра (без да се отчитат загубите) намаля от 1,14 Вт до около 0,95 Вт. Спечеленото може да изглежда малко, но разликата от 0,19 Вт означава 4,56 ватчаса за денонощие, което кореспондира на повече от 2,5 часа автономна работа на сървъра.

През първата година коефициентът на полезно действие беше само 50%. Загуби бяха наблюдавани при зареждане и разреждане на батерията (22%), а също така и при преобразуване на напрежението от 12 В (слънчева фотоволтаична система) в 5 В (USB), където загубите възлизат на до 28%. Разработчикът признава, че има неоптимален преобразувател на напрежението (контролер без вграден USB), затова може да оптимизира този момент или да премине на соларна инсталация 5V.

За да се повиши ефективността на съхранение на енергия, може да се заменят оловно-киселинни батерии с по-скъпи литиево-йонни батерии, които имат по-ниски загуби при зареждане/разреждане (<10%). В момента конструкторът разглежда компактна система за съхранение на електрическа енергия под формата на компресиран въздух (CAES), която има срок на експлоатация от десетки години, което означава по-малък „въглероден отпечатък“ при нейното производство.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%
Компактен акумулатор на компресиран въздух, източник

Разглежда се инсталирането на допълнителна вятърна турбина (може да бъде изработена от дърво) и инсталиране на слънчев тракер за завъртане на панелите към слънцето. Тракерът позволява увеличаване на производството на електрическа енергия с 30%.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%

Още един начин за повишаване на ефективността на системата е нейното мащабиране. На сървъра да се хостват повече уебсайтове и да се стартират повече сървъри. Тогава разходът на енергия на уебсайт ще намалее.

Домашен уеб сървър на слънчеви батерии работи 15 месеца: uptime 95,26%
Компания за слънчев хостинг. Илюстрация: Диего Мармолехо

Ако покриете целия балкон на апартамента със слънчеви панели и откриете компания за слънчев уеб хостинг, разходите на клиент ще бъдат значително по-ниски, отколкото за един единствен уебсайт: икономия от мащаба.

В цялост, този експеримент показва, че при определени ограничения, компютърната инфраструктура напълно може да работи на възобновяеми източници на енергия.

Теоретично, такъв сървър може дори да мине без акумулатор, ако се зеркалира в други части на света. Например, да се поставят огледала в Нова Зеландия и Чили. Там слънчевите панели ще работят, когато в Барселона е нощ.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster