Категория: Grid Computing

Управление Grid Computing использованием виртуальных сред - Часть 4

По , в пятницу 4 декабря 2009 11:59 вечера

Введение

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

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

Запуск последней версии кода

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

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

Первый метод будет просто подключиться к нашей работе серверный элемент управления (через Samba, FTP, или подобный) и опустите последнюю версию кода. Не очень эффективно, но он будет делать эту работу. Позволяет улучшить что-то, а как насчет создания Rsync сценарий и использовании, что каждый раз вместо этого? Кроме то, что о вводе наших последних обработки скрипта в подрывной проверить код сначала, а потом просто обновляем нашу код при каждом запуске ( запускали )?

В конце концов мы могли бы закончить с Баш скрипт (названный крон каждые 10 минут), который выглядит, как просто, как это:

  #! / Бен / ш
 пс, если топор | Grep-V GREP | GREP PHP > / Dev / нуль
 затем
     эхо "Работа в настоящее время обработки, выход"
 еще
     эхо "Работа не работает, начните прямо сейчас"
     кд / путь / к / рабочей / копии
     запускали
     PHP yourJobProcessingScript.php
 Fi 

Теперь мы можем быть уверены, что с каждым запуском мы определенно установлена ​​последняя кода. Мы обеспечения этого путем обновления нашей базы кода каждый раз, когда мы выполняем запуска и снижения сетевого трафика только на передачу файлов различия между нашей сети.

В моей демонстрации установки, я сделал именно так, как выше. Subversion был установлен на моем сервере обработки работу, и я просто вытащил последний код от «рабочий» филиала с помощью "запускали". Я также добавил теги номер версии моей обработки скрипта, который был возвращен в базу данных как часть дал результаты. Таким образом, я мог видеть, что мой код обновляется каждый раз, когда я скопировал мой ствол в то отделение работника, что я определенно установлена ​​последняя обработка сценария.

На основании последних данных

Если ваша работа обработки использует источники данных, то в какой-то момент эти будут обновлены. Если вы называете источников данных на основе очень редко вы собираетесь наводнения сети с трафиком, как только ваши работники начнут исполняться чего все в тупик. Для моего решения, я решил, что я хотел бы перенести источников данных во всем с моей виртуальных машин.

Держите вы кони там! Что делать, если источники данных ОГРОМНЫЙ? Ну это действительно случай, какой объем данных может идти речь? Это может быть более экономически эффективным, чтобы установить дополнительный емкий жесткий диск в каждую машину, чем приобрести дополнительный сервер обработки. Это вопрос о бюджете и составляет до бизнеса, чтобы решить. Это, может быть, что ваш источники данных настолько велик, что его просто невозможным сохранить этот объем данных в ваших машин работника. В таком случае, что бы вы сделали? Ну, мы могли смотреть на вызов локального сервера данных, но это может вызвать проблемы с сетью. В этом случае сетка системы, такие как это может стать нереальным включить в офисной среде. Он также может быть то, что вы можете посмотреть в альтернативных стратегий работы, например, только позвонив в рабочие между 8 вечера и 6 утра каждую ночь, и / или дросселирования источника данных запросов.

Двигаемся дальше скажем нашим данным источников составит 100 ГБ данных. Ну да, это довольно много данных для перемещения по сети на обновление. Как бы мы гарантируем, что у нас есть последняя копия данных в этом случае? Rsync есть возможность, но лично я думаю, запустив ваш последний источник данных на сервере обработки заказа и настройкой как мастер в репликации (с хороший длинный журнал бен), может быть путь:

репликации При установке каждого из ваших работников в качестве рабов для управления заданиями сервером обновлений к источникам данных будет сочиться вниз приятно, чтобы ваши работники, не огромный рост сетевой активности (то есть, если вы выполняете огромную обновления данных, и все ваши рабочие удар в сразу). Это имеет преимущества по сравнению с Rsync в том, что вы не получите длинную паузу перед каждой работе; как обновления баз данных, MySQL демона на вашем рабочем будем постоянно обновлять свои данные, а обработка продолжается.

