Publié le 29/09/2020
La technologie des bandes virtuelles existe depuis la V5R4, c’est-à-dire depuis 2006, elle présente de nombreux intérêts et permet de remplacer avantageusement le fichier de sauvegarde (*SAVF).
Bien qu’assez simple à mettre en œuvre, quelques commandes suffisent, elle reste toutefois peu utilisée pour transmettre des données entre environnements IBM i. Nous allons montrer dans cet article, les différentes étapes permettant de créer une bande virtuelle et de la transférer vers une autre partition IBM i.
Petit rappel des avantages des bandes virtuelles par rapport aux fichiers de sauvegarde.
La bande virtuelle est une technologie similaire à la bande physique (LTO, Jaguar, QIC, 8 mm, DAT …) à la différence près que le support de sauvegarde n’est pas amovible, puisqu’il s’agit de l’espace disque de la partition. Cette technologie permet de supprimer les principales contraintes du fichier de sauvegarde (*SAVF) :
Avant d’expliquer comment transférer une bande virtuelle par le réseau et de l’intégrer sur une autre partition, nous allons faire un rapide rappel sur la création de bandes virtuelles.
Voici le schéma général :
- 1 – Création d’un lecteur virtuel
- 2 – Création d’un catalogue d’images
- 3 – Création ou ajout d’un volume virtuel au catalogue d’image
- 4 – Association d’un catalogue d’images avec un lecteur virtuel
- 5 – Opérations de sauvegarde (SAVxxx) et de restauration (RSTxxx)
- 6 – Transfert de la bande virtuelle vers un autre système
1 – Création d’un lecteur virtuel
Création du lecteur virtuel (CRTDEVTAP) en indiquant un nom de device virtuel (ex ; TAPVRT01).
CRTDEVTAP DEVD(TAPVRT01) RSRCNAME(*VRT) ASSIGN(*YES) TEXT('Bandothèque virtuelle')
Lecteur virtuel TAPVRT01 créé.
Il faut mettre le lecteur en fonction.
WRKDEVD DEVD(TAP*)
Lecteur mis en fonction par l’option 1 ou la commande VRYCFG.
VRYCFG CFGOBJ(TAPVRT01) CFGTYPE(*DEV) STATUS(*ON)
2 – Création d’un catalogue d’images
Création du catalogue d’images à l’aide de la commande CRTIMGCLG. Le catalogue d’images peut être assimilé à un chargeur dans lequel on stocke des bandes.
Le nom du catalogue d’images peut être différent du lecteur virtuel, dans cet exemple il s’agit du même nom (TAPVRT01). Ce catalogue sera stocké dans l’IFS dans le répertoire indiqué (ex : /TAPVRT01).
CRTIMGCLG IMGCLG(TAPVRT01) DIR('/TAPVRT01') TYPE(*TAP) CRTDIR(*YES)
Catalogue d’images créé. Un catalogue d’images est constitué d’un objet de type *IMGCLG dans QUSRSYS et stocke les bandes virtuelles (ou images) dans un répertoire de l’IFS.
Le catalogue a créé le répertoire de stockage dans l’IFS (/TAPVRT01).
WRKLNK /
Le répertoire contient un fichier nommé QIMGCLG nécessaire à son bon fonctionnement, il ne faut pas le supprimer.
3 – Création ou ajout d’un volume virtuel au catalogue d’image
Désormais on passe à l’étape permettant de générer une bande virtuelle. Dans cette première partie nous allons d’abord la créer puisqu’elle n’existe pas encore, mais le but de cet article est d’utiliser une bande existante et dans ce cas de figure il n’y aura pas création de bande virtuelle (ou volume virtuel ou image) mais ajout d’une bande virtuelle depuis une source existante.
Pour cela, nous allons utiliser la commande ADDIMGCLGE (ajout d’une entrée dans le catalogue d’images).
Les paramètres importants pour la création de bande virtuelles sont les suivants :
- IMGCLG : nom du catalogue d’images dans lequel on ajoute la bande virtuelle (ex : TAPVRT01 créé à l’étape 2)
- FROMFILE : source de la bande (ou image). Pour une création, on indique *NEW.
- TOFILE : nom de stockage de la bande virtuelle dans l’IFS (ex : VOL001). On peut mettre un nom de la longueur souhaitée, mais il est conseillé d’avoir le même nom que celui du nom de volume de la bande (voir ci-dessous).
- IMGSIZ : taille en Mo, allouée à la bande (ex : 10 000 Mo)
Sur le second écran de la commande, il y a d’autres paramètres importants et il existe deux choix différents quant à la taille réelle de la bande :
- ALCSTG
- *MIN : signifie que la bande virtuelle n’utilisera que l’espace réellement alloué par les données sauvegardées
- *IMGSIZ : signifie que la bande virtuelle allouera l’intégralité de l’espace indiqué au paramètre IMGSIZ
- VOLNAM : correspond au nom du volume utilisé par les commandes de sauvegarde (SAVxxx) et de restauration (RSTxxx) de l’IBM i. Il est limité à 6 caractères, il est conseillé pour mieux gérer les bandes virtuelles, de faire correspondre ce nom et celui de lu stockage de la bande du paramètre TOFILE.
- VOLTYPE : indiquer *SL (Standard Label), éviter *NL (No Label)
- DENSITY : taille des blocs, il est conseillé d’utiliser le standard *VRT256K.
Voici la commande en mode *MIN. L’IBM i n’allouera que quelques dizaines d’octets pour la bande virtuelle lorsqu’elle sera créée, sa taille augmentera au fur et à mesure de la sauvegarde. Cela à l’avantage de ne pas réserver trop d’espace, mais les performances en sauvegarde seront un peu moins bonnes car le gestionnaire de stockage doit constamment réaffecter des ressources durant la sauvegarde et l’espace risque d’être fragmenté.
ADDIMGCLGE IMGCLG(TAPVRT01) FROMFILE(*NEW) TOFILE(VOL001) IMGSIZ(10000) TEXT('Bande virtuelle pour SAVE') ALCSTG(*MIN) VOLNAM(VOL001) VOLTYP(*SL) DENSITY(*VRT256K)
En mode *MIN, la durée de la création de la bande sera très rapide car il y aura peu d’espace réservé.
Et en mode *IMGSIZ. L’IBM i réservera 10 000 Mo pour cette bande, même si elle est vide. Cela à pour inconvénient d’allouer l’espace dès le début mais les performances en sauvegarde seront meilleures.
ADDIMGCLGE IMGCLG(TAPVRT01) FROMFILE(*NEW) TOFILE(VOL001) IMGSIZ(10000) TEXT('Bande virtuelle pour SAVE') ALCSTG(*IMGSIZ) VOLNAM(VOL001) VOLTYP(*SL) DENSITY(*VRT256K)
En mode *IMGSIZ, la création de la bande pourra durer quelques secondes à quelques minutes suivant la taille allouée.
Bande virtuelle créée et ajoutée au catalogue d’images.
La bande virtuelle est désormais stockée dans le répertoire lié au catalogue d’images (ex : /TAPVRT01).
WRKLNK '/TAPVRT01'
Suivant le mode choisi, on peut constater que la taille allouée à la bande virtuelle (ou image) n’est pas la même. 8 Ko dans le cas du mode *MIN …
… et 10 004 Mo (10 489 954 304 octets) en mode *IMGSIZ.
4 – Association d’un catalogue d’images avec un lecteur virtuel
Association / chargement du catalogue d’images avec le lecteur virtuel. Le catalogue n’est pas encore associé à un lecteur virtuel car l’état est « Not ready / pas prêt »).
WRKIMGCLG
Choisir l’option 12 pour gérer les images virtuelles (bandes virtuelles) du catalogue d’images.
On constate, dans cet exemple, la présence de la bande VOL001, elle est chargée (loaded) dans le catalogue, mais n’est pas encore utilisable car le catalogue n’est pas associé au lecteur virtuel.
A l’aide de la touche F11 on peut avoir accès à d’autres informations comme la taille du volume et l’espace utilisé par la sauvegarde dans cette bande virtuelle (à ne pas confondre avec l’espace utilisé par la bande sur les disques). A cet instant, la bande n’utilise rien (0,0%). L’espace utilisé est <1 lorsque l’on est en *MIN …
… et de 10 000 Mo lorsque l’on est en *IMGSIZ. Mais le pourcentage d’utilisation de la bande reste à 0,0%.
Association ou chargement du catalogue d’images avec le lecteur virtuel. Option 8 ou commande LODIMGCLG.
LODIMGCLG IMGCLG(TAPVRT01) OPTION(*LOAD) DEV(TAPVRT01)
Le catalogue d’images est chargé dans le lecteur virtuel.
La bande virtuelle VOL001 est désormais disponible pour utilisation. Son état est « Ready / Prêt ». Elle est chargée dans le lecteur TAPVRT01, c’est ce nom qu’il faudra utiliser pour les commandes de sauvegarde / restauration.
5 – Opérations de sauvegarde (SAVxxx) et de restauration (RSTxxx)
Affichage du contenu de la bande virtuelle.
DSPTAP DEV(TAPVRT01)
La bande est vide, ce qui est normal puisque l’on vient de la créer.
Exemple de sauvegarde avec celle des données de sécurité.
SAVSECDTA DEV(TAPVRT01) VOL(*MOUNTED) ENDOPT(*LEAVE)
Données de sécurités sauvegardées;
Sauvegarde des bibliothèques *ALLUSR.
SAVLIB LIB(*ALLUSR) DEV(TAPVRT01) VOL(*MOUNTED) ENDOPT(*LEAVE)
Bibliothèques en cours de sauvegarde.
Les bandes virtuelles fonctionnent comme un lecteur de bande classique avec des bandes physiques. Il est possible d’effectuer une sauvegarde 21, une SAVSYS … et tout type de sauvegarde.
Une fois la sauvegarde terminée, on peut afficher son contenu (DSPTAP) et l’on peut y voir le détail de ce qui a été sauvegardé (ex : la partie SAVSECDTA = label QFILEUPR).
Si l’on poursuit on peut constater la présence de la sauvegarde de la bibliothèque QSYS2 sur la 3ème séquence de la bande …
En retournant dans le catalogue d’images, on remarque que la taille utilisée par la sauvegarde est de 4,0% de la bande VOL001, soient 404 Mo sur les 10 000.
6 – Transfert de la bande virtuelle vers un autre système
Regardons à présent la partie relative au transfert de la bande virtuelle vers une autre partition, ce qui correspond à mettre à disposition la sauvegarde d’un serveur A sur un serveur B en passant par le réseau.
La première étape consiste à décharger le catalogue d’images afin de le désallouer pour autoriser son transfert.
Option 9 devant le catalogue d’images ou LODIMGCLG.
LODIMGCLG IMGCLG(TAPVRT01) OPTION(*UNLOAD) DEV(TAPVRT01)
Catalogue d’images déchargé, la bande virtuelle n’est plus accessible et donc non allouée par un process quelconque.
Le transfert peut s’effectuer de plusieurs manières :
- FTP
- SCP
- NetServer
- …
Dans cet exemple, nous utilisons FTP pour transférer vers le second système.
- Login : xxxxxxxx
- Password : xxxxxxxx
Une fois connecté au second système, on créé le répertoire qui va stocker les images (bandes virtuelles). La commande mkdir pourrait être directement exécutée sur le système secondaire.
quote rcmd mkdir '/TAPVRT01'
- locsite namefmt 1
- lcd /
- lcd /TAPVRT01
- cd /TAPVRT01
- bin
- put VOL001
Transfert FTP effectué.
L’image VOL001 est bien présente sur le second serveur.
Sa taille est de 423 719 073, cela correspond exactement à ce qui a été envoyé en FTP.
Désormais il ne nous reste plus qu’à recréer la même configuration que sur le premier serveur pour pouvoir accéder aux données. On commence par le lecteur virtuel.
CRTDEVTAP DEVD(TAPVRT01) RSRCNAME(*VRT) ASSIGN(*YES) TEXT('Bandothèque virtuelle')
Lecteur virtuel créé.
Mise en fonction du lecteur virtuel. Option 1 (Mettre en fonction) ou …
VRYCFG CFGOBJ(TAPVRT01) CFGTYPE(*DEV) STATUS(*ON)
Lecteur virtuel mis en fonction.
Création du catalogue d’images. Le paramètre CRTDIR est à *NO car le répertoire a déjà été créé au moment du transfert FTP.
CRTIMGCLG IMGCLG(TAPVRT01) DIR('/TAPVRT01') TYPE(*TAP) CRTDIR(*NO)
Catalogue d’images créé, on constate la présence du fichier QIMGCLG dans le répertoire.
Le catalogue d’images ne contient aucune image à cet instant.
Ajout de l’image reçue par FTP. Cette fois on n’utilisera pas l’option FROMFILE(*NEW) puisqu’il ne s’agit pas de créer une nouvelle bande virtuelle, mais plutôt d’ajouter une bande existante par l’option FROMFILE(VOL001).
ADDIMGCLGE IMGCLG(TAPVRT01) FROMFILE(VOL001) TOFILE(*FROMFILE)
Bande virtuelle ajoutée au catalogue d’images.
La bande VOL001 a bien été intégrée sur la seconde partition. Il ne reste plus qu’à charger le catalogue d’images dans le lecteur virtuel.
Les informations sur la bande montrent que les données sauvegardées sur cette dernière font exactement la même taille que sur la machine source (404 Mo, soient 4,0%).
Chargement du catalogue d’images dans le lecteur virtuel. Option 8 ou commande LODIMGCLG.
LODIMGCLG IMGCLG(TAPVRT01) OPTION(*LOAD) DEV(TAPVRT01)
Catalogue d’images chargé dans le lecteur virtuel.
La bande virtuelle VOL001 est désormais disponible pour utilisation.
Affichage du contenu de la bande.
DSPTAP DEV(TAPVRT01)
On retrouve bien les informations sauvegardées sur la première partition IBM i. Séquence QFILEUPR = SAVSECDTA.
La 3ème séquence correspond à la bibliothèque QSYS2.
Désormais, il ne reste plus qu’à restaurer les données depuis l’unité TAPVRT01 avec les commandes habituelles 🙂
Récapitulatif des différentes étapes
Liste des étapes sur la première partition pour créer la bande virtuelle :
1 – Création et mise en fonction du lecteur virtuel
CRTDEVTAP DEVD(TAPVRT01) RSRCNAME(*VRT) ASSIGN(*YES) TEXT('Bandothèque virtuelle')
VRYCFG CFGOBJ(TAPVRT01) CFGTYPE(*DEV) STATUS(*ON)
2 – Création du catalogue d’image
CRTIMGCLG IMGCLG(TAPVRT01) DIR('/TAPVRT01') TYPE(*TAP) CRTDIR(*YES)
3 – Création ou ajout du volume virtuel au catalogue d’image (ex : 10 000 Mo) avec choix sur l’espace alloué (*MIN ou *IMGSIZ)
ADDIMGCLGE IMGCLG(TAPVRT01) FROMFILE(*NEW) TOFILE(VOL001) IMGSIZ(10000) TEXT('Bande virtuelle pour SAVE') ALCSTG(*IMGSIZ) VOLNAM(VOL001) VOLTYP(*SL) DENSITY(*VRT256K)
ou
ADDIMGCLGE IMGCLG(TAPVRT01) FROMFILE(*NEW) TOFILE(VOL001) IMGSIZ(10000) TEXT('Bande virtuelle pour SAVE') ALCSTG(*MIN) VOLNAM(VOL001) VOLTYP(*SL) DENSITY(*VRT256K)
4 – Association du catalogue d’images avec le lecteur virtuel
LODIMGCLG IMGCLG(TAPVRT01) OPTION(*LOAD) DEV(TAPVRT01)
5 – Opérations de sauvegarde
SAVSYS
SAVSECDTA
SAVLIB
SAVOBJ
SAVDLO
SAV
6 – Transfert de la bande virtuelle vers un autre système
LODIMGCLG IMGCLG(TAPVRT01) OPTION(*UNLOAD) DEV(TAPVRT01)
FTP
Liste des étapes sur la seconde partition pour utiliser la bande virtuelle :
1 – Création et mise en fonction du lecteur virtuel
CRTDEVTAP DEVD(TAPVRT01) RSRCNAME(*VRT) ASSIGN(*YES) TEXT('Bandothèque virtuelle')
VRYCFG CFGOBJ(TAPVRT01) CFGTYPE(*DEV) STATUS(*ON)
2 – Création du catalogue d’image
CRTIMGCLG IMGCLG(TAPVRT01) DIR('/TAPVRT01') TYPE(*TAP) CRTDIR(*NO)
3 – Ajout de l’image transférée, au catalogue d’images
ADDIMGCLGE IMGCLG(TAPVRT01) FROMFILE(VOL001) TOFILE(*FROMFILE)
4 – Association du catalogue d’images avec le lecteur virtuel
LODIMGCLG IMGCLG(TAPVRT01) OPTION(*LOAD) DEV(TAPVRT01)
5 – Opérations de restauration
RSTUSRPRF
RSFCFG
RSTLIB
RSTOBJ
RSTDLO
RST