Как сделать кластер из двух компьютеров

Как сделать кластер из двух компьютеров

В данной статье будет показано, как построить отказоустойчивый кластер Server 2012 с двумя узлами. Сначала я перечислю обязательные условия и представлю обзор настроек аппаратной среды, сети и хранилища данных. Затем будет подробно описано, как дополнить Server 2012 функциями отказоустойчивой кластеризации и использовать диспетчер отказоустойчивого кластера для настройки кластера с двумя узлами

В Windows Server 2012 появилось так много новшеств, что за всеми уследить трудно. Часть наиболее важных строительных блоков новой ИТ-инфраструктуры связана с улучшениями в отказоустойчивой кластеризации. Отказоустойчивая кластеризация зародилась как технология для защиты важнейших приложений, необходимых для производственной деятельности, таких как Microsoft SQL Server и Microsoft Exchange. Но впоследствии отказоустойчивая кластеризация превратилась в платформу высокой доступности для ряда служб и приложений Windows. Отказоустойчивая кластеризация — часть фундамента Dynamic Datacenter и таких технологий, как динамическая миграция. Благодаря Server 2012 и усовершенствованиям нового протокола Server Message Block (SMB) 3.0 область действия отказоустойчивой кластеризации стала увеличиваться, обеспечивая непрерывно доступные файловые ресурсы с общим доступом. Обзор функциональности отказоустойчивой кластеризации в Server 2012 приведен в опубликованной в этом же номере журнала статье «Новые возможности отказоустойчивой кластеризации Windows Server 2012».

Обязательные условия отказоустойчивой кластеризации

Для построения двухузлового отказоустойчивого кластера Server 2012 необходимы два компьютера, работающие с версиями Server 2012 Datacenter или Standard. Это могут быть физические компьютеры или виртуальные машины. Кластеры с виртуальными узлами можно построить с помощью Microsoft Hyper-V или VMware vSphere. В данной статье используются два физических сервера, но этапы настройки кластера для физических и виртуальных узлов одни и те же. Ключевая особенность заключается в том, что узлы должны быть настроены одинаково, чтобы резервный узел мог выполнять рабочие нагрузки в случае аварийного переключения или динамической миграции. Компоненты, использованные в тестовом отказоустойчивом кластере Server 2012 представлены на рисунке.

Рисунок. Просмотр компонентов кластера