Это, как я создал мой демонстрация сервера. Чтобы настроить репликацию я последовал за руководство на сайте MySQL ( Настройка репликации ) и в течение 20 минут у меня был Начальное работника тиражирование управления заданиями серверов данных. За каждый дополнительный работник настройки репликации и процесс работал каждый раз, когда В. М. был скопирован.

Резюме

В этой части статьи мы рассмотрели, как легко и безболезненно это сохранить ваш код обработки вплоть до настоящего времени using Rsync или subverion (SVN), чтобы сделать работу и уменьшить сетевой трафик, в то же time. Мы также обсудили, как сохранить ваши данные в источнике информации последнюю дату, что позволяет ему сочиться вниз к каждой из ваших работников. Таким образом, мы области обеспечения того, чтобы мы в ногу с бизнес-логикой и информации в нашей системе сетки офиса. Там, очевидно, будет бесчисленные альтернативы выполнению этих задач, но здесь были два простых примера, чтобы показать, насколько легко решение прибыть.

Следующий раз

В заключительной части этой серии, метко назвал часть 5 , мы обсудим развертывании этой системы. Я буду резюмировать, что было изучено и то, что мне удалось создать.

Управление Grid Computing использованием виртуальных сред - Часть 1

По , в пятницу 4 декабря 2009 11:23 вечера

Введение

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

Как PHP- разработчик я собираюсь использовать инструменты, которые я использую каждый день, а именно, Linux, MySQL , PHP, VirtualBox и Subversion (SVN). Однако я надеюсь, что это руководство будет адаптироваться к другим языкам и технологиям так же хорошо.

Решение, которое я предоставляете, будет отчасти основан на тип обработки мы должны были бы достичь однако это не может быть правдой через всю статью, как я буду что-то изменить, для простоты, или для получения более интересных вариантов использования.

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

Почему развертывание сетки Управления вычислительной?

Во-первых вы можете подумать, почему бы не использовать ресурс облачных вычислений, таких как платформы EC2 амазонки ? Ну причин может быть несколько, например:

  • Вы не будете поручать определенную данных в среде облачных вычислений
  • Вы не можете поместить некоторые данные в среде облачных вычислений по юридическим причинам (например, данные из страны), потенциально по юридическим причинам, например, NHS записей.
  • Вы хотите, чтобы ваша аппаратура обработки тесные и иметь полный контроль над аппаратной слишком
  • У вас нет средств проекта для запуска облако случаях
  • Ваш офис не имеет подключение к Интернету, и поэтому ее нельзя использовать облако ресурсов
  • Вам не нравится дождь, облака предлагаю дождь, поэтому вы держите подальше

Я уверен, что список можно продолжить, но я думаю, что это достаточно.

Преимущества Grid Computing Управления

Ну, давайте делать некоторые математики (а в истинном стиле физики позволяет сделать некоторые радикальные предположения). Представьте, у вас есть большой мускулистый сервер обработки работает 100 рабочих мест в день. В офисе у вас есть 50 машин, которые простаивают по 16 часов в день, каждая из этих машин составляет 10%, как мощный, как ваш мускулистый разорвать обработки. (Все результаты здесь округляются до недооценивают увеличение производительности).

Так, 1 машина * 10% мощности * 2 / 3 времени = 0,067 то есть 1 настольный обработки в режиме времени могут обрабатывать 6 полный рабочий день.

Если вы сейчас масштабы этого до него занимает 15 простоя рабочие столы для обработки, как много рабочих мест в день в качестве основного сервера обработки делает.

Итак, в нашем офисе претендует 50 машин мы могли бы увеличить нашу вычислительную мощность от 1 сервер, поддерживающий до 4 полных серверов, обрабатывающих, или мы могли бы быть обработки 400 рабочих мест в день вместо 100.

