`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Кластеры «сделай сам»

+99
голосов

Как бы ни относиться к Microsoft сегодня, нельзя не признать, что вся история компании прошла под лозунгом низведения высоких технологий до уровня простых смертных. Домены и службы каталогов, СУБД и бизнес-аналитика, виртуализация и частные «облака»... Да, все это происходило в контексте конкурентной борьбы (и в результате многие конкуренты были существенно потеснены на рынке или вообще исчезли), но, тем не менее, современное состояние ИТ в значительной степени определено именно Microsoft — не случайно еще в 2007 г. в ее экосистеме было задействовано 42% всех ИТ-специалистов в мире. Конечно, не всегда всецелевые технологии и продукты Microsoft сразу же становились вровень со специализированными решениями, однако ключевые неизменно выбивались в лидеры по показателю цена/возможности и простоте внедрения. Одним из подобных примеров как раз и являются кластеры.

Вообще, кластеры бывают разные, к примеру, вычислительные. Однако к последним Microsoft явно потеряла интерес, так что в линейке Windows Server 2012 редакции HPC уже нет. Шаг достаточно логичный, поскольку на данном поприще Windows так и не удалось достичь значимых результатов (о чем свидетельствует статистика Top500 суперкомпьютеров), а кроме того, в силу специфики высокопроизводительных вычислений, гораздо перспективнее выглядит Windows Azure. Поэтому мы, как и Microsoft, сосредоточимся на кластерах высокой доступности.

Кластеры в Windows

Впервые их поддержку Microsoft реализовала еще в Windows NT 4 Server Enterprise Edition в виде Microsoft Cluster Service (MSCS), которая в Windows Server 2008 превратилась в роль Failover Clustering. Такие кластеры часто не вполне корректно называют отказоустойчивыми, хотя правильней было бы говорить о высокодоступных кластерах или кластерах с обработкой отказа (что, собственно, и означает failover). В общем случае (т.е. без специальных дополнительных мер) выход из строя того узла кластера, к которому идет обращение, будет означать как раз отказ в обслуживании, однако кластеризуемые сервисы автоматически перезапустятся на другом узле и, таким образом, будут готовы к работе в кратчайший срок.

Высокодоступный кластер на Windows должен объединять как минимум два узла с соответствующими ОС и ролями, подключенные к внешней и внутренней (предназначенной для обмена служебными сообщениями, heartbeat) сетям и общему хранилищу для служебных ресурсов (диск-свидетель для кворума, witness) и данных кластеризуемых приложений. Узлы могут работать по схеме Active-Passive, когда сервисы исполняются только на одном из них, а другой работает в дежурном режиме, или Active-Active, когда оба узла несут полезную нагрузку.

Кластеры «сделай сам»

Понятно, что за свою достаточно длинную историю поддержка кластеров в Windows претерпела большие изменения. Поначалу они, впрочем, были в основном экстенсивными — улучшалась масштабируемость (до 64 узлов в Windows Server 2012), расширялся список кластеризуемых сервисов. В первую очередь были поддержаны файловые и сетевые службы, затем — SQL Server (Windows Server 2000), Exchange Server (Windows Server 2003), многие другие стандартные роли и службы, в том числе и Hyper-V (Windows Server 2008).

Именно виртуализация и позиционирование Windows Server в качестве облачной ОС дали новый толчок к совершенствованию поддержки кластеров, что вполне логично — повышенная плотность вычислений налагает дополнительные требования на надежность и доступность инфраструктуры. Соответственно, именно в этой области, начиная с Windows Server 2008, сосредоточено большинство усовершенствований. В частности, в Windows Server 2008 R2 появились общие тома кластера (Cluster Shared Volumes, CSV) Hyper-V, которые позволили узлам одновременно обращаться к одной файловой системе NTFS, в результате чего несколько кластерных виртуальных машин (ВМ) могут использовать один LUN и независимо мигрировать с узла на узел.

Кластеры «сделай сам»

Совершенствование кластерной поддержки Hyper-V продолжилось и в Windows Server 2012. К примеру, появилась возможность управлять приоритетами виртуальных машин на уровне всего кластера, которые определяют порядок перераспределения памяти, восстановления ВМ в случае выхода из строя узлов или штатной массовой миграции (Live для высокоприоритетных, Quick для низко-) и пр. Мониторинг был расширен на службы внутри ВМ — теперь при сбоях контролируемой службы можно автоматически перезапустить не только ее саму, но и всю ВМ или даже выполнить миграцию на другой (к примеру, менее нагруженный) узел. Но наиболее интересные нововведения кластеризации в Windows Server 2012 сосредоточены в несколько иной области.

Кластеры в Windows Server 2012

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

SMB 3.0

Протокол SMB (Server Message Block) обеспечивает в Windows сетевой обмен данными. Именно он используется при чтении, записи и других файловых операциях на удаленных ресурсах. Версия 3.0 является принципиальным обновлением и содержит большое количество усовершенствований, в значительной части ориентированных на оптимизацию функционирования SQL Server, Hyper-V и файловых кластеров. В нашем контексте особый интерес представляют следующие новинки:

  • прозрачная отказоустойчивость (Transparent Fileover). При сбое или отключении одного из узлов файлового кластера текущие операции не прерываются, а автоматически передаются другому узлу. Таким образом становится возможной схема Active-Active (до 8 узлов);

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

  • SMB Multichannel. Агрегирует пропускную способность и обеспечивает отказоустойчивость при наличии нескольких сетевых путей между клиентом и сервером с поддержкой SMB 3.0;

  • SMB Direct. Поддержка сетевых адаптеров с технологией RDMA, которая осуществляет передачу данных непосредственно в память приложения, практически не задействуя CPU.

Важно отметить, что, для использования этих и многих других возможностей, SMB 3.0 необходим на обоих концах соединения. Именно поэтому Microsoft рекомендует использовать серверы и клиенты одного поколения, в данном случае — Windows Server 2012 и Windows 8. C поддержкой SMB 3.0 в Windows 7, к сожалению, все по-прежнему туманно.

Storage Spaces

Эта технология впервые появилась в Windows Server 2012 и Windows 8. О последней мы уже писали, отличия серверной реализации минимальны — поддержка новой файловой системы ReFS с дополнительными функциями отказоустойчивости (но не в кластерах); назначение дисков в пуле для горячей замены (Hot Spare) на случай выхода других из строя или оперативной замены исчерпавшего свой ресурс SSD; более широкие возможности тонкой настройки посредством PowerShell.

Если вкратце, то Storage Spaces представляет собой программную реализацию RAID с многими интересными дополнительными функциями. Сначала накопители с прямым доступом необходимо объединить в пулы. Они, в принципе, могут быть любых типов и емкостей, но увлекаться экзотическими комбинациями не стоит, во всяком случае без четкого понимания принципов функционирования технологии.

Затем на пулах можно создавать собственно пространства, или виртуальные диски (не путать с VHD/VHDX) трех доступных типов:

  • простой (Simple) — аналог RAID 0;

  • зеркало (Mirror), двух- или трехстороннее. В первом случае речь идет о RAID 1, во втором — о какой-то более сложной схеме, вроде RAID 1E;

  • с контролем четности (Parity) — аналог RAID 5, обеспечивающий минимальный перерасход пространства при минимальной же отказоустойчивости.

Storage Spaces, конечно, возникли не на пустом месте. Похожие возможности достаточно давно присутствуют в Windows Server, в частности, в форме динамических дисков. Storage Spaces, однако, призвана вывести технологию на новый уровень и сделать ее более употребимой. Одним из преимуществ является тонкая инициализация (thin provisioning), которая позволяет назначать виртуальным дискам размеры сверх реально доступных в расчете на последующее добавление в соответствующий пул новых накопителей.

Один из самых непростых вопросов, связанных со Storage Spaces, — производительность. Традиционно считается, что программные реализации RAID уступают по этому показателю аппаратным. Однако по некоторым отзывам, бывают и обратные ситуации — скажем, если речь идет о файловом сервере, то Storage Spaces получает в свое распоряжение мощный процессор и большой объем оперативной памяти для кэширования. В общем случае, конечно, требуется тестирование под конкретный вид нагрузки. В этом контексте, кстати, приобретают особую ценность возможности тонкой настройки Storage Spaces посредством PowerShell.

Нетрудно видеть, что Storage Spaces предлагает отказаться от RAID-контроллеров и дорогих (интеллектуальных) систем хранения, перенеся их логику в ОС. На первый взгляд такая идея может показаться сомнительной, однако в полной мере она раскрывается и становится достаточно привлекательной вместе со следующей новинкой.

Scale-Out File Server

Так называется новый режим кластеризуемой роли File Server в Windows Server 2012. Несколько неожиданное явление, если учесть, что файловый сервер был кластеризован одним из первых — еще в Windows NT 4 Server. Но действительно, теперь для File Server поддерживаются два типа кластеризации, названия которых полностью звучат следующим образом: File Server for General Use и Scale-Out File Server (SOFS) for application data. Забегая несколько вперед, скажем, что новое не всегда гарантированно лучшее — каждая из технологий имеет свои ограничения и, соответственно, сферы их применений не совпадают:

Кластеры «сделай сам»

Таким образом, всецелевой файловый сервер — это старый добрый кластер Active-Passive, тогда как SOFS — Active-Active, т.е. отказоустойчивый в полном смысле этого слова. В том числе и на уровне официальной терминологии, так как для соответствующих папок совместного доступа используется опция Continuously Available. Именно в этой точке сходится большинство технологий, о которых мы писали выше, начиная с SMB 3.0.

Кроме отказоустойчивости (непрерывной доступности) это также дает увеличенную пропускную способность — при правильном проектировании сетевой архитектуры; минимизацию влияния CHKDSK, т.к. проксирующая файловая система CSV 2.0 (CSVFS) позволяет CHKDSK выполнять операции, поддерживая при этом работу с томом активных приложений; кэширование чтения с CSV; более простое развертывание и управление за счет использования CSV. Все что требуется — создать обычный кластер, настроить том CSV и активизировать роль File Server в режиме Scale-Out File Server for application data.

Эта функциональность и простота ее реализации привели даже к появлению нового класса решений — кластер-в-коробке (Сluster-in-a-Box, CiB). Как правило, это шасси с двумя лезвийными серверами и SAS JBOD с поддержкой Storage Spaces. Принципиальными являются требования двухпортовости как SAS JBOD, так и SAS HBA (Host Bus Adapter) для перекрестного подключения:

Кластеры «сделай сам»

И вся эта система ориентирована именно на организацию SOFS. Если же учесть, что iSCSI target стандартно встроен в Windows Server 2012 и также кластеризуется, то фактически таким образом реализуется «самодельная» СХД на основе всецелевой ОС.

Единственный досадный момент заключается в том, что владельцем CSV по-прежнему является один из узлов, который и отвечает за все операции с метаданными. Соответственно, большое количество последних может негативно сказаться на общей производительности. Именно поэтому сценарий Information Worker не рекомендуется для SOFS, тогда как SQL Server и Hyper-V, напротив, подходят идеально — в том числе, за счет функций агрегации пропускной способности и пр.

Другие новинки

Конечно, количество новинок в области кластеризации в Windows Server 2012 гораздо больше. Выше перечислены лишь самые важные и приметные, но другие, даже из разряда «мелочей», также появились не случайно. Так, в продолжение развития поддержки виртуализации, было значительно упрощено создание гостевых (т.е. построенных из виртуальных машин) кластеров. Если в Windows Server 2008 R2 для этого было необходимо предоставить в общее пользование виртуальных машин iSCSI Target, то Windows Server 2012 научился виртуализовать FC-контроллер (по аналогии с сетевыми адаптерами), благодаря чему ВМ могут получать непосредственный доступ к LUN. Есть и более простой вариант: гостевым Windows Server 2012 достаточно предоставить общую сетевую папку SMB 3.0.

Одна из нетривиальных задач — установка в кластере программных обновлений. Поскольку при этом может требоваться перезагрузка узлов, ясно, что пускать всю процедуру на самотек никак нельзя. Можно придумывать разные ухищрения, но Windows Server 2012 предлагает нечто лучшее — Cluster-Aware Updating: один из узлов назначается координатором, в его задачи входит проверка обновлений, загрузка их на каждый узел и поочередное обновление последних, начиная с наименее загруженного. Таким образом, в течение всей процедуры доступность кластера автоматически сохраняется на максимально возможном уровне.

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

Новинки Windows Server 2012 R2

В отличие от Windows 8.1, Windows Server 2012 R2 представляет собой не обновление, а полноценную новую версию ОС. Чередование базовых релизов и R2 соответствует модной в индустрии стратегии тик-так, вследствие чего последние являются, в основном, эволюционным развитием первых. Тем не менее, усовершенствования Windows Server 2012 R2 поднимают отдельные возможности серверной платформы на качественно новый уровень и прежде всего это относится к Hyper-V и SOFC.

Высокодоступные ВМ

Создавать гостевые кластеры стало еще проще, поскольку теперь в качестве общего хранилища можно использовать обычные VHDX, которые внутри ВМ представляются как Shared SAS-диски. Сами VHDX должны размещаться в общих папках SMB 3.0 или на CSV. В ВМ при этом могут использоваться как Windows Server 2012 R2, так и Windows Server 2012 (с обновленными интеграционными компонентами).

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

Hyper-V в Windows Server 2012 R2 также осуществляет мониторинг сетевых интерфейсов в ВМ и в случае возникновения проблем инициирует их миграцию на узел, где внешняя сеть остается доступной.

Кворум

В Windows Server 2012 R2 к динамическому кворуму добавился динамический диск-свидетель (witness). Идея состоит в том, чтобы при изменении числа узлов автоматически учитывать или нет его голос, всегда поддерживая общее число голосов нечетным. При недоступности самого диска его голос просто обнуляется. Такая схема позволяет фактически забыть о моделях кворума и положиться на автоматические механизмы, которые, к тому же, включены по умолчанию.

Более надежным сделано функционирование кластеров, размещенных на двух площадках. Нередко на каждой насчитывается ровно половина узлов, поэтому в случае нарушения коммуникаций между ними может возникнуть проблема с формированием кворума. Со многими подобными ситуациями справится механизм динамического кворума, однако в Windows Server 2012 R2 одной из площадок (к примеру, резервной) можно явно назначить низкий приоритет, с тем, чтобы в случае аварии кластер всегда функционировал на основной. Если же в подобной ситуации кластер был запущен с принудительным кворумом, то, при восстановлении коммуникаций с удаленной площадкой, службы кластера будут автоматически перезапущены и кластер вновь объединен.

CSV 2.1

Реализация CSV в Windows Server 2012 R2 претерпела множество изменений. Теперь кластер будет равномерно распределять роли владельцев томов по узлам, автоматически реагируя на изменение их числа. Дополнительно отказоустойчивость CSV повышается за счет запуска на каждом узле кластера двух экземпляров серверной службы: одного — для обслуживания клиентского SMB-трафика, другого — для обеспечения коммуникаций между узлами. При этом осуществляется мониторинг службы и при нарушении ее работы роль владельца CSV мигрирует на другой узел.

Целый ряд усовершенствований CSV направлен на более эффективное использование Storage Spaces и SOFC (соответственно, заполнится часть пробелов в таблице выше). Отныне CSV поддерживают файловую систему ReFS, отличающуюся более совершенной по сравнению с NTFS внутренней организацией. ReFS появилась в Windows Server 2012 и, в силу новизны, Microsoft продвигает ее довольно постепенно, но в дальнейшем, судя по всему, она будет играть все более заметную роль. Также на томах CSV теперь доступна дедупликация, которая в Windows Server 2012 была прерогативой исключительно всецелевого файлового сервера. Ее активация приводит к отключению CSV Block Cache, но в некоторых сценариях (к примеру, VDI) она может быть довольно эффективной. Снято и еще одно ограничение — в Windows Server 2012 R2 тома CSV могут создаваться на дисковых пространствах с контролем четности.

Возможность смешивать накопители различных типов изначально была особенностью Storage Spaces. В Windows Server 2012 R2 она, наконец, приобрела реальный смысл с многоуровневыми пространствами. Теперь в пуле можно сформировать два уровня — быстрый (SSD) и емкий (HDD), и при создании виртуального диска выделять некоторый объем из каждого. В дальнейшем содержимое диска будет анализироваться по определенному расписанию и переразмещаться блоками по 1 МБ: горячие данные — на SSD, холодные — на HDD. Можно также принудительно закреплять отдельные файлы на быстром уровне. Другое применение многоуровневых пространств — реализация кэша с обратной записью (write-back) на SSD. В случае пиковых нагрузок на систему хранения запись будет вестись преимущественно на быстрый уровень, а в дальнейшем холодные данные будут вытеснены на HDD.

Пожалуй, именно усовершенствования CSV и Storage Spaces можно отнести к наиболее существенным в Windows Server 2012 R2. Вместе с базой, заложенной в Windows Server 2012, они позволяют строить не просто надежные файловые серверы, а фактически мощные и гибкие СХД, отличающиеся высоким уровнем масштабируемости и отказоустойчивости, оснащенные современными функциями.

+99
голосов

Напечатать Отправить другу

Читайте также

Отличный обзор, спасибо!

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT