Auteur/autrice : starmate

8 février 2017 /

Arrêt du LDOM

On commence par arrêter le LDOM :

ldm stop starmate

Suppression des ressources associés au LDOM

On désassocie le LDOM de ses ressources virtuelles :

ldm unbind starmate

Puis on supprime le CDROM ainsi que le LUN du LDOM :

ldm remove-vdisk cdrom starmate
ldm remove-vdisk disk0-l-starmate starmate

On désassocie ensuite le switch virtuel :

ldm remove-vnet vnet0 starmate

Par soucis de clarté, on supprime le cdrom virtuel ainsi que le disque virtuel de l’hyperviseur cette fois :

ldm remove-vdsdev cdrom-starmate@primary-vds0
ldm remove-vdsdev disk0-l-starmate@primary-vds0

Suppression du LDOM

On peut maintenant supprimer le LDOM :

ldm destroy starmate

6 février 2017 /

Présentation d’un LUN à l’hyperviseur Solaris

Une fois que le LUN a été créé et présenté au serveur Solaris via Unisphere, on peut le voir sur l’hyperviseur, nommé « Primary » via la commande format:

echo | sudo format

Particularité dans le cas où nous passerions par un espace de stockage ZFS à la place d’un LUN:

zfs create rpool/ldoms
zfs create -V 30g rpool/ldoms/starmate

Préparation du LUN

On commence par rechercher le LUN précédemment présenté à l’hyperviseur Solaris :

echo | sudo format

Attention, si l’ID du VLUN est égal à 0, alors il sera vu en LUNZ

nous allons donner un nom au LUN par soucis de clarté :

format c0t60060160F1F032008D0F62E696D9E611d0

vol-name "l-starmate"
q

Vérification des ressources disponibles sur l’hyperviseur

Avant de créer le LDOM, il peut être utile de vérifier les ressources disponibles sur l’hyperviseur, pour cela nous ferons cette commande:

ldm ls-devices -a

On peut également voir les ressources (Range de la console, liste des Switch virtuel et des devices virtuels existant) de l’hyperviseur via cette commande :

ldm list-services primary

Intégration du LUN dans l’hyperviseur

On intègre le LUN dans l’hyperviseur (primary-vds0) en lui donnant un nom (disk0-l-starmate):

ldm add-vdsdev /dev/dsk/c0t60060160F1F032008D0F62E696D9E611d0s2 disk0-l-starmate@primary-vds0

Note : il est important d’ajouter « s2 » à la fin de l’ID, car cela prend le LUN en entier

Si ZFS a ét choisi à la place d’un LUN, il faudra alors procéder comme cela :

ldm add-vdsdev /dev/zvol/dsk/rpool/ldoms/starmate disk0-l-s10c2@primary-vds0

Création du LDOM (machine virtuelle)

Nous pouvons maintenant créer notre machine virtuelle « starmate»:

ldm add-domain starmate

On y affecte des vCPU:

ldm add-vcpu 3 starmate

On y affecte de la RAM:

ldm add-memory 3g starmate

On ajoute le  switch virtuel (qui devra être créé précédemment) :

ldm add-vnet vnet0 primary-vsw1 starmate

On ajoute le disque qui avait été présenté précédemment (disk0-l-starmate@primary-vds0) à l’hyperviseur, à la machine virtuelle (starmate) et en lui donnant un nom (disk0-l-starmate):

ldm add-vdisk disk0-l-starmate disk0-l-starmate@primary-vds0 starmate

Intégration d’une image ISO bootable à l’hyperviseur

On peut voir l’ensemble des images ISO déclaré dans l’hyperviseur, via la commande suivante :

ldm list -o disk primary

Cela peut nous permettre de retrouver le chemin de l’ISO que l’on souhaite (Solaris 10 ou Solaris 11) si il a été précédemment configuré. Si vous souhaitez une autre image ISO, il suffit de la déposer dans un répertoire de l’hyperviseur et de noter son chemin

Une fois que cela est fait, on peut présenter l’ISO comme disque virtuel à l’hyperviseur (primary-vds0), en lui donnant un nom (cdrom-starmate), et en spécifiant qu’il est en RO (read only) :

