Gestire gli hook di esecuzione delle applicazioni
Un gancio di esecuzione è un'azione personalizzata che è possibile configurare per l'esecuzione in combinazione con un'operazione di protezione dei dati di un'applicazione gestita. Ad esempio, se si dispone di un'applicazione di database, è possibile utilizzare i ganci di esecuzione per sospendere tutte le transazioni del database prima di uno snapshot e riprendere le transazioni dopo il completamento dello snapshot. Ciò garantisce snapshot coerenti con l'applicazione.
Tipi di hook di esecuzione
Astra Control supporta i seguenti tipi di hook di esecuzione, in base al momento in cui possono essere eseguiti:
-
Pre-snapshot
-
Post-snapshot
-
Pre-backup
-
Post-backup
-
Post-ripristino
Note importanti sugli hook di esecuzione personalizzati
Quando si pianificano gli hook di esecuzione per le applicazioni, considerare quanto segue.
-
Un gancio di esecuzione deve utilizzare uno script per eseguire le azioni. Molti hook di esecuzione possono fare riferimento allo stesso script.
-
Astra Control richiede che gli script utilizzati dagli hook di esecuzione siano scritti nel formato degli script shell eseguibili.
-
La dimensione dello script è limitata a 96 KB.
-
Astra Control utilizza le impostazioni degli uncino di esecuzione e qualsiasi criterio corrispondente per determinare quali hook sono applicabili a un'operazione di snapshot, backup o ripristino.
-
Tutti i guasti degli uncini di esecuzione sono guasti di tipo soft; altri hook e l'operazione di protezione dei dati vengono ancora tentati anche in caso di interruzione di un hook. Tuttavia, quando un gancio non funziona, viene registrato un evento di avviso nel registro eventi della pagina attività.
-
Per creare, modificare o eliminare gli hook di esecuzione, è necessario essere un utente con autorizzazioni Owner, Admin o Member.
-
Se l'esecuzione di un gancio di esecuzione richiede più di 25 minuti, l'hook non riesce, creando una voce del registro eventi con un codice di ritorno "N/A". Qualsiasi snapshot interessata verrà contrassegnata come non riuscita e una voce del registro eventi risultante annoterà il timeout.
-
Per le operazioni di protezione dei dati ad hoc, tutti gli eventi hook vengono generati e salvati nel registro eventi della pagina Activity. Tuttavia, per le operazioni di protezione dei dati pianificate, nel registro eventi vengono registrati solo gli eventi di errore hook (gli eventi generati dalle operazioni di protezione dei dati pianificate vengono ancora registrati).
|
Ordine di esecuzione
Quando viene eseguita un'operazione di protezione dei dati, gli eventi hook di esecuzione hanno luogo nel seguente ordine:
-
Gli eventuali hook di esecuzione pre-operation personalizzati applicabili vengono eseguiti sui container appropriati. È possibile creare ed eseguire tutti gli hook pre-operation personalizzati necessari, ma l'ordine di esecuzione di questi hook prima dell'operazione non è garantito né configurabile.
-
Viene eseguita l'operazione di protezione dei dati.
-
Gli eventuali hook di esecuzione post-operation personalizzati applicabili vengono eseguiti sui container appropriati. È possibile creare ed eseguire tutti gli hook post-operation personalizzati necessari, ma l'ordine di esecuzione di questi hook dopo l'operazione non è garantito né configurabile.
Se si creano più hook di esecuzione dello stesso tipo (ad esempio, pre-snapshot), l'ordine di esecuzione di tali hook non è garantito. Tuttavia, è garantito l'ordine di esecuzione di ganci di tipi diversi. Ad esempio, l'ordine di esecuzione di una configurazione con tutti e cinque i diversi tipi di hook è simile al seguente:
-
Hook pre-backup eseguiti
-
Hook pre-snapshot eseguiti
-
Esecuzione di hook post-snapshot
-
Hook post-backup eseguiti
-
Esecuzione degli hook di post-ripristino
È possibile vedere un esempio di questa configurazione nello scenario numero 2 dalla tabella nella Determinare se verrà eseguito un gancio.
Prima di abilitarli in un ambiente di produzione, è necessario verificare sempre gli script hook di esecuzione. È possibile utilizzare il comando 'kubectl exec' per testare comodamente gli script. Dopo aver attivato gli hook di esecuzione in un ambiente di produzione, testare le snapshot e i backup risultanti per assicurarsi che siano coerenti. Per eseguire questa operazione, clonare l'applicazione in uno spazio dei nomi temporaneo, ripristinare lo snapshot o il backup e quindi testare l'applicazione. |
Determinare se verrà eseguito un gancio
Utilizza la seguente tabella per determinare se verrà eseguito un gancio di esecuzione personalizzato per l'applicazione.
Si noti che tutte le operazioni di alto livello delle applicazioni consistono nell'eseguire una delle operazioni di base di snapshot, backup o ripristino. A seconda dello scenario, un'operazione di cloni può consistere in varie combinazioni di queste operazioni, quindi gli hook di esecuzione eseguiti da un'operazione di cloni variano.
Le operazioni di ripristino in-place richiedono un'istantanea o un backup esistente, in modo che queste operazioni non eseguano snapshot o hook di backup.
Se si avvia e poi si annulla un backup che include uno snapshot e sono associati degli hook di esecuzione, alcuni hook potrebbero essere eseguiti e altri no. Ciò significa che un gancio di esecuzione post-backup non può presumere che il backup sia stato completato. Tenere presente i seguenti punti per i backup annullati con gli hook di esecuzione associati:
|
Scenario | Operazione | Snapshot esistente | Backup esistente | Namespace | Cluster | Esecuzione di Snapshot Hooks | Esecuzione dei ganci di backup | Esecuzione degli hook di ripristino |
---|---|---|---|---|---|---|---|---|
1 |
Clonare |
N |
N |
Novità |
Stesso |
Y |
N |
Y |
2 |
Clonare |
N |
N |
Novità |
Diverso |
Y |
Y |
Y |
3 |
Clonare o ripristinare |
Y |
N |
Novità |
Stesso |
N |
N |
Y |
4 |
Clonare o ripristinare |
N |
Y |
Novità |
Stesso |
N |
N |
Y |
5 |
Clonare o ripristinare |
Y |
N |
Novità |
Diverso |
N |
Y |
Y |
6 |
Clonare o ripristinare |
N |
Y |
Novità |
Diverso |
N |
N |
Y |
7 |
Ripristinare |
Y |
N |
Esistente |
Stesso |
N |
N |
Y |
8 |
Ripristinare |
N |
Y |
Esistente |
Stesso |
N |
N |
Y |
9 |
Snapshot |
N/A. |
N/A. |
N/A. |
N/A. |
Y |
N/A. |
N/A. |
10 |
Backup |
N |
N/A. |
N/A. |
N/A. |
Y |
Y |
N/A. |
11 |
Backup |
Y |
N/A. |
N/A. |
N/A. |
N |
Y |
N/A. |
Esempi di gancio di esecuzione
Visitare il "Progetto NetApp Verda GitHub" per vedere esempi e avere un'idea di come strutturare i tuoi hook di esecuzione. È possibile utilizzare questi esempi come modelli o script di test.
Visualizzare gli hook di esecuzione esistenti
È possibile visualizzare gli hook di esecuzione personalizzati esistenti per un'applicazione.
-
Accedere a applicazioni e selezionare il nome di un'applicazione gestita.
-
Selezionare la scheda Execution Hooks.
È possibile visualizzare tutti gli hook di esecuzione attivati o disattivati nell'elenco risultante. È possibile visualizzare lo stato, l'origine e il momento dell'esecuzione di un gancio (pre o post-operazione). Per visualizzare i registri degli eventi che circondano gli hook di esecuzione, accedere alla pagina Activity nell'area di navigazione a sinistra.
Visualizzare gli script esistenti
È possibile visualizzare gli script caricati. In questa pagina puoi anche vedere quali script sono in uso e quali hook li stanno utilizzando.
-
Vai a account.
-
Selezionare la scheda script.
In questa pagina è possibile visualizzare un elenco degli script caricati. La colonna Used by mostra gli hook di esecuzione che utilizzano ogni script.
Aggiungere uno script
È possibile aggiungere uno o più script a cui possono fare riferimento gli hook di esecuzione. Molti hook di esecuzione possono fare riferimento allo stesso script; ciò consente di aggiornare molti hook di esecuzione modificando solo uno script.
-
Vai a account.
-
Selezionare la scheda script.
-
Selezionare Aggiungi.
-
Effettuare una delle seguenti operazioni:
-
Caricare uno script personalizzato.
-
Selezionare l'opzione carica file.
-
Selezionare un file e caricarlo.
-
Assegnare allo script un nome univoco.
-
(Facoltativo) inserire eventuali note che altri amministratori dovrebbero conoscere sullo script.
-
Selezionare Salva script.
-
-
Incollare uno script personalizzato dagli Appunti.
-
Selezionare l'opzione Incolla o tipo.
-
Selezionare il campo di testo e incollare il testo dello script nel campo.
-
Assegnare allo script un nome univoco.
-
(Facoltativo) inserire eventuali note che altri amministratori dovrebbero conoscere sullo script.
-
-
-
Selezionare Salva script.
Il nuovo script viene visualizzato nell'elenco della scheda script.
Eliminare uno script
È possibile rimuovere uno script dal sistema se non è più necessario e non viene utilizzato da alcun hook di esecuzione.
-
Vai a account.
-
Selezionare la scheda script.
-
Scegliere uno script da rimuovere e selezionare il menu nella colonna azioni.
-
Selezionare Delete (Elimina).
Se lo script è associato a uno o più hook di esecuzione, l'azione Delete non è disponibile. Per eliminare lo script, modificare prima gli hook di esecuzione associati e associarli a uno script diverso. |
Creare un gancio di esecuzione personalizzato
È possibile creare un gancio di esecuzione personalizzato per un'applicazione. Vedere Esempi di gancio di esecuzione per esempi di gancio. Per creare gli hook di esecuzione, è necessario disporre delle autorizzazioni Owner (Proprietario), Admin (Amministratore) o Member (membro).
Quando si crea uno script shell personalizzato da utilizzare come uncino di esecuzione, ricordarsi di specificare la shell appropriata all'inizio del file, a meno che non si stiano eseguendo comandi specifici o fornendo il percorso completo di un eseguibile. |
-
Selezionare applicazioni, quindi selezionare il nome di un'applicazione gestita.
-
Selezionare la scheda Execution Hooks.
-
Selezionare Aggiungi.
-
Nell'area Dettagli gancio, determinare quando eseguire il gancio selezionando un tipo di operazione dal menu a discesa operazione.
-
Immettere un nome univoco per l'hook.
-
(Facoltativo) inserire gli argomenti da passare al gancio durante l'esecuzione, premendo il tasto Invio dopo ogni argomento inserito per registrarne ciascuno.
-
Nell'area Container Images (immagini container), se il gancio deve essere eseguito su tutte le immagini container contenute nell'applicazione, attivare la casella di controllo Apply to all container images (Applica a tutte le immagini container). Se invece il gancio dovrebbe agire solo su una o più immagini container specificate, inserire i nomi delle immagini container nel campo nomi delle immagini container da abbinare.
-
Nell'area script, eseguire una delle seguenti operazioni:
-
Aggiungere un nuovo script.
-
Selezionare Aggiungi.
-
Effettuare una delle seguenti operazioni:
-
Caricare uno script personalizzato.
-
Selezionare l'opzione carica file.
-
Selezionare un file e caricarlo.
-
Assegnare allo script un nome univoco.
-
(Facoltativo) inserire eventuali note che altri amministratori dovrebbero conoscere sullo script.
-
Selezionare Salva script.
-
-
Incollare uno script personalizzato dagli Appunti.
-
Selezionare l'opzione Incolla o tipo.
-
Selezionare il campo di testo e incollare il testo dello script nel campo.
-
Assegnare allo script un nome univoco.
-
(Facoltativo) inserire eventuali note che altri amministratori dovrebbero conoscere sullo script.
-
-
-
-
Selezionare uno script esistente dall'elenco.
In questo modo, il gancio di esecuzione deve utilizzare questo script.
-
-
Selezionare Aggiungi gancio.
Controllare lo stato di un gancio di esecuzione
Al termine dell'esecuzione di un'operazione di snapshot, backup o ripristino, è possibile controllare lo stato degli hook di esecuzione eseguiti come parte dell'operazione. È possibile utilizzare queste informazioni di stato per determinare se si desidera mantenere l'esecuzione agganciata, modificarla o eliminarla.
-
Selezionare applicazioni, quindi selezionare il nome di un'applicazione gestita.
-
Selezionare la scheda Data Protection.
-
Selezionare Snapshot per visualizzare le snapshot in esecuzione o Backup per visualizzare i backup in esecuzione.
Lo stato Hook mostra lo stato dell'esecuzione dell'hook al termine dell'operazione. Per ulteriori informazioni, passare il mouse sullo stato. Ad esempio, se si verificano errori di uncino di esecuzione durante uno snapshot, passando il mouse sullo stato di uncino per tale snapshot si ottiene un elenco di uncini di esecuzione non riusciti. Per visualizzare i motivi di ciascun guasto, consultare la pagina Activity (attività) nell'area di navigazione a sinistra.
Visualizzare l'utilizzo dello script
È possibile vedere quali hook di esecuzione utilizzano uno script specifico nell'interfaccia utente Web di Astra Control.
-
Selezionare account.
-
Selezionare la scheda script.
La colonna Used by nell'elenco degli script contiene i dettagli su quali hook utilizzano ciascuno script dell'elenco.
-
Selezionare le informazioni nella colonna utilizzato da per lo script desiderato.
Viene visualizzato un elenco più dettagliato con i nomi degli hook che utilizzano lo script e il tipo di operazione con cui sono configurati per l'esecuzione.
Disattiva un gancio di esecuzione
È possibile disattivare un gancio di esecuzione se si desidera impedirne temporaneamente l'esecuzione prima o dopo un'istantanea di un'applicazione. Per disattivare gli hook di esecuzione, è necessario disporre delle autorizzazioni Owner, Admin o Member.
-
Selezionare applicazioni, quindi selezionare il nome di un'applicazione gestita.
-
Selezionare la scheda Execution Hooks.
-
Selezionare il menu Options (Opzioni) nella colonna Actions (azioni) per un gancio che si desidera disattivare.
-
Selezionare Disable (Disattiva).
Eliminare un gancio di esecuzione
È possibile rimuovere completamente un gancio di esecuzione se non è più necessario. Per eliminare gli hook di esecuzione, è necessario disporre delle autorizzazioni Owner, Admin o Member.
-
Selezionare applicazioni, quindi selezionare il nome di un'applicazione gestita.
-
Selezionare la scheda Execution Hooks.
-
Selezionare il menu Options (Opzioni) nella colonna Actions (azioni) per il gancio che si desidera eliminare.
-
Selezionare Delete (Elimina).