Catégorie : Hardware

22 décembre 2017 /

logind est le composant en charge de la gestion des sessions sur les systèmes avec systemd.
C’est lui qui détermine notamment le comportement d’un ordinateur portable lorsque l’on ferme l’écran (Lid Switch) via la variable  HandleLidSwitch de son fichier de configuration :  /etc/systemd/logind.conf .
Sa valeur par défaut est suspend (mise en veille).

Les valeurs acceptées pour la variable HandleLidSwitch:

  • ignore (ne fait rien)
  • poweroff (arrêt)
  • reboot (redémarrage)
  • halt (arrêt)
  • kexec
  • suspend (veille, le comportement par défaut)
  • hibernate (hibernation)
  • hybrid-sleep (hibernation avec conservation des données en mémoire)
  • lock (Verrouille de la session)

Donc si je souhaite que mon portable reste actif lorsque l’écran est fermé:

vi  /etc/systemd/logind.conf

Puis on modifie le paramètre HandleLidSwitch de cette façon:

#HandleLidSwitch=suspend

devient

HandleLidSwitch=ignore

Et on termine par un petit redémarrage:

reboot

15 décembre 2017 /

MT sert à contrôler le lecteur de bandes magnétiques à un assez bas niveau. Cette application permet d’ajouter des tags sur la bande, éjecter la bande, rebobiner la bande et se déplacer par rapport aux tags.

Les commandes de bases

Voir les informations de la bande:

mt -f /dev/st0 status

Rembobiner la bande:

mt -f /dev/st0 rewind

Voir le contenu (compressé) de la bande:

tar -tzf /dev/st0

Si vous avez ce message d’erreur:

tar (child): /dev/st0 : read impossible: Ne peut allouer de la mémoire
tar (child): Début de la cartouche atteinte ; arrêt du programme.
tar (child): Error is not recoverable: exiting now
gzip: stdin: unexpected end of file
tar: Child returned status 2
tar: Error is not recoverable: exiting now

Cela est probablement dû à l’option -z de tar, les données sur la bande ne sont pas compressées:

Voir le contenu (non compressé) de la bande:

tar -tf /dev/st0

Si vous avez ce message:

tar: /dev/st0 : read impossible: Ne peut allouer de la mémoire
tar: Début de la cartouche atteinte ; arrêt du programme.
tar: Error is not recoverable: exiting now

Cela est probablement dû à la taille de block (512 par default) qui a été spécifie lors de la création de l’archive.
En effet, tar ne détermine pas automatiquement la taille des blocs, Il faudra donc le spécifier lors de la restauration.
Pour cela, il faut connaitre la taille de block qui a été spécifié lors de la création:

stat -f /dev/st0

Fichier : « /dev/st0 »
Identif. : 0 Longueur du nom : 255 Type : tmpfs
Taille de bloc : 4096 Taille de bloc fondamentale : 4096
Blocs : total : 2560 libre : 2560 disponible : 2560
Inœuds : total : 2042000 libre : 2041603

On peut maintenant voir le contenu de la bande dans le lecteur:

tar -b 4096 -tf /dev/st0

Si il y a beaucoup de fichiers sur la bande:

tar -b 4096 -tf /dev/st0 > liste_fichier_bande.txt

Pour éjecter la bande:

mt -f /dev/st0 eject

Rembobiner et éjecter la bande:

mt -f /dev/st0 offline

Effacer la bande:

mt -f /dev/st0 erase

Connaître sa position (block) sur la bande:

mt -f /dev/st0 tell

Se déplacer à la fin des données sur la bande :

mt -f /dev/nst0 eod

Pour se positionner devant un bloc:

mt -f /dev/nst0 seek n°_de_block

Se déplacer à l’enregistrement précédent:

mt -f /dev/nst0 bsfm 1

Se déplacer à l’enregistrement suivant:

mt -f /dev/nst0 fsf 1

Faire une sauvegarde du dossier /etc et /home avec compression:

tar -czf /dev/st0 /etc /home

Restaurer tous les fichiers de la bande vers /home:

mt -f /dev/st0 rewind
tar -xzf /dev/st0 /home

Sauvegarder sur plusieurs bandes le dossier /home:

tar -clpMzvf /dev/st0 /home

Restaurer à partir de plusieurs bande le dossier /home:

