Så här kör du AEM med TARMK Cold Standby how-to-run-aem-with-tarmk-cold-standby
Introduktion introduction
Tack vare kapaciteten för vänteläge i kallt läge för Tjärmikrokärnan kan en eller flera Adobe Experience Manager-instanser i vänteläge (AEM) ansluta till en primär instans. Synkroniseringsprocessen är bara ett sätt, vilket innebär att den bara utförs från den primära instansen till standby-instansen.
Syftet med standby-instanserna är att garantera en live-datakopia av huvuddatabasen och se till att det går snabbt att växla utan dataförlust om mallsidan inte är tillgänglig av någon anledning.
Innehållet synkroniseras linjärt mellan den primära instansen och standby-instansen utan några integritetskontroller för att filer eller databaser är skadade. På grund av den här designen är standby-instanser exakta kopior av den primära instansen och kan inte bidra till att minska inkonsekvenser i primära instanser.
- OSGI Web Console
Så här fungerar det how-it-works
På den primära AEM öppnas en TCP-port och lyssnar på inkommande meddelanden. För närvarande finns det två typer av meddelanden som slavarna skickar till mallsidan:
- ett meddelande som begär segment-ID för aktuellt huvud
- ett meddelande som begär segmentdata med ett angivet ID
Vänteläge begär regelbundet segment-ID:t för den primära huvuddelen. Om segmentet är lokalt okänt hämtas det. Om den redan finns jämförs segmenten och om det behövs efterfrågas även segment med referenser.
En typisk STAMK Cold Standby-driftsättning:
Andra egenskaper other-characteristics
Robusitet robustness
Dataflödet är utformat för att automatiskt upptäcka och hantera anslutnings- och nätverksrelaterade problem. Alla paket är paketerade med kontrollsummor och när problem uppstår med anslutningen eller skadade paket aktiveras mekanismer för återförsök.
Prestanda performance
Om du aktiverar TonaMK Cold Standby på den primära instansen påverkas prestanda nästan inte. Den extra processorförbrukningen är låg och den extra hårddisk- och nätverks-I/O-funktionen bör inte ge upphov till prestandaproblem.
I vänteläge kan du förvänta dig hög processorförbrukning under synkroniseringsprocessen. Eftersom proceduren inte är flertrådig går det inte att öka hastigheten genom att använda flera kärnor. Om inga data ändras eller överförs finns det ingen mätbar aktivitet. Anslutningshastigheten varierar beroende på maskinvara och nätverksmiljö, men beror inte på storleken på databasen eller SSL-användningen. Tänk på detta när du beräknar den tid som krävs för en inledande synkronisering eller när mycket data har ändrats under tiden på den primära noden.
Dokumentskydd security
Om man utgår ifrån att alla instanser körs i samma säkerhetszon för intranätet minskar risken för säkerhetsöverträdelse avsevärt. Du kan dock lägga till ett extra säkerhetslager genom att aktivera SSL-anslutningar mellan slavarna och mallsidan. På så sätt minskar risken för att data äventyras av en man-in-the-middle.
Du kan dessutom ange vilka standby-instanser som tillåts ansluta genom att begränsa IP-adressen för inkommande begäranden. Detta bör bidra till att garantera att ingen i intranätet kan kopiera databasen.
Skapa en AEM Stjärtöverläge i Cold creating-an-aem-tarmk-cold-standby-setup
- från org.apache.jackrabbit.oak.plugins.segment.standby.store.StandbyStoreService to org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService
- från org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService to org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
Om du vill skapa ett kalliget TjärMK-vänteläge skapar du först standby-instanserna genom att utföra en kopia av hela installationsmappen för det primära till en ny plats. Du kan sedan starta varje instans med ett körningsläge som anger dess roll ( primary
eller standby
).
Nedan visas proceduren som måste följas för att skapa en konfiguration med en master- och en standby-instans:
-
Installera AEM.
-
Stäng instansen och kopiera installationsmappen till den plats där instansen av kallstart körs. Även om du kör från olika datorer måste du ge varje mapp ett beskrivande namn (som aem-primär eller aem-standby) för att skilja på instanserna.
-
Gå till installationsmappen för den primära instansen och:
-
Kontrollera och ta bort tidigare OSGi-konfigurationer som du har under
aem-primary/crx-quickstart/install
-
Skapa en mapp med namnet
install.primary
underaem-primary/crx-quickstart/install
-
Skapa de konfigurationer som krävs för det önskade nodarkivet och datalagret under
aem-primary/crx-quickstart/install/install.primary
-
Skapa en fil med namnet
org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService.config
på samma plats och konfigurera den därefter. Mer information om konfigurationsalternativen finns i Konfiguration. -
Om du använder en AEM tarMK-instans med ett externt datalager skapar du en mapp med namnet
crx3
underaem-primary/crx-quickstart/install
med namnetcrx3
-
Placera konfigurationsfilen för datalagret i mappen
crx3
.
Om du till exempel kör en AEM tarMK-instans med ett externt File Data Store behöver du följande konfigurationsfiler:
aem-primary/crx-quickstart/install/install.primary/org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
aem-primary/crx-quickstart/install/install.primary/org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService.config
aem-primary/crx-quickstart/install/crx3/org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
Här nedan hittar du exempelkonfigurationer för den primära instansen:
Exempel på org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
code language-xml org.apache.sling.installer.configuration.persist=B"false" customBlobStore=B"true" standby=B"false"
Exempel på org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService.config
code language-xml org.apache.sling.installer.configuration.persist=B"false" mode="primary" port=I"8023"
Exempel på org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
code language-xml org.apache.sling.installer.configuration.persist=B"false" path="./crx-quickstart/repository/datastore" minRecordLength=I"16384"
-
-
Starta det primära läget och kontrollera att du anger det primära körningsläget:
code language-shell java -jar quickstart.jar -r primary,crx3,crx3tar
-
Skapa en Apache Sling Logging-loggare för paketet org.apache.jackrabbit.oak.segment. Ställ in loggnivån på "Felsök" och peka loggutdata på en separat loggfil, som /logs/tarmk-coldstandby.log. Mer information finns i Loggning.
-
Gå till platsen för instansen standby och starta den genom att köra burken.
-
Skapa samma loggningskonfiguration som för den primära. Stoppa sedan instansen.
-
Förbered sedan standby-instansen. Du kan göra detta genom att utföra samma steg som för den primära instansen:
-
Ta bort alla filer som du har under
aem-standby/crx-quickstart/install
. -
Skapa en mapp med namnet
install.standby
underaem-standby/crx-quickstart/install
-
Skapa två konfigurationsfiler med namnet:
org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService.config
-
Skapa en mapp med namnet
crx3
underaem-standby/crx-quickstart/install
-
Skapa datalagerkonfigurationen och placera den under
aem-standby/crx-quickstart/install/crx3
. I det här exemplet är filen som du måste skapa:- org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
-
Redigera filerna och skapa de konfigurationer som behövs.
Nedan visas exempel på konfigurationsfiler för en vanlig standby-instans:
Exempel på org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
code language-xml org.apache.sling.installer.configuration.persist=B"false" name="Oak-Tar" service.ranking=I"100" standby=B"true" customBlobStore=B"true"
Exempel på org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService.config
code language-xml org.apache.sling.installer.configuration.persist=B"false" mode="standby" primary.host="127.0.0.1" port=I"8023" secure=B"false" interval=I"5" standby.autoclean=B"true"
Exempel på org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
code language-xml org.apache.sling.installer.configuration.persist=B"false" path="./crx-quickstart/repository/datastore" minRecordLength=I"16384"
-
-
Starta instansen standby med vänteläget:
code language-xml java -jar quickstart.jar -r standby,crx3,crx3tar
Tjänsten kan även konfigureras via webbkonsolen genom att:
- Gå till webbkonsolen på: https://serveraddress:serverport/system/console/configMgr
- Söker efter en tjänst som heter Apache Jackrabbit Oak Segment Stold Standby Service och dubbelklickar på den för att redigera inställningarna.
- Spara inställningarna och starta om instanserna så att de nya inställningarna kan börja gälla.
Första synkroniseringen first-time-synchronization
När beredningen är klar och standby startas för första gången, uppstår en kraftig nätverkstrafik mellan instanserna när standby-läget fångar upp till primärt. Du kan läsa loggarna för att se synkroniseringens status.
I vänteläge tarmk-coldstandby.log kan du se följande poster:
*DEBUG* [defaultEventExecutorGroup-2-1] org.apache.jackrabbit.oak.segment.standby.store.StandbyStore trying to read segment ec1f739c-0e3c-41b8-be2e-5417efc05266
*DEBUG* [nioEventLoopGroup-3-1] org.apache.jackrabbit.oak.segment.standby.codec.SegmentDecoder received type 1 with id ec1f739c-0e3c-41b8-be2e-5417efc05266 and size 262144
*DEBUG* [defaultEventExecutorGroup-2-1] org.apache.jackrabbit.oak.segment.standby.store.StandbyStore got segment ec1f739c-0e3c-41b8-be2e-5417efc05266 with size 262144
*DEBUG* [defaultEventExecutorGroup-2-1] org.apache.jackrabbit.oak.segment.file.TarWriter Writing segment ec1f739c-0e3c-41b8-be2e-5417efc05266 to /mnt/crx/author/crx-quickstart/repository/segmentstore/data00016a.tar
I väntelägets error.log bör du se en post som den här:
*INFO* [FelixStartLevel] org.apache.jackrabbit.oak.segment.standby.store.StandbyStoreService started standby sync with 10.20.30.40:8023 at 5 sec.
I ovanstående loggutdrag är 10.20.30.40 den primära IP-adressen.
I primär target-coldstandby.log visas poster som:
*DEBUG* [nioEventLoopGroup-3-2] org.apache.jackrabbit.oak.segment.standby.store.CommunicationObserver got message 's.d45f53e4-0c33-4d4d-b3d0-7c552c8e3bbd' from client c7a7ce9b-1e16-488a-976e-627100ddd8cd
*DEBUG* [nioEventLoopGroup-3-2] org.apache.jackrabbit.oak.segment.standby.server.StandbyServerHandler request segment id d45f53e4-0c33-4d4d-b3d0-7c552c8e3bbd
*DEBUG* [nioEventLoopGroup-3-2] org.apache.jackrabbit.oak.segment.standby.server.StandbyServerHandler sending segment d45f53e4-0c33-4d4d-b3d0-7c552c8e3bbd to /10.20.30.40:34998
*DEBUG* [nioEventLoopGroup-3-2] org.apache.jackrabbit.oak.segment.standby.store.CommunicationObserver did send segment with 262144 bytes to client c7a7ce9b-1e16-488a-976e-627100ddd8cd
I det här fallet är "klienten" som nämns i loggen standby -instansen.
När de här posterna inte längre visas i loggen kan du anta att synkroniseringsprocessen är slutförd.
Ovanstående poster visar att avsökningsfunktionen fungerar som den ska, men det är ofta användbart att förstå om det finns data som synkroniseras när avsökningen sker. Om du vill göra det söker du efter poster som följande:
*DEBUG* [defaultEventExecutorGroup-156-1] org.apache.jackrabbit.oak.segment.file.TarWriter Writing segment 3a03fafc-d1f9-4a8f-a67a-d0849d5a36d5 to /<<CQROOTDIRECTORY>>/crx-quickstart/repository/segmentstore/data00014a.tar
När du kör med ett icke-delat FileDataStore
bekräftar meddelanden som följande att binära filer överförs korrekt:
*DEBUG* [nioEventLoopGroup-228-1] org.apache.jackrabbit.oak.segment.standby.codec.ReplyDecoder received blob with id eb26faeaca7f6f5b636f0ececc592f1fd97ea1a9#169102 and size 169102
Konfiguration configuration
Följande OSGi-inställningar är tillgängliga för tjänsten Cold Standby:
-
Beständig konfiguration: Om det här alternativet är aktiverat lagras konfigurationen i databasen i stället för de traditionella OSGi-konfigurationsfilerna. Adobe rekommenderar att du låter den här inställningen vara inaktiverad i produktionssystem så att den primära konfigurationen inte hämtas i vänteläge.
-
Läge (
mode
): Detta väljer körningsläget för instansen. -
Port (port): porten som ska användas för kommunikation. Standardvärdet är
8023
. -
Primär värd (
primary.host
): - den primära instansens värd. Den här inställningen gäller endast för vänteläge. -
Synkroniseringsintervall (
interval
): - Den här inställningen bestämmer intervallet mellan synkroniseringsbegäran och gäller bara för standby-instansen. -
Tillåtna IP-intervall (
primary.allowed-client-ip-ranges
): - IP-intervall som det primära IP-intervallet tillåter anslutningar från. -
Säker (
secure
): Aktivera SSL-kryptering. Om du vill använda den här inställningen måste den vara aktiverad för alla instanser. -
Timeout för vänteläsning (
standby.readtimeout
): Timeout för begäranden som utfärdas från standby-instansen i millisekunder. Standardvärdet är 60000 (en minut). -
Standby Automatic Cleanup (
standby.autoclean
): Anropa rensningsmetoden om storleken på butiken ökar under en synkroniseringscykel.
Redundansprocedurer failover-procedures
Om den primära instansen av någon anledning inte fungerar kan du ange att en av standby-instanserna ska ta rollen som primär genom att ändra startkörningsläget enligt nedan:
-
Gå till den plats där standby-instansen är installerad och stoppa den.
-
Om du har konfigurerat en belastningsutjämnare med konfigurationen kan du ta bort den primära från belastningsutjämnarens konfiguration nu.
-
Säkerhetskopiera mappen
crx-quickstart
från installationsmappen i vänteläge. Den kan användas som utgångspunkt när du skapar ett nytt vänteläge. -
Starta om instansen med körningsläget
primary
:code language-shell java -jar quickstart.jar -r primary,crx3,crx3tar
-
Lägg till den nya primära till belastningsutjämnaren.
-
Skapa och starta en ny standby-instans. Mer information finns i proceduren ovan om att skapa en AEM Styla standby-inställning förMK Cold.
Använda snabbkorrigeringar i en konfiguration för vänteläge i kallt format applying-hotfixes-to-a-cold-standby-setup
Det rekommenderade sättet att tillämpa snabbkorrigeringar i ett kallt vänteläge är att installera dem i den primära instansen och sedan klona dem i en ny kall standby-instans med snabbkorrigeringarna installerade.
Du kan göra detta genom att följa stegen nedan:
- Stoppa synkroniseringsprocessen på den kalla standby-instansen genom att gå till JMX-konsolen och använda org.apache.jackrabbit.oak: Status ("Standby") bean. Mer information om hur du gör detta finns i avsnittet Övervakning.
- Stoppa kallstartsinstansen.
- Installera snabbkorrigeringen på den primära instansen. Mer information om hur du installerar en snabbkorrigering finns i Arbeta med paket.
- Testa instansen efter problem efter installationen.
- Ta bort instansen av det kalla vänteläget genom att ta bort installationsmappen.
- Stoppa den primära instansen och klona den genom att utföra en kopia av hela installationsmappen i filsystemet till platsen för det kalla vänteläget.
- Konfigurera om den nya klonen så att den fungerar som en instans i kallt vänteläge. Se Skapa en AEM väntelägesinställning för TARMK Cold.
- Starta både den primära instansen och kallstartsinstansen.
Övervakning monitoring
Funktionen visar information med JMX eller MBeans. Detta gör att du kan inspektera det aktuella läget för standby och master med JMX-konsolen. Informationen finns i MBean på type org.apache.jackrabbit.oak:type="Standby"
med namnet Status
.
Standby
Om du observerar en standby-instans visar du en nod. ID:t är vanligtvis ett generiskt UUID.
Den här noden har fem skrivskyddade attribut:
-
Running:
booleskt värde som anger om synkroniseringsprocessen körs eller inte. -
Mode:
-klient: följt av det UUID som används för att identifiera instansen. Detta UUID ändras varje gång konfigurationen uppdateras. -
Status:
en textbeteckning för det aktuella läget (somrunning
ellerstopped
). -
FailedRequests:
antalet efterföljande fel. -
SecondsSinceLastSuccess:
antalet sekunder sedan den senaste kommunikationen med servern slutfördes.-1
visas om ingen kommunikation har utförts.
Det finns också tre anropbara metoder:
start():
startar synkroniseringsprocessen.stop():
stoppar synkroniseringsprocessen.cleanup():
kör rensningsåtgärden i vänteläge.
Primär
När du observerar den primära informationen visas viss allmän information med hjälp av ett MBean vars ID-värde är det portnummer som standbytjänsten tarMK använder (8023 som standard). De flesta metoder och attribut är desamma som i vänteläge, men vissa skiljer sig åt:
Mode:
visar alltid värdetprimary
.
Dessutom kan information för upp till tio klienter (väntelägesinstanser) som är anslutna till mallen hämtas. MBean-ID:t är instansens UUID. Det finns inga anropbara metoder för dessa MBeans, men några användbara skrivskyddade attribut:
Name:
klientens ID.LastSeenTimestamp:
tidsstämpeln för den senaste begäran i en textbeteckning.LastRequest:
klientens senaste begäran.RemoteAddress:
klientens IP-adress.RemotePort:
den port klienten använde för den senaste begäran.TransferredSegments:
det totala antalet segment som har överförts till den här klienten.TransferredSegmentBytes:
det totala antalet byte som har överförts till klienten.
Underhåll av vänteläge, kall cold-standby-repository-maintenance
Revision Cleanup revision-clean
cleanup ()
-åtgärden i standby-instansen automatiskt.Adobe rekommenderar regelbundet underhåll för att förhindra alltför stor databastillväxt över tid. Följ stegen nedan om du vill utföra underhåll i vänteläge manuellt:
-
Stoppa standbyprocessen i standby-instansen genom att gå till JMX-konsolen och använda org.apache.jackrabbit.oak: Status ("Standby") -böna. Mer information om hur du gör detta finns i avsnittet ovan Övervakning.
-
Stoppa den primära AEM.
-
Kör Oak-komprimeringsverktyget på den primära instansen. Mer information finns i Underhålla databasen.
-
Starta den primära instansen.
-
Starta standby-processen i standby-instansen med samma JMX-böna som i det första steget.
-
Se loggarna och vänta tills synkroniseringen är klar. Det är möjligt att det för närvarande sker en betydande tillväxt i beredskapslagringsplatsen.
-
Kör åtgärden
cleanup()
i standby-instansen med samma JMX-böna som i det första steget.
Det kan ta längre tid än vanligt för standby-instansen att slutföra synkroniseringen med den primära, eftersom offlinekomprimeringen effektivt skriver om databashistoriken, vilket gör att beräkning av ändringarna i databaserna tar längre tid. När den här processen har slutförts är storleken på databasen i vänteläge ungefär lika stor som databasen på den primära databasen.
Som ett alternativ kan den primära databasen kopieras till vänteläge manuellt efter att du har kört komprimering på den primära, vilket innebär att vänteläget återskapas varje gång komprimeringen körs.
Skräpinsamling för datalager data-store-garbage-collection
Det är viktigt att du kör skräpinsamlingen på fildatalagrets instanser då och då, annars finns det borttagna binärfiler kvar i filsystemet, som till slut fyller i enheten. Så här kör du skräpinsamlingen:
-
Kör underhåll av kallt vänteläge enligt beskrivningen i avsnittet ovan.
-
När underhållsprocessen har slutförts och instanserna startats om:
- Kör skräpinsamlingen i datalagret med den relevanta JMX-böljan enligt beskrivningen i Skräpinsamlingen i datalagret via JMX-konsolen.
- I vänteläge är skräpinsamlingen i datalagret bara tillgänglig via BlobGarbageCollection MBean -
startBlobGC()
. RepositoryManagement MBean är inte tillgängligt i vänteläge.
note note NOTE Om du inte använder ett delat datalager kör du skräpinsamlingen först på primär plats och sedan i vänteläge.