Обратите внимание, для каких-либо инвестиций в новое оборудование Ваша компания только что увеличил свою пакетную обработку мощностью 4 раза! Потенциально вы собираетесь увеличить потребление энергии, но в большинстве офисов Я был на машинах, как правило, остается на ночь в любом случае, чтобы вы могли видеть это как зеленый инициативу.

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

Технологии

Что вам нужно? (Или, вернее то, что я использовал):

  • Idle офисное оборудование (в моем случае запасных старые окна XP ноутбук)
  • VirtualBox (или другого программного обеспечения виртуализации клиента)
  • Виртуальную машину с PHP, MySQL running работает сократить OS, я звоню эти мои LIMP серверов:)
  • Вакансии для запуска
  • Работа сервера (может быть другой виртуальной машины где-то)

Типичные Вакансии

Типы рабочих мест, что эта система предназначена для работы выглядит следующим образом:

  • Система получает список данных, на которых мы должны соизмерять и возвращают результаты
  • Включает в себя проверку соответствия / поиска несколько (довольно статическая) источников данных
  • Результаты из источников данных могут потребовать дальнейшей проверки, сливаясь, проверка дополнительных источников данных в ответ на результаты
  • Данные возвращаются с соответствующими записями, полностью проверены и обработаны
  • Каждая запись в течение работы не зависит от остальных

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

Сетка решения не только выгодно для обработки рабочих мест такого типа. В принципе, любой процесс, который может быть разделена на независимые модули могут работать параллельно. См. этот Википедии примеров и дополнительной информации: Grid Computing , но пару известных примеров SETI @ Home и BIONC . Есть рамки для выполнения вычислительных сетей, и они также заслуживает изучения.

Что мы достигли?

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

  • Настройка системы управления заданиями, работа конфигурации
  • Создание соответствующей обработки виртуальной машины
  • Как настроить систему на окна машины
  • Обеспечение вы используете последнюю версию кода и данных
  • Развертывания и тестирования
  • Забегая вперед

Я буду дома (хорошо, я построил, а затем написал это) пример приложения для тестирования концепций на локальной машине через Windows XP, и мой "GridMachine" виртуальной машины. Моя работа серверный элемент управления будет моей основной машиной, которая работает Fedora 11 .

Это вовсе не означало, чтобы продемонстрировать полностью рабочий надежные системы, ее значило больше, демонстрации и обсуждения показывают, что эти вещи могут быть достигнуты в разумно короткие сроки и с минимальными затратами. Пожалуйста, не стесняйтесь, присылайте мне любые комментарии, исправления или улучшения, и я сделаю все возможное, чтобы эта статья обновлена ​​до матча.

Следующий раз

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

Управление Grid Computing использованием виртуальных сред - Часть 2

По , в пятницу 4 декабря 2009 11:23 вечера

Введение

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

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

Управление заданиями

Если вы собираетесь быть запущен рабочие места, то вы будете нуждаться, каким-то образом управлять ими. Ваша задача системы управления (на вашу работу сервера) должен быть очень хорошо продуманы, прежде чем даже пытаться запустить офис сетки. Так во-первых, какие задачи для системы управления заданиями:

  • Раздайте рабочих мест по требованию рабочих
  • Скажите рабочим, какой тип запуска заданий
  • Трек рабочих мест
  • Убедитесь, что рабочие места запускать только один раз
  • Обеспечить работу данных работников, или хотя бы сказать им, где его получить

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

Работа сервера

Мы собираемся нужно где-то контролировать свои рабочие места из, это должна быть единственная система в вашей сетке, которая имеет фиксированную локатор ресурса, будь то IP-адрес, имя хоста, URL-адрес (с использованием внутреннего DNS) и т.д. Это происходит потому, что рабочие должны знать, где искать работу, работникам необходимо найти систему управления заданиями (не система управления заданиями найти работников).

