У меня есть служба WCF, развернутая в IIS и использующая SQL Server 2008 в качестве бэкэнда.
Мой вопрос: как я могу создать кластер (балансировка нагрузки / отказоустойчивость) на IIS и на SQL Server и о каких вещах мне нужно помнить, прежде чем делать это? (например, мне нужно переносить сеансы из памяти на SQL-сервер и т. д.)
Кроме того, как я могу убедиться, что оба SQL-сервера всегда имеют зеркальные данные и что оба SQL-сервера совместно используют информацию о блокировках (строка, страница, таблица) в реальном времени?
Я впервые об этом говорю. Это называется веб-фермерством?
У меня есть 6 серверов iis, и я также получил службу WCF.
Я использую ARR (Application Request Routing), расширение модуля IIS, для маршрутизации запроса на мою веб-ферму. он работает очень хорошо.
Я также использую NLB для своей службы WCF, как Матье Телль.
Для своего SQL-сервера я использую Hyper-V, две виртуальные машины для моего sql-сервера, с SQL-кластером и отказоустойчивым кластером Windows и динамической миграцией.
Я отвечу по-французски, так что, если кто-то сможет перевести, это будет признательно.
Ce que vous devez faire, c'est Avoir un serveur de cluster. Этот сервер обслуживает "сердцебиение" после двух серверов SQL. Два сервера SQL, которые передаются на разные машины, получают больше, чем другие отправляемые файлы (SAN ou NAS или autre). Les Bas de Donnée sont monté sur un seul serveur à la fois. Lorsque le "heartbeat" is brisé, l'autre serveur prend la relève, et monte en une france de second les base de donnée et votre service est yield, ceci est le "отказоустойчивый кластер". Lorsque le processus de transfert de serveur begin vous pouvez perdre quelques pings. Ce qui va détruire tous vos connection actuelle vers la base de donnée. La seul facons que vous pouvez être "UP" на 99% c'est d'y ajouter живой миграции. Вы можете использовать 2 сервера Hyper-V (хост) с двумя серверами SQL (без поддержки хоста), активировать динамическую миграцию на виртуальном компьютере с двумя виртуальными машинами, если вы хотите, чтобы сервер был изменен на хосте (сервер Qui héberge SQL), vous faites un live migration de votre machine sql d'un host à l'autre. La mémoire sera transferer d'un coté à l'autre et vous n'aurez aucune perte de connection. Вот и все функции аварийного переключения, если вы хотите, чтобы виртуальная машина использовалась для обслуживания sql qui plante, а также для восстановления и восстановления работоспособности.
J'epère que cela va vous aider, et désoler pour le francais, mais en anglais j'aurais surement été mal incl.
Думаю, IIS и SQL находятся на разных серверах:
IIS: вы можете использовать функцию Microsoft NLB для распределения нагрузки между 2 или более серверами. Это могут быть веб-версии Windows. Он включен в windows. У вас будет виртуальный IP-адрес, к которому будет подключаться клиент. Серверы будут «делить» этот ip и распространять клиента на другой сервер. Многоадресная / одноадресная передача зависит от сети, количества сетевых и внутрисерверных коммуникаций или нет. NLB не поддерживает приложение, если вы закроете IIS, пользователи будут потеряны, если у вас есть сходство. NLB просто удаляет сервер, если он не работает с точки зрения IP. Вам нужно будет изменить метабазу IIS (loadbalancercapabilities), как описано здесь: http://technet.microsoft.com/en-us/library/cc757659(WS.10).aspx С точки зрения лицензии, он включен в Windows и не требует дополнительных затрат.
С точки зрения WCF: клиент будет подключаться к одному из веб-серверов X. Вы можете поддерживать их на тех же серверах, пока этот работает (через привязку). Сходство основано на хэше между клиентским IP и виртуальным IP. Если сервер выйдет из строя, клиент будет отправлен на другие серверы. Если вы используете http-сессии / аутентификацию, вам придется хранить сеанс вне сервера, например, в базе данных. В противном случае сеанс клиента будет потерян при сбое сервера.
SQL: у вас есть разные варианты: использовать механизм SQL для репликации базы данных или использовать Microsoft MSCS (кластер). Последний означает версию предприятия для Windows и внешнее общее хранилище, что подразумевает высокую стоимость (но все же стандартная версия SQL). Используя чистый уровень SQL, вы можете зеркалировать свою базу данных. У каждого сервера есть локальное хранилище, и основная транзакция отправки на лету на резервный сервер (синхронный или асинхронный). Когда ваш веб-сервер подключается, сервер сообщает ему, что резервный сервер доступен в случае проблемы, через собственный клиент SQL и / или ADO.Net. Таким образом, ваш веб-сервер автоматически переключается на резервный сервер в случае возникновения проблемы. Все это работает со стандартной версией SQL. Базы данных должны быть в режиме полного восстановления. Это для каждой базы данных, поэтому, если ваш WCF использует несколько баз данных, и только одна из них не работает, у вас возникнет проблема, потому что одна база данных теперь активна на резервном сервере, но все остальные по-прежнему находятся на основном сервере.
Больше информации здесь: http://technet.microsoft.com/en-us/library/cc917680.aspx
Да, кластерные веб-серверы обычно называются веб-фермами (обратите внимание, что с этим термином не связаны никакие базы данных SQL, а только веб-серверы).
Обычно перед веб-серверами используется балансировщик нагрузки.