Для отказоустойчивого кластера Server 2012 необходимо общее хранилище данных типа iSCSI, Serially Attached SCSI или Fibre Channel SAN. В нашем примере используется iSCSI SAN. Следует помнить о следующих особенностях хранилищ этого типа.

  • Каждый сервер должен располагать по крайней мере тремя сетевыми адаптерами: одним для подключения хранилища iSCSI, одним для связи с узлом кластера и одним для связи с внешней сетью. Если предполагается задействовать кластер для динамической миграции, то полезно иметь четвертый сетевой адаптер. Однако динамическую миграцию можно выполнить и через внешнее сетевое соединение — она просто будет выполняться медленнее. Если серверы используются для виртуализации на основе Hyper-V и консолидации серверов, то нужны дополнительные сетевые адаптеры для передачи сетевого трафика виртуальных машин.
  • В быстрых сетях работать всегда лучше, поэтому быстродействие канала связи iSCSI должно быть не менее 1 ГГц.
  • Цель iSCSI должна соответствовать спецификации iSCSI-3, в частности обеспечивать постоянное резервирование. Это обязательное требование динамической миграции. Оборудование почти всех поставщиков систем хранения данных соответствует стандарту iSCSI 3. Если нужно организовать кластер в лабораторной среде с небольшими затратами, обязательно убедитесь, что программное обеспечение цели iSCSI соответствует iSCSI 3 и требованиям постоянного резервирования. Старые версии Openfiler не поддерживают этот стандарт, в отличие от новой версии Openfiler с модулем Advanced iSCSI Target Plugin (http://www.openfiler.com/products/advanced-iscsi-plugin). Кроме того, бесплатная версия StarWind iSCSI SAN Free Edition компании StarWind Software (http://www.starwindsoftware.com/starwind-free) полностью совместима с Hyper-V и динамической миграцией. Некоторые версии Microsoft Windows Server также могут функционировать в качестве цели iSCSI, совместимой со стандартами iSCSI 3. В состав Server 2012 входит цель iSCSI. Windows Storage Server 2008 R2 поддерживает программное обеспечение цели iSCSI. Кроме того, можно загрузить программу Microsoft iSCSI Software Target 3.3 (http://www.microsoft.com/en-us/download/details.aspx?id=19867), которая работает с Windows Server 2008 R2.

Дополнительные сведения о настройке хранилища iSCSI для отказоустойчивого кластера приведены во врезке «Пример настройки хранилища iSCSI». Более подробно о требованиях к отказоустойчивой кластеризации рассказано в статье «Failover Clustering Hardware Requirements and Storage Options» (http://technet.microsoft.com/en-us/library/jj612869.aspx).

Добавление функций отказоустойчивой кластеризации

Первый шаг к созданию двухузлового отказоустойчивого кластера Server 2012 — добавление компонента отказоустойчивого кластера с использованием диспетчера сервера. Диспетчер сервера автоматически открывается при регистрации в Server 2012. Чтобы добавить компонент отказоустойчивого кластера, выберите Local Server («Локальный сервер») и прокрутите список вниз до раздела ROLES AND FEATURES. Из раскрывающегося списка TASKS выберите Add Roles and Features, как показано на экране 1. В результате будет запущен мастер добавления ролей и компонентов.

Экран 1. Запуск мастера добавления ролей и компонентов

Первой после запуска мастера откроется страница приветствия Before you begin. Нажмите кнопку Next для перехода к странице выбора типа установки, на которой задается вопрос, нужно ли установить компонент на локальном компьютере или в службе Remote Desktop. Для данного примера выберите вариант Role-based or feature-based installation и нажмите кнопку Next.

На странице Select destination server выберите сервер, на котором следует установить функции отказоустойчивого кластера. В моем случае это локальный сервер с именем WS2012-N1. Выбрав локальный сервер, нажмите кнопку Next, чтобы перейти к странице Select server roles. В данном примере роль сервера не устанавливается, поэтому нажмите кнопку Next. Или можно щелкнуть ссылку Features в левом меню.

На странице Select features прокрутите список компонентов до пункта Failover Clustering. Щелкните в поле перед Failover Clustering и увидите диалоговое окно со списком различных компонентов, которые будут установлены как части этого компонента. Как показано на экране 2, по умолчанию мастер установит средства управления отказоустойчивыми кластерами и модуль отказоустойчивого кластера для Windows PowerShell. Нажмите кнопку Add Features, чтобы вернуться на страницу выбора компонентов. Щелкните Next.

Экран 2. Добавление средства отказоустойчивого кластера и инструментов

На странице Confirm installation selections будет показана функция отказоустойчивого кластера наряду с инструментами управления и модулем PowerShell. С этой страницы можно вернуться и внести любые изменения. При нажатии кнопки Install начнется собственно установка компонентов. После завершения установки работа мастера будет завершена и функция отказоустойчивого кластера появится в разделе ROLES AND FEATURES диспетчера сервера. Этот процесс необходимо выполнить на обоих узлах.

Проверка отказоустойчивого кластера

Следующий шаг после добавления функции отказоустойчивого кластера — проверка настроек среды, в которой создан кластер. Здесь можно воспользоваться мастером проверки настроек в диспетчере отказоустойчивого кластера. Этот мастер проверяет параметры аппаратных средств и программного обеспечения всех узлов кластера и сообщает обо всех проблемах, которые могут помешать организации кластера.

Чтобы открыть диспетчер отказоустойчивого кластера, выберите параметр Failover Cluster Manager в меню Tools в диспетчере сервера. В области Management щелкните ссылку Validate Configuration, как показано на экране 3, чтобы запустить мастер проверки настроек.

Экран 3. Запуск мастера проверки конфигурации

Сначала выводится страница приветствия мастера. Нажмите кнопку Next, чтобы перейти к выбору серверов или странице Cluster. На этой странице введите имена узлов кластера, который необходимо проверить. Я указал WS2012-N1 и WS2012-N2. Нажмите кнопку Next, чтобы показать страницу Testing Options, на которой можно выбрать конкретные наборы тестов или запустить все тесты. По крайней мере в первый раз я рекомендую запустить все тесты. Нажмите кнопку Next, чтобы перейти на страницу подтверждения, на которой показаны выполняемые тесты. Нажмите кнопку Next, чтобы начать процесс тестирования кластера. В ходе тестирования проверяется версия операционной системы, настройки сети и хранилища всех узлов кластера. Сводка результатов отображается после завершения теста.

Если тесты проверки выполнены успешно, можно создать кластер. На экране 4 показан экран сводки для успешно проверенного кластера. Если при проверке обнаружены ошибки, то отчет будет отмечен желтым треугольником (предупреждения) или красным значком "X" в случае серьезных ошибок. С предупреждениями следует ознакомиться, но их можно игнорировать. Серьезные ошибки необходимо исправить перед созданием кластера.

Экран 4. Просмотр отчета о проверке

Создание отказоустойчивого кластера

На данном этапе можно создать кластер, начиная с любого узла кластера. Я организовал кластер, начав на первом узле (WS2012-N1).

Чтобы создать новый кластер, выберите ссылку Create Cluster на панели Management или панели Actions, как показано на экране 5.

Экран 5. Запуск мастера создания кластера

В результате будет запущен мастер создания кластера, работа которого начинается со страницы приветствия. Нажмите кнопку Next, чтобы перейти на страницу выбора серверов, показанную на экране 6. На этой странице введите имена всех узлов кластера, затем нажмите кнопку Next.

Экран 6. Выбор серверов для кластера

На странице Access Point for Administering the Cluster следует указать имя и IP-адрес кластера, которые должны быть уникальными в сети. На экране 7 видно, что имя моего кластера WS2012-CL01, а IP-адрес — 192.168.100.200. При использовании Server 2012 IP-адрес кластера может быть назначен через DHCP, но я предпочитаю для своих серверов статически назначаемый IP-адрес.

Экран 7. Настройка точки доступа кластера

После ввода имени и IP-адреса нажмите кнопку Next, чтобы увидеть страницу подтверждения (экран 8). На этой странице можно проверить настройки, сделанные при создании кластера. При необходимости можно вернуться и внести изменения.

Экран 8. Подтверждение параметров, выбранных при создании кластера

После нажатия кнопки Next на странице подтверждения формируется кластер на всех выбранных узлах. На странице хода выполнения показаны шаги мастера в процессе создания нового кластера. По завершении мастер покажет страницу сводки с настройками нового кластера.

Мастер создания кластера автоматически выбирает хранилище для кворума, но часто он выбирает не тот диск кворума, который хотелось бы администратору. Чтобы проверить, какой диск используется для кворума, откройте диспетчер отказоустойчивого кластера и разверните кластер. Затем откройте узел Storage и щелкните узел Disks. Диски, доступные в кластере, будут показаны на панели Disks. Диск, выбранный мастером для кворума кластера, будет указан в разделе Disk Witness in Quorum.

В данном примере для кворума был использован Cluster Disk 4. Его размер 520 Мбайт, чуть больше минимального значения для кворума 512 Мбайт. Если нужно использовать другой диск для кворума кластера, можно изменить настройки кластера, щелкнув правой кнопкой мыши имя кластера в диспетчере отказоустойчивого кластера, выбрав пункт More Actions и Configure Cluster Quorum Settings. В результате появится мастер выбора конфигурации кворума, с помощью которого можно изменить параметры кворума кластера.

Читайте также:  Временная почта темп мэйл

Настройка общих томов кластера и роли виртуальных машин

Оба узла в моем кластере имеют роль Hyper-V, так как кластер предназначен для виртуальных машин с высокой доступностью, обеспечивающих динамическую миграцию. Чтобы упростить динамическую миграцию, далее требуется настроить общие тома кластера Cluster Shared Volumes (CSV). В отличие от Server 2008 R2, в Server 2012 общие тома кластера включены по умолчанию. Однако все же требуется указать, какое хранилище следует использовать для общих томов кластера. Чтобы включить CSV на доступном диске, разверните узел Storage и выберите узел Disks. Затем выберите диск кластера, который нужно использовать как CSV, и щелкните ссылку Add to Cluster Shared Volumes на панели Actions диспетчера отказоустойчивого кластера (экран 9). Поле Assigned To этого диска кластера изменится с Available Storage на Cluster Shared Volume (общий том кластера), как показано на экране 9.

Экран 9. Добавление CSV

В это время диспетчер отказоустойчивого кластера настраивает хранилище диска кластера для CSV, в частности добавляет точку подключения в системном диске. В данном примере общие тома кластера включаются как на Cluster Disk 1, так и на Cluster Disk 3 с добавлением следующих точек подключения:

На данном этапе построен двухузловой кластер Server 2012 и включены общие тома кластера. Затем можно установить кластеризованные приложения или добавить в кластер роли. В данном случае кластер создан для виртуализации, поэтому добавляем роль виртуальной машины в кластер.

Чтобы добавить новую роль, выберите имя кластера на панели навигации диспетчера отказоустойчивого кластера и щелкните ссылку Configure Roles на панели Actions, чтобы запустить мастер высокой готовности. Нажмите кнопку Next на странице приветствия, чтобы перейти на страницу выбора роли. Прокрутите список ролей, пока не увидите роль виртуальной машины, как показано на экране 10. Выберите роль и нажмите кнопку Next.

Экран 10. Добавление роли виртуальной машины

На странице выбора виртуальной машины будут перечислены все VM на всех узлах кластера, как показано на экране 11. Прокрутите список и выберите виртуальные машины, которым необходимо обеспечить высокую готовность. Нажмите кнопку Next. Подтвердив свой выбор, нажмите Next, чтобы добавить роли виртуальной машины в диспетчер отказоустойчивого кластера.

Экран 11. Выбор виртуальных машин, которым необходимо обеспечить высокую надежность

Пример настройки хранилища iSCSI

Для отказоустойчивого кластера Windows Server 2012 требуется общее хранилище, которое может быть типа iSCSI, Serially Attached SCSI или Fibre Channel SAN. В данном отказоустойчивом кластере используется Channel SAN.

Сначала в сети iSCSI SAN были созданы три логических устройства LUN. Один LUN был создан для диска кворума кластера (520 Мбайт). Другой LUN предназначен для 10 виртуальных машин и имеет размер 375 Гбайт. Третий LUN выделен для небольшой тестовой виртуальной машины. Все три LUN представлены в формате NTFS.

После того, как были созданы LUN, была выполнена настройка iSCSI Initiator на обоих узлах Server 2012. Чтобы добавить цели iSCSI, был выбран iSCSI Initiator в меню Tools в диспетчере сервера. На вкладке Discovery я нажал кнопку Discover Portal. В результате появилось диалоговое окно Discover Portal, куда были введены IP-адрес (192.168.0.1) и порт iSCSI (3260) сети SAN.

Затем я перешел на вкладку Targets и нажал кнопку Connect. В диалоговом окне Connect To Target («Подключение к целевому серверу») я ввел целевое имя iSCSI SAN. Оно было получено из свойств SAN. Имя зависит от поставщика SAN, имени домена и имен созданных LUN. Помимо целевого имени я установил режим Add this connection to the list of Favorite Targets.

По завершении настройки iSCSI эти LUN появились на вкладке Targets iSCSI Initiator. Чтобы автоматически подключать LUN при запуске Server 2012, я убедился, что они перечислены на вкладке Favorite Targets, как показано на экране A.

Экран A. Настройка iSCSI Initiator

Наконец, были назначены буквенные обозначения устройствам LUN с помощью оснастки Disk Management консоли управления Microsoft (MMC). Я выбрал Q для диска кворума и W для диска, используемого для виртуальных машин и общих томов кластера (CSV). При назначении буквенных обозначений необходимо сначала назначить их на одном узле. Затем нужно перевести диски в автономный режим и сделать аналогичные назначения на втором узле. Результаты назначения букв дискам для одного узла приведены на экране B. При создании кластера диски будут показаны как доступное хранилище.

Если у вас есть 32 старых однопроцессорных компьютера, нужно лишь найти способ, как заставить их работать сообща. Другими словами — собрать из них кластер. Да, у них всего по одному процессорному ядру, но все вместе они смогут сделать больше, чем одна двухъядерная машина. Как это сделать, рассказано в статье Т. Лемана (Tom Lehmann) «Как создать высокопроизводительный вычислительный кластер на Linux». В статье приведен обзор пакета Rocks — Linux-дистрибутива для развертывания, управления и поддержки высокопроизводительного вычислительного кластера.

> но все вместе они смогут сделать больше, чем одна двухъядерная машина

проще сдать весь этот хлам на металлолом и купить четырехъядерную машину

>Если у вас есть 32 старых однопроцессорных компьютера

А я-то думал куда мне деть мои 32 старых компа.

А также не только на старых однопроцессорных компьютерах, но и на КПК, смартфонах, и прочих ЕС ЭВМ http://ru.inferno-os.wikia.com/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B9_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80_Grid

Т.е. 32 компа немногим лучше, чем одна двухядерная машина?

> Т.е. 32 компа немногим лучше, чем одна двухядерная машина?

Скорее хуже, если нет своей АЭС.

/me пошел делать кластер из 133 и 166 машинок

у нас в европе элекричество дорогое. так что лесом эту хрень

лучше купить один мощный комп.

А счет за киловатт-часы кто будет оплачивать?

Это развёртывать можно разве что в университетах, где тачки одинаковые.

> Если у вас есть 32 старых однопроцессорных компьютера

Возможно Вы серьезно больны.

Боюсь серверные двухканальные сетевухи будут стоить дороже этого хлама, а на обычных делать смысла нет — пересылки всё сожрут.

> лучше купить один мощный комп.

А лучше 32 мощных компа 🙂

> Боюсь серверные двухканальные сетевухи будут стоить дороже этого хлама, а на обычных делать смысла нет — пересылки всё сожрут.

Именно поэтому по ссылке упоминается InfiniBand.

Вот тут тоже про кластеры.

Это главная? Или толксы?

>Если у вас есть 32 старых однопроцессорных компьютера

Поменяйте их на один новый

>Да, у них всего по одному ядру, но все вместе они смогут сделать больше, чем одна двухъядерная машина.

Потребить электричества уж точно. А без должного распараллеливания нужных процессов такой кластер будет совершенно бесполезен.

чОрт, у меня есть только всего один старый комп. Я смогу сделать из него кластер, который обделает все 10-ядерные ксеноны.

Хм, интересная статья, не знал что есть готовые дистрибутивы заточенные под это.

А о том, как приготовить офигический ужин на двоих из 7 протухших сарделек там не пишут?

а почему вы интересуетесь?

Пишут как сделать ужин, а протухшие или свежие сардельки туда резать — Вам решать 😀

А по делу мне кажется что статья вполне ничего. Как ознакомительная по кластерным дистрам. Кстати, Beowulf-подобные решения вполне могут быть востребованы в тех же универах для обучения. У нас было такое дело что пришел новый класс, старый так тоже вполне себе ничего был. Там оптероны 4-процовые стояли. И их "утилизировали" подобным способом.

> чОрт, у меня есть только всего один старый комп. Я смогу сделать из него кластер, который обделает все 10-ядерные ксеноны.

и питцот галагенок

всё, бегу докупать ещё 31 однопроцессорный комп, и я буду круче чем сосед со своим 2 ядерным ноутбуком. вот я его натяну! ( а электричество.. это уже мелочи.. главное куда деть эти 32 компа?)

только сегодня думал что надо почитать про кластеры линуксовые ^_^

>Если у вас есть 32 старых однопроцессорных компьютер

Слово "старых" явно лишнее в названии статьи.

Действительно хорошая статья. Призадумался о том, чтобы реализовать описанную схему в университете.

О! У меня! У меня есть!!1111111 Вся кладовка в офисе ими завалена (на полном серьёзе, раньше юзались как ТК, потом перешли на ТК от HP) — выбросить жалко, применить некуда.

Интересно, если их все в кластер собрать — на них tomboy пойдёт?

>Если у вас есть 32 старых однопроцессорных компьютера

Еще ж не пятница. Вот как надо писать новости, эх!

Самая идея совершенно бредовая, но очень типичная для нищебродского отечественного IT. Дело-то ведь не в том, чтобы сэкономить за счёт использования кластера — да Боже упаси, эксплуатация скоренько сожрёт денег больше, чем любой Гаргантюа с Пантагрюэлем вместе взятые, — НЕТ, дело в том, чтобы уложиться в текущий бюджет, чтобы, например, обучение начальника каким-нибудь основам CRM/BPM не пошло прахом из-за покупки нового дорогого мощного сервера. Народ в организациях просто боиться тратиться единовременно на крупные суммы. Лучше вот 10 раз по 30 рублей, чем один раз аж 100 капиталовыложить! И все прекрасно понимают, что кластер из хлама — это бесполезно и бесцельно, впустую потраченное время специалистов (которое тоже чего-то ПО ИДЕЕ должно бы стоить), это неоправданно высокие затраты электроэнергии, это на порядки более геморройные и менее диагностируемые проблемы с железом, это место в серверной в конце-концов (и оно тоже денег стоит), но ё-моё, вы ж посмотрите, господин гавнюк, то мы бы купили IBM P-серии (кошмарно дорогой, аж два ваших отпуска в Европе!), а так — мы такие умные, погладщьте нас по головке и увеличьте фонд на обучение, уйму денег вам сэкономим, старую серверную рухлядь соберём в ультрамодное словечко — HA-кластер (НА — это, правда, не высокодоступный значит, это просто наше русское классическое НА <ТУДА_ТО>) и будем круче яиц, сваренных в крутую на процессорах этих 32-х машинок. УРА! Все счастливы, углекислый газ выделяется, парниковый эффект усиливается, скоро все будем жить на Канарах или хотя бы просто на острове посреди Мирового Океана — все вместе, начальнека, все вместе, в тесноте, да не в обиде.

Читайте также:  Вики разметка вконтакте как сделать меню

p.s. Ъ юзают http://xcpu.org/ !111 или вообще чистую plan9!111

как пел Евгений Гудзь, "серебряные зайцы водят хоровод". теперь я знаю, он про гленду 😉

Нифигасе высер. А если я четыре сервака на кореквадах в кластер хочу, чтоб аппсервер мог не 3000 а 10000 соединений одновременных обслуживать? А тестироваться/практиковаться на чём?

Спасибо, Виктор Алексеевич. Хорошая, годная статья.

Я бы переименовал в "Как собрать обогреватель".
В принципе лето заканчивается, скоро будет актуально.

Виндовый ботнет и то выглядит перспективнее для всяких расчетов, чем старая рухлядь (еще и 32 шутки). И тише будет.

Чтобы аппсервер мог больше соединений обслуживать, прежде всего замените аппсервер на бэкенды, написанные на C и веб-фронтенды на Perl! Java-сервера приложений 80% времени своей работы тупо жрут процессорное время и память. Дай какой-нибудь веб-сфере сказать "Hello, world!", она и на это потратит столько же тактов, сколько в каком-нибудь 1970-ом году тртилось на расчёт полёта космической ракеты. У меня как у ASM-програмиста подобные вещи ничего, кроме отвращения, не вызывают. Ну и собственно очень редко узким местом является именно процессор, гораздо чаще это всё-таки ввод-вывод, ну а коли у вас все ноды кластера наверняка будут подключены к одной полке и делить одно на всех внешнее ethernet-подключение, то о каком трёхкратном росте производительности может идти речь?

>Чтобы аппсервер мог больше соединений обслуживать, прежде всего замените аппсервер на бэкенды, написанные на C и веб-фронтенды на Perl!

А потом выйдите на улицу на перекур и узнайте, что Землю сто лет назад захватили серо-зеленые жабокрылы.

32 * 300 Watt одной машины

9kWat хорошенький обогреватель, всё равно аля

Аппсервер не на жабе.

Используется принцип — нечто среднее между ВЕБ-приложением и десктоп-приложением.

Ясно, респект на самом деле, а что за продукт, если не секрет, на чём писан? Собственная разработка?

>что Землю сто лет назад захватили серо-зеленые жабокрылы
И Kill Em All? Неплохой шутер получится, а главное, что в итоге всё равно восторжествует справедливость, зелёные стандарты, энергосберегающие и те же шустрые программы на C во вставками на Асме. Ведь победить Жабокрыла очень легко — достаточно загнать его в ближайшую яму и забросать камнями, а потом сделать ему DDoS. А всё потому, что жабокрылы только плавают хорошо, но вообще ни разу не летают.

Продукт — изначально внутрикорпоративное ПО для риэлторской фирмы. Сейчас думаем его продвигать на внешний рынок. В виде законченного процесса управления риэлторским предприятием, плюс функции МЛС.

Писано на С++/Qt+WebKit (некоторые модули, в частности используемые для геренации отчётов и реализации мониторингов используют плюсы и удобство ВЕБ-представления), и PHP (серверная часть. Да-да, гнобите сколько хотите но ТАМ оно РЕАЛЬНО ОЧЕНЬ УДОБНО, и быстро).

> Пишут как сделать ужин, а протухшие или свежие сардельки туда резать — Вам решать 😀

А если есть три двухпроцессорных и два однопроцессорных, пролетаю?

А вообще, подскажите мне пожалуйста бытовое применение вычислительных мощностей, в частности кластера?

>У меня как у ASM-програмиста подобные вещи ничего, кроме отвращения, не вызывают.

мне одному вспомнился vsl? 😉

А под каким соусом он мог вспомниться? "Эх, вот бы пришел Профессор и вправил тебе мозги"?

Статистика показывает, что "узкими местами" по производительности в современных бизнес-приложениях — является достаточно малое количество мест всей программной конструкции. — Потому что программа часто ждет ввода пользователя, или тот же Java-код (опирающийся на нативные модули на С++) — показывает идентичную, как и на С++, производительность.

Программный код, состоящий из сотен модулей-подсистем — может быть неэффективен из-за недостаточной квалификации программиста, или от того, например, что в процессе разработки изменялись бизнес-требования (обычное дело) и поэтому все недостаточно оптимизировано.

С выявлением узких мест — достаточно переписать 2-3 таких узких места, чтобы приложение заработало очень эффективно.

В отдельных случаях, если хочется, можно применить и ассемблерные вставки, и другие пути оптимизации производительности.

Часто прирост может дать — сравнительно небольшое увеличение ОЗУ (для того же Оракла), например. И цена этого ОЗУ — будет несопоставимо ниже, в 100 раз ниже, чем написать все на Ассемблере.

Типичный пример ассемблерного коня в вакууме. 😉

Кластера всегда будут кластерами, если нужна отказоустойчивость, доступность и не геморройность при восстановлении, то кластера правильный выбор. Так, что товарищи не в ту сторону смотрите. PS все нужные приложения, которые могут повлиять на работу конторы, раскидываю по кластерам, и уже неоднократно спасало ситуацию. Будем дальше изучать.

Содержание статьи

Сегодня бизнес-процессы многих компаний полностью завязаны на информационных
технологиях. С ростом такой зависимости организаций от работы вычислительных
сетей доступность сервисов в любое время и под любой нагрузкой играет большую
роль. Один компьютер может обеспечить лишь начальный уровень надежности и
масштабируемости, максимального же уровня можно добиться за счет объединения в
единую систему двух или нескольких компьютеров — кластер.

Для чего нужен кластер

Кластеры применяют в организациях, которым нужна круглосуточная и
бесперебойная доступность сервисов и где любые перерывы в работе нежелательны и
недопустимы. Или в тех случаях, когда возможен всплеск нагрузки, с которым может
не справиться основной сервер, тогда ее помогут компенсировать дополнительные
хосты, выполняющие обычно другие задачи. Для почтового сервера, обрабатывающего
десятки и сотни тысяч писем в день, или веб-сервера, обслуживающего
онлайн-магазины, использование кластеров очень желательно. Для пользователя
подобная система остается полностью прозрачной — вся группа компьютеров будет
выглядеть как один сервер. Использование нескольких, пусть даже более дешевых,
компьютеров позволяет получить весьма существенные преимущества перед одиночным
и шустрым сервером. Это равномерное распределение поступающих запросов,
повышенная отказоустойчивость, так как при выходе одного элемента его нагрузку
подхватывают другие системы, масштабируемость, удобное обслуживание и замена
узлов кластера, а также многое другое. Выход из строя одного узла автоматически
обнаруживается, и нагрузка перераспределяется, для клиента все это останется
незамеченным.

Возможности Win2k3

Вообще говоря, одни кластеры предназначены для повышения доступности данных,
другие — для обеспечения максимальной производительности. В контексте статьи нас
будут интересовать MPP (Massive Parallel Processing) — кластеры, в
которых однотипные приложения выполняются на нескольких компьютерах, обеспечивая
масштабируемость сервисов. Существует несколько технологий, позволяющих
распределять нагрузку между несколькими серверами: перенаправление трафика,
трансляция адресов, DNS Round Robin, использование специальных
программ
, работающих на прикладном уровне, вроде веб-акселераторов. В
Win2k3, в отличие от Win2k, поддержка кластеризации заложена изначально и
поддерживается два типа кластеров, отличающихся приложениями и спецификой
данных:

1. Кластеры NLB (Network Load Balancing) — обеспечивают
масштабируемость и высокую доступность служб и приложений на базе протоколов TCP
и UDP, объединяя в один кластер до 32 серверов с одинаковым набором данных, на
которых выполняются одни и те же приложения. Каждый запрос выполняется как
отдельная транзакция. Применяются для работы с наборами редко изменяющихся
данных, вроде WWW, ISA, службами терминалов и другими подобными сервисами.

2. Кластеры серверов – могут объединять до восьми узлов, их главная
задача — обеспечение доступности приложений при сбое. Состоят из активных и
пассивных узлов. Пассивный узел большую часть времени простаивает, играя роль
резерва основного узла. Для отдельных приложений есть возможность настроить
несколько активных серверов, распределяя нагрузку между ними. Оба узла
подключены к единому хранилищу данных. Кластер серверов используется для работы
с большими объемами часто изменяющихся данных (почтовые, файловые и
SQL-серверы). Причем такой кластер не может состоять из узлов, работающих под
управлением различных вариантов Win2k3: Enterprise или Datacenter (версии Web и
Standart кластеры серверов не поддерживают).

В Microsoft Application Center 2000 (и только) имелся еще один вид
кластера — CLB (Component Load Balancing), предоставляющий возможность
распределения приложений COM+ между несколькими серверами.

NLB-кластеры

При использовании балансировки нагрузки на каждом из хостов создается
виртуальный сетевой адаптер со своим независимым от реального IP и МАС-адресом.
Этот виртуальный интерфейс представляет кластер как единый узел, клиенты
обращаются к нему именно по виртуальному адресу. Все запросы получаются каждым
узлом кластера, но обрабатываются только одним. На всех узлах запускается
служба балансировки сетевой нагрузки (Network Load Balancing Service)
,
которая, используя специальный алгоритм, не требующий обмена данными между
узлами, принимает решение, нужно ли тому или иному узлу обрабатывать запрос или
нет. Узлы обмениваются heartbeat-сообщениями, показывающими их
доступность. Если хост прекращает выдачу heartbeat или появляется новый узел,
остальные узлы начинают процесс схождения (convergence), заново
перераспределяя нагрузку. Балансировка может быть реализована в одном из двух
режимов:

1) unicast – одноадресная рассылка, когда вместо физического МАС
используется МАС виртуального адаптера кластера. В этом случае узлы кластера не
могут обмениваться между собой данными, используя МАС-адреса, только через IP
(или второй адаптер, не связанный с кластером);

2) multicast – многоадресная рассылка, МАС-адрес кластера назначается
физическому адресу, но не затирая его. Для реализации этого метода
маршрутизаторы должны поддерживать групповые МАС-адреса.

