Différences entre versions de « Creation cluster SQL avec Storage iSCSI sur 2012R2 »
Ligne 1 : | Ligne 1 : | ||
− | |||
== Problème == | == Problème == | ||
− | Nous voulons monter un cluster SQL avec un storage sur un serveur accessible en iSCSI, le tout sur des serveurs en Windows 2012 R2. | + | Nous voulons monter un <span class="notranslate">cluster</span> <span class="notranslate">SQL</span> avec un <span class="notranslate">storage</span> sur un serveur accessible en <span class="notranslate">iSCSI</span>, le tout sur des serveurs en <span class="notranslate">Windows</span> 2012 R2. |
== Debug == | == Debug == | ||
Cette plateforme nécessite 3 serveurs : | Cette plateforme nécessite 3 serveurs : | ||
− | * 2 Windows 2012R2 avec SQL 2014 avec 5 ports Ethernet (ce nombre peut être réduit en fonction des besoins) : ServSQL01 et ServSQL02 | + | * 2 <span class="notranslate">Windows</span> 2012R2 avec <span class="notranslate">SQL</span> 2014 avec 5 ports <span class="notranslate">Ethernet</span> (ce nombre peut être réduit en fonction des besoins) : ServSQL01 et ServSQL02 |
− | * 1 Windows 2012R2 en serveur de stockage avec 9 ports Ethernet (ce nombre peut être réduit en fonction des besoins) ServStor01 | + | * 1 <span class="notranslate">Windows</span> 2012R2 en serveur de stockage avec 9 ports <span class="notranslate">Ethernet</span> (ce nombre peut être réduit en fonction des besoins) ServStor01 |
== Solution == | == Solution == | ||
− | En prérequis, on installe Windows 2012 R2 sur les 3 serveurs et on les met à jour. | + | En prérequis, on installe <span class="notranslate">Windows</span> 2012 R2 sur les 3 serveurs et on les met à jour. |
− | les deux serveurs SQL doivent être sur le même domaine. | + | les deux serveurs <span class="notranslate">SQL</span> doivent être sur le même domaine. |
− | Schéma réseau "simplifié" de la plateforme (Les switchs ne sont pas présents afin de bien pouvoir suivre qui est relié à quoi) : | + | Schéma réseau "simplifié" de la plateforme (Les <span class="notranslate">switchs</span> ne sont pas présents afin de bien pouvoir suivre qui est relié à quoi) : |
[[Fichier:schema_reseau_simple.PNG]] | [[Fichier:schema_reseau_simple.PNG]] | ||
Ligne 23 : | Ligne 22 : | ||
Sur ce serveur nous avons 9 ports réseaux utilisés. | Sur ce serveur nous avons 9 ports réseaux utilisés. | ||
1 dédié au management. | 1 dédié au management. | ||
− | 2 x 4 ports dédiés à l'iSCSI. | + | 2 x 4 ports dédiés à l'<span class="notranslate">iSCSI</span>. |
− | + | <span class="notranslate">NIC</span>1, <span class="notranslate">NIC</span>2 et <span class="notranslate">NIC</span>3 correspondent aux trois cartes réseaux présentes, chacune possédant 4 ports <span class="notranslate">gigabits</span>. | |
(Voir schéma pour repérer les branchements) | (Voir schéma pour repérer les branchements) | ||
− | Pour le réseau iSCSI, nous utiliserons des IP en 192.168.0.0/24 | + | Pour le réseau <span class="notranslate">iSCSI</span>, nous utiliserons des<span class="notranslate"> IP </span>en 192.168.0.0/24 |
− | Voici les IP configurées sur le serveur ServStor01 : | + | Voici les<span class="notranslate"> IP </span>configurées sur le serveur ServStor01 : |
<pre> | <pre> | ||
− | + | <span class="notranslate">NIC</span>1 port 1 : Votre<span class="notranslate"> IP </span>de votre serveur | |
− | + | <span class="notranslate">NIC</span>1 port 2 : Non utilisé | |
− | + | <span class="notranslate">NIC</span>1 port 3 : Non utilisé | |
− | + | <span class="notranslate">NIC</span>1 port 4 : Non utilisé | |
− | + | <span class="notranslate">NIC</span>2 Port 1 : 192.168.0.11 | |
− | + | <span class="notranslate">NIC</span>2 Port 2 : 192.168.0.12 | |
− | + | <span class="notranslate">NIC</span>2 Port 3 : 192.168.0.13 | |
− | + | <span class="notranslate">NIC</span>2 Port 4 : 192.168.0.14 | |
− | + | <span class="notranslate">NIC</span>3 Port 1 : 192.168.0.15 | |
− | + | <span class="notranslate">NIC</span>3 Port 2 : 192.168.0.16 | |
− | + | <span class="notranslate">NIC</span>3 Port 3 : 192.168.0.17 | |
− | + | <span class="notranslate">NIC</span>3 Port 4 : 192.168.0.18 | |
</pre> | </pre> | ||
− | Pour toutes les cartes en 192.168.0.x on va dans les paramètres avancés, onglet DNS, et on décoche la case "Register this connection's addresses in DNS" | + | Pour toutes les cartes en 192.168.0.x on va dans les paramètres avancés, onglet <span class="notranslate">DNS</span>, et on décoche la case "<span class="notranslate">Register this connection's addresses in </span><span class="notranslate">DNS</span>" |
− | [[Fichier: | + | [[Fichier:register_<span class="notranslate">DNS</span>.PNG]] |
− | Sur le serveur ServStor01, on installe le rôle ''iSCSI Target Server'' | + | Sur le serveur ServStor01, on installe le rôle ''<span class="notranslate">iSCSI</span> <span class="notranslate">Target</span><span class="notranslate"> Server</span>'' |
[[Fichier:roles_servstor01.PNG]] | [[Fichier:roles_servstor01.PNG]] | ||
− | Dans le Server Manager, on va créer les disques iSCSI (qui sont au final des VHDx) et les Target iSCSI qui leur vont avec : | + | Dans le <span class="notranslate">Server Manager</span>, on va créer les disques <span class="notranslate">iSCSI</span> (qui sont au final des VHDx) et les <span class="notranslate">Target</span> <span class="notranslate">iSCSI</span> qui leur vont avec : |
[[Fichier:iSCSI_servstor01.PNG]] | [[Fichier:iSCSI_servstor01.PNG]] | ||
On fait donc : | On fait donc : | ||
− | * task / New iSCSI virtual disk | + | * <span class="notranslate">task / New iSCSI virtual disk</span> |
* On sélectionne le volume | * On sélectionne le volume | ||
* On lui donne un nom (on peut remarquer son futur chemin en bas) | * On lui donne un nom (on peut remarquer son futur chemin en bas) | ||
− | * On choisit la taille en "Fixed Size" (On laisse "Clear the virtual disk on allocation") | + | * On choisit la taille en <span class="notranslate">"Fixed Size"</span> (On laisse <span class="notranslate">"Clear the virtual disk on allocation"</span>) |
− | * On choisit "New iSCSI | + | * On choisit <span class="notranslate">"New iSCSI Target</span>" |
− | * On donne un nom à cette "iSCSI Target" | + | * On donne un nom à cette "<span class="notranslate">iSCSI</span> <span class="notranslate">Target</span>" |
− | * Cliquez sur ADD dans la partie "access Servers" | + | * Cliquez sur <span class="notranslate">ADD</span> dans la partie "<span class="notranslate">access Servers</span>" |
− | * Dans le choix de la méthode d'identification de l'initiateur, choisiez en bas par IP et mettez une IP, on changera ça plus tard. | + | * Dans le choix de la méthode d'identification de l'initiateur, choisiez en bas par<span class="notranslate"> IP </span>et mettez une <span class="notranslate"> IP</span>, on changera ça plus tard. |
− | * On laisse CHAP et Reverse CHAP décoché | + | * On laisse <span class="notranslate"> CHAP</span> et <span class="notranslate"> Reverse CHAP</span> décoché |
− | * On termine par "Create" puis "close" une fois terminé | + | * On termine par <span class="notranslate">"Create"</span> puis <span class="notranslate">"close"</span> une fois terminé |
− | A partir de la, vous avez un disque partagé en iSCSI. | + | A partir de la, vous avez un disque partagé en <span class="notranslate">iSCSI</span>. |
Répétez l'opération autant de fois que nécessaire. | Répétez l'opération autant de fois que nécessaire. | ||
Dans notre cas nous allons créer 3 disques : | Dans notre cas nous allons créer 3 disques : | ||
* 1 pour les bases de données | * 1 pour les bases de données | ||
* 1 pour les logs | * 1 pour les logs | ||
− | * 1 pour le quorum (1Go suffira) | + | * 1 pour le <span class="notranslate">quorum</span> (1Go suffira) |
− | === Configuration iSCSI des serveurs ServSQL01 et 02 === | + | === Configuration <span class="notranslate">iSCSI</span> des serveurs ServSQL01 et 02 === |
− | Dans cette partie, on va relier les deux serveurs SQL au serveur de storage par des liaisons iSCSI. | + | Dans cette partie, on va relier les deux serveurs <span class="notranslate">SQL</span> au serveur de <span class="notranslate">storage</span> par des liaisons <span class="notranslate">iSCSI</span>. |
− | Nous allons utiliser le MPIO afin d'utiliser nos 4 liens réseaux et de partager la charge. | + | Nous allons utiliser le <span class="notranslate">MPIO</span> afin d'utiliser nos 4 liens réseaux et de partager la charge. |
− | Configuration IP des serveurs: | + | Configuration<span class="notranslate"> IP </span>des serveurs: |
− | + | <span class="notranslate">NIC</span>1 et <span class="notranslate">NIC</span>2 correspondent aux deux cartes réseaux présentes sur les serveurs. <span class="notranslate">NIC</span>1 possède 4 ports, <span class="notranslate">NIC</span>2 en a 2. | |
Voici la configuration : | Voici la configuration : | ||
ServSQL01 : | ServSQL01 : | ||
<pre> | <pre> | ||
− | + | <span class="notranslate">NIC</span>1 port 1 : 192.168.0.22 | |
− | + | <span class="notranslate">NIC</span>1 port 2 : 192.168.0.26 | |
− | + | <span class="notranslate">NIC</span>1 port 3 :<span class="notranslate"> IP </span>du serveur | |
− | + | <span class="notranslate">NIC</span>1 port 4 : non utilisé | |
− | + | <span class="notranslate">NIC</span>2 port 1 : 192.168.0.25 | |
− | + | <span class="notranslate">NIC</span>2 port 2 : 192.168.0.21 | |
</pre> | </pre> | ||
ServSQL02 : | ServSQL02 : | ||
<pre> | <pre> | ||
− | + | <span class="notranslate">NIC</span>1 port 1 : 192.168.0.24 | |
− | + | <span class="notranslate">NIC</span>1 port 2 : 192.168.0.28 | |
− | + | <span class="notranslate">NIC</span>1 port 3 :<span class="notranslate"> IP </span>du serveur | |
− | + | <span class="notranslate">NIC</span>1 port 4 : non utilisé | |
− | + | <span class="notranslate">NIC</span>2 port 1 : 192.168.0.27 | |
− | + | <span class="notranslate">NIC</span>2 port 2 : 192.168.0.23 | |
</pre> | </pre> | ||
− | Pour toutes les cartes en 192.168.0.x on va dans les paramètres avancés, onglet DNS, et on décoche la case "Register this connection's addresses in DNS" | + | Pour toutes les cartes en 192.168.0.x on va dans les paramètres avancés, onglet <span class="notranslate">DNS</span>, et on décoche la case "<span class="notranslate">Register this connection's addresses in </span><span class="notranslate">DNS</span>" |
− | [[Fichier: | + | [[Fichier:register_DNS.PNG]] |
− | * Sur les deux serveurs, on installe la feature "Multipath I/O". | + | * Sur les deux serveurs, on installe la feature <span class="notranslate">"Multipath I/O"</span>. |
− | [[Fichier: | + | [[Fichier:feature_MPIO.PNG]] |
− | * Une fois installé, dans l'interface metro de 2012R2 (cliquez sur le menu démarré donc) tapez simplement " | + | * Une fois installé, dans l'interface <span class="notranslate">metro</span> de 2012R2 (cliquez sur le menu démarré donc) tapez simplement "<span class="notranslate">MPIO</span>" et cliquez sur le résultat : |
− | [[Fichier: | + | [[Fichier:MPIO.PNG]] |
− | * Dans l'onglet "Discover Multipaths" on coche "Add Support for iSCSI devices" puis on clique sur ADD. Cela propose de redémarrer, on le fait. | + | * Dans l'onglet <span class="notranslate">"Discover Multipaths"</span> on coche <span class="notranslate">"Add Support for iSCSI devices"</span> puis on clique sur <span class="notranslate">ADD</span>. Cela propose de redémarrer, on le fait. |
− | * Une fois redémarré, on relance | + | * Une fois redémarré, on relance <span class="notranslate">MPIO</span>, et on s'assure que "MSFT2005<span class="notranslate">iSCSI</span>BusType_0x9" est présent dans le "device hardware id". |
− | * On lance ensuite " | + | * On lance ensuite "<span class="notranslate">iSCSIinitiator</span> " sur les deux serveurs <span class="notranslate">SQL</span> |
− | * On se rend dans l'onglet "configuration" et on récupère le "Initiator Name" (sous la forme "iqn.1991-05.com.microsoft:ServSQL01.domain.tld") | + | * On se rend dans l'onglet "configuration" et on récupère le <span class="notranslate">"Initiator Name"</span> (sous la forme <span class="notranslate">"iqn.1991-05.com.microsoft:ServSQL01.domain.tld"</span>) |
* On retourne sur le serveur ServSTOR01 | * On retourne sur le serveur ServSTOR01 | ||
− | * Dans Server Manager, "File and | + | * Dans <span class="notranslate">Server Manager</span>, "File and <span class="notranslate">storage</span> Services", "<span class="notranslate">iSCSI</span>", on clique droit sur la <span class="notranslate">Target</span> puis dans initiators |
− | * On clique sur ADD | + | * On clique sur <span class="notranslate">ADD</span> |
− | * On coche "Enter a value for the selected type" | + | * On coche <span class="notranslate">"Enter a value for the selected type"</span> |
− | * On met en type "IQN" et on met l'adresse trouvée plus tôt sur le serveur SQL. | + | * On met en type <span class="notranslate">"IQN"</span> et on met l'adresse trouvée plus tôt sur le serveur <span class="notranslate">SQL</span>. |
− | * On clique sur OK, on répète l'opération pour ajouter les IQN des deux SQL sur toutes les | + | * On clique sur OK, on répète l'opération pour ajouter les <span class="notranslate">"IQN"</span> des deux <span class="notranslate">SQL</span> sur toutes les <span class="notranslate">Targets</span> |
− | * On retire l'IP qu'on avait précédemment mit ici. | + | * On retire l'<span class="notranslate">IP</span> qu'on avait précédemment mit ici. |
− | * une fois validé, on retourne sur nos serveurs SQL, toujours dans l'iSCSI initiator, on va dans l'onget " | + | * une fois validé, on retourne sur nos serveurs <span class="notranslate">SQL</span>, toujours dans l'<span class="notranslate">iSCSI initiator</span>, on va dans l'onget "<span class="notranslate">Targets</span>" et on se connecte au serveur de <span class="notranslate">storage</span>. |
− | * On va dans l'onglet "Favorite Targets", on sur la | + | * On va dans l'onglet <span class="notranslate">"Favorite Targets</span>", on sur la <span class="notranslate">Target</span> visible puis on fait <span class="notranslate">remove</span>. |
− | * On retourne sur l'onglet "Targets" puis on va sur properties pour l'une des | + | * On retourne sur l'onglet "<span class="notranslate">Targets</span>" puis on va sur properties pour l'une des <span class="notranslate">Target</span> |
− | * La on déconnecte la session active, puis on clique sur Add Session. On coche Multipath, on clique sur advanced. On choisit "Microsoft iSCSI initiator". En initiator IP on choisit la première IP iSCSI du serveur SQL. En | + | * La on déconnecte la session active, puis on clique sur <span class="notranslate">Add Session</span>. On coche <span class="notranslate">Multipath</span>, on clique sur <span class="notranslate">advanced</span>. On choisit <span class="notranslate">"Microsoft iSCSI initiator"</span>. En <span class="notranslate">initiator IP </span>on choisit la première<span class="notranslate"> IP </span><span class="notranslate">iSCSI</span> du serveur <span class="notranslate">SQL</span>. En <span class="notranslate">Target portal IP </span>on choisit la première<span class="notranslate"> IP </span><span class="notranslate">iSCSI</span> du serveur de <span class="notranslate">storage</span>. On valide 2 fois. On répète l'opération pour chaque carte réseau en passant à l'<span class="notranslate">ip</span> suivante donc. |
− | Au final on doit avoir les IPs liées de cette forme : | + | Au final on doit avoir les <span class="notranslate">IPs</span> liées de cette forme : |
<table border="1"> | <table border="1"> | ||
<tr> | <tr> | ||
− | <th>Initiator IP</th> | + | <th><span class="notranslate">Initiator IP</span></th> |
− | <th>Target Portal IP</th> | + | <th><span class="notranslate">Target</span> Portal IP</th> |
<th>Sur le serveur</th> | <th>Sur le serveur</th> | ||
</tr> | </tr> | ||
Ligne 187 : | Ligne 186 : | ||
</table> | </table> | ||
− | * On retourne dans "Favorite Targets" et on regarde les détails de celles-ci. On vérifie qu'on retrouve bien les relations d'IP du tableau précédent. | + | * On retourne dans <span class="notranslate">"Favorite Targets</span>" et on regarde les détails de celles-ci. On vérifie qu'on retrouve bien les relations d'<span class="notranslate">IP</span> du tableau précédent. |
− | === Configuration du Failover des serveurs ServSQL01 et 02 === | + | === Configuration du <span class="notranslate">Failover</span> des serveurs ServSQL01 et 02 === |
− | On commence par installer la feature Failover | + | On commence par installer la <span class="notranslate">feature Failover</span> <span class="notranslate">cluster</span>ing sur les 2 serveurs <span class="notranslate">SQL</span>. |
− | Pendant ce temps là on peut aller dans le disk management (clic droit sur le menu | + | Pendant ce temps là on peut aller dans le <span class="notranslate">disk management</span> (clic droit sur le menu <span class="notranslate">Windows, "disk management"</span>). |
− | De là on passe les disques en "online" et on les initialise (GPT). On créé aussi les partitions et on formate. | + | De là on passe les disques en <span class="notranslate">"online"</span> et on les initialise (<span class="notranslate">GPT</span>). On créé aussi les partitions et on formate. |
− | On lance ensuite "Failover | + | On lance ensuite <span class="notranslate">"Failover cluster Manager"</span> et on fait <span class="notranslate">Validate Configuration</span> afin de vérifier que tout est ok. Quelques avertissements peuvent être présents au niveau du réseau. |
− | On fait ensuite "Create | + | On fait ensuite <span class="notranslate">"Create cluster</span>" : |
− | * On entre le nom des deux serveurs | + | * On entre le nom des deux serveurs <span class="notranslate">SQL</span> |
− | * On entre le nom du cluster, dans notre exemple nous allons prendre | + | * On entre le nom du <span class="notranslate">cluster</span>, dans notre exemple nous allons prendre <span class="notranslate">clusterSQL</span>01 |
− | * On laisse "Add all eligible storage to the cluster" coché | + | * On laisse <span class="notranslate">"Add all eligible storage to the cluster</span>" coché |
* On valide | * On valide | ||
− | Une fois créé, en bas dans "cluster core resources", on clic droit sur "ip address" / properties. On choisit l'ip du cluster. Ensuite on refait clic droit dessus et on fait "bring online" | + | Une fois créé, en bas dans "<span class="notranslate">cluster core resources"</span>, on clic droit sur <span class="notranslate">"ip address" / properties.</span> On choisit l'<span class="notranslate">ip</span> du <span class="notranslate">cluster</span>. Ensuite on refait clic droit dessus et on fait <span class="notranslate">"bring online"</span> |
− | Il faut maintenant configurer le | + | Il faut maintenant configurer le <span class="notranslate">quorum</span>. Pour cela, on clic sur le nom du <span class="notranslate">cluster</span>, puis <span class="notranslate">"more actions"</span> et <span class="notranslate">"configure cluster</span> <span class="notranslate">quorum settings"</span>. |
− | * On fait next | + | * On fait <span class="notranslate">next</span> |
− | * Select the quorum witness | + | * <span class="notranslate">Select the quorum witness</span> |
− | * Configure a disk witness | + | * <span class="notranslate">Configure a disk witness</span> |
− | * On coche le disque correspondant au quorum | + | * On coche le disque correspondant au <span class="notranslate">quorum</span> |
− | * on fait next puis finish. | + | * on fait <span class="notranslate">next</span> puis <span class="notranslate">finish</span>. |
− | * Pour les deux autres disques, on fait "add to | + | * Pour les deux autres disques, on fait <span class="notranslate">"add to clustershared volume" </span> |
− | Nous obtenons le disque des logs en volume 1 et le disque des BDD en volume 2 dans notre cas. | + | Nous obtenons le disque des <span class="notranslate">logs</span> en volume 1 et le disque des <span class="notranslate">BDD</span> en volume 2 dans notre cas. |
− | Nous avons maintenant un cluster configuré. | + | Nous avons maintenant un <span class="notranslate">cluster</span> configuré. |
− | === Installation de SQL 2014 en cluster === | + | === Installation de <span class="notranslate">SQL</span> 2014 en <span class="notranslate">cluster</span> === |
− | Nous commençons par VMSQL01 | + | Nous commençons par <span class="notranslate">VMSQL01</span> |
− | * On installe la | + | * On installe la fonctionnalité <span class="notranslate">.net 3.5</span> |
− | * On lance l'installation, on choisit "New SQL Server Failover cluster installation" | + | * On lance l'installation, on choisit <span class="notranslate">"New SQL Server Failover cluster installation"</span> |
[[Fichier:Install_SQL1.PNG]] | [[Fichier:Install_SQL1.PNG]] | ||
− | * Au choix des | + | * Au choix des fonctionnalités, dans notre cas (future utilisation avec <span class="notranslate">CRM 2015</span>) nous allons cocher <span class="notranslate">Database Engine Services</span>, <span class="notranslate">SQL Server Replication, Full-Text and Semantic Extractions for Search, reporting services, management Tools basic / complete</span> |
− | * Choisissez un nom réseau pour le SQL. Dans notre cas nous allons utiliser SQLServ | + | * Choisissez un nom réseau pour le <span class="notranslate">SQL</span>. Dans notre cas nous allons utiliser <span class="notranslate">SQLServ</span> |
− | * Sur | + | * Sur <span class="notranslate">cluster Disk Selection </span>on choisit ceux qu'on veut utiliser. Dans notre cas, on prend les <span class="notranslate">cluster Disk</span> 1 et 3 (le 2 étant le <span class="notranslate">quorum</span>, le 1 et 2 étant les volumes <span class="notranslate">databases</span> et <span class="notranslate">logs</span>) |
− | * On choisit ensuite l'ip du failover SQL | + | * On choisit ensuite l'<span class="notranslate">ip</span> du <span class="notranslate">failover</span> <span class="notranslate">SQL</span> |
− | * On choisit les comptes et | + | * On choisit les comptes et mots de passe pour les services (dans notre cas nous avons créés des comptes de services dédiés) |
− | * Dans la partie "Database engine Configuration" dans notre cas nous allons utiliser le Mixed mode. | + | * Dans la partie <span class="notranslate">"Database engine Configuration"</span> dans notre cas nous allons utiliser le <span class="notranslate">Mixed mode.</span> |
− | * Toujours dans la même partie, dans l'onglet Data Directories, on spécifie les dossiers des | + | * Toujours dans la même partie, dans l'onglet <span class="notranslate">Data Directories</span>, on spécifie les dossiers des bases de données (on choisit donc nos volumes en <span class="notranslate">iSCSI</span>) |
− | * Pour le reporting Services on met "Install & configure" | + | * Pour le <span class="notranslate">reporting Services</span> on met <span class="notranslate">"Install & configure"</span> |
* On lance l'installation | * On lance l'installation | ||
Ligne 240 : | Ligne 239 : | ||
Si vous rencontrez l'erreur suivante durant l'installation : | Si vous rencontrez l'erreur suivante durant l'installation : | ||
− | + | <span class="notranslate"> | |
<pre> | <pre> | ||
The following error has occurred: | The following error has occurred: | ||
− | Updating permission setting for folder 'C:\ | + | Updating permission setting for folder 'C:\clusterstorage\Volume2' failed. The folder permission setting were supposed to be set to 'D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;CO)(A;OICI;FA;;;S-1-5-80-3880718306-3832830129-1677859214-2598158968-1052248003)'. |
Click 'Retry' to retry the failed action, or click 'Cancel' to cancel this action and continue setup. | Click 'Retry' to retry the failed action, or click 'Cancel' to cancel this action and continue setup. | ||
− | For help, click: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft% | + | For help, click: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20<span class="notranslate">SQL</span>%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0x0ADF5303%25400xBB814387 |
</pre> | </pre> | ||
+ | </span> | ||
+ | Il faut vous rendre dans le volume concerné avec l'explorateur <span class="notranslate">windows</span>, faire s'afficher les fichiers cachés et fichiers protégés du système et changer les droits sur le dossier <span class="notranslate">system volume information</span>. | ||
− | + | Une fois l'intervention terminée, on passe à <span class="notranslate">VMSQL02</span>. | |
− | + | * On installe le <span class="notranslate">.net framework 3.5</span> | |
− | Une fois l'intervention terminée, on passe à VMSQL02. | + | * On lance l'installation avec <span class="notranslate">"Add a node to a SQL Server Failover cluster</span>" |
− | * On installe le .net framework 3.5 | ||
− | * On lance l'installation avec "Add a node to a SQL Server Failover | ||
[[Fichier:Install_SQL2.PNG]] | [[Fichier:Install_SQL2.PNG]] | ||
Ligne 265 : | Ligne 264 : | ||
− | Une fois l'installation terminée, vous avez votre SQL 2014 en failover avec storage connecté en iSCSI sur un Windows 2012 R2. | + | Une fois l'installation terminée, vous avez votre <span class="notranslate">SQL</span> 2014 en <span class="notranslate">failover</span> avec <span class="notranslate">storage</span> connecté en <span class="notranslate">iSCSI</span> sur un <span class="notranslate">Windows</span> 2012 R2. |
− | Vous pouvez apporter des améliorations, comme un lien entre les 2 serveurs pour le heartbeat par exemple, mais c'est optionnel. | + | Vous pouvez apporter des améliorations, comme un lien entre les 2 serveurs pour le <span class="notranslate">heartbeat</span> par exemple, mais c'est optionnel. |
− | |||
− |
Version du 5 octobre 2015 à 14:35
Problème
Nous voulons monter un cluster SQL avec un storage sur un serveur accessible en iSCSI, le tout sur des serveurs en Windows 2012 R2.
Debug
Cette plateforme nécessite 3 serveurs :
- 2 Windows 2012R2 avec SQL 2014 avec 5 ports Ethernet (ce nombre peut être réduit en fonction des besoins) : ServSQL01 et ServSQL02
- 1 Windows 2012R2 en serveur de stockage avec 9 ports Ethernet (ce nombre peut être réduit en fonction des besoins) ServStor01
Solution
En prérequis, on installe Windows 2012 R2 sur les 3 serveurs et on les met à jour. les deux serveurs SQL doivent être sur le même domaine.
Schéma réseau "simplifié" de la plateforme (Les switchs ne sont pas présents afin de bien pouvoir suivre qui est relié à quoi) :
Configuration du serveur ServStor01
Sur ce serveur nous avons 9 ports réseaux utilisés. 1 dédié au management. 2 x 4 ports dédiés à l'iSCSI.
NIC1, NIC2 et NIC3 correspondent aux trois cartes réseaux présentes, chacune possédant 4 ports gigabits. (Voir schéma pour repérer les branchements)
Pour le réseau iSCSI, nous utiliserons des IP en 192.168.0.0/24 Voici les IP configurées sur le serveur ServStor01 :
<span class="notranslate">NIC</span>1 port 1 : Votre<span class="notranslate"> IP </span>de votre serveur <span class="notranslate">NIC</span>1 port 2 : Non utilisé <span class="notranslate">NIC</span>1 port 3 : Non utilisé <span class="notranslate">NIC</span>1 port 4 : Non utilisé <span class="notranslate">NIC</span>2 Port 1 : 192.168.0.11 <span class="notranslate">NIC</span>2 Port 2 : 192.168.0.12 <span class="notranslate">NIC</span>2 Port 3 : 192.168.0.13 <span class="notranslate">NIC</span>2 Port 4 : 192.168.0.14 <span class="notranslate">NIC</span>3 Port 1 : 192.168.0.15 <span class="notranslate">NIC</span>3 Port 2 : 192.168.0.16 <span class="notranslate">NIC</span>3 Port 3 : 192.168.0.17 <span class="notranslate">NIC</span>3 Port 4 : 192.168.0.18
Pour toutes les cartes en 192.168.0.x on va dans les paramètres avancés, onglet DNS, et on décoche la case "Register this connection's addresses in DNS"
[[Fichier:register_DNS.PNG]]
Sur le serveur ServStor01, on installe le rôle iSCSI Target Server
Dans le Server Manager, on va créer les disques iSCSI (qui sont au final des VHDx) et les Target iSCSI qui leur vont avec :
On fait donc :
- task / New iSCSI virtual disk
- On sélectionne le volume
- On lui donne un nom (on peut remarquer son futur chemin en bas)
- On choisit la taille en "Fixed Size" (On laisse "Clear the virtual disk on allocation")
- On choisit "New iSCSI Target"
- On donne un nom à cette "iSCSI Target"
- Cliquez sur ADD dans la partie "access Servers"
- Dans le choix de la méthode d'identification de l'initiateur, choisiez en bas par IP et mettez une IP, on changera ça plus tard.
- On laisse CHAP et Reverse CHAP décoché
- On termine par "Create" puis "close" une fois terminé
A partir de la, vous avez un disque partagé en iSCSI. Répétez l'opération autant de fois que nécessaire. Dans notre cas nous allons créer 3 disques :
- 1 pour les bases de données
- 1 pour les logs
- 1 pour le quorum (1Go suffira)
Configuration iSCSI des serveurs ServSQL01 et 02
Dans cette partie, on va relier les deux serveurs SQL au serveur de storage par des liaisons iSCSI. Nous allons utiliser le MPIO afin d'utiliser nos 4 liens réseaux et de partager la charge.
Configuration IP des serveurs:
NIC1 et NIC2 correspondent aux deux cartes réseaux présentes sur les serveurs. NIC1 possède 4 ports, NIC2 en a 2. Voici la configuration :
ServSQL01 :
<span class="notranslate">NIC</span>1 port 1 : 192.168.0.22 <span class="notranslate">NIC</span>1 port 2 : 192.168.0.26 <span class="notranslate">NIC</span>1 port 3 :<span class="notranslate"> IP </span>du serveur <span class="notranslate">NIC</span>1 port 4 : non utilisé <span class="notranslate">NIC</span>2 port 1 : 192.168.0.25 <span class="notranslate">NIC</span>2 port 2 : 192.168.0.21
ServSQL02 :
<span class="notranslate">NIC</span>1 port 1 : 192.168.0.24 <span class="notranslate">NIC</span>1 port 2 : 192.168.0.28 <span class="notranslate">NIC</span>1 port 3 :<span class="notranslate"> IP </span>du serveur <span class="notranslate">NIC</span>1 port 4 : non utilisé <span class="notranslate">NIC</span>2 port 1 : 192.168.0.27 <span class="notranslate">NIC</span>2 port 2 : 192.168.0.23
Pour toutes les cartes en 192.168.0.x on va dans les paramètres avancés, onglet DNS, et on décoche la case "Register this connection's addresses in DNS"
- Sur les deux serveurs, on installe la feature "Multipath I/O".
- Une fois installé, dans l'interface metro de 2012R2 (cliquez sur le menu démarré donc) tapez simplement "MPIO" et cliquez sur le résultat :
- Dans l'onglet "Discover Multipaths" on coche "Add Support for iSCSI devices" puis on clique sur ADD. Cela propose de redémarrer, on le fait.
- Une fois redémarré, on relance MPIO, et on s'assure que "MSFT2005iSCSIBusType_0x9" est présent dans le "device hardware id".
- On lance ensuite "iSCSIinitiator " sur les deux serveurs SQL
- On se rend dans l'onglet "configuration" et on récupère le "Initiator Name" (sous la forme "iqn.1991-05.com.microsoft:ServSQL01.domain.tld")
- On retourne sur le serveur ServSTOR01
- Dans Server Manager, "File and storage Services", "iSCSI", on clique droit sur la Target puis dans initiators
- On clique sur ADD
- On coche "Enter a value for the selected type"
- On met en type "IQN" et on met l'adresse trouvée plus tôt sur le serveur SQL.
- On clique sur OK, on répète l'opération pour ajouter les "IQN" des deux SQL sur toutes les Targets
- On retire l'IP qu'on avait précédemment mit ici.
- une fois validé, on retourne sur nos serveurs SQL, toujours dans l'iSCSI initiator, on va dans l'onget "Targets" et on se connecte au serveur de storage.
- On va dans l'onglet "Favorite Targets", on sur la Target visible puis on fait remove.
- On retourne sur l'onglet "Targets" puis on va sur properties pour l'une des Target
- La on déconnecte la session active, puis on clique sur Add Session. On coche Multipath, on clique sur advanced. On choisit "Microsoft iSCSI initiator". En initiator IP on choisit la première IP iSCSI du serveur SQL. En Target portal IP on choisit la première IP iSCSI du serveur de storage. On valide 2 fois. On répète l'opération pour chaque carte réseau en passant à l'ip suivante donc.
Au final on doit avoir les IPs liées de cette forme :
Initiator IP | Target Portal IP | Sur le serveur |
---|---|---|
192.168.0.21 | 192.168.0.11 | ServSQL01 |
192.168.0.22 | 192.168.0.12 | ServSQL01 |
192.168.0.23 | 192.168.0.13 | ServSQL02 |
192.168.0.24 | 192.168.0.14 | ServSQL02 |
192.168.0.25 | 192.168.0.15 | ServSQL01 |
192.168.0.26 | 192.168.0.16 | ServSQL01 |
192.168.0.27 | 192.168.0.17 | ServSQL02 |
192.168.0.28 | 192.168.0.18 | ServSQL02 |
- On retourne dans "Favorite Targets" et on regarde les détails de celles-ci. On vérifie qu'on retrouve bien les relations d'IP du tableau précédent.
Configuration du Failover des serveurs ServSQL01 et 02
On commence par installer la feature Failover clustering sur les 2 serveurs SQL.
Pendant ce temps là on peut aller dans le disk management (clic droit sur le menu Windows, "disk management"). De là on passe les disques en "online" et on les initialise (GPT). On créé aussi les partitions et on formate.
On lance ensuite "Failover cluster Manager" et on fait Validate Configuration afin de vérifier que tout est ok. Quelques avertissements peuvent être présents au niveau du réseau.
On fait ensuite "Create cluster" :
- On entre le nom des deux serveurs SQL
- On entre le nom du cluster, dans notre exemple nous allons prendre clusterSQL01
- On laisse "Add all eligible storage to the cluster" coché
- On valide
Une fois créé, en bas dans "cluster core resources", on clic droit sur "ip address" / properties. On choisit l'ip du cluster. Ensuite on refait clic droit dessus et on fait "bring online" Il faut maintenant configurer le quorum. Pour cela, on clic sur le nom du cluster, puis "more actions" et "configure cluster quorum settings".
- On fait next
- Select the quorum witness
- Configure a disk witness
- On coche le disque correspondant au quorum
- on fait next puis finish.
- Pour les deux autres disques, on fait "add to clustershared volume"
Nous obtenons le disque des logs en volume 1 et le disque des BDD en volume 2 dans notre cas.
Nous avons maintenant un cluster configuré.
Installation de SQL 2014 en cluster
Nous commençons par VMSQL01
- On installe la fonctionnalité .net 3.5
- On lance l'installation, on choisit "New SQL Server Failover cluster installation"
- Au choix des fonctionnalités, dans notre cas (future utilisation avec CRM 2015) nous allons cocher Database Engine Services, SQL Server Replication, Full-Text and Semantic Extractions for Search, reporting services, management Tools basic / complete
- Choisissez un nom réseau pour le SQL. Dans notre cas nous allons utiliser SQLServ
- Sur cluster Disk Selection on choisit ceux qu'on veut utiliser. Dans notre cas, on prend les cluster Disk 1 et 3 (le 2 étant le quorum, le 1 et 2 étant les volumes databases et logs)
- On choisit ensuite l'ip du failover SQL
- On choisit les comptes et mots de passe pour les services (dans notre cas nous avons créés des comptes de services dédiés)
- Dans la partie "Database engine Configuration" dans notre cas nous allons utiliser le Mixed mode.
- Toujours dans la même partie, dans l'onglet Data Directories, on spécifie les dossiers des bases de données (on choisit donc nos volumes en iSCSI)
- Pour le reporting Services on met "Install & configure"
- On lance l'installation
Si vous rencontrez l'erreur suivante durant l'installation :
The following error has occurred: Updating permission setting for folder 'C:\clusterstorage\Volume2' failed. The folder permission setting were supposed to be set to 'D:P(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;FA;;;CO)(A;OICI;FA;;;S-1-5-80-3880718306-3832830129-1677859214-2598158968-1052248003)'. Click 'Retry' to retry the failed action, or click 'Cancel' to cancel this action and continue setup. For help, click: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20<span class="notranslate">SQL</span>%20Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=12.0.2000.8&EvtType=0x0ADF5303%25400xBB814387
Il faut vous rendre dans le volume concerné avec l'explorateur windows, faire s'afficher les fichiers cachés et fichiers protégés du système et changer les droits sur le dossier system volume information.
Une fois l'intervention terminée, on passe à VMSQL02.
- On installe le .net framework 3.5
- On lance l'installation avec "Add a node to a SQL Server Failover cluster"
- On suit les étapes, la plupart étant pré-remplies
- On retape les mots de passe si nécessaire.
- On lance l'installation
Une fois l'installation terminée, vous avez votre SQL 2014 en failover avec storage connecté en iSCSI sur un Windows 2012 R2.
Vous pouvez apporter des améliorations, comme un lien entre les 2 serveurs pour le heartbeat par exemple, mais c'est optionnel.