Header RSS-подписка на обновления сайта eMail-подписка на обновления сайта

SQL кластер на VMware Workstation. Часть 1/11.









Сегодня мы попробуем поговорить о такой вещи, о которой много кто слышал, но мало кто видел живьем. Да, речь пойдет о кластерах, а точнее об одной и довольно узкой, и специфичной области их применения: отказоустойчивом кластере предназначенном для хостинга SQL Server. Подавляющее большинство IT-специалистов имеют о данном предмете знания хорошо если хотя бы отрывочные. Вроде как-то это с технологией High Availability связано, и помнится какие-то ноды там быть должны, и даже, кажется, переключаться между ними можно... Отчасти такие отрывочные сведения можно оправдать тем, что далеко не каждой организации нужен кластер прямо сейчас и не факт что он понадобится в будущем. Более того, появление в SQL Server 2005 конкурирующей технологии зеркализации баз данных (database mirroring) SQL кластерам был нанесен если не сокрушительный, то определенно ощутимый удар.

Если отбросить совсем уж вторичные ограничения технологии зеркализации типа отсутствия поддержки файловых групп типа FILESTREAM, у старого, доброго кластера останется одно (но заметное) преимущество, а именно — «площадь покрытия». Ведь кластер защитит весь ваш сервер. Со всеми его пользовательскими базами, системными базами (с которыми, к слову, упомянутая зеркализации откажется работать наотрез), логинами и вообще всем что у вас есть на сервере. Зеркализация же защитит всего одну вашу базу, и ничего из того что находится вне ее. Правда вот эту задачу — защиту единственной базы — последняя технология решит намного качественнее чем кластер, тут и спорить не о чем. Гибкость настроек, три режима работы на выбор, полностью прозрачный ре-коннект клиентов в случае события failover, отсутствие требований к специальной сертификации физического оборудования сервера (hardware) — красота! 8) В тоже время автор вовсе не думает, что время кластеров безвозвратно кануло в Лету. Отнюдь. Его практический опыт говорит о том, что именно в последние годы, уже после выхода SQL Server 2005, и именно в России число реализованных SQL-кластеров в организациях и на предприятиях только увеличивается. Отчасти (и очень небольшой притом) это связано с общим пониманием места IT-инфраструктуры в бизнесе, и осознанием того факта, что вкладываться в нее (и ее hardware составляющую в частности) не только правильно, а элементарно выгодно (тут, разумеется, куча «но», «если» и «при условии», но в целом — выгодно. Информация, знаете ли — она дорогого стоит). Гораздо более значительным фактором стало желание иметь именно «запасной компьютер (сервер)» постоянно готовый к работе. А не отдельный (пусть и самый важный) его компонент. Все-таки «переткнуть клавиатуру в соседний системный блок и продолжить работу с того же места» (образный аналог кластера), совсем не тоже самое что «развинтить соседний блок, достать из него HDD, поставить его в свой системник и продолжить работу с того же места» (образный аналог зеркала). При кластеризации, в случае выхода из строя на рабочем сервере существенного компонента вроде CPU или планки памяти переключение на резервные ресурсы будет намного надежнее (ключевое слово), чем при зеркализации. Начиная с того факта, что строка подключения клиента не меняется ни на йоту (для них виртуальный сервер остается тем же самым) и заканчивая фактом что ситуация когда на основном сервере у пользователя логин был, а на резервном его нет исключена по определению. Опять же, фигурально выражаясь, при переключении клавиатуры ошибиться очень сложно, почти не реально. При переносе между двумя системными блоками одного HDD ошибка так же маловероятна, но представляется уже гораздо более реальным событием. Собственно говоря, надежность, является ключевым (или даже может так — единственным ключевым) словом обсуждаемого дальше кластера. По сути это все, что он может вам предложить. Не наступайте на «грабли» возникающие после чтения статей о кластере компьютеров, решающих «загадку мирозданья» и показывающих фантастические результаты в производительности вычислений. Нет, авторы статьи вас не обманывают, производительность там и вправду фантастическая. Вот только речь идет о другом кластере, не о Failover Cluster. Мы же будем говорить о последнем, а он никакого выигрыша в производительности вам не предложит. И даже более того, часть ресурсов итоговой системы будет направлена на обслуживание кластера как такового, так что мы еще и потеряем в этом смысле (правда сущие копейки) от его реализации. Вот только в большинстве внедренных вычислительных систем на базе SQL Server производительность и так достаточна, или, как минимум, приемлема. Гораздо сильнее всех заботит вопрос «а если все рухнет — как дальше работать станем»? И вот в ответе на этот вопрос обсуждаемый нами кластер будет очень даже «в тему».