Работы самого сервера на самом деле не сложная задача (в базовой системе или иначе), он должен хранить список заданий, раздавать рабочие места, получать результаты, а затем сохранять их для последующего использования. Как эти части (например, "раздавать рабочие места") определяются может быть очень простой. Позднее мы можем расширить системы включают административный интерфейс для добавления, редактирования, удаления, приостановить работу, но это выходит за это упражнение.

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

Основные настройки

Базовые настройки для нашей работы сервера будет состоять из того, что я звоню одному из моих LIMP серверов (то есть Li ммк, м ySql, Р л.с.). Код, выполняемый на работников Теа действительно будет работать, какие работы он может работать, взаимодействуя с работой баз данных системы управления. Позже мы могли бы создать веб-сервис и фактически раздавать рабочие места вместо того, рабочие делают тяжелую работу сами, но сейчас мы будем продолжать использовать KISS, принцип (Keep It Simple, Stupid!).

Таким образом, позволяет создать три MySQL таблиц для решения рабочих мест. Это будут рабочие места ``, `jobRecords` и `jobResults`.

рабочих мест таблице Здесь я использую SQL Buddy большая небольшая альтернатива PhpMyAdmin только потому, что ее легче установить на CentOS (для остальных см.: 10 Великие альтернативы PhpMyAdmin )

Эта таблица состоит из 5 простых полей,

  • ID: Уникально идентифицировать работу
  • Название: Не могли бы быть номер клиента, или любое количество других идентификаторов
  • Статус: Вы должны знать, где работа на, например,
    • 0: Не началась
    • 1: Подобрал
    • 2: Завершен
  • started_by: кто начал делать эту работу? Это не совсем требуется, но хорошо бы иметь. Я предлагаю отслеживания рабочих по их IP-адрес в сети
  • started_at: Когда работник начать работу? Отслеживая вакансии, которые не завершены в течение X количество времени мы знаем, что нужно подобрать работу еще раз, и начала переработки другим работником. Рабочие могли остановить обработку / перехода в автономный режим для любого числа причин, сбой питания, сбой, потеря сети и т.п.

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

Давайте добавим несколько рабочих мест пример:

Например рабочих мест

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

  • ID: идентификатор записи
  • имя: Имя владельца
  • адрес: адрес Лица
  • jobs_id: идентификатор задания, что эта запись связана с

Третья и последняя таблица состоит из таблицы результатов, он так же, составляют, как наши записи таблицы, а с добавлением некоторых столбцов может быть частью таблицы записей:

  • job_record_id: Ссылка результат работы таблицы
  • Результат: данные результата

... И это все, что нужно для управления заданиями! (Хотя и на самом базовом уровне) В моем случае я указал на другую таблицу, где мои данные на процессе был расположен, но это может так же легко было файла, параметры для запуска программного кода, то имя его.

Выбор работы

Как отмечалось ранее, рабочие будут делать свою работу управления для нас сейчас, так что все, что нужно сделать, это найти работу, которая должна обработки и получения информации. Как бы мы это сделать? Ну забрать наши критерии отбора и работу искать работу, в SQL я сделал следующее:

  1. Возьмите любую работу, которая не помечены как полная, но от нашего работника и сбросить их (заменить __ME__ с идентификатором, простым будет IP-адрес):
      UPDATE `работы` SET `статус` = 0 WHERE `статус` = 1 AND `started_by` = __ME__; 
  2. Используя наши критерии работы выбора, выберите работу и сказать системе управления, что этот работник имеет дело с ним:
      UPDATE `работы` SET `статус` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `статус` = 0 ИЛИ
     (`Статус` = 1 AND `started_at`> DATE_SUB (NOW (), интервал X ЧАС)) ORDER BY `ID` ASC; 

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

  3. Следующая захватить рабочие места детали затем сами записи:
      SELECT * FROM `работу` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `ID` = __JOBID__; 

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