В пределах одного кластера следует использовать только один из этих режимов.

Можно настроить несколько NLB-кластеров на одном сетевом адаптере,
указав конкретные правила для портов. Такие кластеры называют виртуальными. Их
применение дает возможность задать для каждого приложения, узла или IP-адреса
конкретные компьютеры в составе первичного кластера, или блокировать трафик для
некоторого приложения, не затрагивая трафик для других программ, выполняющихся
на этом узле. Или, наоборот, NLB-компонент может быть привязан к нескольким
сетевым адаптерам, что позволит настроить ряд независимых кластеров на каждом
узле. Также следует знать, что настройка кластеров серверов и NLB на одном узле
невозможна, поскольку они по-разному работают с сетевыми устройствами.

Читайте также:  Как перенести фотографии на гугл диск

Администратор может сделать некую гибридную конфигурацию, обладающую
достоинствами обоих методов, например, создав NLB-кластер и настроив репликацию
данных между узлами. Но репликация выполняется не постоянно, а время от времени,
поэтому информация на разных узлах некоторое время будет отличаться.

С теорией на этом закончим, хотя о построении кластеров можно рассказывать
еще долго, перечисляя возможности и пути наращивания, давая различные
рекомендации и варианты конкретной реализации. Все эти тонкости и нюансы оставим
для самостоятельного изучения и перейдем к практической части.