Хорошо, если будущее кластеров представляется перспективным, и может даже более чем когда бы то ни было, поскольку успехи виртуализации, несомненно, льют воду на эту же мельницу — почему так мало IT-специалистов владеют данной темой и могут в разумные сроки собрать из подходящего оборудования рабочий SQL-кластер? Не в последнюю очередь (автор даже не исключает главенства этого фактора) объясняется сей нерадостный факт тем обстоятельством, что нет «тест-площадки», которую любой желающий мог бы взять в руки и «пощупать» — как там в этих кластерах и что. Книги и статьи это все хорошо, но без практики это почти ноль и не более чем занимательное чтение. Почему же не предпринимаются усилия создать такую площадку? Тут, во-первых, бытует мнение, что без специального (и зело дорогостоящего) оборудования кластер вообще не построить, то есть в принципе. Эта точка зрения ошибочна в корне. Без указанного оборудования вы всего лишь лишаетесь поддержки (та что support) от Microsoft Customer Support Services (CSS). Правда, согласен, это «всего лишь» та самая вещь ради которой, собственно, и покупают SQL Server. Поэтому когда (я надеюсь) дело у вас дойдет до «боевого» кластера даже не думайте приступать к его монтажу и настройке пока весь ваш комплекс не отыщется в списке совместимости программного обеспечения и оборудования с операционной системой (Hardware compatibility list, HCL), который теперь уже называется каталог Windows Server (Windows Server Catalog, WSC). В названном каталоге вас будет интересовать раздел Cluster Solution, где вам и надлежит выбрать себе «железо». Однако именно для целей самообразование вовсе не обязательно закупаться всеми этими «гаджетами» по цене небольшого самолета. Вас, поскольку очевидно, что на текущий момент вы ни на какую поддержку и не претендуете, вполне устроят самые обычные и ничем не примечательные компьютеры типа workstation, стоящие у вас на столе на работе и дома. Из них требуемая площадка очень даже здорово собирается. Но, есть и во-вторых. Бытует еще одно мнение, что настройка кластера и, уж тем более «подъем» его с нуля — дело хлопотное, многотрудное и чреватое нервными срывами. И вот это мнение, в отличии от предыдущего, совершенно верно. Для реализации кластера требуется предпринять сотни (и по прочтению данной статьи вы убедитесь, что это вовсе не фигура речи и не сгущение красок) шагов, больших и малых. Прибавьте сюда тот факт, что шаги должны выполняться не абы как, а в строгой последовательности и каждый должен непременно заканчиваться успехом, прежде чем вы сможете перейти к шагу следующему. И более того, эти шаги требуют от их выполняющего различных квалификаций. Разумеется, все они связаны с IT и серверами, но — судите сами:

  • нужно ли вам быть/уметь/знать/и т.д. сетевым администратором? Всенепременно! Топология сетей (а в кластере их минимум две), настройка DHCP сервера и/или назначение статических IP-адресов, настройка DNS сервера и т.д. все это требует квалификации в этой области IT-науки;
  • а нужно ли быть системным администратором? Ну а как же! Настройка домена, создание доменных аккаунтов и раздача им прав, ввод и вывод других серверов в/из домена, конфигурация дисков и т.д. В конце-концов сам кластер «поднимается» и поддерживается именно на уровне системы (та что Windows), а уж потом на нее ставится SQL Server;
  • а как насчет познаний в области администрирования SQL? Ну раз наша конечная цель SQL (а не какой-то произвольный) кластер, то здесь вообще никаких аргументов не требуется.

Неудивительно, что способность в одиночку «поднять кластер» является, с точки зрения автора, фирменной «меткой» SQL-администратора высшей «весовой категории». Стоит ли вам продолжать чтение данной статьи (которая скорей является мануалом по такому «подъему кластера», и притом мануалом-«light», скажем так) если вы не чувствуете достаточного умения во всех этих категориях? Сложно сказать. Скорей всего, если у вас есть просто базовые знания в SQL Server и OS Windows Server и вы будете аккуратно воспроизводить все шаги описанные автором далее, то у вас все получится. В то же время, желательно не просто копировать описанные действия, но и понимать, что, собственно, происходит. Разумеется, автор старался не только «в лобовую» описывать юзер-интерфейсы многочисленных визардов через которые нам предстоит пройти, но и хоть немного комментировать происходящее и пояснять, почему мы открываем сейчас этот визард, а не тот и почему мы на этой странице опций выбираем On, а не Off. В то же время, подробные описания подобного толка с погружением в основы и теоретическую составляющую процесса установки кластера, привели бы к созданию мануала страниц, этак, в 800, добраться до окончания которого хватило бы духу не у каждого взявшего старт. Поэтому, как ни крути, но данный труд писался с значительным перевесом в сторону голой практики, пояснялись и освещались действительно тонкие и неоднозначные моменты (и то лишь выборочно, ибо в теме «кластеры» число таковых просто за гранью разумного). Иными словами: для понимания сути (а не только факта) и предназначения каждого шага из описываемых в основном разделе статьи, такие термины и дефиниции как SQL-экземпляр (instance), домен, сервис active directory, доменная учетная запись, сеть хранения данных (SAN), статический IP-адрес, диапазон адресов подсети, запись DNS типа A и еще числом десятка в два определенно не должны вызывать у вас тремор и желания срочно набрать гугл-ком. Разумеется, вы можете просто читать до проблемного места, затем ставить чтение на «паузу», пытаться разобраться в новой для вас концепции, затем продолжать чтение. Возможностей куча, главное ваше желание научиться.