Кроме того, в то время как это демонстрирует, как рабочие места могут быть выбраны и управляются из SQL-запроса кадр, который вы должны быть действительно абстрагирования вашей работе управления, так что если вы решите перейти на использование веб-сервисов, файл системы, основанной на XML , или любой другой число систем, это не повлияет на код выше.

Работа конфигурации

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

  1. Вакансии принимать по 1 день каждый для запуска: Это означает, что работникам необходимо 15 дней, чтобы обработать каждое задание (помните, 10% мощности для 2/3rds от времени). Конечно, это не мудрая конфигурации, ваша работа размер слишком большой! Это займет по крайней мере вдвое больше времени, чтобы получить работу должны обрабатываться начальной работника идти в самоволку (время, чтобы забрать, что он не вернул результата плюс переработке времени). В идеале вы должны по крайней мере один полный рабочий легко очищается в конце каждого периода длительного простоя, таким образом вы сохранить рабочие места тиканье более, а в худшем случае работа займет два дня, чтобы процесс должен сначала пойти пропавшими без вести.
  2. Вакансии принимать по 1 минута для запуска: Это означает, что ваши работники займет около 15 минут для выполнения каждого задания. Хотя это может поначалу показаться идеальной, вы получаете дополнительную обработку работы во время обеда, кофе-брейки, совещаний и т.д. данный сценарий ставит нагрузку на другие сферы вашей системы и вводит свои собственные проблемы. Например, во-первых ваши настройки / обработки соотношение времени будет идти прямо, поэтому потери эффективности системы. Ваша сеть будет постоянно потоковое работу информации различным рабочим расстраивает сотрудников, которые дон их повседневной работе. Вы также собирается уделять больше нагрузка на сервер обработки работу, как это блюдо из много-много маленьких кусочков работу на регулярной основе. Наконец, в этой ситуации, если ваша работа сервер недоступен вы собираетесь создать огромный снова войти незавершенных работ в то время как больше рабочих мест могут продолжения обработки в блаженном неведении, что работа сервера испытывает трудности.

На самом деле не будет одна идеальная конфигурация для установки сетки, многое зависит от имеющихся ресурсов, видов работы, работы время обработки требований, возможность работы в сети, и так далее. Однако некоторые руководящие принципы будут:

  • Размер рабочие места так, чтобы каждый работник может пройти как минимум 3-4 рабочих мест в течение 15 часов (длинная вероятность простоя период времени)
  • Играйте с работой размера, так что время установки становится довольно незначительна по сравнению с обработкой времени (с учетом выше точки).
  • Если работа не завершается в два раза больше времени (может быть меньше), вы ожидаете, что для ее завершения предполагать, что его ушли в самоволку и начать ее обработку с другим работником. Это означает, что вы, возможно, придется ждать до трех раз нормальная длина работу для его выполнения (возможно, и дольше, если последующая работа не удается). Вы можете хотеть сократить это время, но будьте осторожны, чтобы не свести его слишком много, как вы можете начать дублирование обработки заданий на регулярной основе.
  • Вакансии должны быть независимы от внешних требований, насколько это возможно. Работу сервера, например, должны быть только связались в начале и в конце каждой работы.
  • Не насытить вашей сети, это будет иметь два отрицательных эффектов, ваш дневной персонал будет найти с помощью сети разочарование и проблемы могут возникнуть с подключением время ожидания проблема, которая будет только ухудшаться, поскольку Вы масштабировать сетку.
  • Обеспечить рабочие места могут работать на ваших работников. Если рабочие места становятся слишком большой объем памяти или дискового пространства интенсивной работы начнутся прерывая и не только, что вы заметите это капля в число рабочих мест, обрабатываются никакой реальной причины, почему.

Отправка результатов работы

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

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

