Infrastruktura
serwerów
Zbigniew Kulesza zjk.pl
Serdecznie
witam
na moich prywatnych, domowych serwerach
FreeBSD/UNIX, Sieradz. Polska
Dzisiaj
jest:
2026-05-30 20:06:58
Aktualizacja dnia:
[an error occurred while processing this directive]

Filozofia projektu:
Parametry
infrastruktury:
- dostępność usług
24/7/365,
- redundancja wybranych
usług i komponentów infrastruktury,
- OPNsense HA
(master/slave + CARP),
- dwa niezależne łącza
ISP,
- LACP/LAGG dla
kluczowych połączeń sieciowych,
- serwery fizyczne i
wirtualne,
- storage, backup i
monitoring,
- systematyczne
aktualizacje sprzętu i oprogramowania
(tryb ciągły, restarty po istotnych
aktualizacjach bez względu na uptime),
- możliwość hostowania
własnych domen i usług.

Powyższy
schemat
i opis poniżej mają charakter poglądowy (ze względów
bezpieczeństwa).
Architektura infrastruktury
Poniższe schematy i opisy mają charakter
poglądowy ze względów bezpieczeństwa.
Opis ekosystemu serwerowni zjk.pl:
"ekosystem", jak zjk.pl działa jako całość z
podkreśleniem najważniejszych technologii.

Infrastruktura składa się z
następujących warstw:
- Warstwa brzegowa
(Edge Layer) - komunikacja ze
światem
- OPNsense HA
(master/slave),
- CARP failover,
- dwa niezależne łącza
ISP,
- routing i
automatyczne przełączanie awaryjne,
- firewall / NAT /
filtrowanie,
- HAProxy / reverse
proxy,
- TLS termination,
- HTTP/3 / QUIC.
Opis:
Warstwa składa się z dwóch modemów różnych
dostawców Internetowych, dwóch komputerów z
OPNsense - z włączonym CARP i tryblem
Master-Slave. Schemat ilustruje ten system:
2 modemy Vectra i Netia, 2 x OPNsense, ale
objemuje warstwę następną - sieci: dwa
switche zarządzalny i zwykły oraz punkt
WiFi.
- Warstwa sieciowa
(Network Layer) - czysta
infrastruktura transportowa
- switch zarządzalny,
- switch zapasowy /
fallback,
- LACP / LAGG,
- VLAN / segmentacja
sieci,
- trunki i agregacja,
- punkt dostępowy WiFi,
- sieć LAN.
Opis:
LAGG/LACP łączy serwery ze switchem
zarządzalnym 2x1Gb/s, jednak w wybranych
miejscach pojawia się jeszcze LAGG w trybie
failover oraz loadbalance.

- Warstwa usług i
aplikacji (Service Layer) - oferowane
funkcjonalności / usługi
- rozproszone serwery
WWW,
- poczta Sendmail,
Dovecot,
- Nextcloud, Piwigo,
- WordPress,
- Jellyfin,
- Git / SVN / Forgejo,
- monitoring - m.in.
Monitorix, Mrtg, Ganglia, Symon,
- logowanie / syslog,
- DNS,
- reverse proxy
aplikacyjne,
- HA usług.
Opis
poczty:
Dwa serwery pocztowe mail.zjk.pl
(mai1.zjk.pl) i mail2.zjk.pl, na obydwu
pracują Sendmaile + wszelkie programy
bezpieczeństwa: rspamd, Mailscanner,
spamassasin oraz fetchmail razem z
mechanizmami: DKIM, SPF, openDMARC i
kluczami LetsEncrypt. Na poziomie dostępu
klienckiego jest to dovecot z bardzo
nowoczesnym mdbox (i ciekawostka: poczta
działa na montowanym z Moosefs /usr/home z
oddzielnym katalogiem szybkich lokalnych
indeksów).

Opis klastra
WWW:
Podaję opis przepływu danych:
a. dane przychodzą na OPNsense,
b. stamtąd HAproxy kieruje je metodą
Round-Robin ze sticky connections do
c. 4 serwerów www (sprawdzając, który
aktualnie jest dostępny),
d. 4 serwery korzystają z katalogów
udostępnionych na MooseFS (1 serwer jeden
katalog )
e. lub (tryb testowy/rezerwowy) 4 SeaweedFS
(tam podobnie: 1 katalog 1 filler),
f. cache - lokalne przy każdym
serwerze: opcache i moduł apache
memory/diskcache,
g. oraz redis - redis jest
skomplikowany, to jest 6 maszyn z jedną
wybraną na master przez 6 sentineli -
synchronizacja działania odbywa
się przez HAproxy na OPNsense i z
wybranego mastera korzystają serwery www,
h. OPNsense dodaje protokół HTTP/3 (w
testach) na swoim wyjściu na protokole UDP,
i. wyjaśnienie - katalogi zarówno MooseFS
jak SeaweedFS - to tak naprawdę jeden
katalog MooseFS montowany na każdym serwerze
www i podobnie SeaweedFS - katalog jest
jeden, ale są 4 oddzielne cache
przechowujące kopie tego katalogu na każdym
komputerze oddzielnie.

