Я подумывал попробовать какое-нибудь бесплатное программное обеспечение для кластеров. IIUC, две из основных вещей, для которых мы используем серверы, Apache и PostgreSQL, могут быть настроены для избыточной работы на кластерах с помощью модулей балансировки нагрузки и репликации Slony-I. Файловый обмен тоже может быть, наверное, немного проще.
Какие наиболее важные услуги вы не стал бы иметь возможность размещать в кластере (то есть вы бы более или менее застряли с хостингом на одной мощной машине?)
Люди действительно изобретательны в способах, в которые вы не поверите, чтобы кластеры работали и были надежными.
Что касается кластеризации (или, по крайней мере, HA-кластеризации), существуют кластеры с общим хранилищем и кластеры без общего доступа. Кластеры общего хранилища обычно используют файловые системы с поддержкой кластера в централизованном массиве, например SAN. Они используют OCFS, GFS или что-то подобное.
Службы, работающие на них, иногда являются активными / активными, когда обе машины полностью способны предоставлять полный спектр услуг клиентам и обычно используют взвешенную или циклическую балансировку нагрузки, но также могут быть настроены как активный / пассивный, где «Предпочтительная» машина действует как сервер до тех пор, пока не выйдет из строя, и в этом случае другой член кластера вступит во владение.
Кластеры без общего доступа обычно были активными / пассивными, поскольку для активации пассивного члена требовалось изменение состояния. Это меняется с появлением таких вещей, как DRBD, который использует репликацию файловой системы на уровне блоков по сети.
С помощью одного из этих двух методов практически все службы, которые я могу придумать, могут быть реплицированы на массив серверов, особенно если вам все равно, куда вы помещаете файлы состояния. Даже NFS можно реплицировать без зависания клиентов, если все, включая файлы блокировки, ссылаются на централизованное хранилище.
Корпоративные вычисления в целом были очень преданы мышлению о том, что время безотказной работы одной машины не имеет такого значения, как доступность услуг. С этой целью службы были спроектированы таким образом, что отказ одной машины не означает нарушения работы пользователей.