Наконец, у нас еще осталось «в-третьих». Несмотря на то, что, как выясняется, кластер можно сделать и из «табунчика» рабочих станций, не так-то просто, особенно в домашних условиях, найти 3-4 физических машины пусть даже минимальнейших конфигураций. Более того, все эти машины должны быть постоянно свободны, ведь мы будем циклично между ними перемещаться и у нас, можете мне поверить, будет полно иных хлопот, чем еще «стоять в очереди» к клавиатуре. И уж совсем удручает факт достаточной редкости «воркстейшенов» с двумя сетевыми адаптерами (network interface card, NIC). А нам-то таковых нужно две (именно компьютеров с парой NIC-ов)! Но тут нам на выручку приходят технологии виртуализации, достигшие к текущему моменту поразительных высот и открывающие перед пытливым умом неограниченные возможности для тестов и опытов в мире IT. Как вы уже поняли, в качестве «несущей платформы» нашего будущего стенда был выбран продукт VMware Workstation небезызвестной и одноименной софт-фирмы. Почему он, а не Hyper-V/Virtual Server/Virtual PC от еще более известной фирмы? Тут автор сразу хочет согласится: и Windows, и SQL сервера — оба себя на Hyper-V чувствуют «как рыба в воде». Более того, благодаря данной технологии даже появился специальный термин — гостевой кластер (guest failover clustering). В таком кластере каждая нода кластера это не физический сервер, а поддерживаемый силами Hyper-V сервер виртуальный. И даже более того, часть нодов у вас могут быть виртуальными в Hyper-V, а часть — физическими серверами. И все это будет работать вместе! Тем не менее, по скромному мнению автора, если у вас отдельный компьютер с выходом в Интернет и, возможно, подключенный к простенькой SOHO локалке (а то и вовсе без таковой) то вот для такого «desktop-расклада» упомянутая платформа — лучшее что было реализовано в сегменте виртуализации на текущий момент. В сентябре 11-го года вышло очередное «большое» обновление (8-я версия продукта), которое автору понравилось чрезвычайно и лишь укрепило его во мнении о безусловном превосходстве продукта, но именно в сегменте «домашней», скажем так, виртуализации. Реализовано в «8-ке» все просто умопомрачительно, да еще и интерфейс консоли виртуальных машин похорошел. Да, да, вы правы — «это ж все платно»! Существенный (и, смею утверждать, единственный) недостаток выбранной автором платформы — ее платность. И это при наличии широкого круга бесплатных альтернатив-конкурентов. Но и тут есть небольшое «светлое пятно» — 30 дней пробной (и, что немаловажно, полноценной) версии нам гарантированы (ссылка для ее загрузки последует далее), а там, как говорится, видно будет... Как минимум, создать кластер и немного поработать с ним вполне реально, даже если вы в текущий период сильно заняты по работе. А дальше, как вариант, можно запускать уже готовые машины на VMware Player — продукте тотально бесплатном, и, если вы пропустили этот момент, позволяющем (с версии 3-й и выше) еще и создавать виртуальные машины. Собственно, если вы готовы отказаться от нескольких наиболее продвинутых «фич» старшего брата (VMware Workstation), и не претендуете на поддержку со стороны фирмы-производителя платформы — VMware Player вообще становится вашим приоритетным выбором «со старта».

Однако снова, дабы объем мануала оставался «в рамках приличий», никаких подробных инструкций по использованию VMware Workstation/Player как таковых не будет (второй вариант вообще не затрагивается в статье никоим образом, хотя, несомненно, способен повторить процедуры описываемые далее). Автор исходит из предпосылки, что у читателя достаточный опыт работы с одним из двух продуктов (скажем, 6-й и/или 7-й версий, если мы говорим о платном варианте), и что вполне достаточно подчеркнуть только самые важные операции связанные с настройкой виртуальных машин. Если это не так и платформа вам совершенно незнакома, начните, к примеру, с создания пары виртуальных машин на которые установите Windows Server любой версии и немного поработайте с этой парочкой. Дайте им доступ в Интернет, объедините в рабочую группу и т.п. После обретения уверенности в работе с консолью виртуальных машин возвращайтесь к чтению данного произведения.