Как указывалось ранее, и не может быть старше подчеркнул, строить отказоустойчивость на поиск работы и результаты представления. Работники могут (и скорее всего) переходят в режим ожидания в самый неподходящий раз, и это должно быть обслужены. Также еще раз абстрагируясь от ваших результатов представления поможет удовлетворить будущие изменения в работу системы управления гораздо проще иметь дело.

Резюме

В этом section мы смотрели на то, что сервер управления заданиями, нужно сделать и как его получить очень простые системы, созданной. Мы обсудили, как получить работу с системой управления и как лучше настроить рабочие места, чтобы получить большинство наших вашей системы сетки офиса. Чтобы закончить, один-два абзаца о представлении результатов на сервер управления заданиями была представлена.

  • Сервер управления заданиями управляет заданиями и гарантирует, что все работы будут завершены единиц
  • По абстрагирование ваша работа выбора / результаты представления мы можем изменить технологию управления сервером без особых проблемы
  • Настройка рабочих мест, чтобы они выполняются быстро и эффективно, не подвергая слишком много давления на сетевую инфраструктуру, и без дублирования задач обработки на регулярной основе.
  • Убедитесь, что вы строите отказоустойчивость и ошибок checking в ваши процедуры, работники могут приостановить и возобновить, и в самый неподходящий раз. Не забудьте проверить, если результаты уже были представлены другим работником.

Следующий раз

В части 3 мы создадим нашу виртуальную машину обработки и создали наши окна машины, чтобы стать времени простоя работников.

Управление Grid Computing использованием виртуальных сред - Часть 5

По , в пятницу 4 декабря 2009 11:03 вечера

Введение

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

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

Перед развертыванием

Перед развертыванием подвесной системе, если есть одна вещь, вы делаете, и одно только это тест вашей нынешней системы! Неважно, что вы рассказать коллегам о том, сколько дополнительной работы вашей системы будет делать, если у вас есть номера, чтобы поддержать это ваши гарантии ничего. Таким образом,

  • сколько записей вы можете процесс в настоящее время? В день? В час?
  • Сколько времени обычно занимает развернуться работу?
  • Насколько больше возможностей у вас есть?

Там также дополнительные вопросы:

  • Если ваш сервер обработки (или один из ваших серверов обработки) идет вниз как это повлияет на ваши возможности, будете ли вы калека?
  • Какие преимущества вы надеетесь / ожидаете получить от подвесной системы?
  • Являются ли ваши офисные машины способные работать рабочие места?
  • Ваши (или вы можете быть преобразованы рабочих мест) для работы в этом стиле работает?

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

Развертывание

Мое предложение было бы поп в офисе один уик-энд выполнять все установки и настройки. Делайте это как раз перед праздником две недели и уйти, чтобы другие бедняга иметь дело с последствиями ... может и нет ...

Развертывание системы, как это должно быть медленным. Несмотря на это время относительно прост в установке этой системы повлияет на всю инфраструктуру офиса (ну цифровой). Во-первых, раскатать до нескольких машин одновременно, мониторинг сетевого трафика, как работник хостов выполнять на день за днем. Возможно, вам придется изменить конфигурацию вашей работы в ответ на ваши результаты.

После того как система поселился с нескольких машин (скажем 10% всех офисных машин, то есть 5) вести мониторинг сетевого трафика и хост-машине performance. Следующий тест снова, теперь вы должны обработки 33% больше рабочих мест, чем ваш первый тестов. Проверьте это так, или что вы по крайней мере в этом футбольном поле. Если нет, то исследовать, что происходит перед переходом. Повторите этот цикл, пока вы счастливо иметь всех офисных машин, работающих без убийства индивидуальной работы машины или шлифовальных сети в тупик.

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

Стоп!

Что делать, если вы хотите остановить ваших работников от бега на некоторое время? Они все там работает, регенерирующим, и изо всех сил пытаются обрабатывать данные, как голодные насекомые. Ответ может показаться очевидным, но его стоит добавить, на всякий случай его внимания. Просто редактировать свои обработки скрипта с выходом (0) или умереть () или другие заявления, чтобы убить вашего задания обработки. Важная причина, почему мы всегда стараемся обновление до последней обработки сценария до того, беги!