Opis DNS:
a. DNS zewnętrzny: 3 dostawców home.pl
seohost.pl porkbun.com - wpisy nie tylko
standard, ale SPF, DKIM, DMARC itp - dla
kilku domen obsługiwanych przez serwery
zjk.pl,
b. DNS wewnętrzny BIND9: 4 maszyny: jedna
master + 3 slave, opisujące pełny schemat
wewnętrznej struktury serwerowni zjk.pl.

- Warstwa storage i
danych (Storage & Data Layer) -
przechowywanie danych i
backend
- ZFS + RAID ZFS,
- MooseFS,
- SeaweedFS,
- PostgreSQL cluster,
- MySQL cluster,
- backup,
- repliki danych,
- object storage,
- snapshoty i backup,
Opis ZFS:
System plików obecny głównie na dyskach
magazynach danych (czyli MooseFS korzysta z
dysków ZFS, także wszystkie dyski archiwów,
backupu), w jeden pool typu raidz2-0 –
odpowiednik RAID 6 (toleruje awarię 2
dysków).
Dyski systemowe z drobnymi wyjątkami
(na ZFS) to UFS2.

Opis
klastra Moosefs:
a. 1 master - to wersja Community Edition,
b. ale 2 serwery mogą przejąc
skryptem rolę mastera,
c. 12 chunkserwerów,
d. ok. 30 punktów montowania, w tym warto
zaznaczyć - montowanie dla serwerów
katalogu /usr/home (co jest dosyć trudną
sprawą do utrzymania), a punkty montowania
to FreeBSD i Windows,
e. warto podkreślić, że istnieją klasy
dysków HDD i SDD (potrójne) oraz specjalna
klasa dla 4 dysków, które służą jako lokalne
maszyny dostarczające pliki dla 4 serwerów
www (dość unikatowe).

Opis
klastra Seaweed:
a. 3 mastery,
b. 7 fillerów,
c. synchronizowane na 4 różnych portach
oddzielnie w HAproxy w OPNsense,
d. 4 filery pracują na katalogi www,
pozostałe to punkty montowania z 2 i 3
krotnością, ale oddzielnie dla szybkich SSD
i zwykłych HDD - uwaga - 3 główne fillery
maja po dwa dyski HDD i SSD, filery www maja
dyski SSD, w sumie jest zatem 10 dysków,
e. SeaweedFS trzyma metadane w PostgreSQL -
3 oddzielne serwery, które pracują w trybie
Hot Redundancy, jeden wybrany na mastera -
wybór oraz transmisja danych bazy
metadane odbywa się przez HAproxy,
które pracuje na OPNsense.

Opis baz
danych:
a. PostgreSQL w trybie Hot Redundancy: 3
serwery z czego jeden wybrany na master,
jego wybór odbywa się poprzez HAproxy na
OPNsense - z dostępem do bazy danych przez
wspólny port na OPNsense - ta baza
danych przechowuje metadane SeaweedFS i
m.in. dane z backupu Bareosa,
b. MySQL - 5 serwerów w trybie Cluster
Replication, komunikują się z OPNsense
do wyboru jednego mastera i jednocześnie na
OPNsense jest udostępniony wspólny port
dostępu do danych. MySQL to głównie bazy
danych dla www,
c. uwaga - bazy danych są backupowane z
pomocą systemowych narzędzi jako
zrzuty z retencją min. 15 dni.

Opis
backupu:
a. każdy z 8 serwerów ma dwa dyski: SSD
główny i HDD z lokalnymi dumpami
(robione moim własnym skryptem -
miesięczne),
b. dane trafiają na wspólny dysk
sieciowy (NFS nie MooseFS),
c. a z niego na dysk zewnętrzny archiwum,
d. backupy Bareosa (klasyka codzienne,
tydzień i miesiąc) na oddzielnych dyskach
NFS,
e. Urbackup - oddzielny dysk nfs
e. dyski MooseFS i SeaweedFS trafiają
na wspomniany zewnętrzny dysk archiwum,
f. backupy /etc /usr/local/etc konfiguracji
- etckeep (testowo).

