Edge per Private Cloud v. 4.16.09
I gruppi ZooKeeper sono progettati per rimanere funzionali, senza perdita di dati, nonostante la perdita uno o più nodi ZooKeeper. Questa resilienza può essere utilizzata in modo efficace per eseguire attività di manutenzione Nodi ZooKeeper senza tempi di inattività del sistema.
Informazioni su ZooKeeper ed Edge
In Edge, i nodi ZooKeeper contengono dati di configurazione relativi alla posizione ai vari componenti Edge e avvisa i diversi componenti delle modifiche alla configurazione. Tutti topologie Edge supportate per un sistema di produzione specificano di utilizzare almeno tre ZooKeeper nodi.
Utilizza ZK_HOSTS e Proprietà ZK_CLIENT_HOSTS in File di configurazione perimetrale per specificare i nodi ZooKeeper. Per l'esame
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
dove:
- ZK_HOSTS - Specifica
gli indirizzi IP dei nodi di ZooKeeper. Gli indirizzi IP devono essere elencati nello stesso ordine su
tutti i nodi di ZooKeeper.
In un ambiente con più data center, elenca tutti i nodi ZooKeeper da tutti i data center. - ZK_CLIENT_HOSTS -
Specifica gli indirizzi IP dei nodi ZooKeeper utilizzati solo da questo data center. L'IP
gli indirizzi devono essere elencati nello stesso ordine su tutti i nodi ZooKeeper nel data center.
In una singola installazione del data center, si tratta degli stessi nodi specificati da ZK_HOSTS. In un multi-Data Center, il file di configurazione perimetrale di ogni data center deve elencare solo Nodi di ZooKeeper per quel data center
Per impostazione predefinita, tutti i nodi ZooKeeper sono designati come nodi voter. Ciò significa che i nodi tutti partecipano all'elezione del leader di ZooKeeper. Puoi includere Modificatore ":observer" con ZK_HOSTS per indicare che la nota è un nodo osservatore, non un elettore. Un nodo osservatore non partecipa a l'elezione del leader.
In genere specifichi il modificatore ":observer" quando crei più dati periferici Center o quando un singolo data center ha un grande numero di nodi ZooKeeper. Ad esempio, in una Installazione perimetrale a 12 host con due data center, ZooKeeper sul nodo 9 nel Data Center 2 è osservatore:
Successivamente, nel file di configurazione per il data center 1 utilizzerai le seguenti impostazioni:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
E per i data center
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
su leader, follower elettori e osservatori
In un'installazione ZooKeeper con più nodi, uno dei nodi è designato come leader. Tutti gli altri nodi di ZooKeeper sono designati come follower. Le letture possono avvenire da qualsiasi nel nodo ZooKeeper, tutte le richieste di scrittura vengono inoltrate alla variante leader. Ad esempio, una nuova Il processore è stato aggiunto a Edge. Queste informazioni vengono scritte al leader di ZooKeeper. Tutti i follower per poi replicare i dati.
Al momento dell'installazione di Edge, designi ogni nodo ZooKeeper come elettore o come osservatore. La il leader viene quindi eletto da tutti i nodi degli elettori ZooKeeper. L'unico requisito per l'elezione di un il responsabile è che deve essere disponibile un quorum di nodi elettorali funzionanti di ZooKeeper. R quorum significa che più della metà di tutti i nodi degli elettori ZooKeeper, in tutti i data center, funzionale.
Se non è disponibile un quorum di nodi elettorali, non può essere eletto nessun leader. In questo scenario, Zookeeper non può gestire richieste. Ciò significa che non è possibile effettuare una richiesta a Edge Management Il server, elabora le richieste dell'API di gestione o accedi alla UI Edge fino a quando non viene ripristinato il quorum.
Ad esempio, in una singola installazione di un data center:
- Hai installato tre nodi ZooKeeper
- Tutti i nodi di ZooKeeper sono elettori
- Il quorum è costituito da due nodi elettorali funzionanti
- Se è disponibile un solo nodo elettore, l'insieme ZooKeeper non può funzionare
In un'installazione con due data center:
- Hai installato tre nodi ZooKeeper per data center, per un totale di sei nodi
- Il data center 1 ha tre nodi elettorali
- Il data center 2 ha due nodi elettori e un nodo osservatore
- Il quorum si basa sui cinque elettori di entrambi i data center ed è quindi tre nodi elettorali funzionanti
- Se sono disponibili solo due o meno nodi elettorali, l'insieme ZooKeeper non può funzione
L'aggiunta di nodi come elettori osservatori
I tuoi requisiti di sistema potrebbero richiedere l'aggiunta di nodi ZooKeeper aggiuntivi a Edge dell'installazione. L'aggiunta di ZooKeeper node descrive come aggiungere altri nodi ZooKeeper a Edge. Durante l'aggiunta Nodi ZooKeeper, devi prendere in considerazione il tipo di nodi da aggiungere: elettore o osservatore.
È necessario assicurarsi di avere un numero sufficiente di nodi elettorali in modo che, se uno o più nodi elettori sono inattivi che il gruppo ZooKeeper possa ancora funzionare, il che significa che c'è ancora un quorum di elettori disponibili. Aggiungendo i nodi degli elettori, aumenti la dimensione del quorum e, di conseguenza, tollerano che più nodi elettori siano inattivi.
Tuttavia, l'aggiunta di altri nodi elettori può influire negativamente sulle prestazioni di scrittura poiché operazioni richiedono il quorum per concordare il leader. Il tempo necessario per determinare la variante principale si basa sul numero di elettori, che aumenta man mano che si aggiungono altri nodi. Pertanto, non devi rendere tutti i nodi elettori.
Invece di aggiungere nodi elettori, puoi aggiungere nodi osservatori. L'aggiunta di nodi osservatori aumenta il sistema nel suo complesso legge le prestazioni senza aumentare l'overhead associato alla scelta di un leader perché i nodi osservatori non votano e non influiscono sulla dimensione del quorum. Quindi, se un nodo osservatore passa non influisce sulla capacità dell'ensemble di eleggere un leader. Tuttavia, perdere l'osservatore di nodi possono causare un peggioramento delle prestazioni di lettura dell'insieme ZooKeeper, perché di nodi disponibili per le richieste di dati di servizio.
In un singolo data center, Apigee consiglia di avere non più di cinque elettori indipendentemente del numero di nodi osservatore. In due data center, Apigee consiglia di non avere più di nove elettori (cinque in un data center e quattro nell'altro). Successivamente, puoi aggiungere nodi di osservazione in base alle esigenze dei tuoi requisiti di sistema.
Considerazioni di manutenzione
La manutenzione di ZooKeeper può essere eseguita su un insieme completamente funzionante senza tempi di inattività viene eseguita su un singolo nodo alla volta. Assicurandosi che un solo nodo ZooKeeper sia inattivo in qualsiasi momento, puoi fare in modo che sia sempre disponibile un quorum di elettori per eleggere leader.
Manutenzione in Più data center
Quando lavori con più data center, ricorda che l'insieme ZooKeeper non distinguere tra i data center. Gli assiemi ZooKeeper visualizzano tutti i nodi di ZooKeeper in tutti i data center come un unico insieme.
La posizione dei nodi degli elettori in un determinato data center non è un fattore determinante per l'esecuzione di ZooKeeper i calcoli del quorum. I singoli nodi possono attraversare i data center, ma purché sia presente il quorum preservata in tutto l'insieme, ZooKeeper rimane in funzione.
Implicazioni per la manutenzione
Spesso dovrai disattivare un nodo ZooKeeper per la manutenzione. Puoi o un nodo osservatore. Ad esempio, potresti dover eseguire l'upgrade della versione di Edge sul nodo, potrebbe verificarsi un errore della macchina che ospita ZooKeeper oppure il nodo potrebbe non essere più disponibile ad esempio un errore di rete.
Se il nodo che non funziona è un nodo osservatore, è possibile che si verifichi un leggero peggioramento delle le prestazioni dell'insieme ZooKeeper fino al ripristino del nodo. Se il nodo è un elettore nodo, può influire sulla fattibilità dell'ensemble ZooKeeper a causa della perdita di un nodo che partecipa al processo elettorale. A prescindere dal motivo per cui il nodo degli elettori in basso, è importante mantenere un quorum di nodi elettorali disponibili.
Procedura di manutenzione
Dovresti eseguire qualsiasi procedura di manutenzione solo dopo esserti assicurato che uno ZooKeeper sia funzionale. Questo presuppone che i nodi osservatori siano funzionali e che siano presenti nodi elettori disponibili durante la manutenzione per mantenere il quorum.
Quando queste condizioni sono soddisfatte, un insieme di ZooKeeper di dimensioni arbitrarie può tollerare la perdita di un singolo nodo in qualsiasi momento senza perdita di dati o impatto significativo sulle prestazioni. Questo significa che puoi eseguire la manutenzione su qualsiasi nodo dell'insieme purché si trovi su uno un nodo alla volta.
Nell'ambito dell'esecuzione della manutenzione, utilizza la seguente procedura per determinare il tipo di Nodo ZooKeeper (leader, elettore o osservatore):
- Se non è installato sul nodo ZooKeeper, installa nc:
> sudo yum install nc - Esegui questo comando nc sul nodo:
> stat echo | localhost nc 2181
dove 2181 è il porto di ZooKeeper. Dovresti vedere l'output nel modulo:
Versione di Zookeeper: 3.4.5-1392090, costruito il 30/09/2012 17:52 GMT
Clienti: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
Latenza min/media/max: 0/0/0
Ricevuti: 1
Inviato: 0
Connessioni: 1
Eccellente: 0
Zxid: 0xc00000044
Modalità: follower
Conteggio dei nodi: 653
Nella riga Modalità dell'output per i nodi, dovresti vedere observer, leader o follower (ovvero un elettore che non è leader) a seconda della configurazione del nodo.
Nota: in un'installazione autonoma di Edge con un singolo nodo ZooKeeper, La modalità è impostata su standalone. - Ripeti i passaggi 1 e 2 su ciascun nodo ZooKeeper.
Riepilogo
Il modo migliore per eseguire la manutenzione su un insieme ZooKeeper è eseguirlo su un solo nodo nel tempo. Ricorda:
- Devi mantenere un quorum di nodi elettorali durante la manutenzione per assicurarti che ZooKeeper il completo rimane funzionale
- Abbattere un nodo osservatore non influisce sul quorum o sulla capacità di eleggere un leader
- Il quorum viene calcolato in tutti i nodi ZooKeeper in tutti i data center
- Procedi con la manutenzione sul server successivo quando quello precedente è operativo
- Utilizza il comando nc per esaminare il nodo ZooKeeper