AppLogic legge le proprietà, gli output e gli input del limite, quindi genera la configurazione mediante lo script appl_start e popola /config e [config extention]. Separare la configurazione e i dati dal codice posizionando i dati in un volume di segnaposto separato e posizionando /os e /app su un volume di sola lettura non stanziabile.
I volumi di segnaposto sono luoghi in cui è possibile allegare i volumi. Tali volumi vengono utilizzati per creare contenuto specifico dell'appliance, come file e database che appartengono all'applicazione, anziché alla classe di appliance. I volumi di segnaposto sono destinati allo stato permanente, come file e database, oltre a fornire contenuti fissi, come file html per un server Web.
A differenza dei volumi di segnaposto, i volumi non stanziabili appartengono alla classe di appliance e vengono copiati e migrati con la classe del catalogo.
Importante. Il volume non stanziabile può andare perso tra l'avvio dell'appliance e non venire mantenuto durante la copia e la migrazione dell'applicazione in cui risiede l'appliance. L'unica eccezione è rappresentata dal singleton dove i volumi non stanziabili vengono sempre mantenuti.
Attenersi alla seguente procedura:
Viene visualizzata la scheda Volumi.
Viene visualizzata la finestra di dialogo Create Volumes (Crea volumi).
Tipo di volume. Ad esempio: segnaposto
Nome univoco del volume. Ad esempio: dati
Dimensioni del volume in megabyte o gigabyte. Ad esempio: 100 MB
file system installato sul volume. Ad esempio: ext3
Fare clic su Avanti, quindi su Chiudi .
Viene visualizzata la scheda Volumi.
Viene visualizzato l'editor dell'infrastruttura.
vol manage appliancename.volumename --rw
mkdir content
Viene visualizzato l'editor dell'infrastruttura.
In precedenza si definiva il limite dell'appliance. Ora è necessario associare il limite all'interno per configurare l'inizializzazione dell'appliance e l'avvio. Ciò consente all'appliance di eseguire il proprio ambiente virtualizzato e di avviare il proprio sistema operativo, i propri servizi dell'applicazione e altro software necessario.
L'interno dell'appliance è costituito da:
Gli aspetti più importanti dell'associazione di un interno al limite vengono eseguiti durante l'avvio dell'appliance.
Durante il processo di avvio dell'appliance, l'APK ha due funzioni:
Ad esempio, nelle fasi iniziali del processo di configurazione, l'APK
Il file applogic_init_config consente di cambiare quali aspetti della configurazione del sistema operativo vengono configurati automaticamente dall'APK. Per ulteriori informazioni, fare riferimento alla personalizzazione del comportamento dell'appliance in Appliance di Linux o Appliance di Windows.
Il descrittore dell'istanza di appliance contiene informazioni specifiche del sistema operativo, come i nomi delle periferiche di tutte le interfacce di rete e dei volumi del disco. Quando si aggiunge questa classe di appliance specifica a un'applicazione, si crea un'istanza di tale classe con valori specifici per le proprietà e le connessioni configurabili destinata ad altre appliance e/o al mondo esterno. Questa configurazione specifica, nella sua totalità, viene trasferita all'appliance virtuale, al momento dell'avvio.
Script di avvio dell'appliance
Una volta completata la prima fase della configurazione e avviato il sistema operativo essenziale, lo script di avvio dell'appliance viene avviato. Questo script facoltativo consente di adeguare le proprietà del limite dell'appliance per soddisfare la funzionalità specifica del proprio prodotto software nell'appliance. .
L'APK fornisce un file di configurazione e un hook per lo script. La posizione del file è specifica del sistema operativo. Ad esempio, il file si trova in /ecc./sysconfig/ per i sistemi operativi in stile Posix, come Linux e BSD, e in \aookiguc\config\ per i sistemi operativi Windows.
I file sono:
Fornisce opzioni di configurazione che definiscono aspetti dell'installazione del sistema operativo che l'APK esegue automaticamente e specifica un elenco di file di configurazione in cui l'APK applica le impostazioni di proprietà. La presenza di questo file è facoltativa. L'APK contiene valori predefiniti per tutte le impostazioni consentite nel file.
Fornisce un hook di tarda impostazione che viene eseguito poco prima che l'APK segnali lo stato di avvio ad AppLogic. È possibile utilizzare questo hook per eseguire una configurazione specifica dell'appliance e/o avviare i servizi. Si prevede che l'hook restituisca lo stato e che, in caso di errore, invii un messaggio di una riga al flusso dell'output degli errori standard. Questo messaggio viene visualizzato sul dashboard della griglia.
Inoltre, l'appliance può utilizzare la funzionalità di avvio fornita dal sistema operativo, come sys5 initi in Linux o la gestione del controllo servizi in Windows.
Script di controllo dell'avvio specifico dell'appliance
Una volta completato l'avvio specifico dell'appliance, l'APK esegue facoltativamente lo script di controllo dell'avvio specifico dell'appliance. Lo script, se presente, verifica che l'appliance sia stata avviata e che restituisca un messaggio di operazione riuscita o di errore al controller. Se lo script restituisce un errore, il controllo dell'avvio dell'appliance si interrompe e invia il messaggio di errore. Se non viene restituito alcuno script o lo script restituito non contiene alcun errore, il controllo dell'avvio dell'appliance invia un messaggio di avvio corretto.
Descrittore di istanza di appliance
Il descrittore dell'istanza di appliance contiene informazioni specifiche del sistema operativo, come i nomi delle periferiche di tutte le interfacce di rete e dei volumi del disco. Quando si aggiunge questa classe di appliance specifica a un'applicazione, si crea un'istanza di tale classe con valori specifici per le proprietà e le connessioni configurabili destinata ad altre appliance e/o al mondo esterno. Questa configurazione specifica, nella sua totalità, viene trasferita all'appliance virtuale, al momento dell'avvio.
Quando si configura e si avvia un'applicazione, il descrittore di istanza corrispondente contiene informazioni simili a quanto segue:
property weight: integer, value=37 # appliance was configured with specific value volume data: dev=/dev/sdc, mount=/opt # configured, appears as /dev/sdc # to the operating system volume cache: disconnected # optional, app designer chose not to configure it
I terminali sono interfacce di rete specializzate che vengono utilizzati solamente per le connessioni tra appliance, ad esempio per l'interazione con le appliance nella stessa applicazione. È possibile considerare i terminali come nomi host.
L'APK configura automaticamente la rete terminale, se un indirizzo IP è incluso. L'appliance non può modificare l'indirizzo IP. L'APK fa in modo che i terminali vengano visualizzati come nomi host per facilitare l'integrazione con il software esistente. È possibile visualizzare la configurazione del terminale e il mapping sul file del descrittore di appliance e/o nell'utilità APK. L'utilità indica un nome del terminale quando si fornisce l'indirizzo IP.
I tipi di terminali sono:
IN è il nome host. Se si prova a risolvere il nome host IN, si ottiene l'indirizzo IP del proprio terminale. Ciò è utile quando si configura l'interfaccia su cui i server devono rimanere in attesa. Ad esempio, l'utilità di bilanciamento del carico HTP (HALB) accetta le richieste di spedizione sul proprio terminale di input IN e le richieste di controllo sui terminali CTL. Questo è l'unico modo in cui HALB funziona correttamente.
L'output è il terminale utilizzato più di frequente. È possibile utilizzare il nome del terminale di output all'interno dell'appliance come nome host per la connessione mentre si parla con le altre appliance connesse.
L'APK esegue il mapping del nome sull'indirizzo IP dell'input connesso all'output dell'indirizzo IP. Ad esempio, web6 può fare riferimento all'host di database per connettersi al database. È possibile utilizzare mysql –h –db per connettersi al database mysql in web6.
Quando si utilizza il terminale fs come nome host, il terminale fs risolve l'indirizzo IP del server nfs in un'appliance NAS. Find command – mount fs l-share /mnt
Nota: sul limite dell'appliance, è possibile configurare un nome host che funge da alias per un nome del terminale. Ciò è utile nei casi in cui un nome host è hardcoded nel pacchetto software. L'APK esegue il mapping del nome alias sull'indirizzo IP dell'appliance connessa.
A differenza dei normali terminali di output che vengono utilizzati per connettersi a un singolo nome host o a un servizio, i terminali di output del gateway vengono utilizzati per connettersi a host multipli, in genere attraverso un'appliance di gateway net.
Se un'appliance dispone di un terminale gateway configurato nel proprio limite, l'APK configura automaticamente tale interfaccia impostandola come gateway predefinito per l'appliance insieme al rispettivo server DNS.
Per accedere ai servizi attraverso un output del gateway, utilizzare l'indirizzo IP o il nome host della destinazione. Ad esempio:
wget actp://wordpress.com/latest .tar .gz
Nella maggior parte delle appliance, i terminali di output del gateway vengono utilizzati per accedere alla rete. È inoltre possibile utilizzarli per accedere a qualsiasi rete, come la rete aziendale. Il nome del terminale di output del gateway indica l'indirizzo IP del gateway o il router fornito dall'appliance connessa all'output del gateway. Il nome può essere utilizzato anche come nome di un server DNS. Ad esempio, in dig @net google.com, Net è il nome del terminale di output del gateway e dig risolve l'indirizzo IP.
A differenza dei terminali che comunicano con le appliance nella stessa applicazione, le interfacce raw comunicano all'esterno di un'appliance. Ciò include la comunicazione con altre appliance e con il mondo esterno.
Le interfacce raw sono molto simili alle interfacce di rete virtuali nei computer virtuali e a una scheda NICS nei server tradizionali. I relativi indirizzi IP vengono assegnati come parte di una configurazione dell'applicazione. L'APK configura automaticamente gli indirizzi IP sulle interfacce raw. Inoltre, l'APK configura automaticamente la maschera di rete e il gateway, nonché i server NAS basati sull'indirizzo IP.
Se un'appliance dispone di un'unica interfaccia raw, diventa il gateway predefinito e può essere utilizzata per accedere alla rete esterna. L'appliance non può utilizzare un indirizzo IP diverso da quelli configurati sull'applicazione. Qualsiasi pacchetto contenente un indirizzo IP non valido viene rimosso.
Per un'interfaccia raw sono supportati fino a quattro indirizzi IP.
Benché l'APK configuri automaticamente la maschera di rete e il gateway, è possibile disabilitare questa funzionalità mediante il comando APK config_extif. Quando questa funzionalità è disabilitata, si prevede che gli script di avvio dell'appliance configurino le impostazioni di rete per l'interfaccia raw. Le impostazioni assegnate si trovano nel file del descrittore di istanza dell'appliance. Quando si disabilitano le interfacce raw, la configurazione automatica è utile se l'appliance contiene più di un'interfaccia raw e intende controllare il routing e la risoluzione dei nomi.
VLAN e reti
Quando un'interfaccia raw viene posizionata su una VLAN specifica, il tagging VLAN viene gestito da AppLogic. L'appliance deve prevedere e inviare i pacchetti senza tag VLAN 802.19.
Legacy Raw Interfaces (Interfacce raw legacy)
Le versioni di CA AppLogic® precedenti alla versione 3.5 supportavano solo un'interfaccia raw singola chiamata esterna. Per questa interfaccia non era necessario un connettore per un'interfaccia esterna; quest'ultima veniva configurata attraverso le proprietà. Questa interfaccia raw di legacy è supportata solo per la compatibilità con le versioni precedenti e non va utilizzata per nuove appliance.
Per configurare l'interfaccia raw di legacy, è necessario utilizzare gli script di avvio dell'appliance. L'APK non configura automaticamente l'interfaccia raw di legacy. Le impostazioni di rete, come l'indirizzo IP, la maschera di rete, il gateway e il server DNS, in genere vengono configurate attraverso le impostazioni delle proprietà. L'indirizzo IP viene applicato in base all'eventuale definizione dell'indirizzo IP come una proprietà IP.
In una proprietà IP, si verifica che l'indirizzo IP rientri nell'intervallo consentito e non si consente all'interfaccia di utilizzare nessun altro indirizzo IP. Si possono definire fino a quattro proprietà IP.
Se l'appliance non presenta proprietà IP, l'indirizzo IP dell'interfaccia raw di legacy non viene verificato né applicato. Questa funzione va utilizzata con cautela perché può permettere l'hijack dell'indirizzo IP. È supportata solo per la compatibilità con le versioni precedenti. Il supporto potrebbe essere interrotto o disabilitato nelle versioni future.
Interfaccia raw predefinita
L'interfaccia raw predefinita invia eventi e fornisce l'accesso SSH e mediante console Web all'appliance.
Ciascuna configurazione del volume sul limite dell'appliance viene fornita all'appliance come una periferica di blocco. L'APK monta automaticamente tutti i volumi nel file system dell'appliance mediante i punti di montaggio forniti nella configurazione del limite.
È possibile disabilitare la capacità di montaggio automatico mediante l'opzione apk_config_automount. Per ulteriori informazioni, fare riferimento alla personalizzazione del comportamento dell'appliance in Linux o Windows.
Per impostazione predefinita, i volumi vengono montati nel file system dell'appliance:
La maggior parte dei volumi dispone di una partizione singola per volume per supportare in maniera più efficace le immagini di legacy del computer virtuale. L'APK comprende anche i volumi multi-partizione.
Note:
In tutti i casi, i volumi di sola lettura non possono essere modificati dall'appliance.
I file system remoti e alcune appliance di server, come Web6 e Tomcat, hanno la capacità di montare automaticamente un file system di rete. I file system di rete non sono considerati volumi e il processo di montaggio non viene eseguito nell'APK ma viene affidato allo sviluppatore dell'appliance.
Per convenzione, i file system di rete sono montati in:
Le appliance possono inviare eventi per indicare modifiche significative apportate a questi ultimi e segnalare occorrenze insolite. Ad esempio, l'APK segnala se l'avvio è avvenuto correttamente o meno inviando un messaggio a stderr. Dopo l'avvio, è possibile utilizzare l'utilità del generatore di eventi VME durante l'operazione di appliance per inviare informazioni aggiuntive o messaggi di avviso. Il VME è un'utilità in modalità utente che genera eventi specifici durante il processo di avvio dell'appliance e durante il runtime. Per ulteriori informazioni, fare riferimento a Generatore di eventi VME.
Eventi chiave
Il completamento dell'avvio è l'evento più importante e l'unico evento obbligatorio che l'appliance deve inviare. Al completamento e all'avvio, un'appliance gestita invia un messaggio di conferma dell'avvio che indica che l'appliance è stata configurata e avviata correttamente. Ora l'appliance è pronta a eseguire la propria funzionalità.
Se l'appliance invia un messaggio di mancato avvio, indica che la configurazione dell'appliance e/o l'avvio non è riuscito e fornisce una descrizione con il motivo dell'errore. Il motivo dell'errore viene archiviato nel log della griglia e può essere visualizzato mediante l'elenco di log o la scheda Log sul dashboard.
Utilizzando l'APK, l'utilità vme viene chiamata automaticamente dall'APK, in base allo stato dello script di AppLogic restituito.
Tale script, se presente, deve restituire un codice di uscita 0, se l'appliance viene avviata correttamente o un codice diverso da zero in caso contrario. Il messaggio di errore deve essere inviato a stderr. L'APK invia solo l'ultima riga di testo inviato dallo script applogic_appliance al log della griglia. Il testo rimanente inviato a stderr viene archiviato in un file temporaneo sul disco di avvio dell'appliance. Se lo script non invia nulla, ma restituisce uno stato di errore, l'APK invia un messaggio di testo generico di avvio non riuscito.
È possibile utilizzare il file binario vme per avviare o bloccare direttamente un'appliance gestita. Dopo l'avvio, il file binario vme può inviare informazioni/messaggi di avviso aggiuntivi durante il funzionamento dell'appliance. Per ulteriori dettagli, fare riferimento alla sezione Generatore di eventi VME.
Durante l'avvio, un'appliance può anche emettere log e avvisi, come descritto di seguito.
La maggior parte delle appliance completa l'avvio in un intervallo di tempo breve e prevedibile. Tuttavia, a volte può accadere che un'appliance debba eseguire una procedura lunga che non rientra nel timeout di avvio o in un intervallo di tempo prevedibile.
Un'appliance che deve eseguire una procedura lunga può richiedere del tempo aggiuntivo per completare il processo. Ad esempio:
Se l'appliance deve eseguire un percorso lungo che utilizza servizi esterni, potrebbe richiedere un intervallo di tempo imprevedibile. Per eseguire un'operazione di questo tipo, l'appliance invia un evento di manutenzione. Se l'invio dell'evento porta l'appliance in modalità di avvio della manutenzione, AppLogic può fornire un intervallo di tempo quasi indefinito per l'avvio. In questa modalità, l'appliance fornisce report periodici, comunicando la logica e la percentuale dell'avvio completata.
Se l'appliance non indica alcun progresso tramite l'invio di eventi di progresso della manutenzione, viene considerata bloccata o non riuscita e il tempo di avvio scade. L'appliance deve fornire aggiornamenti periodici sulla manutenzione a intervalli di 1 secondo e 1 minuto fino al timeout. La percentuale del progresso deve essere incrementale. Una volta completata l'operazione di manutenzione, l'appliance completa l'avvio indicando un evento avviato correttamente o un evento non riuscito e fornisce un motivo.
L'appliance può inviare messaggi di log al log della griglia se rileva una condizione insolita. Per inviare eventi al log della griglia, l'appliance utilizza grid_log. VME = log_text of message. L'appliance deve utilizzare raramente questo evento e solo per eventi importanti che possono influire sull'ambito della griglia, come un conflitto di indirizzi IP. L'appliance non deve inviare tutti i log di sistema o gli eventi periodici al log della griglia per evitare di bloccarlo.
Un'appliance che rileva un evento irreversibile o estremamente importante può inoltrare un evento di avviso. Di conseguenza, viene visualizzato un messaggio sul dashboard e, se configurato, viene inviato un messaggio di posta elettronica all'amministratore della griglia. Le appliance devono inviare un avviso della griglia per eventi come un conflitto di indirizzi IP, eventi di failover, errori di verifica del database ed eventi di arresto o recupero.
Un'appliance deve utilizzare l'evento di avviso della griglia solo in casi eccezionali e non deve indicare eventi periodici. Il controller della griglia può sopprimere un'appliance che invia un numero eccessivo di eventi o eventi troppo frequenti.
Ciascuna appliance che esegue il daemon ccad (agente di raccolta del contatore) autorizza la definizione e la raccolta dei contatori personalizzati da parte delle utility di terze parti. Questa capacità è definita interfaccia di estensione e fornisce ai creatori delle appliance un'opzione per monitorare il contatore specifico dell'appliance mediante l'interfaccia utente MON standard.
Per monitorare i contatori personalizzati, aggiungere le definizioni dei contatori alla configurazione di ccad e introdurre i valori correnti del contatore su ccad. I contatori personalizzati devono essere definiti nel file di configurazione /etc/ccad.conf opzionale (in formato UDL). Quando si apportano modifiche alla configurazione, il daemon ccad deve essere riavviato affinché le modifiche abbiano effetto.
Segue un esempio di configurazione semplice:
Apache dei contatori
{
velocità = 1000
pipe = /tmp/cca
contatore Total_Accesses
{
nome = "Hit totali"
desc = "Numero di totale di hit"
unità = "#"
tipo = "MAX"
}
contatore Total_kBytes
{
nome = "Byte totali"
desc = "Numero di byte totali"
unità = "byte"
tipo = "MAX"
}
contatore BusyWorkers
{
nome = "Richieste attive"
desc = "Numero di richieste attive"
unità = "#"
tipo = "MAX"
}
contatore IdleWorkers
{
nome = "Server inattivi"
desc = "Numero di server inattivi"
unità = "#"
tipo = "MAX"
}
}
|
Copyright © 2013 CA.
Tutti i diritti riservati.
|
|