tar -xlpMzvf /dev/st0 /home

Comparer la sauvegarde sur bande au dossier /home:

tar -dlpMzvf /dev/st0 /home

Remarque:

-d : trouve les différences entre l'archive et le repertoire
-x : extraire des fichiers d'une archive
-l : lister le contenu d'une archive
-p : ignore le umask lors de l'extraction
-M : créer / lister / extraire des archives multi-volumes (plusieurs bandes)
-z : compression avec Gzip
-v : mode verbial

Aller plus loin:

Voici un petit script qui affiche la liste des fichiers sauvegardés (avec tar) sur une bande avec en préambule de chaque sauvegarde le numéro du bloc à partir duquel démarre la sauvegarde:

#!/bin/sh
# Script affichant le contenu d'une bande en spécifiant le numero de block
#
#
BANDE=/dev/st0
COMPRESS=Y
#
# On rembobine
echo "Lecteur $BANDE - Compression $COMPRESS"
echo -n "Rembobinage "
MSG=$(mt -f $BANDE rewind 2>&1)
if [ $? -ne 0 ] ; then
echo "Erreur : " $MSG
exit 1;
fi
echo ": OK"
echo "Liste des fichiers"
mt -f $BANDE tell
if [ "$COMPRESS" == "Y" ] ; then
CMD=tzvf
else
CMD=tvf
fi
LOOP=0
while [ $LOOP -eq 0 ] ; do
tar -$CMD $BANDE 2> /dev/null
LOOP=$?
if [ $LOOP -eq 0 ] ; then mt -f $BANDE tell
fi
done
echo "Pour se positionner devant un bloc, avant restauration, faire mt -f $BANDE seek n"
mt -f $BANDE rewind

Exemple d’utilisation :

./liste_bande.sh

Lecteur /dev/st0 - Compression Y
Rembobinage : OK
Liste des fichiers
At block 0.
-rw------- 1 romain romain 23415 déc. 15 09:07 .bash_history
-rw-r--r-- 1 romain romain 220 nov. 2 14:53 .bash_logout
-rw-r--r-- 1 romain romain 3526 nov. 2 14:53 .bashrc
At block 2.
-rw------- 1 romain romain 10549 déc. 5 11:14 .viminfo
-rw------- 1 romain romain 51 déc. 7 19:35 .Xauthority
-rw------- 1 romain romain 358 déc. 15 09:03 .xsession-errors
At block 4.

Pour se positionner devant un bloc, avant restauration:

mt -f /dev/nst0 seek n°_de_block

Par exemple, pour restaurer le fichier « .bashrc » situé au block 4 :

mt -f /dev/st0 rewind
mt -f /dev/st0 seek 2
tar -xzvf /dev/st0 .bashrc

Remarque :
Si un utilisateur autre que root doit accéder au lecteur de bande, il faudra l’ajouter dans le groupe tape pour qu’il ait les droits d’accès aux périphérique /dev/nst0 et /dev/st0

 

13 novembre 2017 /

On commence par se brancher au port console en USB

On se connecte au port console (voir dmesg pour le nom du terminal):

minicom -D /dev/ttyACM0

Une fois connecté, nous allons lister les vlan présent et les ports qui y sont associés:

show vlan

Maintenant que nous voyons la configuration actuelle, nous élevons nos droits  pour pouvoir éditer la configuration:

enable

Password:

On passe en mode configuration:

conf t

On sélectionne le port que nous souhaitons déplacer, ici le n°29:

interface gi1/0/29

ou alors une plage de port, ici du n°29 au n°39:

interface range gi1/0/29-39

On définit le port sélectionné en tant que port d’accès:

switchport mode access

On affecte maintenant le port d’accés au vlan voulu, ici le 202:

switch port access vlan 202

On vérifie que notre port à bien été déplacé de vlan:

do show vlan

Si tout est bon, on sort du mode configuration:

end

Et bien sur, on sauvegarde la configuration:

wr
copy running-config startup-config

6 avril 2017 /

Création d’un volume raid de niveau 5 nommé /dev/md0 , avec 4 disques de 4To, /dev/sdc /dev/sdd /dev/sde et /dev/sdf .

Une fois les disque installé physiquement sur le système, nous pouvons directement lancer la création du volume raid:

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sdc /dev/sdd /dev/sde /dev/sdf

