Jak tak, to:
Raczej poleciłbym, choć na część serwerów (DHCP, DNS, FW) - FreeBSD.
* FW - pfsync zapewni spójność reguł i stanu firewalla między węzłami.
* DNS - tylko synchronizacja baz (np rsync) i niech będzie świadczone przez 2 niezależne serwery. Sama konfiguracja dwóch serwerów w kliencie zapewni failover.
* DHCP - nie wiem, jaki serwer. Niektóre używają bazy danych jako backendu i wtedy bezpieczeństwo backendu zapewni replikacja bazy a bezpieczeństwo frontendu np CARP albo - tak jak z DNS - praca 2 serwerów jednocześnie.
* Firebird ma "zewnętrzne" narzędzia do replikacji baz między wieloma serwerami.
* Samba i pliki statyczne do Apache'a - wzdeh... To trudniej - na przykład glusterfs, sieciowy system plików z replikacją. Stawiasz kilka serwerów przechowujących i synchronizujących dane, a na serwerach "konsumujących" je (czyli właśnie katalogi udostępniane przez Sambę czy Apache) podmontowujesz je. Trochę jak NFS, tylko z dodatkową replikacją danych. System działa jak długo działa wystarczająco dużo serwerów glustera, aby zapewnić komplet danych (przy mirrorze - co najmniej jeden) i co najmniej jeden serwer Samba/Apache.
* Niech ręka linusowa broni stawiać Firebirda z plikami baz na glusterfs.
Czyli podsumowując:
1/ Najbardziej "na dnie"
- serwery zapewniające przestrzeń danych dla GlusterFS
- serwery FireBird z replikacją między serwerami
- serwery użytkowników dla Samby (nie wiem, jaki backend planujesz - LDAP?)
Nic nie stoi na przeszkodzie, żeby każdy serwer backendowy był współdzielony przez poszczególne serwisy, jako osobne usługi nie korzystające z siebie nawzajem. Czyli np 3-4 serwery, na każdym replika glusterfs, firebirda i LDAPa
2/ Middleware
- Serwer Apache (pliki serwowane z udziału glusterfs, dane serwowane z klastra FireBird)
- Serwer Samba (pliki serwowane z udziału glusterfs, użytkownicy z klastra LDAP)
- DNS - konfiguracja synchronizowana z Rsync, serwowana z glusterfs albo serwowana z bazy danych (zależnie od użytego serwera)
- DHCP - konfiguracja serowowana z bazy danych, tam też baza przydziałów. Ostatecznie Dnsmasq, tylko niech każdy serwer serwuje IPki z rozłączych zakresów, bo ten serwer nie ma synchronizacji baz przydziałów.
3/ Frontend
- Firewall synchronizowany przez pfsync
Wersja bida-bida: 4 serwery, 2 na BE i 2 na połączone FE+MW. Backend - dużo dysku, średniomocne kompy, frontend z MW: mało dysku, mocniejsze kompy.