Кластер это просто! [SuperIntro]Приведу для начала очень забавные высказывания разных людей по поводу определения что же такое Кластер? (ссори не удержался)))). - копипаст отсюда: http://offline.computerra.ru/2002/430/15925/ (первая ссыль в Гугле). В статье я буду говорить про кластер, определение которого дал ведущий программист, системный администратор и более того, попробую с ним не согласиться и поспорить: превратить сеть Windows NT/2000 в кластер. [Использованные термины]Кластер (группа компьютеров) — в вычислительной технике — группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя одну многопроцессорную вычислительную машину. - Wiki. NFS - (Network File System) - Сетевая файловая система (Это вам не Need for Speed ))) прим. автора) - разработанная Sun Microsystems. Распределённая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными. Благодаря системе вызовов удалённых процедур (Sun RPC, RFC 1057), NFS не зависит от типа компьютеров, операционных систем и архитектуры сети. - Wiki MPI (Message Passing Interface) — интерфейс передачи данных, программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между компьютерами, выполняющими одну задачу. MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании, существуют его реализации для большого числа компьютерных платформ. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Стандартизацией MPI занимается MPI Forum. В стандарте MPI описан интерфейс передачи сообщений, который должен поддерживаться как на платформе, так и в приложениях пользователя. В настоящее время существует большое количество бесплатных и коммерческих реализаций MPI. Существуют реализации для языков Фортран 77/90, Си и Си++. - Wiki. MPICH - это одна из самых первых разработанных библиотек MPI. На ее базе было создано большое количество других библиотек как OpenSource так и коммерческих. В настоящее время существует две ветви исходных кодов: MPICH1 и MPICH2. Разработка ветви MPICH1 практически заморожена. Ветвь MPICH2 разрабатывается и обновляется до сих пор в Аргоннской лаборатории, США. - Wiki. Скачать MPICH2 под различные OS можно тут: http://www-unix.mcs.anl.gov/mpi/mpich2/ [intro]Сидел я однажды с больной головой на работе без сока и думал, что же сделать с парой десятков старых компов пятого, шестого поколения (Pentium-133, Селерон-333 и т. п.) Списать и выкинуть их на свалку - жалко, использовать как пишущие машинки - тоже уже как-то не солидно (Ни одина ламерша-секретарь не захочет работать в MS Office 95,97) И вот мне в голову пришла идея создать на основе их кластер, для различного рода дел. Для каких спросите вы? Ну, например, для очень ресурсоёмкой задачи, как подбор паролей (расшифровка хэшей). Ха, скажете вы, в проге Password Pro уже есть возможность распределённого перебора, и отчасти вы будете правы - нам лишь нужно установить прогу на несколько компов в локалке и выбрать разные диапазоны на каждом, для атаки полным перебором. Проги будут общатся по сети и количество найденных паролей будет возрастать быстрее. Мда, хорошая конечно идея, но в случае с консольной версией бруттера. А так ставить на каждый комп копию проги, настраивать диапазон и т. п. (хоть и делать это удалённо) всё равно лишний раз морозить глаза юзверям (через удалённый рабочий стол или Радмина) как-то не очень охота, кроме, отъём ресурсов прогой тоже скажется на производительности каждой отдельной тачки... Вообщем оставим эту тему "Создаём кластер без палева у себя в локалке" как тему отдельной статьи, так как всем понятны функции специфичного трояна, выполняющего миграцию процессов с узла на узел по локальной сети, распределённой файловой системы и т. д и вернёмся к нашим старым ящикам... [Подготовка]Физически кластер у мну сложен в два ряда 8х2 итого 16 машин. Останется немногое: 1.Проверить каждый ящик на работоспособность (проверяем железо). 2. Определяемся с софтом. Все знают о маштабируемости UNIX систем и собрать кластер, не так сложно для знающего линуксоида, к сожелению я таким не являюсь. А что же винда? Кластер на NT ? Бред - скажете вы... Но естественно мы не получим кластер ресурсами самой системы, отсилы мы можем использовать NFS (Сетевую файловую систему). Ясно, что без специализированного софта тут не обойтись, поэтому я полез в Гугл, вбив в поиск кластер, я получил сотни ссылок, но пройдясь по 6-ой ссылке я уже нашёл то что нужно. Так как я читаю статьи с конца (как и многие журналы), то сначала опредилимся с требованиями, которые вообще предъявляются кластеру: - Это требования к "идеальному" кластеру, построенному на специальной версии Linux (проект BCCD - http://bccd.cs.uni.edu/) использующий загрузочный Live-CD, образ которого линуксоиды могут скачать здесь: http://bccd.cs.uni.edu/BCCD-Images/BCCD-2.2.1-pre/bccd-i386-2004-08-21T13-0500.iso Сформулируем требования к нашему кластеру: 1. Известная нам ОС (Windows-NT 4, а можно на некоторые поставить и NT 2000) 2. Узлы кластера имеют жёсткие диски и ОС грузится с жёсткого диска, после подачи питания узел готов к работе в составе кластера. 3. Все узлы имеют сетевые интерфейсы и объединены в сеть с помощью неуправляемого 16-ти портового свича (повторитель) 100 Mbps по протоколу TCP/IP 4. Распределённая (сетевая) файловая система - это нам пригодится, хотя и не так уж необходимо (можно обходиться обычными шарами на время). [Создание кластера]Ну тут два главных момента (Железо и Софт): 1. Железо (на нём я подробно останавливаться не буду, те у кого без дела валяется 16 ящиков-древних компов - знают как объединить их в сеть, с помощью одного 16-ти портового хаба и витой пары). 2. Софт. Ставим ОС Windows NT-4 на Пни-1 (Ящики с процессорами пятого поколения Pentium-133,166,233 и т.п.) На Пни-2 (ящики с процессорами Celeron-333,433 и т. п. ставим Wndows 2000). Почему не на все одну систему? Да потому как, на более новый комп (железо), лучше ставиться более новая система. Меньше проблем будет с драйверами и т. п. А на Пень-1 не вижу смысла ставить windows 2000, так как железо очень слабое и толку от такого узла кластера будет мало.. 3. Настраиваем сетевые интерфейсы: прописываем статические IP, маску и т. д. (ну это я тоже не буду описывать, скажу только одно: все компы засуньте в одну рабочую групу). 4. Выбираем специлизированный софт для кластера. MPICH – самая распространённая бесплатная реализация MPI, имеются версии не только под UNIX, но и под NT. Итак качаем MPICH для win32 отсюда: ftp://ftp.mcs.anl.gov/pub/mpi/nt/mpich.nt.1.2.5.exe (линуксоиды могут найти там же версию под linux). Устанавливаем MPICH (На установке остановлюсь подробнее). Заходим на один узел кластера (под администратором естественно) запускаем инсталятор, ставим всё по умолчанию.. Повторяем установку на каждой машине (узле будущего кластера). Кстате возможна установка из коммандной строки используя скрипт (см. мануал). [Настройка кластера]Настройка кластера сводится к настройке программы на одном хосте. И так, запускаем конфигуратор: MPICH Configuration tool. Жмём пимпу Select, далее выбираем Action и Scanhost - найдём все хосты локалки где мы проинсталировали MPI. Добавляем все хосты (узлы кластера) в список и жмём пимпу Apply (Применить). По нажатию этой кнопки листинг узлов кластера будет занесён в реестр Винды, потом MPI может выбирать узлы по имени для запуска процессов на них... .... продолжение следует (как всегда нет времени, работа, как будет время распишу чем дело кончилось) З.Ы. Собстевно построение кластера можно начать уже и на одном мощном компе, используя Virtual PC, что я и покажу на примере в статье (так как пока мои реяльные ящики не откопаны из-под груды коробок новых компьютеров, а тем более не проверены...;-)
Вообще MPI - это программный интерфейс для обмена сообщениями между процессами. То есть запускаемые приложение должны его поддерживать если просто запустить PasswordPro то скорее всего он не будет использовать все ресурсы (хотя я не проверял). ИМХО: всю статью можно было сократить до двух последних абзацев... Или лучше здесь почитать http://abuse.edu.ioffe.ru/cluster/wincluster PS: Лучше все таки юзать *nix систему....