On peut voir l’état d’avancement de la création du volume via cette commande:

mdadm --detail /dev/md0

/dev/md0:
Version : 1.2
Creation Time : Tue Apr 4 18:09:15 2017
Raid Level : raid5
Array Size : 11720661504 (11177.69 GiB 12001.96 GB)
Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Tue Apr 4 19:43:38 2017
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1

Layout : left-symmetric
Chunk Size : 512K

Rebuild Status : 26% complete

Name : starmind:0 (local to host starmind)
UUID : ea7dacbd:06f0d43b:4c5e76b1:c3db7531
Events : 1058

Number Major Minor RaidDevice State
0 8 32 0 active sync /dev/sdc
1 8 48 1 active sync /dev/sdd
2 8 64 2 active sync /dev/sde
4 8 80 3 spare rebuilding /dev/sdf

On voit bien que le volume raid est en RAID5, avec 4 disques de 4000GB formant un volume de 12000GB.

Le temps de la construction du volume raid, mdadm va automatiquement mettre le volume en mode degraded en mettant un disque en spare rebuilding, cela est normal. C’est plus rapide pour construire la parité du volume Raid5 (cependant, on peut s’en passer avec l’option –force).

On peut voir également les informations des disques:

mdadm -E /dev/sd[c-f]

/dev/sdc:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : ea7dacbd:06f0d43b:4c5e76b1:c3db7531
Name : starmind:0 (local to host starmind)
Creation Time : Tue Apr 4 18:09:15 2017
Raid Level : raid5
Raid Devices : 4

Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
Array Size : 11720661504 (11177.69 GiB 12001.96 GB)
Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=688 sectors
State : clean
Device UUID : a07baebb:348c86b8:534bddee:3532843a

Internal Bitmap : 8 sectors from superblock
Update Time : Tue Apr 4 19:45:26 2017
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 4f0caef1 - correct
Events : 1078

Layout : left-symmetric
Chunk Size : 512K

Device Role : Active device 0
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sdd:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : ea7dacbd:06f0d43b:4c5e76b1:c3db7531
Name : starmind:0 (local to host starmind)
Creation Time : Tue Apr 4 18:09:15 2017
Raid Level : raid5
Raid Devices : 4

Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
Array Size : 11720661504 (11177.69 GiB 12001.96 GB)
Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=688 sectors
State : clean
Device UUID : 420546c7:1341a8f9:9aee0da6:db06d898

Internal Bitmap : 8 sectors from superblock
Update Time : Tue Apr 4 19:45:26 2017
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : b14a6560 - correct
Events : 1078

Layout : left-symmetric
Chunk Size : 512K

Device Role : Active device 1
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sde:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : ea7dacbd:06f0d43b:4c5e76b1:c3db7531
Name : starmind:0 (local to host starmind)
Creation Time : Tue Apr 4 18:09:15 2017
Raid Level : raid5
Raid Devices : 4

Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
Array Size : 11720661504 (11177.69 GiB 12001.96 GB)
Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=688 sectors
State : clean
Device UUID : d85f5ebe:f6438e74:d7791ba2:264f4f27

Internal Bitmap : 8 sectors from superblock
Update Time : Tue Apr 4 19:45:26 2017
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : adcd9661 - correct
Events : 1078

Layout : left-symmetric
Chunk Size : 512K

Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

/dev/sdf:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x3
Array UUID : ea7dacbd:06f0d43b:4c5e76b1:c3db7531
Name : starmind:0 (local to host starmind)
Creation Time : Tue Apr 4 18:09:15 2017
Raid Level : raid5
Raid Devices : 4

Avail Dev Size : 7813775024 (3725.90 GiB 4000.65 GB)
Array Size : 11720661504 (11177.69 GiB 12001.96 GB)
Used Dev Size : 7813774336 (3725.90 GiB 4000.65 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Recovery Offset : 2122394472 sectors
Unused Space : before=262056 sectors, after=688 sectors
State : clean
Device UUID : ffe28207:d0c18a67:34dca207:0c8354e6

Internal Bitmap : 8 sectors from superblock
Update Time : Tue Apr 4 19:45:31 2017
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 8cfc5917 - correct
Events : 1079

Layout : left-symmetric
Chunk Size : 512K

Device Role : Active device 3
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)

Il ne nous reste plus qu’a surveiller la construction du volume raid via le fichier /proc/mdstat :

