Скрыть
Вычислительные кластеры на Линуксе - SSI vs. "виртуализация"?
У кого какие мнения на этот счёт есть?
Я долгое время имел дело с SSI (single-system image) кластерами, но похоже, что эта технология уже устаревает и требует замены.
Идея SSI - представить кластер в виде большого SMP, что требует, разумеется, модификации ядра системы. Полностью эмуляция так и небыла достигнута, но так или иначе большинство реализаций более или менее справлялись с задачей балансировки нагрузки на процессоры. Если какой-то узел в кластере не загружен, то на него скидывалась задача с загруженного узла. В эпоху своего расцвета (это где-то времена Линукса 2.4) отдельные реализации позволяли даже мигрировать нити (надо понимать, что тогда это были совсем другие нити) между узлами и распределять всю память кластера.
Конец всей этой благодати наступил с распространением dirt-cheap многоядерных процессоров, когда уже появился смысл пихать в кластер многоядерники. Это примерно совпало с переходом на ядро 2.6, где было реализовано распараллеливание на SMP машинах. Понятно, что разработчики SSI систем при этом столкнулись с онтологическим противоречием - необходимости реализации несимметричной многопроцессорной (часть процессоров доступна по сети, а часть - по системной шине) системы в виде SMP (symmetric MP). В итоге такие орлы как Мойша Бар (автор OpenMosix) на это дело забили, так что OpenMOSIX так и остался на 2.4.
Поэтому вопрос заключается в том, насколько оправдан переход с SSI на "виртализованные вычислительные кластеры"? В кавычки я это взял, поскольку термин "виртализация", как мне кажется, не совсем применим.
Есть истинная виртуализация - типа qemu/kvm, которая позволяет запускать гостевые операционные системы, паравиртуализация, типа XEN, которая позволяет запускать специальным образом модифицированные операционки, и "виртуализация", типа тюрьмы во Фряхе, зоны в Соплярисе, и vserver, OpenVZ и тем чем занимается SWSoft в Линуксе. На самом деле - это просто ещё один уровень изоляции в операционной системе, так что правильнее было бы называть их "застеночными(от застенок)/зонными/отсечными(от отсек на судне)" технологиями. Вроде бы по сравнению с истинной виртуализацией и паравиртуализацией эти технологии не дают такого большого провала по скорости. Но вместе с тем что-то я нигде не встречал описания их применения для вычислительных кластеров, в основном только для HA и FailOver (вместе с heartbeat). Насколько сопоставимы по скорости "виртуальные" и SSI кластеры ?
Discuss ...