Ребята,
У меня есть несколько компьютеров, некоторые новые, некоторые старые (я коллекционирую их, начиная с моего первого, у которого было 2 Кбайт оперативной памяти, с 1979 года). Коллекция становится огромной, но цель этого вопроса связана с тем, что я всегда любил мощь суперкомпьютеров, или, по крайней мере, мощь больших машин).
Я когда-либо думал об идее объединения машин, чтобы получить более мощную. Я использую локальную сеть (LAN) 1Gbit apeed, где есть 4 машины Intel i7 2600k, работающие на 4.8Ghz watercooler, каждая с 16Mb RAM, SSD и обычными жесткими дисками, в общей сложности 30Tb пространства (всего в LAN). Прочитав статьи и посмотрев много видео о виртуализации, я задаюсь вопросом о возможности установки гипервизоров bare metal (Type 1) на каждой машине, а затем создания виртуальной машины, которая будет распределена по физическим машинам, чтобы я мог установить операционную систему, например Windows, поверх, для запуска программного обеспечения, которому требуется много ресурсов, таких как CPU, RAM, Hard disk и т. д.
Я полагаю, что должен быть способ, которым виртуальная машина "думает", что она установлена на одной машине, но на самом деле она распределена по нескольким узлам (как кластер). Для виртуальной машины она видит систему как одну большую машину, но на самом деле есть общий ЦП, общая ОЗУ и общие жесткие диски.
Используя этот способ, мы могли бы установить OP и запустить, например, Adobe After Effects или Adobe Premiere, которым нужна выдающаяся параллельная обработка (или мощность процессора) для создания предпросмотров в реальном времени или для запуска сложного программного обеспечения, которое может выиграть от использования нескольких процессоров. Я знаю, что многие люди предложили бы купить большую многопроцессорную, многоядерную машину xeon для параллельной обработки, но это не так... Мне нравится думать, что с нынешними технологиями должен быть способ объединить ПК и получить большую вычислительную мощность.
Я вижу, как люди присоединяются к Raspberry Pi и создают «суперкомпьютеры» на YouTube, с производительностью около 1 терафлопса, так почему бы нам не сделать то же самое с нашими собственными машинами, у которых есть локальная сеть, оперативная память, диски... разве это не то же самое, нам нужно только программное обеспечение и как это сделать, не так ли? Возможно ли это? Как это сделать?
Спасибо
решение1
К сожалению, на данный момент «суперкомпьютер», который вы хотите запустить, еще не разработан с точки зрения аппаратного и программного обеспечения.
Существующие гипервизоры для виртуализации, такие как Hyper-V, VMware ESXi, XenServer, позволяют запускать виртуальные машины на одном хосте или в кластере. Гипервизор берет аппаратный ЦП, ОЗУ и хранилище и «преобразует» их в виртуальные ресурсы для запуска ВМ. Для хранения его можно настроить в общих томах, зеркалируемых между хостами с использованием сетевого подключения для передачи данных (например, iSCSI SAN, VMware VSAN, StarWind VSAN и т. д.), но каждая ВМ по-прежнему использует только локальные вычислительные ЦП и ОЗУ.
По моему опыту, не существует программного или аппаратного обеспечения, которое могло бы объединить ЦП, оперативную память и хранилище, поскольку не существует типа шины, который мог бы обеспечить связь между хостами «суперкомпьютера».
решение2
Приложения ограничены теми, которые эффективно используют ваши заданные ресурсы. Вы не сможете запустить After Effects на вашем "суперкомпьютере", если не существует программного обеспечения, которое знает, как разделить рабочую нагрузку между всеми вашими подчиненными.
Во-первых, у вас нет необходимого программного обеспечения. Даже если вы приобретете необходимое программное обеспечение для виртуализации (любой ценой, или если компания вообще захочет его вам продать!), существуют минимальные требования к кластеру, которые обычно включают в себя почти идентичные спецификации. Самое близкое, что я смог найти, это VMware ESXi.
Во-вторых, существуют огромные штрафы от взаимодействия компьютеров друг с другом, вплоть до того, что любой прирост производительности по сути сводится на нет. Совместное использование оперативной памяти по сети слишком медленно, чтобы быть жизнеспособным, а совместное использование диска через iSCSI может оказаться не таким надежным, как вы ожидали.
В-третьих, энергоэффективность этих обычных настольных компьютеров в совокупности настолько низка, что вы не сможете оплатить этот «суперкомпьютер» уже через месяц или около того.
Вы хотите заработать деньги с вашими текущими ресурсами, но это не способ сделать это. Просто продайте свои компьютеры, чтобы купить более производительные — даже ваш антиквариат будет хорошо продаваться.
решение3
Это на самом деле можно сделать. Раньше был дистрибутив Linux под названием ClusterKnoppix, который был основан на открытом исходном коде форка все еще доступного проприетарного, но бесплатного AFAICS, пакета Linux под названиемМосикс.
Из руководства администратора:
MOSIX — это пакет, который обеспечивает балансировку нагрузки путем миграции процессов в кластерах и многокластерных частных облаках. MOSIX предназначен в первую очередь для распределенных параллельных вычислений, например, используемых для интенсивных вычислений.
Что оно делает:
Предоставляет односистемный образ.
– Пользователи могут войти в систему на любом узле и им не нужно знать, где запущены их программы.
– Нет необходимости модифицировать или связывать приложения со специальными библиотеками.
Автоматическое обнаружение ресурсов и распределение рабочей нагрузки.
Но
Все узлы должны иметь архитектуру x86 64 (64-бит). Все ядра одного узла должны иметь одинаковую скорость.
Поэтому он может не соответствовать вашим конкретным требованиям.