Кластеры в компьютере что это
Что такое кластер?
У термина «кластер» существует довольно много различных определений, но так как мы на ресурсе, который посвящен компьютерной тематике, то мы остановимся только на значениях непосредственно нас касающихся.
Кластер – группа компьютеров
Наверное многие из вас сталкивались с проблемой «притормаживания» на компьютере. А вы никогда не задумывались, что производительность можно увеличить за счёт использования ресурсов сразу нескольких компьютеров? Действительно, для решения многих сложных и трудоёмких задач можно использовать сразу несколько вычислительных машин. Причем, чем больше компьютеров в такой связке мы используем, тем быстрее мы получим желаемый результат. Именно такое использование компьютеров получило название КЛАСТЕР.
Кластер – единица хранения данных
Наиболее часто с понятием «кластер» пользователи компьютера сталкивается при форматировании флешки, диска либо какого-нибудь другого носителя информации.
На рисунке диалоговые окно форматирования диска на операционной системе Windows 7. Это окно практически не отличается в разных ОС семейства Windows.
В диалоговом окне мы видим, что один из параметров форматирования носит название «Размер кластера». Давайте вместе разберемся, что такое кластер и зачем так важно определять его размер.
Чтобы прочитать файл, жесткому диску приходится считывать её из с разных участков своей памяти. Думаю, понятно, что считывание информации с различных областей диска может существенно замедлять работу системы, ведь гораздо проще считывать информацию последовательно, чем прыгать с места на место.
Понятие кластер, в нашем случае, как раз и относится к этим участкам носителя информации. Кластер – это участки памяти на диске, имеющие определенный заданный объем, являющийся минимальным для хранения файлов.
Какой размер кластера выбрать?
Мы могли бы ломать голову о выборе размера кластера, если бы разработчики Windows не сделали все за нас. Под пунктом «по умолчанию» или «стандартный размер кластера», в диалоговом окне форматирования, как раз скрывается цифра (размер кластера), которая является золотой серединой баланса скорости и производительности системы.
Размер кластера «по умолчанию» не имеет какого-то определенного значения, он рассчитывается исходя из типа файловой системы и размера носителя информации.
Расскажете об этой статье своим друзьям:
Кластер (группа компьютеров)
Кластер — группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс.
Один из первых архитекторов кластерной технологии Грегори Пфистер дал кластеру следующее определение: «Кластер — это разновидность параллельной или распределённой системы, которая:
Обычно различают следующие основные виды кластеров:
Содержание
Классификация кластеров
Кластеры высокой доступности
Обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров.
Отказоустойчивые кластеры и системы вообще строятся по трем основным принципам:
Конкретная технология может сочетать данные принципы в любой комбинации. Например, Linux-HA поддерживает режим обоюдной поглощающей конфигурации (англ. takeover ), в котором критические запросы выполняются всеми узлами вместе, прочие же равномерно распределяются между ними. [1]
Кластеры распределения нагрузки
Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера — производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (OpenMosix, Sun Grid Engine, Linux Virtual Server).
Вычислительные кластеры
Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора в операциях над числами с плавающей точкой (flops) и низкая латентность объединяющей сети, и менее существенными — скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций — набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Ethernet, Myrinet, InfiniBand или другими относительно недорогими сетями. Такую систему принято называть кластером Beowulf. Специально выделяют высокопроизводительные кластеры (Обозначаются англ. аббревиатурой HPC Cluster — High-performance computing cluster). Список самых мощных высокопроизводительных компьютеров (также может обозначаться англ. аббревиатурой HPC) можно найти в мировом рейтинге TOP500. В России ведется рейтинг самых мощных компьютеров СНГ. [1]
Системы распределенных вычислений (grid)
Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощённым средством распределения вычислений. Нестабильность конфигурации, в таком случае, компенсируется больши́м числом узлов.
Кластер серверов, организуемых программно
Кластер серверов (в информационных технологиях) — группа серверов, объединённых логически, способных обрабатывать идентичные запросы и использующихся как единый ресурс. Чаще всего серверы группируются посредством локальной сети. Группа серверов обладает большей надежностью и большей производительностью, чем один сервер. Объединение серверов в один ресурс происходит на уровне программных протоколов.
В отличие от аппаратного кластера компьютеров, кластеры организуемые программно, требуют:
Применение
В большинстве случаев, кластеры серверов функционируют на раздельных компьютерах. Это позволяет повышать производительность за счёт распределения нагрузки на аппаратные ресурсы и обеспечивает отказоустойчивость на аппаратном уровне.
Однако, принцип организации кластера серверов (на уровне программного протокола) позволяет исполнять по нескольку программных серверов на одном аппаратном. Такое использование может быть востребовано:
Самые производительные кластеры
Дважды в год организацией TOP500 публикуется список пятисот самых производительных вычислительных систем в мире, среди которых в последнее время часто преобладают кластеры. Самым быстрым кластером является IBM Roadrunner (Лос-Аламосская национальная лаборатория, США, созданный в 2008 году), его максимальная производительность (на июль 2008) составляет 1,026 Петафлопс. Самая быстрая система в Европе (на июль 2008) — суперкомпьютер, BlueGene/P находится в Германии, в исследовательском центре города Юлих, земля Северный Рейн-Вестфалия, максимально достигнутая производительность 167,3 Терафлопс.
Кластерные системы занимают достойное место в списке самых быстрых, при этом значительно выигрывая у суперкомпьютеров в цене. На июль 2008 года на 7 месте рейтинга TOP500 находится кластер SGI Altix ICE 8200 (Chippewa Falls, Висконсин, США).
Сравнительно дешёвую альтернативу суперкомпьютерам представляют кластеры, основанные на концепции Beowulf, которые строятся из обыкновенных недорогих компьютеров на основе бесплатного программного обеспечения. Один из практических примеров такой системы — Stone Soupercomputer (Оак Ридж, Теннесси, США, 1997).
Крупнейший кластер, принадлежащий частному лицу (из 1000 процессоров), был построен Джоном Коза (John Koza).
История
История создания кластеров неразрывно связана с ранними разработками в области компьютерных сетей. Одной из причин для появления скоростной связи между компьютерами стали надежды на объединение вычислительных ресурсов. В начале 1970-х гг. группой разработчиков протокола TCP/IP и лабораторией Xerox PARC были закреплены стандарты сетевого взаимодействия. Появилась и операционная система Hydra («Гидра») для компьютеров PDP-11 производства DEC, созданный на этой основе кластер был назван C.mpp (Питтсбург, шт. Пенсильвания, США, 1971). Тем не менее, только около 1983 г. были созданы механизмы, позволяющие с лёгкостью пользоваться распределением задач и файлов через сеть, по большей части это были разработки в SunOS (операционной системе на основе BSD от компании Sun Microsystems).
Первым коммерческим проектом кластера стал ARCNet, созданный компанией Datapoint в 1977 г. Прибыльным он не стал, и поэтому строительство кластеров не развивалось до 1984 г., когда DEC построила свой VAXcluster на основе операционной системы VAX/VMS. ARCNet и VAXcluster были рассчитаны не только на совместные вычисления, но и совместное использование файловой системы и периферии с учётом сохранения целостности и однозначности данных. VAXCluster (называемый теперь VMSCluster) — является неотъемлемой компонентой операционной системы HP OpenVMS, использующих процессоры Alpha и Itanium.
Два других ранних кластерных продукта, получивших признание, включают Tandem Hymalaya (1994, класс HA) и IBM S/390 Parallel Sysplex (1994).
История создания кластеров из обыкновенных персональных компьютеров во многом обязана проекту Parallel Virtual Machine. В 1989 г. это ПО для объединения компьютеров в виртуальный суперкомпьютер открыло возможность мгновенного создания кластеров. В результате суммарная производительность всех созданных тогда дешёвых кластеров обогнала по производительности сумму мощностей «серьёзных» коммерческих систем.
Создание кластеров на основе дешёвых персональных компьютеров, объединённых сетью передачи данных, продолжилось в 1993 г. силами Американского аэрокосмического агентства (NASA), затем в 1995 г. получили развитие кластеры Beowulf, специально разработанные на основе этого принципа. Успехи таких систем подтолкнули развитие grid-сетей, которые существовали ещё с момента создания UNIX.
Программные средства
Широко распространённым средством для организации межсерверного взаимодействия является библиотека MPI, поддерживающая языки C и Fortran. Она используется, например, в программе моделирования погоды MM5.
Операционная система Solaris предоставляет программное обеспечение Solaris Cluster, которое служит для обеспечения высокой доступности и безотказности серверов, работающих под управлением Solaris. Для OpenSolaris существует реализация с открытым кодом под названием OpenSolaris HA Cluster.
Среди пользователей GNU/Linux популярны несколько программ:
Кластерные механизмы планируется встроить и в ядро DragonFly BSD, ответвлившуюся в 2003 году от FreeBSD 4.8. В дальних планах также превращение её в среду единой операционной системы.
Компанией Microsoft выпускается HA-кластер для операционной системы Windows. Существует мнение, что он создан на основе технологии Digital Equipment Corporation, поддерживает до 16 (с 2010 года) узлов в кластере, а также работу в сети SAN (Storage Area Network). Набор API-интерфейсов служит для поддержки распределяемых приложений, есть заготовки для работы с программами, не предусматривающими работы в кластере.
Windows Compute Cluster Server 2003 (CCS), выпущенный в июне 2006 года разработан для высокотехнологичных приложений, которые требуют кластерных вычислений. Издание разработано для развертывания на множестве компьютеров, которые собираются в кластер для достижения мощностей суперкомпьютера. Каждый кластер на Windows Compute Cluster Server состоит из одного или нескольких управляющих машин, распределяющих задания и нескольких подчиненных машин, выполняющих основную работу. В ноябре 2008 представлен Windows HPC Server 2008, призванный заменить Windows Compute Cluster Server 2003.
Что такое размер кластера и в чём собственно суть?
Здравствуйте мои дорогие читатели, пожелавшие освоить азы компьютерной грамотности. В этой небольшой статье я расскажу вам, что такое размер кластера. Безусловно, поговорим и о нем самом. Но именно нюансы, связанные с вместимостью данного объекта дадут нам более полное понимание и других процессов, в которых он активно участвует.
Зачем нужен кластер
Начнем с того, что в нашем случае понятие кластер применяется исключительно к носителям цифровой информации, используемых в компьютерах. Это могут быть жесткие диски HDD или SSD, а так же флеш накопители USB или SD карты. Чтобы программные команды по считыванию данных, передаваемые процессору и впоследствии памяти, были максимально корректными и понятными, при их выполнении указывается точное место, где эти файлы расположены.
Чтобы каждый раз не придумывать новое описание для местоположения информации, проще размещать ее в нескольких специально выделенных ячейках, каждая из которых уже имеет свой адрес. Визуально представить их гораздо проще, когда мы взглянем на физические диски винчестера, которые, по сути, размечаются на несколько кольцевых секторов. При этом существенно упрощается и алгоритм механического перемещения считывающей головки в строго фиксированные позиции.
Вот такая ячейка со строго определенным адресом называется кластером. А теперь мы поговорим о его размере. Поскольку он используется для хранения информации, то вполне логично, что и здесь используется соответствующая единица измерения – байт. Соответственно размер кластера – это его вместимость, или объем.
Как определяется размер кластера
Перед тем как с чистого листа начать работу с жестким диском или флешкой необходимо произвести форматирование. Если вы считаете что это всего лишь полная очистка с удалением содержимого, то ошибаетесь.
Такая процедура в первую очередь связана с разметкой памяти и разделением ее на кластеры для конкретной файловой системы. Это так же осуществляется не произвольно. Мы говорили о секторах на диске, так вот ранее выпускаемых моделях размер одного составлял 512 байт и их в одном кластере может быть несколько (число, кратное степени 2). Например, система FAT 32 позволяет отдавать под кластер до 64 секторов, что соответствует 32Мб. Но на флешку с таким форматированием вы не запишите файл объемом более 4Гб.
Сейчас активно используются более совершенные файловые системы NTFS или exFAT. Их возможности позволяют работать с объемными файлами и хранилищами информации.
На современных дисках емкостью в несколько терабайт используется новая разметка секторов Advanced Format, в которых 1 сектор занимает уже 4Кб. Соответственно и размер кластера будет кратен этой величине.
Такой способ распределения секторов позволяет существенно увеличивать емкость жестких дисков. И соответственно снизить условную себестоимость 1 Тб памяти.
Алгоритм использования кластеров
Помимо вышеописанной технологии на эффективность использования места для хранения информации влияет и сам размер кластера. Имеете в виду, что в один кластер нельзя поместить содержимое разных файлов. Ведь это вызовет путаницу при их считывании. Поэтому выполняется такой алгоритм записи:
При многократном записывании-стирании информации последнее обстоятельство приводит к тому, что все файлы будут разбросаны по отдельно расположенным кластерам. И это будет существенно тормозить работу компьютера. Для упорядочения данных на носителе производится его дефрагментация. И это еще один процесс, который прямо связан с кластерами и косвенно, с их размером.
Теперь, дорогие мои читатели я считаю свою миссию выполненной. Вы узнали, что такое размер кластера, как определяется данный параметр, что влияет на него и на какие процессы влияет он. Поэтому, выбирая параметры кластеризации при форматировании, стоит учитывать многие факторы.
Как это сделать я расскажу в другой статье. А в этой я буду прощаться с вами.
Что такое сектор и кластер
Этой заметкой я хочу ответить на вопросы «что такое сектор» и «что такое кластер», в чем их отличие и для чего сектора и кластеры нужны.
Для этого нам нужно будет разобраться с принципами хранения информации, и давайте поговорим о самых основах.
Для хранения данных все носители информации имеют специальную разметку. Давайте рассмотрим упрощенную схему подобной разметки на примере жесткого диска.
Жесткий диск имеет несколько «блинов» (дисков), на магнитную поверхность которых и записываются данные (смотрите рисунок выше).
Каждый блин имеет круглую форму и разметка такого блина выглядит так:
Каждый диск разбит на треки (дорожки), а каждая дорожка поделена на сектора. Это конечно, очень упрощенная схема, но она дает представление о том, что такое сектор.
Сектор – это минимальная пронумерованная область диска, в которой могут храниться данные. Обычно размер одного сектора составляет 512 байт.
Для нормальной работы операционной системы на жестком диске создается файловая система. Файловая система использует сектора для хранения файлов, но из-за некоторых ограничений и особенностей различных файловых систем, сектора носителя информации обычно объединяются файловой системой в кластеры. Это означает, что кластер является минимальной областью файловой системы, предназначенной для хранения информации и он может состоять как из одного, так и из нескольких секторов.
Чтобы проиллюстрировать вышесказанное приведу картинку из Википедии:
На этом рисунке замечательным образом продемонстрирована структура диска. Буквой «А» обозначена дорожка, буквой «В» — геометрический сектор диска, а буквой «С» — сектор дорожки. Далее из рисунка видно, что кластер «D» может занимать несколько секторов дорожки (кластер выделен на рисунке зеленым).
В различных файловых системах кластер мог иметь размеры от 512 байт (один сектор) до 64 кбайт (128 секторов). В наиболее популярной в настоящее время файловой системе NTFS размер кластера можно установить от 512 байт, до 4096 байт (8 секторов).
Размером кластера можно управлять в некоторых пределах — его можно задать при форматировании носителя информации.
Вычислительный кластер
Вычислительный кластер – это набор соединенных между собой компьютеров (серверов), которые работают вместе и могут рассматриваться как единая система. В отличие от грид-вычислений, все узлы компьютерного кластера выполняют одну и ту же задачу и управляются одной системой управления.
Серверы кластера обычно соединяются между собой по быстродействующей локальной сети, причем на каждом из серверов работает собственный экземпляр операционной системы. В большинстве случаев все вычислительные узлы кластера используют одинаковое оборудование и одну и ту же операционную систему. Однако в некоторых инсталляциях, например, с использованием платформы приложений для организации кластеров OSCAR (Open Source Cluster Application Resources), могут использоваться различные операционные системы или разное серверное оборудование.
Кластеры обычно развертываются для большей производительности и доступности, чем то, что можно получить от одного компьютера, пусть даже очень мощного. Часто такое решение более экономично, чем отдельные компьютеры.
Компоненты кластера
Вычислительные кластеры обычно состоят из следующих компонентов:
Виды кластеров
Различают следующие основные виды кластеров:
Кластеры высокой доступности
Кластеры высокой доступности НА (high-availability cluster) известны также как отказоустойчивые (failover) кластеры, построенные по схеме сети с большой избыточностью (redundancy). Они применяются для критических серверных приложений, например сервера баз данных. Компьютерный кластер может называться НА-кластером, если он обеспечивает доступность приложений не менее, чем «пять девяток», т. е. приложение должно быть доступно (uptime) в течение 99,999 % времени за год.
Чрезвычайно высокая доступность в НА-кластерах достигается за счет использования специального программного обеспечения и аппаратных решений со схемами обнаружения отказов, а также благодаря работе по подготовке к отказам.
ПО для НА-кластеров обычно заблаговременно конфигурирует узел на резервном сервере и запускает на нем приложение в фоновом режиме так, чтобы основной экземпляр приложения мог немедленно переключиться на свою реплику на резервном компьютере при отказе основного.
НА-кластеры обычно используются для терминальных серверов, серверов баз данных, почтовых серверов, а также для серверов общего доступа к файлам. Они могут быть развернуты как на одном местоположении («серверной ферме»), так и в географически разнесенных местоположениях.
Но не следует думать, что технология кластера высокой доступности, или вообще кластеризация, могут служить заменой резервному копированию (backup), а также решениям катастрофоустойчивости (disaster recovery).
Кластеры с балансировкой нагрузки
Балансировка нагрузки – это эффективное распределение входящего сетевого трафика в группе (кластере) серверов.
Современные веб-сайты должны одновременно обслуживать сотни тысяч и даже миллионы запросов от пользователей или клиентов и не слишком задерживать их в получении контента: текста, видео или данных приложений. Чем больше серверов будут обслуживать эти запросы, тем лучше будет качество воспринимаемого сервиса для клиентов. Однако может возникнуть ситуация, когда одни серверы сайта будут работать с перегрузкой, а другие будут почти простаивать.
Балансировщик нагрузки направляет запросы клиентов равномерно на все серверы кластера, которые способны ответить на те или иные запросы. Таким образом, балансировщик максимизирует процент использования вычислительной емкости, а также обеспечивает то, что ни один сервер не оказывается перегруженным, вызывая общую деградацию производительности кластера.
Если какой-то сервер отказывает, то балансировщик перенаправляет трафик на оставшиеся серверы. Когда новый сервер добавляется к группе (кластеру), то балансировщик автоматически перераспределяет нагрузку на всех серверах с учетом вновь вступившего в работу.
Таким образом, балансировщик нагрузки выполняет следующие функции:
Работа балансировщика нагрузки
Алгоритмы балансировки нагрузки
Различные алгоритмы балансировки предназначены для разных целей и достижения разных выгод. Можно назвать следующие алгоритмы балансировки:
Программная и аппаратная балансировка нагрузки
Балансировщики нагрузки бывают двух типов: программные и аппаратные. Программные балансировщики можно установить на любой сервер достаточной для задачи емкости. Поставщики аппаратных балансировщиков просто загружают соответствующее программное обеспечение балансировки нагрузки на серверы со специализированными процессорами. Программные балансировщики менее дорогие и более гибкие. Можно также использовать облачные решения сервисов балансировки нагрузки, такие как AWS EC2.
Высокопроизводительные кластеры (HPC)
Высокопроизводительные вычисления HPC (High-performance computing) – это способность обрабатывать данные и выполнять сложные расчеты с высокой скоростью. Это понятие весьма относительное. Например, обычный лэптоп с тактовой частотой процессора в 3 ГГц может производить 3 миллиарда вычислений в секунду. Для обычного человека это очень большая скорость вычислений, однако она меркнет перед решениями HPC, которые могут выполнять квадриллионы вычислений в секунду.
Одно из наиболее известных решений HPC – это суперкомпьютер. Он содержит тысячи вычислительных узлов, которые работают вместе над одной или несколькими задачами, что называется параллельными вычислениями.
HPC очень важны для прогресса в научных, промышленных и общественных областях.
Такие технологии, как интернет вещей IoT (Internet of Things), искусственный интеллект AI (artificial intelligence), и аддитивное производство (3D imaging), требуют значительных объемов обработки данных, которые экспоненциально растут со временем. Для таких приложений, как живой стриминг спортивных событий в высоком разрешении, отслеживание зарождающихся тайфунов, тестирование новых продуктов, анализ финансовых рынков, – способность быстро обрабатывать большие объемы данных является критической.
Чтобы создать HPC-кластер, необходимо объединить много мощных компьютеров при помощи высокоскоростной сети с широкой полосой пропускания. В этом кластере на многих узлах одновременно работают приложения и алгоритмы, быстро выполняющие различные задачи.
Чтобы поддерживать высокую скорость вычислений, каждый компонент сети должен работать синхронно с другими. Например, компонент системы хранения должен быть способен записывать и извлекать данные так, чтобы не задерживать вычислительный узел. Точно так же и сеть должна быстро передавать данные между компонентами НРС-кластера. Если один компонент будет подтормаживать, он снизит производительность работы всего кластера.
Существует много технических решений построения НРС-кластера для тех или иных приложений. Однако типовая архитектура НРС-кластера выглядит примерно так, как показано на рисунке ниже.
Примеры реализации вычислительного кластера
В лаборатории вычислительного интеллекта создан вычислительный кластер для решения сложных задач анализа данных, моделирования и оптимизации процессов и систем.
Кластер представляет собой сеть из 11 машин с распределенной файловой системой NFS. Общее число ядер CPU в кластере – 61, из них высокопроизводительных – 48. Максимальное число параллельных высокоуровневых задач (потоков) – 109. Общее число ядер графического процессора CUDA GPU – 1920 (NVidia GTX 1070 DDR5 8Gb).
На оборудовании кластера успешно решены задачи анализа больших данных (Big Data): задача распознавания сигнала от процессов рождения суперсимметричных частиц, задача классификации кристаллических структур по данным порошковой дифракции, задача распределения нагрузки электросетей путем определения выработки электроэнергии тепловыми и гидроэлектростанциями с целью минимизации расходов, задача поиска оптимального расположения массива кольцевых антенн и другие задачи.
Архитектура вычислительного кластера
Другой вычислительный НРС-кластер дает возможность выполнять расчеты в любой области физики и проводить многодисциплинарные исследования.
Графические результаты расчета реактивного двигателя, полученные на НРС-клатере (источник: БГТУ «ВОЕНМЕХ»)
На рисунке показана визуализация результатов расчета реактивного двигателя, зависимость скорости расчетов и эффективности вычислений от количества ядер процессора.