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

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 98

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Содержание

Введение.

Обзорная часть В обзорно-аналитической главе будет проведен обзор предметной области, рассмотрены аналоги системы, их преимущества и недостатки. 1.1 История. Изначально кластерные технологии использовались при развертывании компьютерных сетей. Немалую роль в появлении высокоскоростной передачи между компьютерами имела возможность объединения вычислительных ресурсов. Лаборатория Xerox PARC вместе с группой разработчиков протокола TCP/IP разработали и закрепили стандарты сетевого взаимодействия уже в начале 1970-ых годов. Была разработана операционная система Hydra («Гидра»), которая работала на компьютерах PDP-11, которые выпускала компания DEC. На базе это ОС был разработан кластер, который был назван C.mpp в 1971 году в Америке в городе Питтсбург, который находится штате Пенсильвания. Однако, только в 1983 году научились распределять задачи и распространять файлы с помощью компьютерных сетей, огромный вклад в разработку этого внесла компания Sun Microsystems, которая предоставила операционную систему на основе BSD, которая имела название SunOS.Первым коммерческим проектом кластера стал ARCNet, созданный компанией Datapoint в 1977 году, однако этот продукт не принес прибыль компании, поэтому разработка кластеров была заморожена до 1984 года. В этом году компанией DEC был создан кластер VAXcluster, который был построен для ОС VAX/VMS. Каждый из этих кластеров мог не только производить совместные вычисления, но и предоставлял возможность совместного использования файловой системы и других составляющих, при этом не теряя целостность файлов и неизменность данных. На данный момент VAXCluster (называемый теперь VMSCluster) входит в сотав операционной системы HP OpenVMS, которая использует процессоры Alpha и Itanium.Также есть еще несколько первых разработок кластера, которые преобрели популярность. Такими продуктами являются класера Himalaya, который разработан компанией Tandem в 1994 году, а также Parallel Sysplex, который был разаботан компанией IBM также в 1994 году.Большей часть разработкой кластеров, которые состояли из персональных компьютеров, занимался проект Parallel Virtual Machine. Первый релиз данной программы произошёл в 1989 году. Это программное обеспечение предоставляло возможность из нескольких обычных компьютеров собрать один виртуальный суперкомпьютер. Появилась возможность очень быстро и просто создавать кластера. Данные дешевые кластера были даже лучше по производительности, чем производительность мощностей коммерческих систем.Разработку кластеров, состоящих из ПК в данной области продолжило Американское аэрокосмическое агентство NASA в 1993г. И уже в 1995 году появился кластер Beowulf. Это также поспособствовало развитию grip-сетей, который были созданы вместе с системами UNIX. 1.2 О кластере. Термин «кластер» имеет множество определений. Для некоторых главной составляющей является отказоустойчивость, для других — масштабируемость, для третьих — управляемость. Классическое определение кластера звучит примерно так: «кластер — параллельная или распределенная система, состоящая из нескольких связанных между собой компьютеров и при этом используемая как единый, унифицированный компьютерный ресурс». Следовательно, кластер – это некоторое количество серверов или компьютеров, которые объединены в одну сеть, которой можно управлять, и работают как неразделимый механизм. Для работы кластера необходимо, чтобы на любой узле (ноде, компьютере, сервере) была запущена своя копия ОС.Грегори Пристер как-то дал определение кластерным технологиям: «Кластер представляет собой одну из разновидностей распределенной или параллельной системы». Этот человек сыграл немалую роль на начальном этапе создания кластеров. Именно он был одним из ранних архитекторов кластерных решений.Однако эксперты Aberdeen Group дали более глобальное определение кластеру. По их мнению, кластер - это система, которая может работать как единый целый механизм, обеспечивает высокую отказоустойчивость, имеет централизованное управление всеми ресурсами и общую файловую систему и, кроме того, обеспечивает гибкость конфигурации и легкость в наращивании ресурсов.Все узлы кластера объединены в единую сеть, с помощью коммутационных каналов, через которые сервера могут обмениваться информацией. Каждый узел следит за состоянием других узлов, а также отправляет необходимую информацию, которая может включать в себя конфигурационные данные, данные об общих системах хранения и их работоспособности. Процедура обмена данной информацией называется heartbeat («сердцебиение», или «пульс»), и если кластер получил этот сигнал, следовательно сервер-адресант работает исправно. Если в какой-то момент один из узлов перестает посылать heartbeat-сигналы, то остальные узлы начинают считать его неисправным и кластер начинает перенастраиваться. Сигналы «сердцебиения» могут передаваться по одному каналу с какими-либо данным, но при создании крупных систем, лучше выделить для этого другой канал, чтобы не происходила потеря сигнала. С помощью таких сигналов также можно определить узел, который будет контролировать работу остальных узлов.Бывает ситуация, когда приложение перестает быть доступным для пользователя, этот период называется время простоя (или отключения). Есть классификация простоев, которая состоит из двух категорий: запланированные: замена оборудования; обслуживание; обновление программного обеспечения; резервное копирование (автономное резервное копирование); тестирование (периодическое тестирование необходимо для проверки кластеров); разработка; незапланированные: ошибки администратора; отказы приложений; отказы оборудования; ошибки операционной системы; стихийные бедствия. Таким образом, кластерные технологии должны обеспечивать доступность сервиса при любых простоях, как запланированных, так и незапланированных.. Наиболее популярными приложениями, которые лучше запускать в кластерах, являются: базы данных; системы управления ресурсами предприятия (ERP); средства обработки сообщений и почтовые системы; средства обработки транзакций через Web и Web-серверы; системы взаимодействия с клиентами (CRM); системы разделения файлов и печати. Также есть у кластеров есть своя классификация. Обычно различают следующие основные виды кластеров: отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности) кластеры непрерывной доступности (Fault tolerant) вычислительные кластеры 1.2.1 Высокая доступность. Высокодоступные кластера обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Данные кластеры позволяют предоставить высокую доступность сервиса. Количество узлов в HA кластере всегда избыточное, чтобы при отказе одного или нескольких, можно было бы запустить сервис на других. Минимальное количество узлов в данном кластере составляет два. В противном случае повысить доступность не получиться. Существует большое количество программ, которое предоставляют решение для HA-кластера.Существует три варианта построение высокодоступного кластера: с холодным резервом или активный/пассивный. В этом случае активный узел обрабатывает все запросы, а пассивный включается в работу только лишь при отказе активного. Пример — резервные сетевые соединения, в частности, Алгоритм связующего дерева. Например связка DRBD и HeartBeat. с горячим резервом или активный/активный. Все ноды принимают и обрабатывают запросы, и при отказе одного из них, нагрузка распределяется по оставшимся нодам. Следовательно, при отказе одного узла кластер переконфигурируется. Примеры — практически все кластерные технологии, например, Microsoft Cluster Server. OpenSource проект OpenMosix. с модульной избыточностью. Данный вариант самый трудозатратый. Его используют только в случаях, когда простой системы невозможен. В это конфигурации один и тот же запрос может выполняться несколькими узлами и выдается результат любого узла. Следовательно, очень важно, чтобы результаты всех узлов были идентичными (либо различия незначительны). Примеры — RAID и Triple modular redundancy. Некоторые решения кластеров могут сочетать несколько вариантов построения кластеров. Так, например, Linux-HA может обслуживать очень рискованные запросы всеми узлами, это называется режим обоюдной поглощающей конфигурации, а другие запросы могут равномерно распределяться между узлами.Высокая доступность кластеризация является метод, используемый для минимизации времени простоя и обеспечить непрерывное обслуживание, когда некоторые компоненты системы терпят неудачу. Kластеры HA состоит из множества узлов, которые взаимодействуют и обмениваются информацией через общие сетках памяти данных и являются отличным способом, чтобы обеспечить высокую доступность системы, надежность и масштабируемость.Учитывая эти разнообразные элементы высоко-доступность требует: Тщательное и полное планирование физических и логических процедур доступа и эксплуатации ресурсов, от которых зависит приложение. Эти процедуры помогают избежать сбоев в первую очередь. Пакет мониторинга и восстановления, что позволяет автоматизировать обнаружение и восстановление после ошибок. Хорошо контролируемый процесс для поддержания аппаратных и программных аспектов конфигурации кластера, сохраняя при этом доступны приложения. Отказоустойчивый кластеры предоставляют решение задач, таких как: 24 часа в сутки 7 дней недели любые приложения готовы к запуску, независимо от отказов в работе операционной системы, устройств хранения, приложения или инфраструктуры; держать очень высокий показатель SLA (перевыполнение обязательств); при предоставляемом оборудовании (базе, инфраструктуре) гарантировать максимальную высокую доступность; обеспечение целостности и доступности приложения в кластере, а также ПО; быстрое восстановление данных при поломках; уменьшение количество сбоев, чтобы не происходило простоев ОС, а также увеличение скорости развертывания нового оборудования; тщательный контроль за доступностью очень важных приложениями, таких как базы данных; гарантирование высокой доступности в виртуальных, реальных и смешанных средах. Преимущества высокой доступности: все компоненты стандартизированы и могут быть запущенные на существующих серверах и машинах; могут кластеризовать большую часть существующих приложений могут работать с очень большим вариантом работают практически со всеми приложениями (зависит только от умения того, кто осуществляет внедрение); работают с большинством существующих типов дисков и сетей; стоимость таких приложений относительно невысока. Непрерывная доступность (Fault tolerant) Для того, чтобы можно было предоставить полностью отказоустойчивый сервис, нужно, чтобы постоянно была точная копия узла, на котором запущен необходимый сервис. При создании копии после поломки оборудования придется потратить некоторое время на копирования или может случиться ситуация, при которой невозможно будет достать необходимую информацию из проблемного узла и это приведет к утере информации.Именно для таких ситуаций существует способ создания непрерывно доступного кластера. Существует два способа реализации такого решения: аппаратный и программный.Аппаратный способПри этом способе создаются два сервера, один из которых выполняет запросы, а другой полностью его копирует. При этом они оба независимо производят вычисления. Также есть узел, который проверяет и сверяет получившиеся результаты и выполняет поиск ошибок. Если невозможно исправить получившуюся ошибку, то сервер, который считается неисправным, отключается.В этом случае оборудование будет простаивать не более 32 секунд в год. Чтобы получить такие результаты необходимо пожертвовать большими деньгами на приобретение данного оборудования. По подсчетам одной российской компании на данный кластер придется потратить порядка $1 600 000Программный способ.Самым известным программным продуктом для реализации непрерывно доступного кластера в настоящее время является vSphere от VMware.Но данный способ реализации имеет свои ограничения, такие как: Определенный процессор на физической машине Intel архитектуры Sandy Bridge (или новее). Avoton не поддерживается. AMD Bulldozer (или новее). Сетка, с пропускной способностью в 10-гигабит, через которую общаются виртуальные машины Количество виртуальных машин на физической не должно превышать 8 Количество виртуальных процессов виртуальной машины не более 4 Количество виртуальных процессов на хосте не более 8 Не поддерживаются снэпшоты ISO-образы должны быть находиться в общем хранилище, чтобы все машины имели к ним доступ. Было проведено несколько экспериментов, результатами которых стал вывод, что при использовании FT от VMware виртуальные машины начинали работать значительно медленнее, производительность упала на

