SqlCmd все о SQL технологиях.





Все что необходимо для изучения и работы с СУБД Microsoft SQL Server, MySQL, MariaDB, MongoDB. Авторские статьи, библиотека фрагментов T-SQL кода, сборник полезных инструментов.



MS SQL Server, SQL Server, T-SQL, исходники, сниппеты, статьи, учебники SQL, утилиты SQL, инструменты SQL



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

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





Постановка задачи

Итак, чего мы хотим добиться по итогу? Что, в результате длительного процесса настройки и инсталяции множества компонентов, у нас получится и какой «профит» мы из этого извлечем? Цель наша будет такая: создать на платформе VMware Workstation набор виртуальных машин (числом четыре), образующих SQL-кластер и его потребителя (клиента; это будет еще одна, пятая, машина). Выгода так же очевидна: во-первых, даже просто факт удачной инсталляции кластера — уже кое что, само по себе. Ну а уж последующие возможные опыты с ним — это просто «непаханное поле», размер которого ограничен только вашими задачами и теми вопросами, что вы перед собой поставите. Границы данного мануала простираются от установки платформы виртуализации на физическую desktop-машину до готового SQL-кластера и самого первого эксперимента с ним, призванного убедить нас, что кластер не только «встал» но и реально обеспечивает нам решение высокой доступности. Дальнейшее изучение вопроса и погружение «в тему» — полная прерогатива читателя. Цель автора — показать и доказать, что начать изучение кластеров вполне можно и в домашней обстановке, с далеко не hi-end оборудованием.

Кому этот мануал может быть полезен?

Да собственно всем, кто нуждается в самообразовании по направлению «кластеры и их применение в качестве технологии высокой доступности». Разумеется, наибольший эффект и «выхлоп» получат администраторы баз данных рассматривающих вопрос о потенциальном размещении SQL-серверов ими администрируемых на кластерной основе. Однако, это далеко не единственные IT-специалисты способные извлечь рациональное зерно из данного труда. Например:

  • вы сетевой администратор и хотите иметь тестовую площадку из нескольких компьютеров и пары сетей (networks). Ни SQL, ни кластеры, ни даже домены вас не интересуют, вам вполне достаточно стандартной WORKGROUP. Не проблема — читайте данный мануал до раздела организации домена и вы обретете искомое.
  • вы системный администратор и хотите площадку для экспериментов с доменами, а кластер вам снова не нужен. Тогда ваша «линия отреза» — раздел об инсталляции кластера в OS Windows Server.
  • вы системный администратор и кластер вам необходим для изучения, но именно как кластер Windows. Ставить на него SQL Server вы не планируете. Для вас, соответственно, статья ограничится разделом инсталляции SQL Server на подготовленный кластер.

В общем, варьируя число шагов описанных далее, вы можете получить итоговую систему настолько простую, или настолько сложную, как того требуется именно вам. С небольшими корректировками и подстройкой «по месту» данный текст будет полезен практически всем работающим с Windows-платформой и нуждающимся в «лабораторном окружении», для проверки своих идей, знаний и т.п. Вместе с тем автор напоминает, что это ни разу не учебник по кластерам как таковым, или по доменам, или даже SQL-серверу. Конечно, кое-какую информацию по ним можно будет почерпнуть и здесь, но все же главная (и можно сказать единственная) задача и цель данной работы — привести вас к готовому и работающему SQL-кластерному решению кратчайшим путем. Что, как вы скоро убедитесь, задача отнюдь не столь скромных масштабов как она может представляться изначально.

Какую систему мы по итогу получим?

Финальный результат будет представлять из себя законченное кластерное решение следующей архитектуры и топологии вычислительных сетей:

Final Solution Schema

Таким образом, в финальное решение войдут:

  • контроллер домена, clustDC
  • ноды кластера clustNodeA и clustNodeB
  • дисковый массив (shared disk) кластера clustSAN
  • клиент (потребитель) кластера clustWork

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

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

Cluster Schema

Таким образом наш кластер будет физически и логически состоять из:

  • активной ноды clustNodeA
  • пассивной ноды clustNodeB
  • двух виртуальных серверов: SQLonCLUST и SQL2NET
  • двух SQL-серверов (экземпляров), по одному на каждый виртуальный сервер: экземпляр по умолчанию («дефолтный») и SQL2INST
Начиная с этого места слова, словосочетания и сокращения «виртуальная машина», «виртуальный компьютер», ВМ, VM будут означать базовую единицу работы с которой оперирует платформа VMware Workstation. Т.е. собственно виртуальную машину запускаемую из консоли таких машин.
Термин же «виртуальный сервер» будет относится к логическому объединению нодов составляющих кластер. Т.е. это именно то, к чему подключаются клиенты пытающиеся начать работу с ресурсами кластера.

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

