Storage cluster řeším už roky a lokální řešení skončí vždy na nějakém kompromisu. Navíc se u toho špatně experimentuje, protože ztráta dat je průser i když máš zálohu.
DRBD: Sync na úrovni blokového zařízení. Je to stará technologie a za mě to je jen něco jako síťový RAID. Na zrcadlení dvou serverů to je super, ale na 10 strojů bych se to bál použít. Nicméně to není založené na zkušenostech, tak směle do toho :-)
CEPH: Nikdy jsem nepoužil, odrazovala mě šílená univerzálnost. Podporuje object storage, block storage i fuse.
Gluster: Funguje pěkně dokud po něm člověk nechce výkon na malých souborech. Možná se to v posledních verzích zlepšilo a asi bych si ho dokázal představit použít. Nicméně fyzické servery už dlouho nemám a tak o tom ani neuvažuju.
S3: Pokud potřebuješ uložit jen hodně dat, nepotřebuješ práva nebo symlinky a nevadí ti přístup přes API, tak tohle je nejlepší možnost. Je to jednoduchá key-value databáze natvarovaná tak, že se tváří, že má stromovou strukturu. Lokálně můžeš nahodit třeba Minio. Mám pocit, že na Minio je postavené S3 úložiště na DigitalOcean a mě fungovalo vždy spolehlivě. V clusteru jsem ho ale nikdy neprovozoval v produkci.
A už se dostáváme do cloudu, protože S3 je nejjednodušší použít od nějakého poskytovatele. 10 TB prostoru u AWS tě přijde na $230 měsíčně + traffic mimo AWS. U DigitalOcean to je $200 + traffic. Ale nejsou to jediní dva.
EBS/EFS od Amazonu: Pak tu jsou elastic block storage a file system. Obojí s vysokými limity a Amazon za tebe clusterování vyřeší. Cenovka za 10 TB začíná na $330 a $1100 měsíčně. K obojímu jsou snad i alternativy v Azure.
Vzhledem k tomu, že píšeš, že není potřeba přenášet moc dat, upravil bych aplikaci tak, aby fungovala s S3.
Pokud se přeci jen rozhodneš použít stroje co máš někde u sebe, neexistuje něco jako specializovaná firma, která by to za tebe udělala a dala ti k tomu support. Nasazení takto citlivých technologií je o procesech. Když to instaluješ, piš dokumentaci. Projeď si případy, kdy ti spadnou všechny stroje a nebo jen část z nich. Vytvoř si plán, podle kterého se budeš moct v případě nutnosti řídit, případně jak to celé nahodit znovu. Používej Ansible. Nastavíš to dneska, ale může se to rozsypat až za dva roky a to už o tom budeš vědět kulový. Až budeš zvažovat nějaké konkrétní řešení, projdi si, jak se dělá upgrade, aby to nechtělo vytvořit cluster znovu.
Když budeš mít support od nějaké firmy, tak o víkendu nic nevyřešíš a v týdnu můžou mít reakční dobu ve dnech. Navíc tě nemusí přes smlouvu pustit dovnitř, takže to pak je jen o čekání a ani po tom se nemusí stát zázrak. Alza by mohla vyprávět.
https://www.lupa.cz/clanky/nestrilejte-specialisty-aneb-co-zpusobilo-rozsahly-databazovy-vypadek-v-alza-cz/Dobrým zdrojem inspirace je dokumentace Dockeru nebo Kubernetes, kde se tohle řeší:
https://docs.docker.com/engine/extend/legacy_plugins/https://kubernetes.io/docs/concepts/storage/storage-classes/#provisioner