1.3 Рынок

Реализация

2.1 Демон

2.2 Сервисное приложение

2.3 Клиентское приложение.

Вывод.

Список литературы.

Приложение

2.2 Сервисное приложение


Сервисное приложение реализовано на Python 3 c использованием фреймворка, для создания web-приложений, Flask. Flask – это небольшой фреймворк для создания веб-сайтов. Flask является простым, но быстро расширяемым ядром.

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

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

Чтобы запустить сервер используется функция app.run(host='0.0.0.0',port=8081), где host – это ip-адрес, а port – это порт, на котором подниается сервер.

Для того, чтобы привязать функцию к URL используются декораторы. Вызов декоратора выглядит так @app.route('/', methods=['GET', 'POST']). Это означает, что при вводе в адресной строке браузера 'http://0.0.0.0:8081/' сервер вернет страницу, которая описана в функции под декоратором. При запрашивании браузером метода GET, сервером должна предоставляется html страница. Проверить вызываемый метод можно с помощью условие request.method = 'GET', после которого необходимо вернуть html страницу с помощью функции return render_template('index_3.html') Если происходит вызов метода POST, значить браузер хочет сообщить некоторую информацию серверу, и сервер должен ее обработать и что-то вернуть браузеру, это проверяется с помощью условия request.method = 'POST'. Проверка нажатия кнопки происходит с помощью метода request.form['submit'] == 'This node', где 'This node' это название кнопки в html коде. Далее можно вернуть любую страниу, с помощью метода return redirect(url_for('.contact')) , где contact, это функция, которая привязана к декоратору.

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