- Warstwa użytkowników
i klientów (Client Layer) - kto
korzysta z infrastruktury
- komputery domowe,
- laptopy,
- urządzenia mobilne,
- urządzenia IoT,
- systemy testowe,
- urządzenia sieciowe
użytkowników,
- stacje robocze.
- Warstwa systemów
pomocniczych i operacyjnych (Operations
Layer) - zwykle nie pokazują tego
homelaby, jest w zjk.pl
- monitoring,
- alerting,
- log aggregation,
- backup orchestration,
- automatyzacja,
- skrypty HA,
- synchronizacja
konfiguracji,
- dokumentacja
infrastruktury.
- Warstwa zasilania i
niezawodności (Power & Reliability
Layer) - w zjk.pl zasługuje na własną
warstwę
- UPS #1,
- UPS #2,
- dystrybucja DC 12 V,
- bufor akumulatorowy,
- redundancja PSU,
- monitoring zasilania,
- OR-ing / Schottky,
- failover
energetyczny,
Opis
warstwy zasilania:
a. dwa UPS Fideltronik KI PRO 2000,
b. ich wyjściu jest jeszcze podwójny
przełącznik wykrywający zanik zasilania -
czyli wybór linii zasilania jest kaskadowy,
jeśli jeden UPS wyłączy się, przejmuje
zasilanie drugi,
c. zasilanie trafia do dwóch linii -
jedna jest główna do zasilacza 660 W
80Platinum - dającego główną linię zasilania
12 V do wszystkich serwerów,
d. serwery (wszystkie) mają na pokładzie
zasilacze Picopsu (znajdź opis w
Internecie),
e. drugi zasilacz mini-ITX 80Platinum
generuje drugą linię zasilania 12 V ,
f. obie linie 12 V za pośrednictwem diod
Schottkiego łączą się na linii zasilania
serwerów i innych zasobów wrażliwych, jak
OPNsense, switch, WiFi itp - żeby zasilanie
do nich zawsze było dostępne,
g. trzeci zasilacz dużej mocy generuje 12
V, ale już tylko do komputerów
użytkowych - aby były odseparowane .

- Podsumowanie:
wyróżniające technologie i
bezpieczeństwo
- FreeBSD,
- OPNsense,
- HAProxy,
- MooseFS,
- SeaweedFS,
- PostgreSQL HA,
- Mysql Cluster,
- Redis,
- HTTP/2 oraz HTTP/3,
- SPF / DKIM / DMARC,
- monitoring bezpieczeństwa,
- systematyczne
aktualizacje.
Różne
informacje o serwerach:
Usługi: http://www.zjk.pl/serwery/serwer_uslugi.html
Sprzęt: http://www.zjk.pl/serwery/serwer_sprzet.html
Oprogramowanie: http://www.zjk.pl/serwery/serwer_oprogramowanie.html
Aktualizacje: http://www.zjk.pl/serwery/serwer_aktualizacje.html
Technologie: http://www.zjk.pl/serwery/serwer_technologie.html
IPNsense: http://www.zjk.pl/serwery/serwer_ha_opnsense.html
Dawna nazwa "ciasteczkowy
serwer" (nie mylić ze współczesnymi obudowami
mini-ITX). Angielska nazwa subminiaturowych
komputerów to "biscuit computer". Biscuit to
po polsku herbatnik, sucharek (także ang.
"rusk"). Jednocześnie można zauważyć, że
"ciasteczko" to raczej angielskie "cookie".
Jednak po polsku "herbatnikowy serwer" albo
"sucharkowy serwer" brzmi tak sobie... Dlatego
ostatecznie zostawiłem "ciasteczkowy serwer".
Więcej o tych niezwykle małych. pobierających
mało energii komputerkach w dziale "sprzęt".
Zapraszam... UWAGA - dawne "ciasteczka"
zostały zastąpione nowocześniejszymi
konstrukcjami, ale również o bardzo niskim
poborze mocy - opis także w dziale sprzęt.
Łącza
internetowe
Infrastruktura
wykorzystuje dwa niezależne łącza operatorów
dla zwiększenia dostępności usług.
1. Aktualny dostawca Internetu
- Vectra oddział Sieradz - łącze Vectra
biznes
(od 18.VI.2021r.):
600/60 Mb/s (czyli 75 MB/s i 7,5 MB/s)
IP: 88.156.77.167
dawniej 232
2.
Drugie łącze: Netia na BSA Orange,
światłowód
(od
11.V.2021): 1000/300 Mb/s (czyli 125 MB/s i
37,5 MB/s) - promocja Netia
IP: 83.238.166.222
Serwer posiada rejestrację nazwy w
NASK, aktualnie home.pl -
oficjalnie: zjk.pl
Welcome to our website
This is a modern language section designed specifically
for high performance and strict SEO optimization. Web
browsers render the layout seamlessly without being slowed
down by external script execution.
Feel free to paste massive text blocks here. Search
engine crawlers will process this entire language variant
immediately, ensuring all your keywords are fully indexed
without hidden obstacles.
Willkommen auf unserer Webseite
Dies ist ein moderner Sprachbereich, der speziell für
hohe Leistung und SEO-Optimierung entwickelt wurde. Der
Webbrowser rendert das Layout nahtlos, ohne durch die
Ausführung externer Skripte verlangsamt zu werden.
Hier können Sie riesige Textmengen einfügen.
Suchmaschinen-Crawler verarbeiten diesen gesamten
Sprachbereich sofort und stellen sicher, dass alle Ihre
Keywords ohne versteckte Hindernisse vollständig indexiert
werden.