• Настройка SQL 2012 AlwaysOn Availability Groups для Project Server 2013

    Пока мы ждем нового релиза SP1, расскажу о своем опыте настройки новой возможности SQL 2012, имя которой AlwaysOn Availability Groups. Процедура с небольшими различиями схожа для SharePoint 2013 и ферм с установленным поверх Project Server 2013. Об этих различиях я расскажу позже.

    Исходная инфраструктура: 2 х SQL 2012 (экземпляры Server1\AlwaysOn1 и Server2\AlwaysOn2), 2 х SharePoint & Project Server 2013. Цель простая и часто встречающаяся в требованиях: получить ферму, обеспечив высокую доступность данных.

    Общий план действий:

    1. Объединить серверы SQL в WSFC кластер, как того требуют условия http://msdn.microsoft.com/en-us/library/ff878487.aspx#PrerequisitesForAGs
    2. Создать ферму из 1-го сервера на одной из реплик SQL
    3. Создать группу доступности и добавить в нее базы данных
    4. Добавить listener для группы доступности и настроить автоматическую отказоустойчивость
    5. Указать listener в качестве сервера баз данных на серверах фермы, добавить серверы в ферму

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

    • domain\sqladmin - УЗ служб SQL. Эту УЗ я также использовал для создания WSFC кластера
    • domain\farmadmin - УЗ установки и настройки SharePoint/Project Server
    • domain\farmsvc - УЗ запуска службы таймеров SharePoint
    • domain\svcpool - УЗ приложений-служб SharePoint
    • domain\webpool - УЗ WEB приложений

    Подробнее реализация описана ниже.

    Создание WSFC кластера

    Основные вехи данного этапа:

    1. Установка возможности "Failover Clustering" на серверы SQL
    2. Создание в контейнере объекта типа "Компьютер" и назначение IP адреса будущему кластеру

    В целом задача не сложная и подробно описана здесь: http://technet.microsoft.com/en-us/library/dn505754.aspx.

    Помните, что при создании кластера учетной записи (в моем случае domain\sqladmin) потребуются права "Create computer objects" на контейнер, а также "Read all properties" (данное разрешение есть по умолчанию у любого пользователя домена, если не настроено иное). Если учетной записи не могут быть предоставлены такие разрешения, то попросите администратора создать объект в контейнере вручную, затем отключить его ("Disable Account") и предоставить вашей учетной записи полные права на этот конкретный объект (http://technet.microsoft.com/en-us/library/dn466519.aspx). После данных манипуляций вы сможете успешно создать WSFC кластер с помощью мастера.

    Помимо этого, чтобы в будущем не испытывать трудностей с сетевым взаимодействием SQL серверов, для именованных экземпляров SQL лучше назначить статический порт и его добавить в исключения на всех серверах SQL.

    Создание фермы на одной из реплик SQL

    Основные вехи данного этапа:

    1. Создать псевдоним сервера SQL с помощью cliconfg на одном из серверов фермы
    2. Создать ферму, добавить необходимые приложения-службы, создать WEB приложения и коллекцию PWA

    С процессом создания фермы с помощью PSConfig или мастера конфигурации продуктов SharePoint, думаю, знаком каждый, поэтому детально данный этап описывать не буду. Уточню только шаг с созданием псевдонима: на данном шаге еще не настроен функционал AlwaysOn и нет listener-а, поэтому в псевдониме указывается один из экземпляров SQL (в моем случае я указал Server1\AlwaysOn1). Позже этот псевдоним будет отредактирован.

    Создание группы доступности и добавление в нее баз данных

    Основные вехи данного этапа:

    1. Перенести базы на вторую реплику SQL
    2. Создать группу доступности
    3. Добавить базы в группу доступности

    Прежде чем приступить к созданию группы доступности, необходимо на серверах SQL включить возможность "AlwaysOn High Availability". Это можно сделать разными способами. Например, с помощью консоли "SQL Server Configuration Manager":


    Имя WSFC кластера подставится автоматически. Если он не создан, включение данной возможности будет не доступно.

    Вторым важным шагом подготовки является остановка взаимодействия фермы с сервером SQL. Для этого необходимо остановить IIS и службу таймеров SharePoint.

    И, наконец, третье условие успешного создания группы и синхронизации баз между репликами - открытие порта TCP 5022 на серверах SQL. Данный порт используется репликами для синхронизации и взаимодействия в рамках групп доступности.

    Перенос баз на вторую реплику SQL

    Основные вехи данного этапа:

    1. Создать полные резервные копии баз данных
    2. Перенести копии на вторую реплику и восстановить с параметром "NORECOVERY"

    Если используется "Full" модель восстановления баз, а также одинаковые пути расположения файлов (по умолчанию C:\Program Files\Microsoft SQL Server\MSSQL11.InstanceName\MSSQL\DATA), то мастер создания группы доступности автоматически перенесет базы с одной реплики на другую. Однако условия могут быть разные, да и в общем не помешает освоить "ручной" способ синхронизации. Для переноса баз необходимо создать их полную резервную копию на основной реплике, затем перенести bak файлы на вторую реплику и восстановить с настройками по умолчанию, кроме одной - состояние должно быть "Restore with norecovery":


    Иначе синхронизация баз будет не возможна: http://technet.microsoft.com/en-us/library/ff878349.aspx. После переноса баз данных в зависимости от их количества вы получите вот такую картину:


    Создание группы доступности и добавление в нее баз для последующей синхронизации

    Наиболее простой способ - использовать мастер "New Availability Group Wizard…”. После указания имени группы будет предложено выбрать базы, которые необходимо добавить в группу:


    На следующем шаге необходимо добавить вторую реплику и указать тип синхронизации. В случае с Project Server 2013 "Synchronous Commit" является обязательным требованием (http://technet.microsoft.com/en-us/library/jj841106.aspx#SAppDbsSPS). Но в общем случае для разных компонентов SharePoint настройка данного параметра может отличаться. Дополнительно имеет смысл включить "Automatic Failover", чтобы при отключение одной из реплик переключение на вторую происходило автоматически:


    Так как базы были перенесены вручную, на следующем шаге необходимо выбрать опцию "Join only":


    На этапе проверки выбранной конфигурации могут появиться предупреждения, например, о том, что нет listener-а. Это нормальное поведение, можно продолжать создание группы. Если все настроено верно, то в конце можно увидеть вот такую картину:


    Группа создана, базы добавлены в группу и успешно синхронизированы между репликами:


    В дальнейшем добавлять базы в группу можно с помощью мастера "Add database...".

    Важно: помните, что синхронизация баз не означает синхронизацию логинов. А значит после переноса баз и создания группы доступности на второй реплике SQL необходимо создать все логины, которые выполняют те или иные функции в ферме SharePoint/Project Server 2013, и назначить им соответствующие роли (в моем случае это domain\farmadmin, domain\farmsvc, domain\svcpool, domain\webpool). Сопоставление логинов с базами переносится вместе с самими базами.

    Добавление listener-а и настройка псевдонимов

    Основной этап настройки AlwaysOn Availability Groups завершен. Осталось создать listener и указать его в псевдониме SQL для серверов фермы. Аналогично добавлению баз в группу создается listener с помощью мастера "Add listener...". При создании необходимо указать имя, порт и IP адрес (данный IP адрес отличен от IP адреса WSFC кластера и должен быть согласован с администраторами, чтобы в будущем не возникало конфликтов адресов):


    После создания можно проверить отклик listener-а с помощью ping-а.

    На завершающем этапе необходимо добавить listener в псевдонимы сервера фермы, настроенного ранее, а также сервера, еще не добавленного в ферму:

    Теперь осталось запустить IIS и службу таймера SharePoint. Готово!


    Ну а как добавить еще один сервер в ферму вы разберетесь сами! :)

    Если появятся вопросы - буду рад помочь!

    Артём Хлобыстин - Premier Field Engineer II, EMEA Technical Lead

     

  • Поддержка и сопровождение Project Server 2013 для SharePoint администраторов

    Как часто вы разворачиваете Project Server в отдельную от SharePoint ферму? Наша практика показывает, что соотношение совместных и отдельных ферм составляет примерно 80/20. И чаще всего это означает, что в команде нет специально выделенного администратора для Project Server. Справедливости ради стоит отметить, что вне зависимости от архитектуры фермы рекомендуется, чтобы администратором Project Server был представитель бизнес подразделения, которое использует EPM решение. Но даже наличие такого специалиста не отменяет необходимости выполнения нескольких базовых задач, которые стоят перед администраторами SharePoint (особенно если вы не хотите давать администратору Project Server права администратора фермы). Ниже краткое описание этих задач, собранных в 7 тем:

    • Планирование интеграции
    • Принятые практики развертывания Project Server 2013
    • Миграция с 2010 версии
    • Администрирование коллекции PWA в консоли SharePoint
    • Резервное копирование и восстановление
    • Мониторинг производительности
    • Общий подход к устранению неисправностей

    Планирование интеграции

    При развертывании Project Server 2013 помните:

    1. Для подключения к PWA необходима версия Project Professional 2013. Режима обратной совместимости больше нет. Это автоматически влечет за собой обновление компьютеров пользователей как минимум до Windows 7 (http://technet.microsoft.com/en-us/library/ee624351(v=office.15).aspx#Overview1))
    2. Для работы с WEB интерфейсом подойдет большинство современных браузеров: IE8-11, Firefox 10 или более поздний, Mac Safari 5 или более поздний, Google Chrome 17 или более поздний (http://technet.microsoft.com/en-us/library/cc263526(v=office.15).aspx#section2)
    3. Для интеграции с Exchange Server требуется 2013 версия
    4. Office Web Apps 2013 - это теперь отдельный продукт со своими требованиями и планом развертывания. Его возможности можно использовать не только в контексте SharePoint/Project Server, но и в контексте Lync Server 2013 и Exchange Server 2013 (http://technet.microsoft.com/en-us/library/jj219437(v=office.15).aspx). В "идеальном мире" желательно развернуть отдельный сервер под данное решение

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

    Принятые практики развертывания Project Server 2013

    Данная тема была освещена в докладе на Project Conference 2014: http://channel9.msdn.com/Events/Project/2014/PC318. Слайды доклада приложил к статье. Обратите внимание на следующие вопросы:

    1. Требования к программному и аппаратному обеспечению - http://technet.microsoft.com/en-us/library/ee683978(v=office.15).aspx
    2. Обзор архитектуры Project Server 2013 - http://msdn.microsoft.com/en-us/library/office/ee767687(v=office.15).aspx
    3. Варианты реализации фермы Project Server: совместно с SharePoint (общие ресурсы, общая инфраструктура) или отдельно (разные циклы сопровождения, меньше стоимость владения, более гибкая настройка функционала)
    4. Оптимизация работы SQL Server - http://technet.microsoft.com/en-us/library/hh292622(v=office.15).aspx
    5. Планирование нагрузки Project Server 2013 - http://technet.microsoft.com/en-us/library/ff646967(v=office.15).aspx

    Миграция с 2010 версии

    Процесс миграции подробно описан здесь - http://technet.microsoft.com/en-us/library/gg502590(v=office.15).aspx. Подчеркну несколько важных деталей:

    1. Обязательна к изучению статья http://technet.microsoft.com/en-us/library/ff603504(v=office.15).aspx
    2. In-place обновление больше не доступно, единственный способ - присоединение баз данных содержимого
    3. Размер баз данных после обновления увеличится на 20-30% в случае миграции с 2010 версии, и на 30-50% в случае миграции с 2007 версии. Это связано с изменениями схем
    4. В процессе миграции на 2013 версию 4 базы данных Project Server (Archive, Published, Draft и Reporting) консолидируются в 1. Это действие не обратимо и деструктивно: если консолидация завершилась не удачно, вам понадобятся резервные копии 4-х баз, чтобы попробовать снова. Кроме того, старые 4 базы уже будут не пригодны для использования в среде 2010. Это связано с механизмом консолидации - сначала изменяется схема текущих 4-х баз, а уже затем происходит их объединение
    5. После обновления отправьте бизнес подразделению для прочтения статью http://technet.microsoft.com/en-us/library/ff686780(v=office.15).aspx
    6. Миграцию с 2010 версии можно автоматизировать с помощью PowerShell: http://technet.microsoft.com/en-us/library/ee662104.aspx. Не упускайте такой шанс :)

    Администрирование коллекции PWA в консоли SharePoint Central Administration

    Опять же в "идеальном мире" задачи администратора SharePoint в части Project Server должны быть ограничены следующим разделом центральной консоли администрирования:

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

    SharePoint администратору должны быть интересны разделы:

    • Queue and Database Administration
      • Daily Schedule Backup - резервное копирование отдельных объектов Project Server. Настройка простая и описана здесь: http://technet.microsoft.com/en-us/library/jj590896(v=office.15).aspx. Наша рекомендация - хранить 5 копий проектов, что будет соответствовать 5 рабочим дням недели (что в свою очередь соответствует другой рекомендации - публиковать проекты не чаще 1 раза в день)
      • Administrative backup/restore - аналогично предыдущему, но не по расписанию, а по требованию. Например, администратор Project Server собирается внести изменения в настройки PWA и просит вас сделать резервную копию, чтобы быстро вернуться к рабочему состоянию
      • OLAP Database Management - функционал создания кубов OLAP для подсистемы отчетности. Настройка также тривиальная: http://technet.microsoft.com/en-us/library/ff465339(v=office.15).aspx. Потребуется интеграция с SSAS - http://technet.microsoft.com/en-us/library/ee662108(v=office.15).aspx
    • Operational Policies
      • Alert and Reminders - если вы будете использовать оповещения через Exchange, то вам сюда. Всего 2 поля для заполнения
      • Project Site Provisioning Settings - настройка параметров подготовки узлов проектов (http://technet.microsoft.com/en-us/library/gg982961(v=office.15).aspx). Мы рекомендуем, чтобы узлы проектов создавались в отдельной коллекции сайтов и отдельной базе данных содержимого
      • Bulk Update Connected SharePoint Sites - "инструмент" обновления ссылок на узлы проектов в случае, если вы перенесли их в другую коллекцию сайтов

    Если вам не очень повезло, и администрирование узла PWA также выпало на вашу долю, то для начала рекомендую ознакомиться с инструкцией http://technet.microsoft.com/en-us/library/dn217892(v=office.15).aspx и сфокусироваться на разделах: безопасность, корпоративные данные, управление базами данных и очередью, внешний вид и представления.

    Резервное копирование и восстановление

    Подходы к резервному копированию и восстановлению достаточно подробно описаны здесь: http://technet.microsoft.com/en-us/library/jj993260(v=office.15).aspx. Также для 2013 версии в общем случае справедлива логика Project Server 2010 - http://technet.microsoft.com/en-us/library/cc952749(v=office.14).aspx с оговоркой, что в 2013 версии мы имеем дело с 1 базой вместо 4-х.

    Консолидируя рекомендации из статей и наш опыт, мы приходим к следующим составным частям плана восстановления:

    1. Регулярное создание полных/раздельных резервных копий средствами SharePoint
    2. Регулярное создание полных/раздельных резервных копий баз данных SQL, а также по возможности логов транзакций
    3. Регулярное создание резервных копий файловой системы, а именно:
      1. C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15 (здесь хранятся измененные страницы, шаблоны и т.п.)
      2. C:\Windows\assembly (здесь хранятся пользовательские dll)
      3. C:\inetpub (здесь хранятся webconfig-и)
      4. C:\Windows\System32\inetsrv (здесь хранится конфигурация IIS)
    4. И самое важное: регулярное обновление и тестирование плана восстановления! Без понимания и опробования шагов, которые необходимо предпринять для успешного восстановления фермы, создание гигабайтов резервных копий не имеет смысла

    Мониторинг производительности

    По данной теме нет единого источника, который бы дал обзор ключевым счетчикам производительности, их пороговым значениям и корреляциям между ними. Лучшим источником фундаментальных знаний является Windows Internals, но объективно это не самое легкое чтиво. Поэтому для начала рекомендую ознакомиться программой Performance Analysis of Logs: http://pal.codeplex.com/. Данный инструмент поможет вам на верхнем уровне определить, с каким компонентом потенциально может быть проблема, а также предоставит информацию о пороговых значениях. А далее изучать блоги, форумы, статьи TechNet и делать выводы. Чем больше ваш опыт в данной теме, тем больше экспертиза.

    Бонус, если у вас есть соглашение на оказание Premier Support - семинар Vital Signs. Данный тренинг - это глубокое погружение в тематику производительности Windows систем, включая технологии виртуализации. Форматы могут быть разными: 3 дня теории и базовой практики, 3 дня теории + 2 дня лабораторных работ (разбор реальных наборов данных).

    Общий подход к устранению неисправностей

    Общий подход к устранению возникающих проблем такой же, как и для SharePoint. Основными источниками информации для вас являются: журнал приложений Windows, журналы ULS, журналы установки и обновления.

    Используйте максимально простые проверки: статуса службы; учетной записи, в контексте которой она исполняется; разрешений на стороне SQL; статус сетевого подключения и портов. И не забывайте отменять действие, которое не помогло в решении.

    Сохраните себе список публично доступных инструментов (когда-нибудь пригодится):

    И не стесняйтесь задавать свои вопросы на форумах MSDN/TechNet или напрямую поддержке.

    Заключение

    Поддержка и сопровождение Project Server 2013 - не тривиальная задача, но и не такая сложная, как может показаться. Ключ к успеху - планирование развертывания и понимание основных задач, которые я постарался максимально сжато и эффективно осветить выше. Если у вас остались/появились вопросы - буду рад помочь!

    Артём Хлобыстин - Premier Field Engineer II, EMEA Technical Lead

  • Нюансы настройки рабочих процессов для SharePoint & Project Server 2013 в случае Windows Server 2012 R2

    Разворачивая очередную ферму на базе Windows Server 2012 R2, столкнулся с проблемами при настройке рабочих процессов для SharePoint/Project Server 2013.

    Весь процесс настройки не очень сложный:

    1. Установка Workflow Manager: http://technet.microsoft.com/en-us/library/jj193448.aspx - при наличии доступа в Интернет, http://technet.microsoft.com/en-us/library/jj906604.aspx - при отсутствии доступа в Интернет
    2. Настройка Workflow Manager с помощью мастера: http://technet.microsoft.com/en-us/library/jj193510.aspx
    3. Выбор сценария и регистрация возможности: http://technet.microsoft.com/en-us/library/jj658588(v=office.15).aspx#section4 (я использовал общую ферму и HTTP)

    На шаге 3 у меня и возникли трудности. О них по порядку:

    • При вызове Cmdlet-а Register-SPWorkflowService возникла ошибка "The remote server returned an error - 404 not found...". Нашел аналогичные заявки (http://social.technet.microsoft.com/Forums/sharepoint/en-US/fc8dbc41-f3b9-4469-89b1-2dc990fc696e/registerspworkflowservice-error-the-remote-server-returned-an-error-404-not-found?forum=sharepointadmin), но отказаться от использования 2012 R2 - не наш метод. Решение оказалось простым - через Web Platform Installer 5.0 установить Workflow Manager CU2. Но это не удалось осуществить беспрепятственно.
    • Для установки Workflow Manager CU2 потребовался Service Bus CU1, который в свою очередь не желал устанавливаться, ссылаясь в журнале на отсутствие Windows Fabric - "Install exit code for product 'Microsoft Windows Fabric V1 CU1' is '1603'".
    • После более детального анализа выяснилось, что системе требуется Microsoft VC Runtime 11 для корректной работы компонентов фермы рабочих процессов. Скачать пакет можно отсюда: http://www.microsoft.com/en-gb/download/details.aspx?id=30679.
    • Установив наконец все пререквизиты и перезагрузив сервер, я успешно развернул сначала Service Bus CU1, затем Workflow Manager CU2 и, наконец, настроил интеграцию ферм с помощью команды Register-SPWorkflowService.

    Думаю, что в очередных накопительных обновлениях описанные недочеты будут исправлены, а пока помните о них, если планируете инсталляцию на Windows Server 2012 R2.

    Артём Хлобыстин - Premier Field Engineer II, EMEA Technical Lead

  • Новая версия SP1 для SharePoint 2013 & Project Server 2013 доступна для скачивания

    Дождались! Вчера были опубликованы обновленные версии Service Pack 1 для SharePoint и Project Server 2013. KB статьи отличаются от старых (ссылки для загрузки внутри):

    Если вы установили SP1 ра��ее, необходимо установить данный релиз "поверх" (сначала пакет SharePoint, затем Project Server) и не забыть запустить PSConfig сразу после.

    Если вы не устанавливали SP1 ранее, сделайте это сейчас, используя инструкции из KB статей.

    И, наконец, если вы использовали slipstream дистрибутивы (SharePoint + SP1 или SharePoint + Project Server + SP1), то дополнительно ничего делать не нужно, так как проблема была связана только со standalone установками.

    Если будут вопросы - обращайтесь!

    Артём Хлобыстин - Premier Field Engineer II, EMEA Technical Lead

  • SharePoint 2013 & Project Server 2013: загрузка SP1 временно не возможна

    Буквально вчера говорил на семинаре, что за 3 года работы только один раз наблюдал ситуацию, когда обновление для Project Server изымалось из публичного доступа в связи с серьезной деградацией работы продукта после его установки. Что называется - лучше бы молчал...

    Вчера же из публичного доступа изъяты SP1 для SharePoint 2013 и Project Server 2013 в связи с серьезными проблемами в работе продуктов после его установки. Например, установка SP1 не позволяет осуществить после себя корректную установку каких-либо других обновлений.

    В соответствующих KB статьях http://support.microsoft.com/kb/2817434 и http://support.microsoft.com/kb/2817429 добавлены примечания: "We have recently uncovered an issue with this Service Pack 1 package that may prevent customers who have Service Pack 1 from deploying future public or cumulative updates. As a precautionary measure, we have deactivated the download page until a new package is published".

    Тем, кто уже установил SP1, ничего предпринимать не нужно - ждем поправленного обновления. Те, кто еще не установил, но скачал - не устанавливайте, подождите новой версии SP1. Те, кто еще не установил и не скачал - можете смело игнорировать этот пост.

    Продуктовая группа уже работает над решением данной проблемы - я буду держать вас в курсе.

    PS: вот такое позитивное начало блога! :)

    Артём Хлобыстин - Premier Field Engineer II, EMEA Technical Lead