ldm add-vdsdev options=ro /iso/sol-10-u11-ga-sparc-dvd.iso cdrom-starmate@primary-vds0

Affectation de l’ISO à la machine virtuelle

On ajoute l‘image ISO à la machine virtuelle (starmate) :

ldm add-vdisk id=99 cdrom cdrom-starmate@primary-vds0 starmate

Sauvegarde de la configuration

Pour ne pas perdre votre machine virtuelle fraîchement configurée, il faut enregistrer sa configuration sous un profil (ici starmate):

ldm add-spconfig starmate

Activation des ressources du LDOM

On doit activer la machine virtuelle pour pouvoir la démarrer:

ldm bind starmate

Démarrage de la machine virtuelle

On peut maintenant la démarrer :

ldm start starmate

Connexion sur le LDOM

Il faut tout d’abord identifier le port console qui lui a été affecté par l’hyperviseur.Pour cela il suffit de lister les machines virtuelles :

ldm list

Une fois le numéro de console récupéré, nous utilisons la commande telnet pour nous connecter sur le LDOM :

telnet -e^Y localhost 5002

Le break (^Y soit CTRL+V puis CTRL+Y) permet de pouvoir sortir de la console/telnet en faisant CTRL+Y

Démarrage sur l’ISO

Une fois sur la console du LDOM, vous devriez avoir un prompt « {0} ok».
Il faut maintenant démarrer sur le CDROM.

Pour cela, on commence par lister les alias avec la commande devalias:

devalias

On voit que l’alias pour le cdrom est cdrom, nous faisons donc la commande suivante pour booter dessus :

boot cdrom - install

Bonus

Voir la configuration de l’hyperviseur « Primary »:

ldm list-services primary

Changer le range du port console:

ldm add-vcc port-range=5000-5100 primary-vcc0 primary

Création d’un switch virtuel (ici pour la carte « aggr2 » de l’hyperviseur):

ldm add-vsw net-dev=aggr2 primary-vsw2 primary

Voir toutes les associations de devices sur les VM:

ldm list-bindings

Dans le cas ou on n’arriverait pas à obtenir le prompt « ok » , on peut le forcer à y aller avec la combinaison de touches « ~# » qui envoie un break ; ça revient à faire un ctrl-A.

Pour voir les séquences de touche existantes, il faut faire « ~? » :

VNTSD commands
~# --Send break
~^B --Send alternate break
~. --Exit from this console
~w --Force write access
~n --Console next
~p --Console previous
~? --Help

Assignation d’un volume ZFS à l’hyperviseur :

ldm add-vdsdev /dev/zvol/dsk/rpool/ldoms/nom_ldom vol1@primary-vds0

Assignation d’un Disque local à l’hyperviseur :

ldm add-vdsdev /dev/dsk/c2t1/IDs2 vol2@primary-vds0

Assignation d’un LUN sous veritas à l’hyperviseur :

ldm add-vdsdev /dev/vx/dmp/IDs2 vol3@primary-vds0

Assignation d’un Simple fichier à l’hyperviseur :

ldm add-vdsdev /chemin/vers/fichier vol4@primary-vds0

Sauvegarde de la configuration (sous un profil nommé « starmate »), et vérification qu’elle est bien prise en compte:

ldm list-spconfig

factory-default [next poweron]

ldm add-spconfig starmate

ldm list-spconfig

factory-default
starmate[current]

Mettre à jour une configuration (sinon elle sera perdue au reboot):

ldm set-spconfig starmate

Définir la mémoire de l’hyperviseur :

ldm set-memory 2G primary

Définir le nombre vCPU de l’hyperviseur :

ldm set-vcpu 4 primary

Définir le nombre de module de cryptographie de l’hyperviseur :

ldm set-mau 1 primary

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.

3 janvier 2017 /

Je reprend l’exemple d’un fichier texte contenant une multitude d’identifiants.
Des identifiants qui commencent par 4 chiffres puis 2 lettres (exemple: 1502KQ) respecte le standard voulu, les autres non.