Настройка NLB-кластера

Для организации NLB-кластеров дополнительное ПО не требуется, все
производится имеющимися средствами Win2k3. Для создания, поддержки и мониторинга
NLB-кластеров используют компонент «Диспетчер балансировки сетевой нагрузки»
(Network Load Balancing Manager)
, который находится во вкладке
«Администрирование» «Панели управления» (команда NLBMgr). Так как компонент
«Балансировка нагрузки сети» ставится как стандартный сетевой драйвер Windows,
установку NLB можно выполнять и при помощи компонента «Сетевые подключения», в
котором доступен соответствующий пункт. Но лучше использовать только первый
вариант, одновременное задействование диспетчера NLB и «Сетевых подключений»
может привести к непредсказуемым результатам.

Диспетчер NLB позволяет настраивать и управлять из одного места работой сразу
нескольких кластеров и узлов.

Возможна также установка NLB-кластера на компьютере с одним сетевым
адаптером, связанным с компонентом «Балансировка нагрузки сети», но в этом
случае при режиме unicast диспетчер NLB на этом компьютере не может быть
использован для управления другими узлами, а сами узлы не могут обмениваться
друг с другом информацией.

Для упрощения будем считать, что операционные системы установлены, сетевые
подключения настроены (как обычно), узлы будущего кластера подключены к Active
Directory и у тебя есть соответствующие права.

