BACKUPs à travers DECnet ------------------------ Le principe du backup à travers DECnet est le suivant: la machine "client" effectuera le backup et la machine "hôte" (qui possède un dérouleur) le copiera sur bande. Il faudra faire du "task-to-task" entre les deux machines. Il y a deux façons de procéder selon que l'initiative de l'opération soit prise par le client ou le host. Du coté du host, il sera nécessaire de convertir le fichier car le format sera "variable" sur DECnet et devra être "fixe" sur bande pour correspondre effectivement à un saveset. - initiative au client: il y aura coté client une procédure contenant une commande: $BACKUP input hote::"TASK=rmttape"/SAVE/BLOCK=4096 et coté host, l'objet rmttape contient: $allocate, init, mount... de la bande $CONVERT SYS$NET/FDL=... tape:file.bck/FDL=... Cette méthode présente l'avantage de ne nécessiter aucun privilège spécial à priori sur le host, mais l'inconvénient majeur que si la séquence d'allocation, initialisation, mount de la bande est trop longue (ceci est inévitable avec des unités hélicoïdales genre Exabyte), il n'y aura pas confirmation du lien logique assez rapidement et crash du backup. Le remède consistant à augmenter de façon importante les timer de l'exécuteur n'est pas très satisfaisant. L'alternative est de laisser l'initiative au host. - initiative au host: il y aura coté host une procédure contenant: $allocate, init, mount... de la bande $CONVERT client::"TASK=rmtbck"/FDL=... - tape:file.bck/FDL=... et coté client, l'objet rmtbck contient: $BACKUP input SYS$NET:/SAVE/BLOCK=4096 ainsi, le lien DECnet ne sera ouvert que une fois la bande prête. Il faudra par contre résoudre le problème des privilèges nécessaires à l'objet pour réaliser le backup (par exemple à l'aide de proxy). Noter que quelquesoit la méthode, la taille des blocs du saveset est limitée (par DECnet) à 4096. La suite de cette note détaille un exemple minimum utilisant la seconde méthode (backup d'un disque distant). Il sera bien sur avantageux d'enrichir celui-ci (choix du dérouleur, des fichiers ou disques à backuper, etc...) PROCEDURE COTE HOST : --------------------- Ecrire une procédure de commande contenant (les arguments en caractères minuscules sont à adapter au site): $ALLOCATE bande OUT $INIT OUT/DENSITY=den label ! si nécessaire seulement $MOUNT/BLOCK=4096 OUT label $CONVERT - client::"0=RMTBCK" - OUT:file.sav/FDL=SYS$INPUT FILE ORGANIZATION SEQUENTIAL RECORD CARRIAGE_CONTROL NONE FORMAT FIXED SIZE 4096 $EXIT Le FDL pour l'input serait similaire avec pour seule différence "format variable", mais c'est implicite, donc inutile. Exécuter cette procédure depuis un compte spécialisé (afin de créer un proxy sur le client), par exemple BACKHOST. Pas de privilège nécessaire à priori. PROCEDURE COTE CLIENT: ---------------------- Coté client, créer un compte destiné explicitement au backup, appelé par exemple BACKSERVER (voir la documentation VMS 5.2 à propos des recommendations en ce qui concerne les ressources optimum concernant les comptes spécialisés pour les backups), et ayant les privilèges nécessaires (au moins SYSPRV et READALL pour des backups complets ou image), donc: $MC AUTHORIZE UAF> ADD BACKSERVER .../etc.... ainsi que création d'un directory par défaut, éventuellement quotas disques, etc... Créer un proxy entre ce compte et le compte BACKHOST du host: $MC AUTHORIZE UAF> ADD/PROXY host::BACKHOST - BACKSERVER/DEFAULT Créer une procédure appelée RMTBCK.COM dans le directory par défaut de ce compte server contenant: $BACKUP/qualifier disk SYS$NET:/SAVE/BLOCK=4096 $EXIT Déclarer un objet dans NCP: $MC NCP NCP> DEFINE OBJECT RMTBCK - NUMBER 0 FILE RMTBCK.COM - USER NOBODY PASSWORD INVALID NCP> SET OBJECT RMTBCK ALL (l'utilisateur nobody ne doit évidement pas exister et est déclaré afin d'empêcher et pouvoir tracer les tentatives d'utilisation malveillante de cet objet). Voila, ceci suffit pour backuper le disque du client à travers DECnet. Malheureusement, cette méthode ne fonctionne pas en sens inverse. Elle ne permet donc pas la restauration directement d'une sauvegarde. Pour cela, il faudra passer par un disque intermédiaire sur la machine hôte (mais dans un contexte sauvegarde, cette situation est heureusement supposée être rare...). Bernard PERROT, IPN Orsay Référence: Pageswapper Octobre 1985