Nous souhaitons donc isoler les identifiants ne correspondant pas à ce standard.

Pour cela, crée un fichier, test.txt par exemple, et on y inscrit cette liste d’identifiants:

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
ADMIN01
ADMIN26
BIZOT
4569DF
BOURGAINET
CHACONNI
4126NR
4685ET
D?ALES
5016NW
DESOUSASSE06
FITGERERT
FRANCINETTE

Pour afficher les occurrences qui correspondent à notre expression régulière, [0-9]{4}[a-zA-Z]{2} (pour 4 chiffres et 2 lettres en minuscule ou majuscule):

egrep "[0-9]{4}[a-zA-Z]{2}" test.txt

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
4569DF
4126NR
4685ET
5016NW

Pour afficher au contraire les occurrences qui correspondent pas à notre expression régulière, on rajoute l’option « -v »:

egrep -v "[0-9]{4}[a-zA-Z]{2}" test.txt

ADMIN01
ADMIN26
BIZOT
BOURGAINET
CHACONNI
D?ALES
DESOUSASSE06
FITGERERT
FRANCINETTE

Note: On peut également utiliser grep avec l’option « -E » qui forcer grep à se comporter comme egrep:

grep -E "[0-9]{4}[a-zA-Z]{2}" test.txt

Autres exemples:

Recherche les mots dont b n’est pas suivi de o:

egrep "b[^o]" test.txt

Recherche toute ligne qui commence par « De: », « Sujet: » ou « Date: »:

egrep "^(De|Sujet|Date):" test.txt

Recherche et affiche chaque ligne du fichier test.txt qui contient l’occurence bonjour ou Bonjour, les numéros de ligne sont également affichés (option -n):

egrep -n "[bB]onjour" test.txt

Liste toute les lignes du fichier test.txt commençant avec le caractère $:

egrep "^\\$" test.txt

Liste tous les fichiers et répertoires dans le répertoire courant qui ne se terminent pas avec .txt:

ls -l | egrep "[^.txt]$"

Liste tous les fichiers et répertoires dans le répertoire courant qui se terminent avec .txt:

ls -l | egrep "[.txt]$"

Affiche uniquement les lignes dont le numéro de téléphone commence par un 1:

egrep "^1" test.txt

Recherche les lignes avec un 2 à la seconde position et n’importe quel caractère en première position:

egrep "^.2" test.txt

Recherche les lignes dont le premier caractère est différent de 1:

egrep "^[^1]" test.txt

27 décembre 2016 /

Notepad++ permet de filtrer un texte avec des expressions régulières.

Prenons l’exemple d’un fichier texte contenant une multitude d’identifiants.
Les identifiants qui commencent par 4 chiffres puis 2 lettres (exemple: 1803KQ) respecte le standard voulu, les autres non.

Nous souhaitons donc isoler les identifiants ne correspondant pas à ce standard.

Pour cela, on ouvre le fichier texte contenant l’ensemble des identifiants avec Notepad++.
Voici un exemple de texte à ouvrir avec Notepad++:

7737OM
8053HR
8184MH
8579MX
9254NF
1034AP
ADMIN01
ADMIN26
BIZOT
4569DF
BOURGAINET
CHACONNI
4126NR
4685ET
D?ALES
5016NW
DESOUSASSE06
FITGERERT
FRANCINETTE

Dans le menu de Notepad++, on va dans Recherche -> Remplacer…:

Dans cette fenêtre, on va mettre dans le champ « Recherche » notre expression régulière, [0-9]{4}[a-zA-Z]{2} (pour 4 chiffres et 2 lettres en minuscule ou majuscule).

On va également cocher « Expression régulière » dans la case « Mode de recherche« :

Une fois que cela est fait, on clique sur « Remplacer tout« .

Notre liste devrait maintenant ressembler à cela:

ADMIN01
ADMIN26
BIZOT
BOURGAINET
CHACONNI
D?ALES
DESOUSASSE06
FITGERERT
FRANCINETTE
KANNAOUITTET

Tout les identifiants correspondant au REGEX ont été supprimé, ne laissant que les identifiants ne le respectant pas.