Теперь вызываем диспетчер NLB. Кластеров у нас пока нет, поэтому появившееся
окно не содержит никакой информации. Выбираем в меню «Кластер» пункт «Новый» и
начинаем заполнять поля в окне «Параметры кластера». В поле «Настройка
IP-параметров кластера» вводим значение виртуального IP-адреса кластера, маску
подсети и полное имя. Значение виртуального МАС-адреса устанавливается
автоматически. Чуть ниже выбираем режим работы кластера: одноадресный или
многоадресный. Обрати внимание на флажок «Разрешить удаленное управление» — во
всех документах Microsoft настоятельно рекомендует его не использовать во
избежание проблем, связанных с безопасностью. Вместо этого следует применять
диспетчер или другие средства удаленного управления, например инструментарий
управления Windows (WMI). Если же решение об его использовании принято, следует
выполнить все надлежащие мероприятия по защите сети, прикрыв дополнительно
брандмауэром UDP-порты 1717 и 2504.

После заполнения всех полей нажимаем «Далее». В окне «IP-адреса кластера» при
необходимости добавляем дополнительные виртуальные IP-адреса, которые будут
использоваться этим кластером. В следующем окне «Правила для портов» можно
задать балансировку нагрузки для одного или для группы портов всех или
выбранного IP по протоколам UDP или TCP, а также блокировать доступ к кластеру
определенным портам (что межсетевой экран не заменяет). По умолчанию кластер
обрабатывает запросы для всех портов (0–65365); лучше этот список ограничить,
внеся в него только действительно необходимые. Хотя, если нет желания возиться,
можно оставить все, как есть. Кстати, в Win2k по умолчанию весь трафик,
направленный к кластеру, обрабатывал только узел, имевший наивысший приоритет,
остальные узлы подключались только при выходе из строя основного.

