Last Updated on 28 Giugno 2021 by Roberto De Pedrini
Iniziamo con una breve introduzione dei concetti di “clonazione” e “percorsi multipli” (multipath).
La clonazione (cioè la creazione di una copia esatta di un sistema o di una partizione IBM i) è stato un concetto per la piattaforma IBM i sin dall’introduzione del boot da SAN (Storage Area Network) con i5/OS V5R3M5 (quando il load source è stato spostato all’interno di un sottosistema storage collegato alla SAN senza avere più la necessità di usare il mirroring remoto del load source per eseguire il mirroring del load source interno verso il load source collegato alla SAN). La copia/clone può essere collegata ad un altro server, ad una LPAR separata o, se il sistema di produzione è spento, alla partizione o al sistema esistente. Dopo che la copia/clone è stata creata, può essere usata per il backup offline, test di sistema o migrazioni.
Il boot da SAN permette di sfruttare alcune delle funzioni avanzate disponibili con lo storage IBM. Una di queste funzioni è la FlashCopy che permette di eseguire una copia istantanea dei dati contenuti in una LUN o in un gruppo di LUN. Pertanto, quando avete un sistema che ha solo LUN SAN senza unità interne, potete creare una copia/clone del vostro sistema.
IBM i supporta il collegamento a percorsi multipli (multipath è la capacità di presentare volumi logici su un dispositivo di storage al server host attraverso connessioni multiple) attraverso Fibre Channel come parte del supporto di base del sistema operativo per fornire una maggiore resilienza ai guasti della SAN che sarebbero critici per IBM i a causa dell’architettura di storage a livello singolo. I percorsi multipli verso un volume logico, inoltre, possono migliorare le prestazioni di I/O della partizione.
Nota: Con il sistema operativo IBM i 6.1 o successivo, il collegamento multipath è supportato su un’unità disco esterna che funge da load source.
Il sistema IBM i rileva e configura automaticamente i nuovi percorsi e li utilizza immediatamente. Se un disco è inizialmente configurato come percorso singolo e viene aggiunto un secondo percorso, il nome risorsa dell’unità disco viene modificato da DDxxx
a DMPxxx
. Questa modifica indica che ora c’è più di un percorso verso l’unità disco. Non sono richieste modifiche da parte dell’utente sul sistema IBM i per utilizzare il nuovo percorso. Le connessioni a percorsi multipli possono essere connesse direttamente o attraverso un fabric (switch fiber channel).
Ora uniamo i due concetti.
Quando si avvia un clone, un messaggio CPI096E - Disk unit connection is missing
per ogni LUN collegata tramite il percorso mancante appare nel log di sistema (history log) della LPAR IBM i appena creata (e viene ripresentato ogni ora).
Un controllo in DST/SST mostra i percorsi attivi (o passivi, vedi nota sotto per ulteriori informazioni) verso i dischi e quelli sconosciuti o mancanti (missing) come risultato della riconfigurazione del sottosistema storage (i percorsi mancanti sono le connessioni verso le unità disco del sistema clonato):
Serial Resource Path
ASP Unit Number Type Model Name Status
1 1 YF4FE4000034 2145 050 DMP005 Active
YF4FE4000034 2145 050 DMP001 Passive
YF4FE4000034 2145 050 DMP002 Active
YF4FE4000034 2145 050 DMP015 Passive
YF501C00000F 2145 050 DMP011 Missing
YF501C00000F 2145 050 DMP012 Missing
YF501C00000F 2145 050 DMP013 Missing
YF501C00000F 2145 050 DMP014 Missing
1 2 YF4FE4000035 2145 050 DMP006 Passive
YF4FE4000035 2145 050 DMP003 Active
YF4FE4000035 2145 050 DMP016 Active
YF4FE4000035 2145 050 DMP004 Passive
YF501C000010 2145 050 DMP007 Missing
YF501C000010 2145 050 DMP010 Missing
YF501C000010 2145 050 DMP009 Missing
YF501C000010 2145 050 DMP008 Missing
Nota: Ogni LUN in Storwize V7000 utilizza un nodo V7000 come nodo preferito. Il traffico I/O da o verso un particolare LUN passa normalmente attraverso il nodo preferito. Se quel nodo si guasta, l’I/O viene trasferito al nodo rimanente. Con IBM i multipath, tutti i percorsi per un LUN attraverso il nodo preferito sono attivi
e il percorso attraverso il nodo non preferito è passivo
. Multipath impiega il bilanciamento del carico tra i percorsi verso una LUN che transitano attraverso il nodo preferito per quella LUN.
Per evitare i messaggi di avviso e per pulire i percorsi verso i dischi potete eseguire la macro Multipath Resetter di Advanced Analysis in DST/SST oppure l’API QYASSDMO. L’utilizzo dall’API QYASSDMO consente di evitare l’accesso a DST/SST e di automatizzare l’attività.
Di seguito è riportato un esempio molto semplice di utilizzo dell’API QYASSDMO per eseguire un reset dei percorsi multipli.
Sistema operativo utilizzato: IBM i V7R2 (SF99720 level 20296 and SF99717 level 9), IBM i V7R3 (SF99730 level 19311 – SF99727 level 7, and SF99730 level 21098 – SF99727 level 10).
Nota: sui miei sistemi clone che usano IBM i V7R3 con SF99730 livello 19311, i percorsi mancanti non sono mostrati in SST ma solo segnalati con messaggi CPI096E
nel log di sistema. Sono diventati nuovamente visibili in SST dopo aver installato SF99730 livello 21098, livello attuale al momento della stesura di questo post.
Prerequisito: Un sistema IBM i con sole SAN LUN (senza dischi interni).
Sorgente CMD:
CMD PROMPT('Multipath Resetter')
PARM KWD(ASP) TYPE(*UINT4) RSTD(*NO) DFT(1) +
RANGE(1 255) CHOICE('1, 2, ...') +
PROMPT('Enter ASP No:')
Sorgente CLLE:
PGM PARM(&P_ASP)
/* Parameters */
DCL VAR(&P_ASP) TYPE(*UINT) LEN(4)
/* QYASSDMS, QYASSDMO, QYASEDMS */
DCL VAR(&HANDLE) TYPE(*CHAR) LEN(8)
/* QYASSDMO */
DCL VAR(&OPKEY) TYPE(*CHAR) LEN(4)
DCL VAR(&DMOP0700) TYPE(*CHAR) LEN(20)
DCL VAR(&ASP_OFFSET) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&DMOP0700 1)
DCL VAR(&ASP_QTY) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&DMOP0700 5)
DCL VAR(&ASP_OPER) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&DMOP0700 9)
DCL VAR(&ASP_RES) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&DMOP0700 13)
DCL VAR(&ASP_ARRAY) TYPE(*CHAR) STG(*DEFINED) +
LEN(4) DEFVAR(&DMOP0700 17)
DCL VAR(&DMOP0700L) TYPE(*INT) LEN(4) VALUE(20)
DCL VAR(&FORMAT) TYPE(*CHAR) LEN(8)
DCL VAR(&APINAME) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(512)
/* API Error */
DCL VAR(&APIERROR) TYPE(*CHAR) LEN(528)
DCL VAR(&AEBYTPRO) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&APIERROR 1)
DCL VAR(&AEBYTAVL) TYPE(*INT) STG(*DEFINED) +
LEN(4) DEFVAR(&APIERROR 5)
DCL VAR(&AEEXCPID) TYPE(*CHAR) STG(*DEFINED) +
LEN(7) DEFVAR(&APIERROR 9)
DCL VAR(&AEEXCPDTA) TYPE(*CHAR) STG(*DEFINED) +
LEN(512) DEFVAR(&APIERROR 17)
MONMSG MSGID(CPF0000 MCH0000) EXEC( +
GOTO CMDLBL(ERROR))
/* Start DASD Management Session - QYASSDMS API */
CALL PGM(QYASSDMS) PARM(&HANDLE &APIERROR)
IF COND(&AEBYTAVL *NE 0) THEN(DO)
CHGVAR VAR(&APINAME) VALUE('QYASSDMS')
GOTO CMDLBL(ERROR)
ENDDO
/* Start DASD Management Operation - QYASSDMO API */
CHGVAR VAR(%BIN(&OPKEY 1 4)) VALUE(16)
CHGVAR VAR(&ASP_OFFSET) VALUE(16)
CHGVAR VAR(&ASP_QTY) VALUE(1)
CHGVAR VAR(&ASP_OPER) VALUE(0)
CHGVAR VAR(&ASP_RES) VALUE(0)
CHGVAR VAR(%BIN(&ASP_ARRAY 1 4)) VALUE(&P_ASP)
CHGVAR VAR(&FORMAT) VALUE('DMOP0700')
CALL PGM(QYASSDMO) PARM(&HANDLE &OPKEY &DMOP0700 +
&DMOP0700L &FORMAT &APIERROR)
IF COND(&AEBYTAVL *NE 0) THEN(DO)
CHGVAR VAR(&APINAME) VALUE('QYASSDMO')
GOTO CMDLBL(ERROR)
ENDDO
/* End DASD Management Session - QYASEDMS API */
CALL PGM(QYASEDMS) PARM(&HANDLE &APIERROR)
IF COND(&AEBYTAVL *NE 0) THEN(DO)
CHGVAR VAR(&APINAME) VALUE('QYASEDMS')
GOTO CMDLBL(ERROR)
ENDDO
CHGVAR VAR(&MSGDTA) VALUE('Multipath reset for ASP' +
*BCAT %CHAR(&P_ASP) *BCAT 'completed')
SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) +
MSGDTA(&MSGDTA) TOPGMQ(*PRV (*)) +
TOMSGQ(*TOPGMQ) MSGTYPE(*INFO)
RETURN:
RETURN
ERROR:
IF COND(&AEBYTAVL *NE 0) THEN( +
SNDPGMMSG MSGID(&AEEXCPID) MSGF(QSYS/QCPFMSG) +
MSGDTA(&AEEXCPDTA) TOPGMQ(*PRV (*)) +
TOMSGQ(*TOPGMQ) MSGTYPE(*DIAG))
CALL PGM(QYASEDMS) PARM(&HANDLE &APIERROR)
MONMSG MSGID(CPF0000)
CHGVAR VAR(&MSGDTA) VALUE('Command ended with error')
SNDPGMMSG MSGID(CPF9898) MSGF(QSYS/QCPFMSG) +
MSGDTA(&MSGDTA) TOPGMQ(*PRV (*)) +
TOMSGQ(*TOPGMQ) MSGTYPE(*ESCAPE)
ENDPGM:
ENDPGM
Dopo l’esecuzione del comando MPATHRESET ASP('1')
, i percorsi del disco mancanti sono scomparsi da SST ed i messaggi CPI096E
non vengono più inviati sul log si sistema:
Serial Resource Path
ASP Unit Number Type Model Name Status
1 1 YF4FE4000034 2145 050 DMP005 Active
YF4FE4000034 2145 050 DMP001 Passive
YF4FE4000034 2145 050 DMP002 Active
YF4FE4000034 2145 050 DMP015 Passive
1 2 YF4FE4000035 2145 050 DMP006 Passive
YF4FE4000035 2145 050 DMP003 Passive
YF4FE4000035 2145 050 DMP016 Active
YF4FE4000035 2145 050 DMP004 Active
Riferimenti
IBM Redbook SG24-7994-00 “PowerHA SystemMirror for IBM i Cookbook”
IBM Redbook SG24-8197-00 “IBM i and IBM Storwize Family A Practical Guide to Usage Scenarios”