2011-01-20 9 views
6

Nous venons de tester un cluster AppFabric de 2 serveurs où nous avons supprimé le serveur "lead". Le second serveur sur les délais d'attente pour toute demande avec l'erreur:AppFabric Redundancy

Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCA0017>:SubStatus<ES0006>: There is a temporary failure. Please retry later. (One or more specified Cache servers are unavailable, which could be caused by busy network or servers. Ensure that security permission has been granted for this client account on the cluster and that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Retry later.)

En PRACTIVE cela signifie que si un serveur du cluster descend alors ils vont tous vers le bas. (Notez que nous n'utilisons pas de cluster Windows, mais que nous lions plusieurs serveurs cache AppFabric uniquement.)

J'ai besoin du cluster pour continuer à fonctionner même si un seul serveur tombe en panne. Comment puis-je faire cela?

(je me rends compte cette question est borderlining Serverfault, mais IMHO développeurs doivent savoir.)

Répondre

7

Vous devez installer le cache AppFabric sur au moins trois serveurs principaux pour le cache pour survivre un seul plantage du serveur. Les docs déclarent que le cluster ne baissera que si la "majorité" des serveurs principaux baisse, mais dans les petits caractères, ils expliquent que 1 sur 2 constitue une majorité. J'ai vérifié que la suppression d'un serveur d'un cluster à trois nœuds principaux fonctionne comme annoncé.

2

Concept de systèmes distribués type. Pour qu'un quorum d'écriture ou de lecture se produise dans un ensemble, vous devez avoir 2f + 1 serveurs là où f est le nombre de serveurs défaillants. Je pense que l'appfabric ou n'importe quel CP (comme dans le théorème de CAP) les systèmes basés sur le consensus ont besoin que ceci se produise pour le fonctionnement du groupe.

--Sai

+0

quel est le nombre de "" dans 2f secondaries + 1 formule? – UserControl

0

Cest en fait un problème avec l'architecture AppFabric et il est assez déroutant en termes de concept de « lead-hôte ». L'idée est que la majorité des hôtes principaux devrait fonctionner pour que le cluster reste opérationnel. Donc, si vous aviez trois serveurs, vous auriez au moins deux hôtes principaux en communication constante les uns avec les autres et manger les ressources du serveur et si les deux tombent, alors le cluster entier échoue. L'idée est d'avoir une architecture peer-to-peer où tous les serveurs agissent comme des pairs, ce qui signifie que même si deux serveurs descendent, le cluster reste fonctionnel sans interruption des applications. Essayez NCache:

http://www.alachisoft.com/ncache/