2.3 Клиентское приложение.


Реализовано на Python 3 c использованием фреймворка, для создания web-приложений, Flask. Клиентское приложение запускается демоном, при поступлении сигнала о запуске из серверного приложения. Клиентское приложение управляет работой физического моторчика, который двигается вокруг своей оси, в зависимости от выбранного варианта.

Чтобы запустить сервер используется функция app.run(host='0.0.0.0',port=8081), где host – это ip-адрес, а port – это порт, на котором подниается сервер.

Для того, чтобы привязать функцию к URL используются декораторы. Вызов декоратора выглядит так @app.route('/', methods=['GET', 'POST']). Это означает, что при вводе в адресной строке браузера 'http://0.0.0.0:8081/' сервер вернет страницу, которая описана в функции под декоратором. При запрашивании браузером метода GET, сервером должна предоставляется html страница. Проверить вызываемый метод можно с помощью условие request.method = 'GET', после которого необходимо вернуть html страницу с помощью функции return render_template('index_3.html') Если происходит вызов метода POST, значить браузер хочет сообщить некоторую информацию серверу, и сервер должен ее обработать и что-то вернуть браузеру, это проверяется с помощью условия request.method = 'POST'. Проверка нажатия кнопки происходит с помощью метода request.form['submit'] == 'Left', где 'Left' это название кнопки в html коде, после чего запускается метод, который управляет макетом. Далее можно вернуть любую страницу, с помощью метода return redirect(url_for('.web_function')) , где web_function, это функция, которая привязана к декоратору.

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



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



