Jan 14 2011

Disques SAN iSCSI, multipath et Partitions LVM sous Linux

Publié par sous Linux,Stockage

Voici comment configurer des disques iSCSI en quelques pas sur Linux. Même si l’installation a été effectuée sur une Redhat Enterprise 5.5 connectée à une baie HP MSA 2012i, toute la configuration reste générique et reste applicable à n’importe quel SAN.
J’ajouterai un article pour voir si les performances sous Linux et Windows sont au rendez-vous sur une même baie iSCSI, vu qu’il semble y avoir beaucoup de problèmes reportés sur le net.
 

iSCSI Setup

Tout d’abord, l’installation du package iscsi tools est requise:

redhat $ yum install iscsi-initiator-utils
debian $ apt-get install open-iscsi

 
Configurer les paramètres de sécurité s’ils ont été appliqués sur le SAN. Sur Ubuntu/Debian, changez aussi startup à auto.

$ vi /etc/iscsi/iscsid.conf
node.session.auth.authmethod = <CHAP most of the time>
node.session.auth.username = <ISCSI_USERNAME>
node.session.auth.auth.password = <Password>
discovery.sendtargets.auth.authmethod = <CHAP most of the time>
discovery.sendtargets.auth.username = <ISCSI_USERNAME>
discovery.sendtargets.auth.password = <Password>

debian $ vi /etc/iscsi/iscsid.conf
# node.startup = manual
node.startup = automatic

 
Vous n’êtes pas obligés de mettre un mot de passe si le réseau est sécurisé avec des vlans ou des switches dédiés. L’authentification ajoute une couche de complexité lors de dépannage.
 
Le nom d’hôte apparaîtra sur le SAN en accord avec la configuration sur le serveur. Par défaut InitiatorName= iqn.1994-05.com.redhat:2ea02d8870eb, il peut être changé pour un nom d’hôte plus court pour une config plus simple.
Il est éditable dans /etc/iscsi/initiatorname.iscsi. Idem s’il n’est pas trouvé automatiquement.
 
Vous pouvez maintenant démarrer le service iscsi, de façon permanente.

$ systemctl enable iscsi
$ systemctl start iscsi
$ systemctl enable iscsid
$ systemctl start iscsid

Connections SAN iSCSI

 
Les cibles peuvent être découvertes grâce à la commande iscsiadm. L’exécution sur 1 IP est normalement suffisante.

$ iscsiadm -m discovery -t sendtargets -p 10.0.0.1
$ iscsiadm -m discovery -t sendtargets -p 10.0.0.2

 
On peut ensuite les afficher

$ iscsiadm -m node
10.1.0.1:3260,2 iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a
10.0.0.1:3260,1 iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a
10.1.0.2:3260,2 iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b
10.0.0.2:3260,1 iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b

 
Et s’y connecter (le service devrait le faire automatiquement aussi)

$ iscsiadm -m node -T iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a --login
Logging in to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a, portal: 10.0.0.1,3260] (multiple)
Logging in to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a, portal: 10.1.0.1,3260] (multiple)
Login to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a, portal: 10.0.0.1,3260] successful.
Login to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.a, portal: 10.1.0.1,3260] successful.

$ iscsiadm -m node -T iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b --login
Logging in to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b, portal: 10.0.0.2,3260] (multiple)
Logging in to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b, portal: 10.1.0.2,3260] (multiple)
Login to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b, portal: 10.0.0.2,3260] successful.
Login to [iface: default, target:
iqn.1986-03.com.hp:storage.msa2012i.0919d81b4b.b, portal: 10.1.0.2,3260] successful.

 
Chaque nouveau disque iscsi devrait être listé en tant que /dev/sd[a-z] ou encore /dev/mapper. Exécuter « fdisk -l » ou « lsblk » pour les afficher. Dans un environnement SAN à 2 contrôleurs, Chaque partition est affichée comme 2 disques séparés. Lire la section Multipath pour configurer la partition physique. Si le SAN est équippé d’un seul contrôleur, vous pouvez travailler directement avec vos /dev/sd[a-z] (pas recommandé évidemment!).
 

Multipath

Installer les outils multipath:

redhat $ yum install device-mapper-multipath
debian $ apt-get install multipath-tools

 
Selon les recommandations du site HP, j’ai configuré /etc/multipath.conf comme ceci. Vous devez consulter le site web de votre fournisseur pour la configuration spécifique de votre matériel.

blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
}
defaults {
        user_friendly_names yes
}
devices {
        device {
                vendor                 "HP"
                product                "MSA2[02]12fc|MSA2012i"
                getuid_callout         "/sbin/scsi_id -g -u -s /block/%n"
                hardware_handler       "0"
                path_selector          "round-robin 0"
                path_grouping_policy   multibus
                failback               immediate
                rr_weight              uniform
                no_path_retry          18
                rr_min_io              100
                path_checker           tur
        }
}

Laisser la section device commentée ne semble avoir aucun effet, donc cette configuration devrait fonctionner pour n’importe quel NAS pourvu que le matériel /dev/sd[a-z] ne soit pas blacklisté.
 
Activer le service multipath:

redhat $ modprobe dm-multipath
toute distrib $ systemctl enable multipathd
toute distrib $ systemctl start multipathd

 
Multipath device mapper va regrouper les disques avec des wwid (world wide id) identiques automatiquement. Pour afficher la topologie multipath:

$ multipath -ll
mpath1 (3600c0ff000d8239a6b082b4d01000000) dm-17 HP,MSA2012i
[size=9.3G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
 \_ 8:0:0:30 sde 8:64  [active][ready]
 \_ 9:0:0:30 sdf 8:80  [active][ready]
mpath0 (3600c0ff000d8239a1846274d01000000) dm-15 HP,MSA2012i
[size=1.9G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
 \_ 9:0:0:29 sdb 8:16  [active][ready]
 \_ 8:0:0:29 sdd 8:48  [active][ready]


Si rien ne s’affiche, exécuter multipath -v3 pour debugguer. Il est probable que les disques sont blacklistés.

Partitionnement LVM

 Les partitions résultantes à utiliser sont les /dev/mapper/mpath[0-9] dans mon cas.
J’initialise les disques avec LVM pour des facilités d’utilisation: LVM permet de changer la taille des partitions à chaud, étendre une partition sur un autre disque, faire des snapshots, etc… LVM est un must, si vous ne l’utilisez pas, commencez de suite!

$ pvcreate /dev/mapper/mpath0
$ vgcreate myVolumeGroup /dev/mapper/mpath0
$ lvcreate -n myVolume -L10G /dev/myVolumeGroup
$ mkfs.ext4 /dev/myVolumeGroup/myVolume


Operations sur les LUNs


Ajouter un LUN

Une fois qu’un LUN a été créé sur le SAN, le serveur ne détectera le disque qu’après rafraichissement

$ iscsiadm -m node --rescan

Les disques iSCSI maintenant visibles, multipath créera la nouvelle partition automatiquement.
 

Suppression d’un LUN

Après avoir démonté les systèmes de fichiers relatif au disque, supprimer les LUNs sur le SAN et exécuter « multipath -f mpath? » pour le matériel en question
 

Agrandir un volume

LVM est remarquable puisque l’on peut retailler un volume physique plutôt que d’en recréer un à chaque fois et de l’ajouter à un volume group. Ainsi, on garde une configuration claire sur le serveur et le SAN.
Rafraichir la taille des disques

$ iscsiadm -m node --rescan


Vérifier avec fdisk -l que la taille du disque correspond à la taille sur le SAN

$ /etc/init.d/multipathd reload


Vérifier avec multipath -ll que la taille de la partition a bien augmenté

$ pvresize /dev/mapper/mpath0

Le nouvel espace disque devrait être disponible. Vous pouvez agrandir le volume avec lvresize, -r pour étendre le système de fichiers également.
 

Répartition de charge et bascule

Sous cette configuration, le trafic est réparti sur les 2 NICs. Si une interface tombe, tout le trafic transite via le 2nd lien.
J’ai lancé la copie d’un très gros fichier sur les disques iscsi et arrêté l’une des interfaces. La charge CPU est montée très vite puis redescendue dès que le timeout de la bascule a expiré. La copie en cours a alors repris sur le 2nd lien. Sachant cela, paramétrer la valeur du timeout aussi basse que possible, ex 5 sec.

 

2 réponses

Déc 08 2010

Analyse des écrans bleus Windows

Publié par sous Windows

Malgré ce que peuvent en dire certains, les fameux écrans bleus existent toujours dans la famille des serveurs Windows. Suite à un crash – et donc l’écran bleu – Windows génère un dump de la mémoire sous C:/Windows/Minidump. Le nom de chaque fichier contient la date et l’heure, information utile puisqu’elle permet de vérifier à la fois la fréquence et les occurrences des crash, mêmes ceux qui se sont produits de nuit par exemple. Ces dumps sont aussi utiles pour l’analyse de la cause d’un écran bleu.

Analyse écran bleu


Activation des Minidumps des Ecrans Bleus

Ils sont normalement activés par défaut sous Windows mais cela vaut le coup de vérifier si vous avez des plantages créant des écrans bleus et que C:/Windows/Minidump reste vide.
 
A partir du panneau de configuration:

– Aller dans Système
– Cliquer sur l’onglet « Avancé »
– Démarrage et restauration -> Paramètres
– Activer « Ecrire les évènements dans les logs système »
– Désactiver le redémarrage automatique
– Sélectionner l’information de débuggage suivante:
* Small memory dump (64 Kb)
* Small Dump Directory : %SystemRoot%\Minidump

 
Fermer toutes les boîtes de dialogue et redémarrer l’ordinateur.
 

Reproduire le Plantage Windows

Faîtes les manipulations nécessaires pour faire planter la machine à nouveau. Si vous ne savez pas reproduire le crash, les dumps des écrans bleus vont s’accumuler dans le répertoire au fil du temps, et vous pourrez les analyser plus tard.
 

Installation des outils d’analyse

Le kit « Windows debugging tools » contient tous les outils nécessaires à l’analyse des dumps. Vous pouvez le télécharger sur le site de Microsoft.
 

Analyse des Dumps

Nous allons maintenant extraire des informations des fichiers minidumps. Nous utilisons la commande kd des outils de debug Windows pour l’analyse de l’écran bleu.

Ouvrir une fenêtre DOS (Démarrer -> Exécuter -> « cmd »)

cd \program files\debugging tools
rem (Ou le chemin choisi lors de l'installation de Windows debugging tools)
kd -z C:\WINDOWS\Minidump\Mini???????-??.dmp
kd> .logopen c:\debuglog.txt
kd> .sympath srv*c:\symbols*http://msdl.microsoft.com/download/symbols
kd> .reload;!analyze -v;r;kv;lmnt;.logclose;q

 
Vous avez maintenant un fichier debuglog.txt dans c:\, ouvrez-le avec Notepad ou tout autre éditeur de texte.
 

Conclusion

Vous avez des chances de trouver le nom du programme ou driver causant les crashes dans les sections MODULE_NAME et IMAGE_NAME. L’origine des écrans bleus connue, vous pouvez maintenant y remédier.

 

Aucune Réponse

Oct 28 2010

Comment agrandir une partition Windows

Publié par sous Windows

Agrandir un volume en ligne de commande s’avère assez simple sur Windows avec l’utilitaire Diskpart. Il est disponible de base sur toutes les versions de Windows. Ceci est nécessaire à chaque fois qu’une partition est agrandie sur un SAN par exemple.
Notez que cela ne fonctionne que sur les partitions secondaires, vous aurez besoin d’un outil spécial pour agrandir le disque C:.

Microsoft Windows [version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrateur>diskpart

Microsoft DiskPart version 5.2.3790.3959
Copyright (C) 1999-2001 Microsoft Corporation.
Sur l'ordinateur : SERVEUR

DISKPART> select volume Y

Le volume 22 est le volume sélectionné.

DISKPART> extend

DiskPart a correctement étendu le volume.

DISKPART> exit

Quitte DiskPart...
 

Aucune Réponse

Oct 05 2010

Forcer la Redirection HTTPS sous Apache

Publié par sous Apache

Configurez Apache pour rediriger une URL HTTP en HTTPS. Ceci peut être réalisé avec mod_rewrite.

LoadModule rewrite_module modules/mod_rewrite.so

RewriteEngine on
# Activation Log Rewrite
RewriteLog "C:\Apache\logs\rewrite.log"
RewriteLogLevel 1

RewriteCond %{HTTPS} off
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]


RewriteCond %{HTTPS} off filtre les requêtes entrantes dont le protocole n’est pas HTTPS.

 

Aucune Réponse

Sep 29 2010

Analyser et monitorer le trafic sur PIX/ASA

Publié par sous Cisco

Comment analyser le trafic traversant votre firewall Cisco PIX ou ASA lorsque les temps de réponse deviennent extrêmement lents, la bande passante est saturée ou anormalement élevée, ou que les débits de téléchargement sont proches de 0?
 

Statistiques des access lists

Vous avez probablement mis en place des access lists pour restreindre le trafic sortant ou entrant sur votre matériel. C’est la fonction principale de tout firewall. Les statistiques des ACL permettent d’obtenir rapidement de bonnes indications sur la nature du trafic. Vous pouvez aussi ajouter des règles pour affiner la destination du trafic.

cisco_asa# show access-list acl_in
access-list acl_in; 17 elements
access-list acl_in line 1 permit tcp any any eq domain (hitcnt=7)
access-list acl_in line 2 permit udp any any eq domain (hitcnt=40379)
access-list acl_in line 3 permit tcp any any eq www (hitcnt=157103)
access-list acl_in line 4 permit tcp any any eq 8080 (hitcnt=466)
access-list acl_in line 5 permit tcp any any eq https (hitcnt=1910)
access-list acl_in line 6 permit tcp any any eq ftp (hitcnt=2)
access-list acl_in line 7 permit tcp any any eq smtp (hitcnt=550)
access-list acl_in line 8 permit tcp any any eq pop3 (hitcnt=14660)

 
Réinitialisez les compteurs depuis le mode de configuration pour avoir les dernières statistiques:

cisco_asa# configure terminal
cisco_asa(config)# clear access-list acl_in counters


Trafic

Il est possible d’afficher le trafic de chaque interface du PIX. Il vaut mieux remettre à 0 les données pour avoir des résultats plus récents et plus précis.

cisco_asa# clear traffic

 
Attendez un peu pour collecter les données sur cette période de temps avant d’afficher le trafic global.

cisco_asa# show traffic
outside:
        received (in 9.570 secs):
                133 packets     19918 bytes
                13 pkts/sec     2081 bytes/sec
        transmitted (in 9.570 secs):
                199 packets     22997 bytes
                20 pkts/sec     2403 bytes/sec
inside:
        received (in 9.570 secs):
                158 packets     14392 bytes
                16 pkts/sec     1503 bytes/sec
        transmitted (in 9.570 secs):
                102 packets     14264 bytes
                10 pkts/sec     1490 bytes/sec


Type de trafic

Pour afficher le nombre de connexions par seconde par type de trafic, des couches transport aux applications:

cisco_asa# show perfmon

PERFMON STATS:    Current      Average
Xlates               0/s          0/s
Connections          0/s          0/s
TCP Conns            0/s          0/s
UDP Conns            0/s          0/s
URL Access           0/s          0/s
URL Server Req       0/s          0/s
TCP Fixup           27/s          1/s
TCPIntercept         0/s          0/s
HTTP Fixup           5/s          2/s
FTP Fixup            0/s          0/s
AAA Authen           0/s          0/s
AAA Author           0/s          0/s
AAA Account          0/s          0/s


Détail des Sessions

Affichez le nombre de connexions actuelles et maximum comme ceci

cisco_asa# show conn count
35 in use, 195 most used

 
Ou de façon plus détaillée en affichant chaque connexion établie:

cisco_asa# show conn
33 in use, 195 most used
TCP out 172.18.0.1:23 in 192.168.9.101:1155 idle 0:00:32 Bytes 19354 flags UIO
TCP out 172.18.0.1:23 in 192.168.9.107:1151 idle 0:03:49 Bytes 156840 flags UIO
...

 
Très utile puisque l’on peut voir le nombre d’octets transférés pour chaque connexion.
 

Mémoire et processeur

Et bien sûr, contrôlez les ressources mémoire et CPU

cisco_asa# show cpu usage
CPU utilization for 5 seconds = 2%; 1 minute: 2%; 5 minutes: 6%

cisco_asa# show memory
Free memory:         5069344 bytes
Used memory:        11707872 bytes
-------------     ----------------
Total memory:       16777216 bytes


Monitoring sur le long terme

De nombreux outils sont disponibles pour mesurer le trafic de chaque interface et l’exporter sous forme de graphiques. On n’est capable de détecter une anomalie qu’en comparant les données actuelles avec celles précédemment enregistrées. Un graphique est le meilleur moyen d’y parvenir.
Parmi les outils les plus populaires, j’ai retenu Cacti, MRTG ainsi que Smokeping. Ce dernier permet de visualiser la latence d’un lien.

Vous trouverez plus d’informations à ce sujet dans la documentation en ligne de Cisco

 

Aucune Réponse

« Précédent - Suivant »