Важное предупреждение!

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

Данное руководство совершенно игнорирует «лучшие практики» и соображения безопасности при построении любых (но и кластерных в том числе) вычислительных систем. То, что автор предписывает напрочь отключить межсетевой экран (firewall) не означает что это хорошо и что это руководство к действию при инсталляции любой свежей версии Windows Server в любых обстоятельствах. Аналогично — идею запуска всех сервисов под учетной записью доменного администратора блестящей никак не назовешь, равно как и выбор числа 123 в качестве пароля последнего. Эти и ряд других настроек продиктованы все тем же желанием: привести вас к финальному решению как можно проще и быстрее, а так же осознанием того факта, что вся готовая тест-система будет запускаться и работать в рамках вашего физического персонального компьютера. И ее единственным возможным пользователем будет лишь один человек — вы сами. Применяя описанные здесь шаги к настройке кластера подготавливаемого для сдачи в промышленную эксплуатацию проявляйте здравый смысл и вносите соответствующие корректировки!

Предварительная подготовка и проверка

Прежде чем отправляться в увлекательное, но и полное неожиданностей (и не всегда, что характерно, приятных) приключение под названием «подъем SQL-кластера» нам нужно выяснить готовы ли мы к нему. Определение готовности моральной автор полностью возлагает на читателя данных строк, а вот критерии готовности физической вполне можно формализовать.

Hardware

Какой физический (desktop) компьютер понадобится нам для нашего предприятия? Определенно, что low-end варианты можно отмести не глядя: поддерживать в запущенном состоянии одновременно пять(!!) ВМ — задача достойная любой не-серверной системы. А ведь нам еще на них работать, пусть мы даже и единственные пользователи системы. Допустим у автора решение представленное двумя иллюстрациями выше «завелось» на вот таком оборудовании:

  • Процессор: Intel Core i7-950, 4 ядра
  • Память: 2Gb*6 планок=12Gb
  • Жесткий диск: не меньше 53Гб свободного места
  • Сетевая плата: обязательно, любая
  • Выход в Интернет: не обязателен, но крайне желателен
  • Монитор: почти любое разрешение, однако рекомендуется от 1600x1200 и выше

Да, согласен, «средненькой» такую систему (на момент написания текста статьи) не назовешь, однако:

  • итоговая система не только на ней просто «завелась», но и работать с ней было даже сверх-комфортно; для типовых задач тестирования/исследований такой уровень комфорта просто избыточен;
  • процессор можно смело «делить на два», два ядра вполне справятся с задачей. Единственно что, процессор должен быть 64-х разрядным. Нельзя сказать, что их младшие «коллеги» (32-х битные CPU) в принципе исключают реализацию кластерного решения, но они определенно имеют свои нюансы и специфику, в кои автор не имеет никакого желания погружаться в связи с естественным «сходом на нет» 32-х битной архитектуры как таковой, особенно в секторе серверных решений;
  • тоже относится к оперативной памяти, должно хватить 6Gb даже при настройке виртуальных машин приводимых далее автором; кроме того, есть непроверенная догадка, что подвигав ползунки выделения оперативной памяти для каждой ВМ обсуждаемую цифру для физического компьютера можно подсократить до 4Gb, правда ВМ-ы в этом случае будут «едва шевелиться»;
  • жесткий диск (точнее требование к свободному месту на нем) тоже можно подсократить, однако представляется более простым временный перенос на внешний HDD пары-тройки DVD-фильмов. ;)

Кроме того, в зависимости где у вас находятся дистрибутивы Windows/SQL серверов (список таких дистрибутивов последует через секунду) вам, возможно, понадобится DVD привод. У автора, к примеру, все дистрибутивы представлены как iso-образы на USB-диске, который в нужный момент времени подключается к нужной ВМ. В общем, тут сориентируйтесь самостоятельно, «по месту».

Software

Сразу замечу, что для опробирования кластерного решения вам не нужно приобретать никакого программного обеспечения. Несмотря на то, что подавляющее число пунктов из следующего списка представляют собой программы требующие приобретения лицензий, все они, без исключения, предлагают тестовый период (trial) той или иной длительности, в течении которого полная функциональность соответствующих приложений доступна для вас совершенно бесплатно. Разумеется, если у вас уже есть лицензия на все или часть пунктов следующего списка ваша жизнь становится заметно проще. Однако, повторю еще раз, именно «попробовать» кластерное решение можно совершенно бесплатно. Итак, вот список того, что должно у вас быть на DVD/USB/Ext.HDD или любом носителе который вы в состоянии «примонтировать» к ВМ (ссылки ведут на страницы загрузок триальных версий соответствующего программного обеспечения):

  • VMware Workstation 8
  • Windows Server 2008 R2 с интегрированным SP1 к нему (64-bit only)
  • Только SP1 без Windows Server 2008 R2 (если вдруг у вас уже есть этот дистрибутив)
  • Microsoft iSCSI Software Target 3.3
  • SQL Server 2008 R2 и SP1 к нему (ссылки на скачивание этих двух пунктов приведены на странице Скачать данного сайта)
