Рекомендации по инфраструктуре - серверы приложений и сети
Я хотел бы попросить совета по инфраструктуре сервера. Мы будем модернизировать нашу сетевую инфраструктуру (построенную на экосистеме MS), и пока у нас есть два сервера (не считая ISA-сервера): одна машина обслуживает службы приложений, такие как Exchange, IIS, SQL и т. Д., Другая машина обслуживает сетевые службы (контроллер домена, сетевые сервисы, такие как DNS, DHCP, cert, это также файловый сервер. Оба сервера находятся в локальной подсети 192.168.xx
Сервер приложений был частично доступен извне через правила публикации сервера через ISA-сервер для определенных служб (например, Exchange-сервер). Эта настройка предназначена для организации малого и среднего размера, поэтому производительность не является проблемой.
Теперь мы будем обновлять старое оборудование, и, возможно, было бы неплохо рассмотреть нашу текущую серверную инфраструктуру. Что нам нужно это:
- контроллер домена
- сетевые сервисы (DNS, DHCP,...)
- Exchange сервер
- SQL-сервер
- IIS
- TFS
- файловый сервер
- обновить услуги
- Центр сертификации
- нечто большее, но в основном незначительное -
Вы бы порекомендовали сохранить текущую инфраструктуру с двумя серверами (один компьютер для сервера приложений в локальной сети с некоторыми опубликованными службами) и один компьютер в качестве DC, сетевого и файлового сервера или все на одном сервере (но Exchange и DC на одной машине не ' Насколько я знаю), или что-то совсем другое, или держать сервер приложений в DMZ и т. д. Кстати, вы видите какие-либо проблемы с наличием DC и файлового сервера на одной машине?
Добавлено после комментариев и ответов Nextraztus и Golmaal:
Что касается виртуализации, я определенно для Hyper-V - я полностью MS человек, я занимаюсь разработкой для Windows начиная с WfW 3.1 и в последнее десятилетие я работаю с ASP.NET и ядром IFS Windows (да, два довольно, но приятных разных мира, C# и чистый C).
Наша стандартная настройка - RAID 10 для системных и критических данных, RAID 5 для "обычных" данных.
Я почти боюсь признать это вслух, но у меня есть некоторые личные проблемы с виртуализацией - и я был бы признателен, если бы вы могли помочь мне преодолеть это:) Я использую это день и ночь для разработки, особенно для ядра velopmnet с проверенными сборками Windows. Я использую его в нашей работе над Azure (мы используем почти все сервисы, которые предлагает Azure, виртуальные машины, веб-сайты, веб-роли, кэши и многое другое), но здесь я "чувствую", что все еще хотел бы иметь реальные физические серверы.
Насколько я понимаю, виртуализация дает мне больше свободы, поскольку у меня может быть почти столько серверов, сколько я хочу, и я могу разделять проблемы по мере необходимости, я могу создавать резервные копии целых образов.
Без виртуализации я могу указать, что система работает на SSD, эти данные работают на RAID 10, эти данные на RAID 5 (и, если мне нужно, я могу добавить специально новые диски к тому объему данных) и т. Д. Я знаю, что это становится другим вопрос, и действительно кажется, что с вами все в порядке, но какова реальная выгода от виртуализации всего, кроме гораздо более низких затрат?
РЕДАКТИРОВАТЬ 2:
Я могу понять, что DC следует хранить в одиночестве (но это нормально для сетевых служб, особенно DNS и DHCP) - но почему кажется, что лучше показывать почти каждую роль сервера на отдельном сервере? Обмен на один сервер, SQL Server на другой сервер, TFS на другой сервер - единственная причина, о которой я могу думать, это балансировка нагрузки, но если это не проблема...? Напротив, я вижу, что, например, TFS может выиграть от запуска на компьютере с SQL Server, IIS и Exchange.
2 ответа
В небольшой / средней установке, где кластеризация /HA не являются главной проблемой (особенно из-за сложности и затрат, связанных с несколькими лицензиями, необходимостью для версий более высокого уровня / корпоративной версии и т. Д.), Виртуализация может не показаться привлекательным вариантом; При этом все зависит от количества пользователей и степени важности операций. Поскольку вы упомянули, что "Эта установка предназначена для организаций малого и среднего размера, поэтому производительность не является проблемой", я беру некоторую свободу предположить, что кластеризация /HA и т. Д. Не требуются. В конце концов все зависит от допустимого простоя.
Я бы выбрал два физических сервера с четырьмя виртуальными машинами (каждая лицензия Windows Server 2008 может работать на одном физическом сервере или двух виртуальных серверах):
Server 1:
VM1:
PDC
Network Services
File Server (Use DFS replication)
VM2:
SQL Server
Server 2:
VM3:
Secondary Domain Controller (global catalog; backup dhcp etc)
File Server (Use DFS replication)
VM4:
Exchange
Вы можете иметь другие службы, работающие на VM1 или VM3. Ликвидировать ISA и перейти на третий физический сервер (low-end); установите на него pfSense и сделайте его полноценным TMG/UMG с брандмауэром, антивирусом, кешированием, VPN и т. д. Обратитесь к службам ретрансляции почты / резервного копирования, предоставляемым cos, например dnsexit.com; это может быть наименее дорогим способом достижения аварийного переключения Exchange (зависит от ожиданий).
Таким образом, у вас будет домен с аварийным переключением для некоторых наиболее важных служб. Например, если ваш PDC недоступен по каким-либо причинам, ваш VM3 вступит во владение, и ваши клиенты все еще смогут получить доступ к файлам и использовать Интернет и почту.
При правильной стратегии резервного копирования вы сможете минимизировать время простоя до приемлемых пределов для других служб, таких как SQL Server, Exchange и т. Д. Использование RAID 10, SSD и т. Д. Может дать вам свободу конфигурации и повысить надежность без значительных затрат. или сложности.
Я надеюсь, что это помогает.
РЕДАКТИРОВАТЬ:
Я не сильно разбираюсь в Exchange, но это один сервер, который вы захотите сохранить в DMZ, и поэтому имеет смысл сохранить его в своей собственной виртуальной машине. То же самое касается IIS - в той же виртуальной машине, что и Exchange. Я вижу, что вы полностью погружены в экосистему MS и Azure. Есть ли какая-то конкретная причина для внутреннего Exchange, а не хостинга?
DFS - работает и работает хорошо. На мой взгляд, это плохое решение HA администратора для файлового сервера. Если вам не нужно создавать автономные файлы, попробуйте DFS.
TFS может пойти с VM2. Я не использовал его, но понимаю, что это приложение, требующее больших ресурсов. Если вы используете размещенный Exchange, используйте VM4 для TFS.
Запуск Exchange, SQL Server и TFS на одной физической машине / одной и той же виртуальной машине - это нормально, если вы спросите меня. Но когда вы запускаете их на разных виртуальных машинах, это не имеет никаких недостатков по сравнению с запуском их на одной физической / виртуальной машине. Для меня самое большое преимущество - это гибкость и спокойствие. Например, если администратор SQL Server что-то испортил, и вам нужно перестроить этот компьютер, остальные службы будут работать без перебоев, пока вы восстанавливаете виртуальную машину SQL Server из резервной копии или с нуля.
Как отметил @Sarge в своем комментарии, виртуализация - это хороший путь для вашего варианта использования. Пожалуйста, обратите внимание, что это все в основном мнения и взгляды на самом высоком уровне.
Выберите платформу для виртуализации.
В наши дни есть из чего выбирать, я лично рекомендую один из следующих:
- Microsoft HyperV
- VMWare
Есть основные плюсы и минусы для каждого, в основном цена и условия лицензии. Вы захотите поработать со своими поставщиками, чтобы убедиться, что вы не перепроданы и не перепроданы (и не провалите призрак аудита).
Решите, насколько избыточным вы хотите быть
Опять же, есть несколько способов, которыми вы можете воспользоваться, самый очевидный выбор - просто получить два мощных сервера и кластеризовать их с любой платформой виртуализации, на которой вы решите. Это может очень быстро стать очень дорогим.
Другой вариант - просто поместить все данные в сеть SAN с надлежащим резервным копированием - один из сценариев сбоя - это случай, когда вы теряете свой сервер, который выполняет фактическую виртуализацию, но, поскольку все красиво упаковано в виртуальные машины, вы можете получить резервную копию и работает, как только новое железо прибывает.
Другой способ отказа - это, конечно, умирание SAN. Делайте хорошие резервные копии, и это не проблема. Очевидно, у вас есть много вариантов здесь
Пройти соответствующее обучение
Вирутализация - это совершенно новый червь, иногда требующий осторожной руки. Тем не менее, это действительно хорошо, когда вам нужно что-то протестировать и не хотите рисковать своей существующей инфраструктурой. Какую бы технологию вы ни выбрали, получите профессиональное развитие, как ее администрировать.
развертывание
Существует множество инструментов для преобразования физических серверов в виртуальные машины. Поскольку большинство ваших услуг кластеризованы на одном сервере, вы не увидите большой пользы от шлюза, если только вы не проведете выходные дни, все настраивая и переставляя вещи.
улучшать
Как только все вернется туда, где вы были, теперь вы можете повеселиться. В вашей новой среде будет намного сложнее ломать вещи. Идите вперед и процветайте, зная, что вы можете настроить и разрушить новые машины и новые идеи одним нажатием кнопки.
Архитектура
Я не специалист по Windows, но мне всегда говорили, что иметь на DC что- либо, кроме только служб каталогов, плохо. Я также слышал, что вы почти всегда хотите, чтобы два DC разделили роли (RID, PDC и IM), а также очевидную избыточность, если что-то случится с одним из DC.
Очевидно, что лицензирование является проблемой для такого рода вещей. Но на самом деле, если вы следите за нагрузкой и выполняете свои обязанности, небольшая среда, вероятно, не станет большой проблемой для дублирования работы серверов. Кроме того, серверы в наши дни, STUPID мощные по доступным ценам.
Gotchas
Виртуализация делит ресурсы. Это очевидно, но необходимо упомянуть. RAM, HardDrive и все остальное нужно держать в центре внимания, если вы идете по этому пути. Не недооценивайте свое оборудование, так как все будет делиться сейчас. Если что-то сходит с ума и пожирает все пространство в вашем хранилище, ваши другие машины теперь пострадают, если вы не будете следить за этим.
Что касается вашего DMZ-вопроса - если вы решите виртуализировать И вы решите публично предоставить что-либо, вы должны убедиться, что эти машины находятся в другой виртуальной сети, чтобы они оставались должным образом сегментированными.
Надеюсь, что некоторые из этих мыслей помогут.