Вывод.


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

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

Список литературы.


  • https://m.habrahabr.ru/company/ispsystem/blog/313066/

  • http://pubs.vmware.com/vsphere-60/topic/com.vmware.ICbase/PDF/vsphere-esxi-vcenter-server-601-availability-guide.pdf

  • http://xgu.ru/wiki/Remus

  • https://github.com/corosync/corosync

  • http://www.vmgu.ru/news/vmware-fault-tolerance-performance

  • http://research.microsoft.com/en-us/um/people/moscitho/publications/icdcs06.pdf

  • https://www.ibm.com/support/knowledgecenter/en/SSPHQG_6.1.0/com.ibm.hacmp.concepts/ha_concepts_continuum.htm

  • https://www.mulesoft.com/resources/esb/high-availability-cluster

  • https://www.globalscape.com/managed-file-transfer/high-availability

  • http://gridbus.csse.unimelb.edu.au/papers/ic_cluster.pdf

  • http://www.intuit.ru/studies/courses/1147/223/lecture/5756?page=2

  • http://old.ci.ru/inform10_99/p_08_9.htm

  • http://www.ibm.com/developerworks/ru/library/l-Cluster_Linux_1/

  • http://www.computer-museum.ru/technlgy/klaster.htm

  • https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Cluster_Suite_Overview/s1-rhcs-intro-CSO.html

  • https://de.wikipedia.org/wiki/HP_Serviceguard

  • http://www8.hp.com/ru/ru/products/servers/hp-ux.html?compURI=1454628#.WGJznrJ95hE

  • https://habrahabr.ru/post/129207

  • https://pastebin.com/jdX5wn0E

  • http://flask.pocoo.org/docs/0.12/.latex/Flask.pdf

  • http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html

  • http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_mutex_lock.html

  • https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BC%D0%BE%D0%BD_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0)

  • https://rsdn.org/article/unix/sockets.xml

  • https://ru.wikipedia.org/wiki/Flask_(%D0%B2%D0%B5%D0%B1-%D1%84%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA)

  • https://flask-russian-docs.readthedocs.io/ru/latest/