Демонстрация системы

Для того, чтобы написать это набор коротких статей, которые я создал очень маленькая сетка для демонстрации технологий и методологий. Я прочитал много статей, учебные пособия и использовать различные инструменты для настройки и мониторинга, что происходит. Ни в коем случае я вышел и насыщенный целый офис с трафиком и ни у меня был доступ к регулярным сотрудники PC чтобы увидеть, как хозяин выполнение которых повлияли.

Мой демонстрации возможностей системы был очень скромен в самом деле. Я использовал свой обычный рабочий стол настроен как сервер управления заданиями. На этом я установил MySQL сервер, установленный настроен как мастер в репликации, PHP , а, SVN связаны через Apache (для доступа через работника VM).

Затем я создал машину CentOS работника на VirtualBox на 6-летний ноутбук Windows XP. Я установки запланированные задачи, как указано после копирования VM на машине и отпустить ее.

Виртуальная машина была создана с PHP, подрывную деятельность, и MySQL. Я проверил филиал под названием «рабочий» от моей работы хранилище контроля серверов и проверите, что он может быть обновлен с помощью "запускали". Затем я установки MySQL в качестве раба и проверить, что данные репликации от MySQL на сервере управления работой до работника VM. После всего этого мне установить скрипт Баш и хрон.

Мой обработки сценарий в основном пошли по линии этого (очень простые вещи):

  • Читайте в поле имени
  • Подсчитал количество подобных имен в таблицу из источника данных состоялась В.М.
  • Подсчитал количество имен и выше, но расщепление имя пробелами (то есть имя, среднего, фамилия)
  • Повторные этот процесс в 1000 раз

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

Оставив ноутбук на холостом ходу в результате работник начинает процесс работы с сервером управления заданиями. При возобновлении использования ноутбука была задержка около 30-60 секунд, это изрядное количество времени и сотрудники должны быть осведомлены, что их машина может паузу в течение короткого времени, когда возвращался к машине. Новые машины не могут иметь паузу так долго. Благо объем обработки, выполняемые этими машинами во время простоя будет больше, которые перевешивают сотрудников дожидаясь короткий срок (скажем, 1 минуту), прибыв на своих машинах утром (я часто ждать дольше, что это для Windows Defender Обновление пройдет), если они были поставлены в известность об этом (полезно время, чтобы захватить утренний кофе!).

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

Выводы / Оценка

Следующий очевидный шаг должен был бы на самом деле получить реальный пример и начать развертывание такой системы, как это в офисе и посмотреть, что происходит. Запрашиваемая бизнеса взять на себя обязательство это без следа пылающий компании, чтобы доказать эффективность технологии и может быть немного трудно. Сеть / Распределенные вычисления очень популярна некоторых кругах и имеет некоторые большие приложения (BIONC, SETI @ Home, Folding @ Home и т.д.). Я не стал, однако, найти в меньших масштабах и простая система, как это в моих поисках, которые могли бы быть развернута в офисе.

Я создал в основном свободные системы, используя главным образом с открытым исходным кодом и инструменты, доступные практически в любом офисе. Технологии в основном были продемонстрированы и шоу для выполнения и работать, как ожидалось. Надеюсь, у меня есть показать, что с не так много работы и очень простой установки можно развернуть вычислительные офис подвесной системе, то есть мощный, дешевый, Â и масштабируемые все в то же время.

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

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

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













Панорама тему, Themocracy

6 посетителей онлайн
4 гости, 2 ботов, 0 пользователей
Максимум сегодня: 18 в 12:19 UTC
В этом месяце: 23 в 24-08-2011 5:40 утра UTC
В этом году: 130 в 28-03-2011 10:40 вечера UTC
За все время: 130 в 28-03-2011 10:40 вечера UTC