Автор использовал в своей работе английские версии указанных продуктов. Приводимые в мануале снимки экранов так же показывают интерфейсные элементы содержащие надписи на этом языке. При желании воспользоваться их русскоязычными вариантами следует использовать иные ссылки для загрузки, поиск которых автор оставляет на усмотрение читателя.
Организация рабочего пространства в VMware Workstation

8-я версия указанного продукта предлагает т.н. полосу миниатюр (thumbnail bar), располагающуюся ниже главного окна и показывающую текущее состояние экранов всех запущенных ВМ. Вот как это выглядит:

VMwareWorkstation_General

Миниатюры внизу — это не статичные скриншоты экранов запущенных ВМ, а их полная, сильно уменьшенная копия, меняющаяся синхронно с оригиналом. Они удобны по двум причинам:

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

Допустим автор, имея разрешение физического монитора 1600*1200 выставил разрешение внутри каждой из пяти ВМ в 1280*960, после чего полностью развернутое окно консоли VMware Workstation (без перехода в full screen) вмещало «большое» изображение дисплея ВМ без всяких прокруток даже с полосой миниатюр внизу. Таким образом можно было работать с любой одной выбранной ВМ наблюдая при этом сразу за всеми пятью. Очень удобно, рекомендую!

План-схема шагов необходимых для инсталляции нового SQL-кластера в виртуальной среде VMware Workstation

Давайте составим себе такой нумерованный список-«напоминальщик», который с одной стороны всегда подскажет вам как далеко еще до «финиша» процесса, а с другой послужит своеобразным индекс-оглавлением в этой немалой по размерам статье. Итак, что бы начать со сборника дистрибутивов приведенного выше, а закончить работающим SQL-кластером нам предстоит совершить вот что:

  1. Установить VMware Workstation и (опционально) настроить ее виртуальные сети с помощью утилиты Virtual Network Editor
  2. Создать виртуальную машину-«мастер» с OS Windows Server 2008 R2 и сделать ее предварительные настройки
  3. Создать 5 «клонов» мастер-машины, это будут уже рабочие ВМ нашего решения
  4. Внести некоторые изменения в конфигурацию рабочих ВМ
  5. Инсталлировать и настроить iSCSI Target (storage provider)
  6. Добавить в iSCSI Target управляемые им виртуальные диски
  7. «Повысить» одну из ВМ до контроллера домена
  8. Создать на контроллере домена DNS сервер и сконфигурировать его
  9. Ввести оставшиеся четыре ВМ в домен и завершить его формирование
  10. Подключить внешние (shared) диски сначала к будущей активной, а потом будущей пассивной нодам
  11. Завершить настройки публичной и приватной сетей, тестировать сетевую конфигурацию
  12. Установить на обе будущие ноды компонент (feature) Failover Clustering
  13. Проверить текущую конфигурацию обеих будущих нод на готовность к работе в составе кластера
  14. Создать кластер и просмотреть его основные свойства
  15. Установить Microsoft Distributed Transaction Coordinator (MS DTC)
  16. Создать на активной ноде первый виртуальный сервер SQLonCLUST и инсталлировать на него экземпляр SQL Server «по умолчанию»
  17. Применить к установленному серверу SP1 для SQL Server 2008R2
  18. Добавить к виртуальному серверу SQLonCLUST пассивную ноду
  19. Применить SP1 для SQL Server 2008R2 к пассивной ноде и убедиться, что виртуальный сервер SQLonCLUST способен управляться любой из двух нод
  20. Создать в iSCSI Target добавочный виртуальный диск
  21. Создать на активной ноде второй виртуальный сервер SQL2NET и инсталлировать на него экземпляр SQL Server с именем SQL2INST
  22. Добавить к виртуальному серверу SQL2NET пассивную ноду
  23. Проинсталлировать SP1 для SQL Server 2008R2 на уже кластеризованный виртуальный сервер SQL2NET
  24. Инсталлировать на ВМ-клиенте клиентскую часть SQL Server
  25. Подключиться из ВМ-клиента к обоим виртуальным серверам и убедиться в работоспособности кластера

Вас уверяли что «SQL Server — это просто»? Наглая ложь, это очень просто. :roll: Конечно, при условии что когда-то ты все это уже проделал сам. Поэтому вперед и — удачи!