Например, для IIS потребуется включить только порты 80 (http) и 443 (https).
Причем можно сделать так, чтобы, например, защищенные соединения обрабатывали
только определенные серверы, на которых установлен сертификат. Для добавления
нового правила нажимаем «Добавить», в появившемся диалоговом окне вводим
IP-адрес узла, или если правило распространяется на всех, то оставляем флажок
«Все». В полях «С» и «По» диапазона портов устанавливаем одно и то же значение –
80. Ключевым полем является «Режим фильтрации» (Filtering Mode) — здесь
задается, кем будет обработан этот запрос. Доступно три поля, определяющие режим
фильтрации: «Несколько узлов», «Один узел» и «Отключить этот диапазон портов».
Выбор «Один узел» означает, что трафик, направленный на выбранный IP (компьютера
или кластера) с указанным номером порта, будет обрабатываться активным узлом,
имеющим наименьший показатель приоритета (о нем чуть ниже). Выбор «Отключить…»
значит, что такой трафик будет отбрасываться всеми участниками кластера.

В режиме фильтрации «Несколько узлов» можно дополнительно указать вариант
определения сходства клиентов, чтобы направлять трафик от заданного клиента к
одному и тому же узлу кластера. Возможны три варианта: «Нет», «Одно» или «Класс
C». Выбор первого означает, что на любой запрос будет отвечать произвольный
узел. Но не следует его использовать, если в правиле выбран протокол UDP или
«Оба». При избрании остальных пунктов сходство клиентов будет определяться по
конкретному IP или диапазону сети класса С.