Приложение


Приложение 1.

Решение

Время простоя (отключения)

Доступность данных

Стоимость

Автономное (Standalone)

Дни

С последней резервной копии

Базовые затраты на аппаратное и программное обеспечение ($)

Улучшенное автономное (Enhanced standalone)

Часы

До последней транзакции

Двойные затраты на аппаратное обеспечение ($$)

Кластеры высокой доступности (High availability clusters)

Минуты

До последней транзакции

Двойные затраты на аппаратное обеспечение и дополнительное обслуживание ($$+)

Отказоустойчивые вычислительные системы (fault-tolerant computing)

Никогда не отключаются

Без потери данных

Специализированное аппаратное и программное обеспечение, очень дорогостоящее ($$$$$$)

PowerHA

Минуты

До последней транзакции

Двойная или тройная стоимость аппаратного обеспечения + дополнительные затраты на связь ($$$$)


Приложение 2.

Volume Size

Cluster Size

FAT16

FAT32

exFAT

NTFS

ReFS

7 MBs to 16 MBs

512 bytes

N/A

4 KBs

512 bytes

N/A

17 MBs to 32 MBs

512 bytes

N/A

4 KBs

512 bytes

N/A

33 MBs to 64 MBs

1 KB

512 bytes

4 KBs

512 bytes

N/A

65 MBs to 128 MBs

2 KBs

1 KB

4 KBs

512 bytes

N/A

129 MBs to 256 MBs

4 KBs

2 KBs

4 KBs

512 bytes

N/A

257 MBs to 512 MBs

8 KBs

4 KBs

32 KBs

512 bytes

N/A

513 MBs to 1024 MBs

16 KBs

4 KBs

32 KBs

1 KB

64 KBs

1025 MBs to 2 GBs

32 KBs

4 KBs

32 KBs

4 KBs

64 KBs

2 GBs to 4 GBs

64 KBs

4 KBs

32 KBs

4 KBs

64 KBs

4 GBs to 8 GBs

N/A

4 KBs

32 KBs

4 KBs

64 KBs

8 GBs to 16 GBs

N/A

8 KBs

32 KBs

4 KBs

64 KBs

16 GBs to 32 GBs

N/A

16 KBs

32 KBs

4 KBs

64 KBs

32 GBs to 2 TBs

N/A

*

128 KBs

4 KBs

64 KBs

2 TBs to 16 TBs

N/A

*

128 KBs

4 KBs

64 KBs

16 TBs to 32 TBs

N/A

*

128 KBs

8 KBs

64 KBs

32 TBs to 64 TBs

N/A

*

128 KBs

16 KBs

64 KBs

64 TBs to 128 TBs

N/A

*

128 KBs

32 KBs

64 KBs

128 TBs to 256 TBs

N/A

*

128 KBs

64 KBs

64 KBs