watch -n1 cat /proc/mdstat

Toutes les 1,0s: cat /proc/mdstat Tue Apr 4 19:50:05 2017

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdf[4] sde[2] sdd[1] sdc[0]
11720661504 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
[=====>...............] recovery = 28.3% (1108992916/3906887168) finish=267.2min speed=174480K/sec
bitmap: 0/30 pages [0KB], 65536KB chunk

unused devices: <none>

Une fois arrivé à 100%,on vérifie l’etat du volume raid:

mdadm --detail /dev/md0

/dev/md0:
Version : 1.2
Creation Time : Wed Apr 5 07:29:45 2017
Raid Level : raid5
Array Size : 11720661504 (11177.69 GiB 12001.96 GB)
Used Dev Size : 3906887168 (3725.90 GiB 4000.65 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent

Intent Bitmap : Internal

Update Time : Wed Apr 5 15:32:03 2017
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 512K

Name : starmind:0 (local to host starmind)
UUID : 7d6b1302:99b9e5f2:798c0e9d:6dde9fc0
Events : 4853

Number Major Minor RaidDevice State
0 8 32 0 active sync /dev/sdc
1 8 48 1 active sync /dev/sdd
2 8 64 2 active sync /dev/sde
4 8 80 3 active sync /dev/sdf

Si tout est bon, on régénère le fichier de configuration :

/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf

Une fois la configuration regenerée, on va éditer le fichier de configuration pour monitorer le volume raid etre ainsi être avertie en cas de disque défaillant:

vi /etc/mdadm/mdadm.conf

Puis on renseigne la variable MAILADDR avec l’adresse courriel voulu.

MAILADDR utilisateur@courriel.fr

Pour que cela fonctionne, il faudra bien sur avoir configuré le système pour qu’il puisse envoyer des courriels.

 

Si un disque devient défectueux, il suffit de le retirer physiquement et de le remplacer puis de faire cette commande (ici pour le remplacement de /dev/sdc):

mdadm --manage /dev/md0 --add /dev/sdc

On peut maintenant voir le volume raid se reconstruire:

mdadm --detail /dev/md0

11 janvier 2017 /

Le but de la manœuvre est de brasser des ports HBA (auquel est lié un WWN unique pour chaque port) d’un serveur sur deux switchs Brocade (pour la tolérance au panne), pour qu’il soit raccordé à une baie de stockage VNX5300.

Les WWNs à raccorder sont les suivant:

WWN du port HBA n°1 du serveur => 10:00:00:90:fa:13:cc:44
WWN du port HBA n°2 du serveur => 10:00:00:90:fa:13:cc:45

Pour y parvenir, nous allons commencer par raccorder via une fibre optique un port sur le switch n°1 et le deuxième sur le switch n°2.
Les ports du switch Brocade sont numérotés, cela va nous faciliter la tache. Je vais donc brasser sur le port n°3 pour chacun des switchs.

Une fois que cela est fait, en se connectant via SSH aux deux switchs, on peux voir/vérifier le numéro de WWN connecté au port n°3 via la commande « switchshow« .

Switch n°1:

switchshow

........
Index Port Address Media Speed State     Proto
==============================================
0   0   310c00   id     N8   No_Light    FC
1   1   310400   id     N8   No_Light    FC
2   2   310200   id     8G   No_Light    FC
3   3   313600   id     8G   Online      FC  F-Port  10:00:00:90:fa:13:cc:45
4   4   310100   id     N8   Online      FC  F-Port  xx:xx:xx:xx:xx:xx:xx:xx
5   5   310500   id     N8   No_Light    FC
6   6   310600   id     N8   No_Light    FC
7   7   310700   id     N8   No_Light    FC
....

Switch n°2:

switchshow

.....
Index Port Address Media Speed State     Proto
==============================================
0   0   320000   id     N8   Online      FC  F-Port  xx:xx:xx:xx:xx:xx:xx:xx
1   1   320100   id     N8   Online      FC  F-Port  xx:xx:xx:xx:xx:xx:xx:xx
2   2   320200   id     N8   No_Light    FC
3   3   320300   id     N8   Online      FC  F-Port  10:00:00:90:fa:13:cc:44
4   4   320400   id     N8   No_Light    FC
5   5   320500   id     N8   No_Light    FC
6   6   320600   id     N8   No_Light    FC
7   7   320700   id     N8   No_Light    FC
8   8   320800   id     N8   Online      FC  F-Port  xx:xx:xx:xx:xx:xx:xx:xx
.....

Les numéros WWNs des ports HBA, correspondent bien à ceux de la machine physique que l’on vient de brasser.

Si il ne correspond pas à celui désiré, c’est que vous vous êtes trompé de port  lors du branchement sur le serveur.
Il va falloir alors trouver le bon port, en les testant un part un (débranchement+branchement+commande switchshow).

Avant de créer une nouvelle zone, nous allons sauvegarder la configuration des deux switchs pour palier à toutes mauvaises manipulations.
Dans le cas présent, j’utilise un serveur FTP acceptant les connections en mode anonymous, et ayant pour IP, 10.0.0.27:

Switch n°1:

configupload -all -p ftp 10.0.0.27,anonymous,sauvegarde_switch_1.txt

Switch n°2:

configupload -all -p ftp 10.0.0.27,anonymous,sauvegarde_switch_2.txt

Je vais également sauvegarder la sortie standard dans un fichier texte, de la commande cfgshow sur les deux switchs.

Switch n°1:

cfgshow

Switch n°2:

cfgshow

Maintenant que cela est fait, nous allons pouvoir créer notre zone en toute sérenité.

On commence donc par créer un alias pour chacun des identifiants WWNs des ports HBA:

Switch n°1:

alicreate "CTZLABTGLB001_emulex2", "10:00:00:90:fa:13:cc:45"

Switch n°2:

alicreate "CTZLABTGLB001_emulex1", "10:00:00:90:fa:13:cc:44"

Ensuite nous allons créer une zone spécifique:

Switch n°1:

zonecreate "CTZLABTGLB001_VNX", "CTZLABTGLB001_emulex2"

Switch n°2:

zonecreate "CTZLABTGLB001_VNX", "CTZLABTGLB001_emulex1"

Il faut maintenant ajouter à la zone, les alias des WWNs des ports HBA qui eux sont connectés à la baie VNX5300 et non pas au serveur.
Pour les identifier (déjà existant), nous passons par la commande alishow:

Switch n°1:

alishow

...
alias: VNX5300_SPA_FC1
50:06:01:65:3d:e0:2d:7e
alias: VNX5300_SPB_FC0
50:06:01:6c:3d:e0:2d:7e
...

Switch n°2:

alishow

...
alias: VNX5300_SPA_FC0
50:06:01:64:3d:e0:2d:7e
alias: VNX5300_SPB_FC1
50:06:01:6d:3d:e0:2d:7e
....

Nous connaissons maintenant les alias pour les WWNs branchés sur la baie de stockage VNX5300.

Nous allons donc les ajouter à la zone créée précédemment:

Switch n°1:

zoneadd "CTZLABTGLB001_VNX", "VNX5300_SPA_FC1; VNX5300_SPB_FC0"

Switch n°2:

zoneadd "CTZLABTGLB001_VNX", "VNX5300_SPA_FC0; VNX5300_SPB_FC1"

 

On peut voir la configuration des zones existantes  et celle que l’on vient de faire via la commande zoneshow:

Switch n°1:

zoneshow

Switch n°2:

zoneshow

Si cela correspond bien à la configuration voulu, nous allons enregistrer cette configuration.

Pour cela nous devons connaître le nom utilisé pour la configuration (par défaut, le nom de la configuration est « DEFAULT« ), via cette commande:

Switch n°1:

cfgshow | grep cfg

....
cfg:   DEFAULT

Switch n°2:

cfgshow | grep cfg

....
cfg:   DEFAULT

 

Maintenant que nous connaissons le nom de la configuration, nous allons lui ajouter notre zone:

Switch n°1:

cfgadd "DEFAULT", "CTZLABTGLB001_VNX"

Switch n°2:

cfgadd "DEFAULT", "CTZLABTGLB001_VNX"

 

On sauvegarde:

Switch n°1:

cfgsave

Switch n°2:

cfgsave

 

Il ne nous reste plus qu’à l’activer:

Switch n°1:

cfgenable "DEFAULT"

Switch n°2:

cfgenable "DEFAULT"

Voila,

il ne reste plus qu’a y affecter des LUNs.