Итак, для нашего правила с 80-м портом остановим свой выбор на варианте
«Несколько узлов — класс C». Правило для 443 заполняем аналогично, но используем
«Один узел», чтобы клиенту всегда отвечал основной узел с наименьшим
приоритетом. Если диспетчер обнаружит несовместимое правило, будет выведено
предупреждающее сообщение, дополнительно в журнал событий Windows будет внесена
соответствующая запись.

Далее подключаемся к узлу будущего кластера, введя его имя или реальный IP, и
определяем интерфейс, который будет подключен к сети кластера. В окне «Параметры
узла» выбираем из списка приоритет, уточняем сетевые настройки, задаем начальное
состояние узла (работает, остановлен, приостановлен). Приоритет одновременно
является уникальным идентификатором узла; чем меньше номер, тем выше приоритет.
Узел с приоритетом 1 является мастер-сервером, в первую очередь получающим
пакеты и действующим как менеджер маршрутизации.

Флажок «Сохранить состояние после перезагрузки компьютера» позволяет в случае
сбоя или перезагрузки этого узла автоматически ввести его в строй. После нажатия
на «Готово» в окне Диспетчера появится запись о новом кластере, в котором пока
присутствует один узел.
Следующий узел добавить также просто. Выбираем в меню «Добавить узел» либо
«Подключить к существующему», в зависимости от того, с какого компьютера
производится подключение (он уже входит в кластер или нет). Затем в окне
указываем имя или адрес компьютера, если прав для подключения достаточно, новый
узел будет подключен к кластеру. Первое время значок напротив его имени будет
отличаться, но когда завершится процесс схождения, он будет такой же, как и у
первого компьютера.

