Модернизация Web-сервера - долой платный софт и Hyper-V.
![bike](/WebServer/WebServer-1.gif)
Дело в том, что из-за спешки я в конце прошлого года влепил на свои Web-сервера виртуалки под Hyper-V. Это решение зарекомендовало себя крайне плохо. Дело даже не в том, что микрософтовский софт опасен для любого бизнеса - Осторожно Microsoft, а в том что недавно появившийся микрософтовский клон VmWare (под названием Hyper-V) еще не достиг качества даже первой бета версии вмвары десятилетней давности.
Во-первых возникали постоянные мелкие постоянные проблемы с Linux (например мышка не работает), но это еще ладно, главное - Web-сервера под Hyper-V постоянно зависали. Суть зависания такая - сеть на самой физ-машине есть, но коммуникация между физ-машиной и виртуалками пропадает - и внутри виртуалок сети нет. Причем это происходило на всех серверах под Hyper-V что я видел.
К сожалению эта проблема не лечится перегрузкой виртуалки. Надо перегружать всю физ-машину. Понятно что это нереально, предположим на одной из физмашин сидит служба helpdesk из 15 человек. Их всех выбросит из системы, плюс пока Oracle поднимется - пройдет еще минут 10. Понятно что перегрузка физмашины в таких условия нереальна.
В принципе я большой любитель VmWare (Основы работы с VmWare, но VmWare не всегда легко становится на специфические машины с хитрыми материнками со встроенные RAID-контроллерами. Какие-то контроллеры она подхватывает автоматически, например Дешевый RAID контроллер на чипе VIA VT6421L, но на каких-то зависает еще при инсталляции. Бороться с этим на бесплатной ESXi практически невозможно - а мои материнки как раз очень хитрые, на которые инсталяция VmWare виснет.
Я попробовал поставить на эти материнки Linux - но это не удалось - во-первых дравера были только под SLES и под OpenSuse не подхватились, а во-вторых я так и не победил установку VmWare на Linux.
Поэтому вариантов особо не осталось, как только ставить VmWare Server на виндузовую прокладку. Единственное, на что я обратил внимание - чтобы виндузня была легальная и бесплатная. Как это делается я описал здесь - Знакомство с Visual Studio 2010. Ну а Vmware Server 2 (как и VmWare ESXi 4) бесплатная.
Итак, ниже скрины этого процесса (который занял целый день и еще полдня на описание). Наблюдайте, ловкость рук - и никакого мошенничества.
Сначала я вставил в сервера новые процессоры и обнаружил такое замечательное сообщение. Придется перепрошить BIOS - как вы видите, до перепрошивки было 0306, после стало 0311.
![](/WebServer/BIOS1_1.gif)
![](/WebServer/BIOS2_1.gif)
![](/WebServer/BIOS3_1.gif)
![](/WebServer/BIOS4_1.gif)
![](/WebServer/BIOS5_1.gif)
![](/WebServer/BIOS6_1.gif)
![](/WebServer/BIOS7_1.gif)
![](/WebServer/BIOS8_1.gif)
![](/WebServer/BIOS9_1.gif)
Далее прогоняю установку бесплатной Windows:
![](/WebServer/WinInstall-1_1.gif)
![](/WebServer/WinInstall-2_1.gif)
![](/WebServer/WinInstall-3_1.gif)
![](/WebServer/WinInstall-4_1.gif)
![](/WebServer/WinInstall-5_1.gif)
![](/WebServer/WinInstall-6_1.gif)
![](/WebServer/WinInstall-7_1.gif)
![](/WebServer/WinInstall-8_1.gif)
![](/WebServer/WinInstall-9_1.gif)
![](/WebServer/WinInstall-10_1.gif)
![](/WebServer/WinInstall-11_1.gif)
![](/WebServer/WinInstall-12_1.gif)
![](/WebServer/WinInstall-13_1.gif)
![](/WebServer/WinInstall-14_1.gif)
![](/WebServer/WinInstall-15_1.gif)
![](/WebServer/WinInstall-16_1.gif)
![](/WebServer/WinInstall-17_1.gif)
![](/WebServer/WinInstall-18_1.gif)
![](/WebServer/WinInstall-19_1.gif)
![](/WebServer/WinInstall-20_1.gif)
![](/WebServer/WinInstall-21_1.gif)
Настраиваю сеть и выполняю активацию - как видите виндузня у меня на серверах полностью бесплатная и полностью легальная. Все обновления отлично стали.
![](/WebServer/ActivateWindows-1_1.gif)
![](/WebServer/ActivateWindows-2_1.gif)
![](/WebServer/ActivateWindows-3_1.gif)
![](/WebServer/ActivateWindows-4_1.gif)
![](/WebServer/ActivateWindows-5_1.gif)
![](/WebServer/ActivateWindows-6_1.gif)
![](/WebServer/ActivateWindows-7_1.gif)
![](/WebServer/ActivateWindows-8_1.gif)
На эту бесплатную версию виндузни можно поставить только Web-сервер, DNS-сервер и терминальный сервер. Ну а по идее от виндузни ничего больше и не надо. Я добавлю только возможность бекапирования дисков.
![](/WebServer/WebServerFuture-1_1.gif)
![](/WebServer/WebServerFuture-2_1.gif)
![](/WebServer/WebServerFuture-3_1.gif)
Далее я выполнил обычные элементарные настройки - доставил Фаерфокс, русский язык, убрал windump, устаревание пароля и прочее.
![](/WebServer/WinTuning-1_1.gif)
![](/WebServer/WinTuning-2_1.gif)
![](/WebServer/WinTuning-3_1.gif)
![](/WebServer/WinTuning-4_1.gif)
Драйвера для моей материнки подтянулсь из инета сами - за исключением драйвера RAID-контроллера.
![](/WebServer/NetworkDriver-1_1.gif)
![](/WebServer/NetworkDriver-2_1.gif)
![](/WebServer/NetworkDriver-3_1.gif)
Драйвер RAID-констроллера придется поставить вручную. Драйвера ASUS ставятся в основном через дискету, я использовал USB-дискетник.
![](/WebServer/RAID-Driver-1_1.gif)
![](/WebServer/RAID-Driver-2_1.gif)
![](/WebServer/RAID-Driver-3_1.gif)
![](/WebServer/RAID-Driver-4_1.gif)
![](/WebServer/RAID-Driver-5_1.gif)
![](/WebServer/RAID-Driver-6_1.jpg)
![](/WebServer/RAID-Driver-7_1.gif)
![](/WebServer/RAID-Driver-8_1.gif)
![](/WebServer/RAID-Driver-9_1.gif)
![](/WebServer/RAID-Driver-10_1.gif)
![](/WebServer/RAID-Driver-11_1.gif)
![](/WebServer/RAID-Driver-12_1.gif)
![](/WebServer/RAID-Driver-13_1.gif)
И наконец, последний этап моего апгрейда web-сервера - собственно установка на эту виндузовую прокладку VmWare Server 2:
![](/WebServer/VmWare-Server-Install-1_1.gif)
![](/WebServer/VmWare-Server-Install-2_1.gif)
![](/WebServer/VmWare-Server-Install-3_1.gif)
![](/WebServer/VmWare-Server-Install-4_1.gif)
![](/WebServer/VmWare-Server-Install-5_1.gif)
![](/WebServer/VmWare-Server-Install-6_1.gif)
![](/WebServer/VmWare-Server-Install-7_1.gif)
![](/WebServer/VmWare-Server-Install-8_1.gif)
![](/WebServer/VmWare-Server-Install-9_1.gif)
![](/WebServer/VmWare-Server-Install-10_1.gif)
Все, задача решена - можно забекапить сервер на всякий случай.
![](/WebServer/WinBackup-1_1.gif)
![](/WebServer/WinBackup-2_1.gif)
![](/WebServer/WinBackup-3_1.gif)
![](/WebServer/WinBackup-4_1.gif)
![](/WebServer/WinBackup-5_1.gif)
![](/WebServer/WinBackup-6_1.gif)
Итак оглянемся - поднят довольно мощный одноюнитовый web-сервер на экономичном процессоре Intel 9300 с 8-ю GB памяти и 2 ТB дисковой памяти (из них 1,4 TB на RAID5). Все поднято на абсолютно легальном и бесплатном софте. Осталось только поднять виртуалки - которые все тоже совершенно легальны и бесплатны.
![](/WebServer/CreateVM-1_1.gif)
![](/WebServer/CreateVM-2_1.gif)
![](/WebServer/CreateVM-3_1.gif)
![](/WebServer/CreateVM-4_1.gif)
![](/WebServer/CreateVM-5_1.gif)
![](/WebServer/CreateVM-6_1.gif)
![](/WebServer/CreateVM-7_1.gif)
![](/WebServer/CreateVM-8_1.gif)
![](/WebServer/CreateVM-9_1.gif)
![](/WebServer/CreateVM-10_1.gif)
![](/WebServer/CreateVM-11_1.gif)
![](/WebServer/CreateVM-12_1.gif)
![](/WebServer/CreateVM-13_1.gif)
![](/WebServer/CreateVM-14_1.gif)
![](/WebServer/CreateVM-15_1.gif)
![](/WebServer/CreateVM-16_1.gif)
![](/WebServer/CreateVM-17_1.gif)
![](/WebServer/CreateVM-18_1.gif)
![](/WebServer/CreateVM-19_1.gif)
![](/WebServer/CreateVM-20_1.gif)
![](/WebServer/CreateVM-21_1.gif)
Поскольку VmWare в данном случае устанавливается не на голую машину, а на прокладку из виндузни, то надо понять как смапировать сетевые интерфейсы самой VmWare Server 2 на сетевые интерфейсы виндузни, а потом дать виртуалкам доступ к сетевым интерфейсам вмвары.
В моем случае моя мамка имеет четыре сетевые карты (драйвера к которым подтянулись из инета сами) - на второй интерфейс физ-машины я завел инет. После установки вмвара сама автоматически попыталась привязаться к первому сетевому интерфесу, но у меня он пока отключен.
![](/WebServer/ConfigureNetwork-1_1.gif)
![](/WebServer/ConfigureNetwork-2_1.gif)
![](/WebServer/ConfigureNetwork-3_1.gif)
![](/WebServer/ConfigureNetwork-4_1.gif)
![](/WebServer/ConfigureNetwork-5_1.gif)
![](/WebServer/ConfigureNetwork-6_1.gif)
![](/WebServer/ConfigureNetwork-7_1.gif)
![](/WebServer/ConfigureNetwork-8_1.gif)
На скринах выше хорошо видно, что вмвара создала восемь сетевых интерфейсов и сама вмвара может работать как роутер и имеет у себя DHCP-сервер. В данной ситуации мне надо зайти на третью вкладку и подать на нулевой сетевой интерфейс самой вмвары второй сетевой адаптер физ-машины (фактически виндузовой прокладки физ-машины). Вторая и первая вкладка вмвары при этом изменятся сами.
![](/WebServer/ConfigureNetwork-9_1.gif)
![](/WebServer/ConfigureNetwork-10_1.gif)
![](/WebServer/ConfigureNetwork-11_1.gif)
Теперь (когда сетевой интерфейс физмашины привязан к сетевому интерфейсу вмвары не автоматически, а правильно) - можно подать этот интерфейс вмвары VmNet0 на сетевую карту виртуалки.
![](/WebServer/ConfigureNetwork-12_1.gif)
![](/WebServer/ConfigureNetwork-13_1.gif)
Теперь осталось внутри виртуалки правильно сконфигурить сетевые параметры и насладиться, как виртуалка вышла в инет - сначала скачала поправку к автоапдейтеру и потом скачала несколько сот мегабайт поправок и даже перекомпилировала свое ядро.
![](/WebServer/ConfigureNetwork-14_1.gif)
![](/WebServer/ConfigureNetwork-15_1.gif)
![](/WebServer/ConfigureNetwork-16_1.gif)
![](/WebServer/ConfigureNetwork-17_1.gif)
![](/WebServer/ConfigureNetwork-18_1.gif)
![](/WebServer/ConfigureNetwork-19_1.gif)
![](/WebServer/ConfigureNetwork-20_1.gif)
![](/WebServer/ConfigureNetwork-21_1.gif)
![](/WebServer/ConfigureNetwork-22_1.gif)
![](/WebServer/ConfigureNetwork-23_1.gif)
![](/WebServer/ConfigureNetwork-24_1.gif)
В основном все виртуалки поднимаются конечно на Linux (общую инструкцию смотрите тут - Установка и начальное конфигурирование OpenSuse Linux). Если какая-то виртуалка предназначена не для себя, а для клиентов хостинга, то для клиентов надо организовать доступ (минуя VmWare). При наличии прямого сетевого роутинга в эту машину, это быстрее всего делается с помощью RealVNC, а при отсутствии прямого сетевого роутинга на фаерволе можно дать доступ к этой машине с помощью TeamViewer:
![](/WebServer/VNC-1_1.gif)
![](/WebServer/VNC-2_1.gif)
![](/WebServer/VNC-3_1.gif)
![](/WebServer/VNC-4_1.gif)
![](/WebServer/VNC-5_1.gif)
![](/WebServer/VNC-6_1.gif)
![](/WebServer/VNC-7_1.gif)
![](/WebServer/LinuxRemoteAdmin-1_1.gif)
![](/WebServer/LinuxRemoteAdmin-2_1.gif)
![](/WebServer/LinuxRemoteAdmin-3_1.gif)
![](/WebServer/LinuxRemoteAdmin-4_1.gif)
![](/WebServer/LinuxRemoteAdmin-5_1.gif)
![](/WebServer/LinuxRemoteAdmin-6_1.gif)
![](/WebServer/LinuxRemoteAdmin-7_1.gif)
![](/WebServer/LinuxRemoteAdmin-8_1.gif)
![](/WebServer/LinuxRemoteAdmin-9_1.gif)
![](/WebServer/LinuxRemoteAdmin-10_1.gif)
В момент, когда я писал эту заметку - я поставил на описанном Web-сервере средство коллективного доступа к коду Subversion (вместо какого-то ублюдочного Team Foundation Server, который когда-то стоял на этом сервере). Вот как это происходило - я доставил нужные пакеты, примонтировал новый диск (на котором разместил репозиторий SVN), доставил в апач два модуля, понимающие директивы Subversion, сконфигурировал виртуальную директорию Апача, в которой будет работать Subversion, создал каталоги на новом примонтированном диске и создал сервисом Subversion в нем новый репозиторий для своего нового проекта, cоздал SVN-юзера, расписал нужные права Апача на файл с паролями, создал собственно хеш пароля, проковырял дырочку в фаерволе, открыл свой новый проект в Visual Studio 2010 и зачекал свой новый проект в созданный репозиторий.
![](/WebServer/Subversion-1_1.gif)
![](/WebServer/Subversion-2_1.gif)
![](/WebServer/Subversion-3_1.gif)
![](/WebServer/Subversion-4_1.gif)
![](/WebServer/Subversion-5_1.gif)
![](/WebServer/Subversion-6_1.gif)
![](/WebServer/Subversion-7_1.gif)
![](/WebServer/Subversion-8_1.gif)
![](/WebServer/Subversion-9_1.gif)
![](/WebServer/Subversion-10_1.gif)
![](/WebServer/Subversion-11_1.gif)
![](/WebServer/Subversion-12_1.gif)
![](/WebServer/Subversion-13_1.gif)
![](/WebServer/Subversion-14_1.gif)
![](/WebServer/Subversion-15_1.gif)
![](/WebServer/Subversion-16_1.gif)
![](/WebServer/Subversion-17_1.gif)
![](/WebServer/Subversion-18_1.gif)
![](/WebServer/Subversion-19_1.gif)
![](/WebServer/Subversion-20_1.gif)
![](/WebServer/Subversion-21_1.gif)
![](/WebServer/Subversion-22_1.gif)
![](/WebServer/Subversion-23_1.gif)
![](/WebServer/Subversion-24_1.gif)
![](/WebServer/Subversion-25_1.gif)
![](/WebServer/Subversion-26_1.gif)
![](/WebServer/Subversion-27_1.gif)
![](/WebServer/Subversion-28_1.gif)
![](/WebServer/Subversion-32_1.gif)
![](/WebServer/Subversion-29_1.gif)
![](/WebServer/Subversion-30_1.gif)
![](/WebServer/Subversion-31_1.gif)
![](/WebServer/Subversion-33_1.gif)
![](/WebServer/Subversion-34_1.gif)
Многие важные сервера я уже успел описать существенно подробнее, чем в этом коротком скринкасте - например Поднимаем на хостинге MySQL и PostgreSQL сервера, Настройка HTTP и FTP-серверов в Linux (Apache/vsftpd), сервер коллективного доступа Subversion я уже описал подробнее здесь Избавляемся от Team Foundation Server), File Share тоже поднимается обычно на Linux (Настройка Samba File Server в OpenSuse). Web-сервер для .NET тоже можно поднять на Linux - (Low cost and platform independent ASP.NET - be free with MONO), но учитывая что Windows Web Server распространяется микрософтом бесплатно - можно для .NET в порядке исключения поднять одну виртуалку и на виндузне.
И последнее, что я хотел бы заметить по поводу серверов на хостинге - неоходимо тчательно контроллировать их как на предмет температуры (особенно тонкие сервера) и на предмет производительности. Подход здесь примерно такой как я описывал в заметке Настройка производительности SQL-сервера - необходимо хотя бы отбалансировать загрузку дисков при обычной работе пользователей. Хоть виндузня и не вмвара, но в ней тоже кое что можно увидеть. Вот в этом моем сервере у меня получилось 6 дисков, из них четыре в RAID5 (которые пишет втрое медленнее, но читает быстрее). Я посмотрел как обычно работают юзера (на среднем скрине), на левом скрине я зачекал проект в SVN, а на последнем рисунке я специально придавил диск адской операцией копирования - чтобы посмотреть до какого размера будут нарастать очереди на запись. Как видите диски просто захлебнулись - очередь запросов на запись выросла до ста, среднее время отклика операции записи до 0,4 секунды, а производительность диска до 114 Мегабайт в секунду. По итогам такого анализа надо принять решение о правильном размещении виртуалок на физических дисках (или о приобретениии более толстого сервера с бОльшим количеством дисков).
![](/WebServer/Performance-1_1.gif)
![](/WebServer/Performance-2_1.gif)
![](/WebServer/Performance-3_1.gif)
![](/WebServer/Performance-4_1.gif)
![](/WebServer/Performance-5_1.gif)
![](/WebServer/Performance-6_1.gif)
![](/WebServer/Performance-7_1.gif)
Повторюсь, я использовал здесь виндузню исключительно по той причине, что на указанный выше RAID-контроллер нет драйвера под OpenSuse и потому что VmWare виснет при инсталяции на этой материнке. Если VmWare идет на материнке сразу - то ни малейшего смысла в дополнительной Windows-прокладке под вмварой нет вообще. Ведь виндузня - самая убогая из широкодоступных операционных систем во всех смыслах. Например виндузня умеет работать только с одним шлюзом. Например у вас два провайдера (два роутера) и два их шлюза в сети: 192.168.0.1 и 192.168.1.1 - предположим что вы завели на один сетевой интерфейс физического кампутера одного провайдера с шлюзом 192.168.0.1 (например публичный вход), а на второй сетевой интерфейс того же кампутера завели второго провайдера со шлюзом 192.168.1.1 (например интерфейс администратора хостинга). VmWare будет работать в такой обычной и распространенной конфигурации превосходно - даже если половину виртуалок в ней вы сконфигурите на один шлюз, а половину на другой. А под виндузней работа в этой совершенно обычной конфигурации невозможна вообще и всем виртуалкам на кампе с VmWare 2 придется смотреть в тот же самый шлюз (в который смотрит виндузня физического кампутера). Но иногда (как в описанном тут моем случае) для оборудования тупо не существует драйверов под Linux или VmWare - именно в этом случае и нужна прокладка на оборудование из виндузни.
![](http://forum.vb-net.com/GetTopicCount.png?id=07E177E8-5D3A-45B6-B9A5-321420532DA2)
<SITEMAP> <MVC> <ASP> <NET> <DATA> <KIOSK> <FLEX> <SQL> <NOTES> <LINUX> <MONO> <FREEWARE> <DOCS> <ENG> <CHAT ME> <ABOUT ME> < THANKS ME> |