4 votes

Quelle est la bonne façon d'arrêter une cible iSCSI avec des clients connectés ?

iSCSI avec deux nœuds primaires DRBD est une mauvaise idée à utiliser si les deux chemins reçoivent des requêtes d'écriture simultanées. Mais j'envisage d'utiliser cette idée comme stockage de base pour un hôte ESXi 5.5U2.

J'ai déjà testé cela avec des configurations primaires/secondaires et un cluster de basculement classique.

À ce stade, ESXi détecte un chemin multiple et n'en utilise qu'un seul de manière active. Ainsi, dans cette constellation, le problème de l'écriture simultanée ne semble pas se poser.

Le problème dans les deux cas (primaire/secondaire ou primaire/primaire) est le suivant : Comment arrêter un serveur iSCSI (fournisseur de cible iSCSI en termes iSCSI) qui a des connexions actives ouvertes avec un client iSCSI (initiateur iSCSI en termes iSCSI) ?

J'utilise actuellement CentOS 5 sur les serveurs cibles.

CO5 utilise tgtd pour fournir les cibles. À mon grand étonnement, la méthode d'arrêt normale échoue s'il y a des clients connectés. Au lieu de cela, l'arrêt forcé semble être ce dont j'ai besoin dans ce cas.

Je veux arrêter proprement un serveur (je dois arrêter l'accès à la cible, afin de pouvoir basculer le drbd sur le secondaire) et l'autre serveur devrait alors devenir automatiquement actif (rien à faire dans cette constellation IMHO).

Questions dans ce contexte : Est-ce que ce qui suit est correct ou est-ce que quelque chose m'échappe ?

  1. stop forcé de tgtd (va d'abord déconnecter les cibles)
  2. déchirer l'IP dans la direction de l'initiateur (ligne différente de celle utilisée pour la réplication drbd)
  3. arrêter drbd (en le rendant d'abord secondaire)
  4. redémarrer ou arrêter le serveur

1voto

Nils Points 7622

Oui, quelque chose m'a échappé. Le problème est toujours que le protocole sous-jacent (SCSI) est un à l'état pur protocole. Ainsi, même si je parviens à arrêter la cible (par exemple avec un arrêt forcé), cela laissera les initiateurs actifs dans un état "suspendu".

Mais.. : Dans mon cas d'utilisation, il existe une solution au problème.

  1. dans vCenter, désactiver tous les chemins d'accès à un serveur iSCSI donné.
  2. Cela mettra fin de manière ordonnée à toutes les transactions iSCSI en cours et ouvrira de nouvelles transactions sur l'autre chemin vers l'autre serveur.
  3. Ensuite, le serveur iSCSI peut être redémarré en toute sécurité sans interruption de service.
  4. Une fois que le serveur iSCSI est à nouveau opérationnel, les chemins iSCSI d'origine peuvent être réactivés en activant ces chemins dans vCenter.

La bonne réponse à mes questions semble donc être la suivante :

Court : Il n'y a pas de méthode appropriée. Vos clients seront pendus.

Longue : Cela dépend. Si vous disposez d'une couche intermédiaire capable de faire taire/terminer correctement le trafic iSCSI en premier lieu, vous pouvez terminer la cible ensuite (même si le serveur cible pense toujours qu'il y a des clients initiateurs connectés).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X