Игорь Шаститко: родился 31 октября 1974 г. в СССР (ныне Украина)... Закончил школу, университет (по специальности компьютеры и сети)... Женат, замечательная жена... Проживаю в г.Киев, Украина.
Работаю экспертом по ИТ-инфраструктуре в департаменте стратегических технологий Майкрософт Украина. Собственно, этот блог - дань моему увлечению работой :)
Twitter @iwalker2000 или Facebook. Все новое оперативно кидаю туда, как и анонсы постов блога/мероприятий/вебкастов, да и просто - о жизни и "делах наших скорбных покалякаем". Так что добро пожаловать в Followers или друзья/подписчики - пообщаемся в "почти" реале :)
Кроме работы (собственно компьютеров и ПО) имеются другие увлечения, как то - путешествия, фотография, электронные гаджеты (об этом всем смотри мой личный блог на Wordpress.com, не имеющий никакого отношения к работе ;) ); авиация (увы, от летающих многометровых радиоуправляемых монстров перешел исключительно на стендовое моделирование от Italeri и Ravell); автомобили (чувствую себя плохо, если не прокачусь с ветерком 2000км в месяц по просторам автобанов), масштабные модели железных дорог (Marklin scale Z 1:220) и многое другое, на что хватает времени...
В рамках серии публикаций о инфраструктуре и процедурах развертывании Windows вышла первая из моих статей, посвященная базовым возможностям, предоставляемым ролью Windows Deployment Services в Windows Server 2008. Статья традиционно опубликована в Компьютерное Обозрение №36 (653), 2008 за 23 сентября 2008г. Для тех, кто еще развыертывает рабочие места “вручную”, с “винила” – думаю, будет интересна и эта статья, и следующие за ней, которые будут посвящены таким продуктам, как Microsoft Assessment and Planning (MAP), Application Compatibility Toolkit (ACT), Office Migration and Planning Manager (OMPM), Microsoft Deployment Toolkit (MDT).
Так что кому интересно – ждите продолжения. А презентацию и демо по всему, что будет написано в этой серии, я планирую провести на московской Платформе 2009. Так что кому интересна тематика – может проголосовать за мою презентацию (по правилам Платформы только презентации с наивысшим баллом будут “выпущены в эфир”).
Итак, в предыдущем посте, посвященном провижинингу сайтов под управлением IIS7, я упомянул о таком интересном расширении к консоли управления IIS7, как Administration Pack for IIS7. Здесь я хочу продолжить эту тематику, и рассказать о том, какие новые возможности по управлению предоставляет AdminPack администраторам IIS7 и при чем зедсь провижининг и моя лень (о которой упоминалось в прошлый раз).
Итак, возможности AdminPack весьма и весьма интересны. Если вкратце, то AdminPack – это набор расширений оснастки Internet Information Services (IIS) Manager, среди которых:
Консоль управления HTTP Request Filtering. По умолчанию настройки Request Filtering в IIS7 (модуль, который заменил базовую функциональность URLScan, хотя в настоящий момент для IIS7 существует версия URLScan 3.0) не доступны из оснастки IIS Manager, возможность их модификации существует только путем правки конфигурационных файлов XML. Консоль из комплекта AdminPack позволяет модифицировать Request Filtering через диалоговые окна в оснастке IIS Manager.
Консоль управления FastCGI. Если вы используете возможности IIS7 по исполнению CGI приложений, например, PHP, в режиме FastCGI, то консоль управления FastCGI Setting из комплекта AdminPack будет отличным подспорьем для визуального редактирования «тонкими» настройками модуля FastCGI в IIS7, такими, как количество запросов к экземплярам процессов, количество самих процессов в FastCGI, длина очереди, различные таймауты и протоколы взаимодействия процессов внутри FastCGI.
Консоль отчетов по статистике сайтов IIS Reports, которая позволяет администратору или делегированным пользователям просматривать разнообразные типы предопределенных отчетов по каждому из сайтов. В принципе, IIS Reports – это всего лишь встроенный в IIS Manager интерфейс пользователя поверх набора вызовов библиотеки LogParser, что дает возможность администратору просматривать статистику как локально, так и удаленно. А также позволяет расширять список и возможности отчетов своим кодом, который будет доступен через консоль. В принципе – очень удобно, особенно, если вы для делегирования удаленного управления IIS7 планируете использовать штатные средства Remote Management Service в IIS7. Но в своем примере, как я уже писал, я отказался от применения средств управления сайтом пользователями через консоль и, как результат, использовал свои “домашние” наработки для «чистого» LogParser для создания и предоставления отчетов пользователям по их сайтам.
Ну и самым интересной, и особо полезной для ленивых, из всего набора консолей AdminPack for IIS7 является консоль Configuration Editor. Фактически, это достаточно мощный редактор многочисленных XML-файлов конфигурации IIS7, извлекающий из XML конфигурацию и представляющий ее в виде вложенных друг в друга коллекций таблиц со значениями. Так, например, выбрав точку входа в конфигурацию (Section) в виде system.applicationHost/sites – мы получаем доступ к коллекции сайтов на сервере со всеми их конфигурациями и конфигурациями их приложений, виртуальных каталогов и т.п. Здесь администратор может изменять параметры уже существующих сайтов или добавлять новые сайты, описывая согласно правилам конфигурационных файлов IIS7 необходимые секции. В принципе, даже для не знакомых с правилами описания конфигурации администраторов это не составит проблемы, поскольку можно все сделать «по образу и подобию» сайта по умолчанию Default Web Site, а число необходимых к вводу параметров будет исчисляться максимум десятком несложных строк типа файлового пути корневого сайта, имени пула приложения, привязки к протоколу, доменному имени и порту... Все это отлично видно на скриншотах :)
И при чем здесь лень? Работы, как многие заметили, даже несколько больше, чем если заполнять все это из самой оснастки IIS Manager при создании нового сайта. Но, во-первых, нельзя сказать, что намного больше, да и требуется не сколько работа, сколько – внимательность, во-вторых – для тонкой настройки параметров вновь созданного сайта из оснастки IIS Manager все равно придется открывать все его расширенные свойства и прочая, что будет соответствова ть объему работы, проделанной через Configuration Editor сразу. Но самое главное, свои действия в IIS Manager мы не «заскриптуем», а вот Configuration Editor сразу генерирует скрипты, в точности повторяющие все наши настройки через наиболее удобный для нас вариант скрипта – код C# для использования в своем ПО или при написании каких-то дополнительных консолей к IIS Manager, код JavaScript для скриптов повышенной сложности, и, конечно же – для ленивых – командные строки AppCmd для простых и эффективных скриптов. Таким вот образом, через Configuaration Editor, буквально за 5 минут и без предварительного тестирования и разбора многочисленных опций командной строки AppCmd и были сгенерированы все команды для скрипта провижининга IIS7 в предыдущем посте.
Кто еще сомнивается в своих силах насчет скриптового управления IIS7 или хочет «покопаться глубже» - рекомендую начать c Administration Pack for IIS7.
Да, еще я согласен с коллегами, что PowerShell тоже рулит для управления IIS7, но пока, увы, Configuration Editor не генерирует скрипты под PowerShell, поэтому я и обошел PS своим вниманием в этом посте...
Microsoft Research и Microsoft Labs (и прочие R&D подразделения компании) всегда отличались довольно эксцентрическими разработками – взять тот же Microsoft PhotoSynth, HD View, Surface и прочия… И вот мне случайно попалась на глаза ссылка на новое детище Microsoft Research.
Но на этот раз они придумали что-то из ряда вон выходящее, и довольно оригинальное – скорее всего, кто-то из авторов большой поклонник фентези и магии - они “натянули” интерфейс ПК на сферическую поверхность с возможностями управления касаниями. Причем, не просто управления, а совместной работы, когда с информацией, стоя возле шарика в 20'', работают несколько человек одновременно, “гоняя” различные примитивы типа надписей и фото туда-сюда по поверхности сферы, а внутри шара все так и переливается разными цветами, подобно волшебной манне, изображаемой в фильмах про магию и волшебство. Все это можно увидеть на сайте проекта Sphere Project в виде видеофрагментов.
Но самое интересное в видео – это демонстрация принципов работы устройства, и тех принципов, на основе которых происходит анализ работы пользователей со сферой в режиме “мультитач”, причем, что интересно, в инфракрасном режиме. Смотрите видео “Sphere in action”.
Да, выглядит все это весьма сюрреалистично, но кто знает – может, уже и пора отойти от плоских мониторов и заглянуть в магические “хрустальные шары”… Посмотрим, будет ли полезен Sphere Project и где “всплывут” его наработки ;)
Недавно мне в роли консультанта пришлось выполнять небольшой проект, связанный с IIS7. Задача, в принципе, тривиальная - в рамках конкурсной программы для студентов по ASP.NET обеспечить хостинг сайтов всем желающим принять участие в таком конкурсе. Казалось бы - чего проще? - запускай IIS и создавай там сайты по мере необходимости. Но, как оказалось, не смотря на поднятую в ВУЗе, где все это планировалось делать, сеть под управления Active Directory, ответственным за поддержку сайтов был назначен со стороны ВУЗа, казалось бы, вполне подходящий на эту роль человек - системный администратор, занимающийся поддержкой сетей (Cisco) и веб-порталов (внутреннего и внешнего, на Linux). Нет, он не коим образом не был настроен против Windows Server 2008 и IIS7, просто для него лично это была лишняя, совершенно не нужная нагрузка - изучать новые технологии и все такое. Поэтому, посидев за пивком (первая итерация была назначена на выходные) мы достаточно быстро пришли к консенсусу, что идеальным выходом из ситуации было бы решение, которое позволяло ему простым скриптом создавать сайты на IIS7, базу данных для проекта на MS SQL Server 2005 и предоставлять доступ к вновь созданному сайту/базе через создаваемую отдельную учетную запись пользователя посредством ftp или консоли MS SQL. Итак, требовалось нечто, обеспечивающее простой провижининг в IIS, не вдаваясь во все тонкости процесса управления IIS со стороны плохо подготовленного админа. Вообще-то, у Microsoft есть решение для разработки систем провижининга под названием Microsoft Provisioning System Software Development Kit, но уж сильно оно мощное и всеохватывающее для такой небольшой задачи, да еще и требующее программинга, чего делать абсолютно не хотелось.
С другой стороны, на сайте сообщества IIS.NET есть серия статей, посвещенных планированию и провижинингу инфраструктуры IIS7 для общего хостинга сайтов. Эти материалы помогли не сколько с конкретными скриптами, сколько действительно с принятием решений относительно будущей архитеткуры моего маленького сценария работы. Итак, после чтения RTFM решение сложилось в голове довольно быстро и выглядело вполне лаконично.
Вот, собственно, и .CMD файл, для работы которого используются 4 входящих парамера: алиас будущей учетной записи для управления сайтом пользователем, ID создаваемого сайта, полное имя пользователя в AD, пароль пользователя:
mkdir c:\userweb\IT\%1 rem создать каталог пользователя (по алиасу). IT - имя домена, с:\userweb - корневой калатог ftp сайта. пользователи будут получать свои каталоги как имя домана\алиас dsadd user "cn=%3,ou=Web Users,dc=it,dc=root,dc=edu,dc=ua" -samid %1 -pwd %4 rem создать пользователя в контейнере Web Users поддомена root.edu.ua icacls c:\userweb\IT\%1 /grant IT\%1:(M) rem предоставить права созданной учетной записи на работу с каталогом appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2']" /commit:apphost rem создать новый веб-сайт в IIS7 с именем по алиасу пользователя и указанным ID appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2'].bindings.[protocol='http',bindingInformation='*:80:%1.university.edu.ua']" /commit:apphost rem привязать к созданному сайту протокол HTTP, порт 80 и доменное имя ввиде <алиас>.university.edu.ua appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2'].[path='/',applicationPool='DefaultAppPool']" /commit:apphost rem привязать созданный сайт к пулу приложений по умолчанию appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2'].[path='/',applicationPool='DefaultAppPool'].[path='/',physicalPath='c:\userweb\IT\%1']" /commit:apphost rem привязать к созданному сайту как домашний каталог ранее созданный каталог c:\userweb\IT\<алиас>, который доступен пользователю по ftp для редактирования содержимого сайта sqlcmd -v dbname="%1" username="IT\%1" username2="%1" pwd="%4" -i createdb.sql -S dbserver rem при помощи sqlcmd выполнить ранее сгенерированный консолью управления SSMS скрипт createdb.sql, создающий базу для пользователя и передать в нее значения
mkdir c:\userweb\IT\%1 rem создать каталог пользователя (по алиасу). IT - имя домена, с:\userweb - корневой калатог ftp сайта. пользователи будут получать свои каталоги как имя домана\алиас
dsadd user "cn=%3,ou=Web Users,dc=it,dc=root,dc=edu,dc=ua" -samid %1 -pwd %4 rem создать пользователя в контейнере Web Users поддомена root.edu.ua
icacls c:\userweb\IT\%1 /grant IT\%1:(M) rem предоставить права созданной учетной записи на работу с каталогом
appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2']" /commit:apphost rem создать новый веб-сайт в IIS7 с именем по алиасу пользователя и указанным ID
appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2'].bindings.[protocol='http',bindingInformation='*:80:%1.university.edu.ua']" /commit:apphost rem привязать к созданному сайту протокол HTTP, порт 80 и доменное имя ввиде <алиас>.university.edu.ua
appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2'].[path='/',applicationPool='DefaultAppPool']" /commit:apphost rem привязать созданный сайт к пулу приложений по умолчанию
appcmd.exe set config -section:system.applicationHost/sites /+"[name='%1',id='%2'].[path='/',applicationPool='DefaultAppPool'].[path='/',physicalPath='c:\userweb\IT\%1']" /commit:apphost rem привязать к созданному сайту как домашний каталог ранее созданный каталог c:\userweb\IT\<алиас>, который доступен пользователю по ftp для редактирования содержимого сайта
sqlcmd -v dbname="%1" username="IT\%1" username2="%1" pwd="%4" -i createdb.sql -S dbserver rem при помощи sqlcmd выполнить ранее сгенерированный консолью управления SSMS скрипт createdb.sql, создающий базу для пользователя и передать в нее значения
Все, администратору осталось только подключиться удаленно терминалом или через winrs к серверу с IIS и вполнить скрипт с нужными параметрами...
Файлы .cmd и вызываемый из него .sql смотрите во вложении к посту. Если же кому-то будет необходимо автоматизировать какие-то сценарии для работы с IIS7 - рекомендую сразу устанавливать AdminPack - он позволит вам на основе ваших предыдущих действий сгенерировать различные скрипты - как с применением appcmd, использованных в моем примере, так и, например, на C# коде, что позволит встраивать их в собственный код.
Об использовании AdminPack для автоматизации управления IIS7 я напишу в ближайшее время в продолжении данного поста. Кроме того, хочу заметить, что не смотря на использование AdminPack с его неплохими средствами визуализации статистики, на следующем этапе я воспользовался LogParser для сбора и визуализации статистики отдельных сайтов через веб. Об общих возможностях LogParser вы можете почитать в моей статье здесь, а о применении в конкретном примере я напишу вслед за постом об AdminPack.
Только вчера поздно вечером опубликовал статью о задачах виртуализации в центрах обработки данных, как сегодня был проанонсирован новый портал Microsoft, посвященный Microsoft Hyper-V Server. На портале можно найти всю информацию о новом продукте Microsoft на рынке виртуализации - Microsoft Hyper-V Server 2008. Это сделано в рамках намеченного на сегодняшний день всемирного запуска Microsoft Virtualization - getVIRTUALnow.
Вкратце, Microsoft Hyper-V Server 2008 - отдельная реализация Microsoft Hyper-V без операционной системы в родительском разделе, только средства управления собственно гипервизором. Предназначен для "легкой" виртуализации (родительский раздел для управления требует на порядок меньше ресурсов, нежели тот же Server Core), поддерживает до 4х физических процессорных сокетов (по 4 ядра на каждый) и до 32ГБ памяти. Позиционируется как средство для консолидации инфраструктурных серверов, виртуализации тестового окружения, виртуализации отдельных серверов в удаленных офисах, сценариев вирутальных клиентов Virtual Desktop Infrastructure (VDI). Hyper-V Server предоставляет все необходимые инструменты для управления виртуализацией как локально, так и удаленно, поддерживается работа с Virtual Machine Manager. Для поддержки аппаратного обеспечения используются те же драйвера устройств, что и в "обычном" Windows Server 2008.
Среди наболее существенных органичений можно назвать поддержку только 128 виртуальных машин и отсутствие поддержки Failover Clustering, что не позволяет создавать на нем отказоустойчивые решения. Для этого требуется работа Hyper-V с Windows Server 2008 в родительском разделе.
Бесплатную версию Hyper-V Server можно будет получить на портале Microsoft Hyper-V Server
Я регулярно отслеживаю через статистику Microsoft adCenter, какие страницы наиболее популярны, что ищут и что пишут в комментариях посетители этого моего блога (и личного, впрочем, тоже). Кстати, в связи с особенной популярностью запросов типа "схема внедрения iSCSI", "настройка iSCSI", "iSCSI для Windows Server 2008" (все это упоминается в статье о Hyper-V Quick Migration) - планирую написать пару постов о том, как же заставить работать iSCSI на Windows Server 2008. :)
Но сейчас я пишу по другому поводу - в не менее популярном посте о виртуализации Microsoft своих сайтов MSDN и Technet появился очень интересный коммент:
Игорь, а можете пояснить зачем нужна виртуализация в для крупных корпоративных ЦОДов (не для Web Hostin'a а именно для нужд крупной компании), если стоимость серверов почти линейна вычислительной мощности и они наличествуют от самых младших до самых больших? не проще ли и не надежнее ли иметь сервера удовлетворяющие по вычислительной мощности своей задаче?
На него я решил ответить коротким постом - поскольку, я так полагаю, не только один читатель заинтересуется таким вопросом. Итак, зачем нужна виртуализация крупных корпоративных ЦОДов?
Предлагаю сначала следует посмотреть на проблемы крупных ЦОД, и не только с точки зрения производительности, вернее, даже - совсем не с нее. Главными проблемами современных ЦОД считаются как раз обратные проблемы:Во-первых, недостаточная востребованность мощностей серверного "железа" программными продуктами и, следовательно, возврат инвестиций в сервера (ROI),Во-вторых, нехватка площадей серверных залов, места в стойках, кабельных каналов, высокие требования к энергопотреблению при нехватки мощностей линий,В-третьих, низкие сроки внедрения и модернизации серверных мощностей и связанных с ними сервисов, сложности резервного копирования и восстановления на "зоопарке" железа и т.п.,и, наконец, в-четвертых, неэффективный анализ нагрузки (только на начальном этапе, при закупке) и сама парадигма "сервера", как "сервиса".
Как раз эти проблемы и предлагается решить в процессе внедрения виртуализации. Бесплатный компонент виртуализации в Windows Server 2008 - Hyper-V - позволяет весьма эффективно решить вопрос консолидации (объединения) нескольких сервисов под одной "железной" крышей физического сервера в виде изолированных друг от друга экземпляров виртуалиных машин. Как показывает статистика, в среднем процессорные ресурсы ЦОД утилизируются примерно на 10%. При консолидации сервисов в виде нескольких виртуальных серверов на одном физическом, кроме повышения эффективности использования процессорных ресурсов и памяти и повышения ROI на каждый сокет (что явно показал пример с виртуализацией сайтов MSDN/TechNet), снижается также и потребность в дополнительных физических серверах, что, следовательно, экономит место в шкафах (или целые шкафы, если ЦОД действительно большой) и приводит к экономии электроэнергии, что для ЦОД, которые, кстати, потребляют целых 5% электроэнергии в мире - весьма существенно.
Кроме того, такое объединение серверов при помощи Hyper-V существенно снижает лицензионные затраты на серверное ПО. Правила лицензирования Microsoft предусматривают покрытие лицензией ОС на физической машине (родительской ОС) лицензий ОС в виртуальных машинах (от одной до неограниченного кол-ва) в зависимости от редакции родительской ОС.
Но более существенный эффект позволяет получить не сколько сам факт виртуализации отдельных систем, а объединение всего ЦОД в единую логическую единицу, предоставляющую бизнесу некоторые сервисы. Т.е. следует отказаться от парадигмы - "один сервер - один сервис". Здесь идея состоит в том, чтобы к базовому компоненту виртуализации - Hyper-V - добавить средства управления и анализа всего парка физических серверов и представить сервис как некий набор виртуальных машин, требующих определенный пул физических ресурсов. И эти наборы виртуальных машин, работающие в ЦОД, будут гарантировать бизнесу непрерывность работы, доступность каких-то сервисов, не зависимо от прыжков нагрузки, наличия "железа" и т.п. Т.е. появляется некий инструмент, способный распределять виртуальные машины между физическими серверами так, чтобы гарантировать необходимую работоспособность каждому сервису согласно определенным приоритетам бизнеса, добавлять "на ходу" новые виртуальные машины, выполняющие данный сервис, размещая их на новых доступных физических ресурсах, либо "очищая" ресурсы от "представителей" других, менее приоритетных, сервисов и т.д. Например, в ЦОД работает некоторая служба Exchange, помеченная, как приоритетная, с описанным временем отклика и т.п. В какой-то момент времени активность пользователей такова, что единичный сервис начинает "уходить" из дозволенной границы времени отклика в 2 секунды (и не потому, что сервер медленный, а потому, что даже на самом мощном сервере можно построить очередь к одной из подсистем и получить "бутылочное горлышко"). Система управления виртуализацией ЦОД обнаруживает такую проблему, выясняет, что причиной всего - высокая нагрузка на некие 50 почтовых ящиков. В базе знаний системы одно из решений - разделение почтового сервиса на несколько частей в рамках ЦОД. Система управления виртуализацией ЦОД извлекает из единой библиотеки образов виртуальных машин необходимый образ ОС с Exchange, находит физический сервер с необходимыми ресурсами и запускает новую виртуальную машину с Exchange на нем. После чего с перегруженного Exchange на новый Exchange переносятся необходимые почтовые ящики, что гарантирует работу всем пользователям в пределах допустимого времени отклика. Со временем нагрузка на почтовый сервис спадет и система управления либо вернет "все, как было", либо продолжит эксплуатацию сервиса "на двух виртуальных машинах", пока ресурсы "железа", занятого виртуальными ОС этого сервиса, не понадобятся для более приоритетного сервиса. Кстати, одним из интересных моментов можно назвать возможности управления всеми приоритетами и весами отдельных сервисов бизнесом, т.е. руководители определенного ранга смогут сами "заказывать" производительность своих сервисов.
Такие механизмы, позволяющие реализовать ЦОД как представление сервисов, работа которых гарантируется неким динамическим набором виртуальных машин, представлены в продуктах Microsoft System Center - Virtual Machine Manager 2008 и Operations Manager 2007.
Собственно, вот чем может быть полезен Hyper-V и SC VMM/OM для корпоративных ЦОД - консолидация, эффективная утилизация, динамическое управление физическими ресурсами серверов.
И в заключение хотелось бы привести для всех, кто интересуется тематикой виртуализации, пару линков - собственно, сайт, посвященный технологиям виртуализации Microsoft и документы из набора Infrastructure Planning and Design (IPD) - Selecting the Right Virtualization Technology и Windows Server Virtualization - которые помогут в вопросах выбора и внедрения технологий виртуализации (и не только, если говорить об IPD в целом).
Виртуализируемся! :)
После небольшого перерыва, вызваного естественным вращением Земли вокруг Солнца и наступлением летних отпусков в результате этого - мы возвращаемся к традиционной публикации видео с семинаров Microsoft для IT Pro в Украине. На этот раз вашему вниманию представлены:
Запуск Windows Server 2008 в Украине (демо с кейноутов)
Решения Microsoft по оптимизации IT инфраструктуры (управление инфраструктурой, безопасность Windows Server 2008 & Vista)
Инфраструктура Microsoft 2008 (Оптимизация серверной платформы с применением Windows Server 2008, виртуализация серверов; Оптимизация клиентских мест, Microsoft Desktop Optimization Pack (MDOP), управление процессами развертывания)
Хочу отдельно обратить внимание на последний семинар и редкий в наших краях доклад по MDOP. :)
В общем - добро пожаловать и хорошего вам просмотра.