Так как диспетчер отображает свойства узлов на момент своего подключения, для
уточнения текущего состояния следует выбрать кластер и в контекстном меню пункт
«Обновить». Диспетчер подключится к кластеру и покажет обновленные данные.

После установки NLB-кластера не забудь изменить DNS-запись, чтобы
разрешение имени теперь показывало на IP-кластера.

Изменение загрузки сервера

В такой конфигурации все серверы будут загружены равномерно (за исключением
варианта «Один узел»). В некоторых случаях необходимо перераспределить нагрузку,
большую часть работы возложив на один из узлов (например, самый мощный).
Применительно к кластеру правила после их создания можно изменить, выбрав в
контекстном меню, появляющемся при щелчке на имени, пункт «Свойства кластера».
Здесь доступны все те настройки, о которых мы говорили выше. Пункт меню
«Свойства узла» предоставляет несколько больше возможностей. В «Параметрах узла»
можно изменить значение приоритета для конкретно выбранного узла. В «Правилах
для портов» добавить или удалить правило нельзя, это доступно только на уровне
кластера. Но, выбрав редактирование конкретного правила, мы получаем возможность
скорректировать некоторые настройки. Так, при установленном режиме фильтрации
«Несколько узлов» становится доступным пункт «Оценка нагрузки», позволяющий
перераспределить нагрузку на конкретный узел. По умолчанию установлен флажок
«Равная», но в «Оценке нагрузки» можно указать другое значение нагрузки на
конкретный узел, в процентах от общей загрузки кластера. Если активирован режим
фильтрации «Один узел», в этом окне появляется новый параметр «Приоритет
обработки». Используя его, можно сделать так, что трафик к определенному порту
будет в первую очередь обрабатываться одним узлом кластера, а к другому – другим
узлом.

Журналирование событий

Как уже говорилось, компонент «Балансировка нагрузки сети» записывает все
действия и изменения кластера в журнал событий Windows. Чтобы их увидеть,
выбираем «Просмотр событий – Система», к NLB относятся сообщения WLBS (от
Windows Load Balancing Service, как эта служба называлась в NT). Кроме того, в
окне диспетчера выводятся последние сообщения, содержащие информацию об ошибках
и обо всех изменениях в конфигурации. По умолчанию эта информация не
сохраняется. Чтобы она записывалась в файл, следует выбрать «Параметры –>
Параметры журнала», установить флажок «Включить ведение журнала» и указать имя
файла. Новый файл будет создан в подкаталоге твоей учетной записи в Documents
and Settings.

Настраиваем IIS с репликацией

Кластер кластером, но без службы он смысла не имеет. Поэтому добавим IIS (Internet
Information Services)
. Сервер IIS входит в состав Win2k3, но, чтобы свести к
минимуму возможность атак на сервер, он по умолчанию не устанавливается.

Инсталлировать IIS можно двумя способами: посредством «Панели управления» или
мастером управления ролями данного сервера. Рассмотрим первый. Переходим в
«Панель управления – Установка и удаление программ» (Control Panel — Add or
Remove Programs), выбираем «Установку компонентов Windows» (Add/Remove Windows
Components). Теперь переходим в пункт «Сервер приложений» и отмечаем в «Службах
IIS» все, что необходимо. По умолчанию рабочим каталогом сервера является Inetpubwwwroot.
После установки IIS может выводить статические документы.

Вот, собственно, и все. Если в файл hosts, который находится в C:WindowsSystem32DriversEtc,
добавить запись для разрешения имени веб-сервера и IP-адрес кластера, то,
обратившись с локального узла, можно получить документ с веб-сервера. Для
репликации данных между узлами кластера используй службу DFS, о которой подробно
говорилось в последнем
номере за прошлый год.


Полную версию статьи
читай в февральском номере
Хакера!

Ссылка на основную публикацию
Как сделать flash игру
Если вы не наделены природным трудоголизмом — увы, ничего хорошего из этого не выйдет. Лень — враг всех, особенно создателей...
Как поменять вид диспетчера задач
А вот вопрос.почему каждый раз когда я выключаю компьютер а на следующий день включаю появляется надпись некорректное выключение. 30-04-2013 в...
Как поменять билеты ржд купленные через интернет
В жизни всегда есть место непредвиденным обстоятельствам. Если срочно потребовалось обменять или вернуть заранее приобретенный билет на более подходящий, это...
Как сделать input неактивным
Иногда на сайте необходимо сделать форму, в которую пользователь вводит какие-либо данные. Полей в форме может быть сколько угодно, однако...
Adblock detector