Konfigurera nodarkiv och datalager i AEM 6 configuring-node-stores-and-data-stores-in-aem
Introduktion introduction
I Adobe Experience Manager (AEM) kan binära data lagras oberoende av innehållsnoderna. Binära data lagras i ett datalager, medan innehållsnoder lagras i ett nodarkiv.
Både datalager och nodarkiv kan konfigureras med OSGi-konfiguration. Varje OSGi-konfiguration refereras med en beständig identifierare (PID).
Konfigurationssteg configuration-steps
Så här konfigurerar du både nodarkivet och datalagret:
-
Kopiera den AEM snabbstartsfilen till installationskatalogen.
-
Skapa en mapp
crx-quickstart/install
i installationskatalogen. -
Konfigurera först nodarkivet genom att skapa en konfigurationsfil med namnet på det nodarkivalternativ som du vill använda i katalogen
crx-quickstart/install
.Exempelvis används filen
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
i dokumentnodarkivet (som är grunden för AEM av MongoMK-implementeringen). -
Redigera filen och ange konfigurationsalternativ.
-
Skapa en konfigurationsfil med PID:t för det datalager som du vill använda. Redigera filen för att ange konfigurationsalternativ.
note note NOTE Mer information om konfigurationsalternativ finns i Konfigurationer för nodarkivet och Konfigurationer för datalagret. -
Börja AEM.
Konfigurationer för nodarkivet node-store-configurations
crx-quickstart/install
. Efter uppgraderingen återställer du innehållet i mappen till den uppgraderade installationen och ändrar tillägget för konfigurationsfilerna från .cfg till .config.Segmentnodarkiv segment-node-store
Segmentnodarkivet är grunden för AdobeMK-implementeringen i AEM6. Det använder org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
-PID:t för konfiguration.
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService in previous versions
av AEM 6 till org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
i AEM 6.3. Se till att du gör de nödvändiga konfigurationsjusteringarna för att återspegla den här ändringen.Du kan konfigurera följande alternativ:
-
repository.home
: Sökväg till databasstartplats där databasrelaterade data lagras. Segmentfiler lagras som standard i katalogencrx-quickstart/segmentstore
. -
tarmk.size
: Maximal storlek för ett segment i MB. Standardmaxstorleken är 256 MB. -
customBlobStore
: Ett booleskt värde som anger att ett anpassat datalager används. Standardvärdet är true för AEM 6.3 och senare versioner. Före AEM 6.3 var standardvärdet false.
Följande är ett exempel på en org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
-fil:
#Path to repo
repository.home="crx-quickstart/repository"
#Max segment size
tarmk.size=I"256"
#Custom data store
customBlobStore=B"true"
Dokumentnodarkiv document-node-store
Dokumentnodarkivet är grunden för AEM mongoMK-implementering. Den använder org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService
* *PID. Följande konfigurationsalternativ är tillgängliga:
-
mongouri
: MongoURI som krävs för att ansluta till Mongo-databasen. Standardvärdet ärmongodb://localhost:27017
-
db
: Namnet på Mongo-databasen. Standardvärdet är Oak. However, new AEM 6 installations use **aem-author**
som standarddatabasnamn. -
cache
: Cachestorleken i MB. Detta fördelas mellan olika cacheminnen som används i DocumentNodeStore. Standardvärdet är256
-
changesSize
: Storlek i MB på den skyddade samlingen som används i Mongo för att cachelagra diff-utdata. Standardvärdet är256
-
customBlobStore
: Ett booleskt värde som anger att ett anpassat datalager används. Standardvärdet ärfalse
.
Följande är ett exempel på en org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
-fil:
#Mongo server details
mongouri="mongodb://localhost:27017"
#Name of Mongo database to use
db="aem-author"
#Store binaries in custom BlobStore
customBlobStore=B"false"
Konfigurationer för datalager data-store-configurations
När du hanterar ett stort antal binära filer bör du använda ett externt datalager i stället för standardnodarkiven för att maximera prestandan.
Om ditt projekt till exempel kräver många medieresurser och du lagrar dem i File- eller S3-datalagret blir det snabbare att komma åt dem än att lagra dem direkt i en MongoDB.
Fildatalagret ger bättre prestanda än MongoDB, och säkerhetskopierings- och återställningsåtgärderna i Mongo är också långsammare med ett stort antal resurser.
Information om olika datalager och konfigurationer beskrivs nedan.
customBlobStore
är inställt på true
i respektive konfigurationsfil för nodarkivet (segmentnodarkiv eller dokumentnodarkiv).Fildatalager file-data-store
Detta är implementeringen av FileDataStore som finns i Jackrabbit 2. Det är ett sätt att lagra binära data som normala filer i filsystemet. Den använder org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore
-PID.
Dessa konfigurationsalternativ är tillgängliga:
-
repository.home
: Sökväg till databasstartplats där olika databasrelaterade data lagras. Som standard lagras binära filer i katalogencrx-quickstart/repository/datastore
-
path
: Sökväg till katalogen som filerna ska lagras i. Om den anges har den företräde framför värdetrepository.home
-
minRecordLength
: Den minsta storleken i byte för en fil som lagras i datalagret. Binärt innehåll som är mindre än det här värdet infogas.
Amazon S3 - datalager amazon-s-data-store
AEM kan konfigureras för att lagra data i Amazon Simple Storage Service (S3). Det använder org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
-PID:t för konfiguration.
Om du vill aktivera S3-datalagringsfunktionen måste ett funktionspaket som innehåller S3 Datastore Connector hämtas och installeras. Gå till Adobe-databasen och hämta den senaste versionen från 1.10.x-versionerna av funktionspaketet (till exempel com.adobe.granite.oak.s3connector-1.10.0.zip). Du måste även hämta och installera det senaste AEM Service Pack som finns på sidan AEM 6.5 Release Notes.
FileDataStore
. Om du vill använda tarMK med S3-datastore måste du starta AEM med crx3tar-nofds
-körningsläget, till exempel:java -jar <aem-jar-file>.jar -r crx3tar-nofds
När du har laddat ned den kan du installera och konfigurera S3 Connector på följande sätt:
-
Extrahera innehållet i ZIP-filen för funktionspaketet till en tillfällig mapp.
-
Gå till den tillfälliga mappen och navigera till följande plats:
code language-xml jcr_root/libs/system/install
Kopiera allt innehåll från ovanstående plats till
<aem-install>/crx-quickstart/install.
-
Om AEM redan har konfigurerats för att fungera med lagringen tar du bort alla befintliga konfigurationsfiler från mappen <aem-install>/crx-quickstart/install innan du fortsätter. De filer som måste tas bort är:
For MongoMK: org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
For TarMK: org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
-
Återgå till den tillfälliga platsen där funktionspaketet har extraherats och kopiera innehållet i följande mapp:
jcr_root/libs/system/config
till
<aem-install>/crx-quickstart/install
Kontrollera att du bara kopierar de konfigurationsfiler som behövs för den aktuella konfigurationen. Kopiera filen
org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
för både ett dedikerat datalager och en delad datalagerkonfiguration.note note NOTE Utför ovanstående steg på alla noder i klustret en i taget i en klusterkonfiguration. Se även till att använda samma S3-inställningar för alla noder. -
Redigera filen och lägg till de konfigurationsalternativ som krävs för installationen.
-
Börja AEM.
Uppgradera till en ny version av 1.10.x S3 Connector upgrading-to-a-new-version-of-the-s-connector
Så här uppgraderar du till en ny version av 1.10.x S3-kontakten (till exempel från 1.10.0 till 1.10.4):
-
Stoppa AEM.
-
Navigera till
<aem-install>/crx-quickstart/install/15
i AEM installationsmapp och gör en säkerhetskopia av innehållet. -
Efter säkerhetskopieringen tar du bort den gamla versionen av S3 Connector och dess beroenden genom att ta bort alla jar-filer i mappen
<aem-install>/crx-quickstart/install/15
, till exempel:- oak-blob-cloud-1.6.1.jar
- aws-java-sdk-osgi-1.10.76.jar
note note NOTE Filnamnen ovan används endast som illustrationer. -
Hämta den senaste versionen av funktionspaketet 1.10.x från Adobe-databasen.
-
Zippa upp innehållet i en separat mapp och navigera sedan till
jcr_root/libs/system/install/15
. -
Kopiera jar-filerna till <aem-install>/crx-quickstart/install/15 i AEM installationsmapp.
-
Starta AEM och kontrollera anslutningsfunktionen.
Du kan använda konfigurationsfilen med alternativen nedan.
Alternativ för konfigurationsfil för S3 Connector s3-connector-configuration-file-options
accessKey
och secretKey
från konfigurationsfilen. S3-kopplingen kommer sedan att använda den IAM-roll som tilldelats instansen som standard.crx-quickstart/repository/datastore
cacheSize
som ska användas för att mellanlagra asynkrona överföringar.DataStore-cachelagring data-store-caching
S3DataStore
, CachingFileDataStore
och AzureDataStore
stöder cachelagring av lokala filsystem. Implementeringen av CachingFileDataStore
är användbar när DataStore är på NFS (Network File System).När du uppgraderar från en äldre cacheimplementering (före Oak 1.6) finns det en skillnad i strukturen för det lokala filsystemets cachekatalog. I den gamla cachestrukturen placerades både de hämtade och de överförda filerna direkt under cachesökvägen. Den nya strukturen delar upp hämtningarna och överföringarna och lagrar dem i två kataloger som heter upload
och download
under cachesökvägen. Uppgraderingsprocessen bör vara sömlös och alla väntande överföringar bör schemaläggas för överföring och alla tidigare hämtade filer i cachen läggs i cachen vid initieringen.
Du kan även uppgradera cachen offline med kommandot datastorecacheupgrade
i ekupen. Mer information om hur du kör kommandot finns i Viktigt för ekrun-modulen.
Cachen har en storleksgräns och kan konfigureras med parametern cacheSize.
Nedladdningar downloads
Den lokala cachen kontrolleras för posten för den begärda filen/blobben innan den hämtas från DataStore. När cacheminnet överskrider den konfigurerade gränsen (se parametern cacheSize
) när en fil läggs till i cacheminnet, kommer vissa av filerna att frigöra utrymme.
Asynkron överföring async-upload
Cachen stöder asynkrona överföringar till DataStore. Filerna mellanlagras lokalt i cachen (i filsystemet) och ett asynkront jobb börjar överföra filen. Antalet asynkrona överföringar begränsas av mellanlagringscachens storlek. Mellanlagringscachens storlek konfigureras med parametern stagingSplitPercentage
. Den här parametern definierar den procentandel av cachestorleken som ska användas för mellanlagringscachen. Procentandelen cache som är tillgänglig för nedladdningar beräknas också som (100 - stagingSplitPercentage
) *cacheSize
.
De asynkrona överföringarna är flertrådiga och antalet trådar konfigureras med parametern uploadThreads
.
Filerna flyttas till huvudcachen för hämtning när överföringen är klar. När storleken på mellanlagringscachen överskrider gränsen överförs filerna synkront till DataStore tills föregående asynkrona överföringar är slutförda och utrymme är igen tillgängligt i mellanlagringscachen. De överförda filerna tas bort från mellanlagringsområdet av ett periodiskt jobb vars intervall har konfigurerats av parametern stagingPurgeInterval
.
Misslyckade överföringar (till exempel på grund av nätverksavbrott) placeras i en återförsökskö och försök med jämna mellanrum. Återförsöksintervallet konfigureras med stagingRetryInterval parameter
.
Konfigurera icke-binära replikeringar med Amazon S3 configuring-binaryless-replication-with-amazon-s
Följande steg krävs för att konfigurera en binär replikering med S3:
-
Installera författaren och publicera instanser och se till att de har startats korrekt.
-
Gå till inställningarna för replikeringsagenten genom att öppna en sida till https://localhost:4502/etc/replication/agents.author/publish.html.
-
Tryck på knappen Redigera i avsnittet Inställningar .
-
Ändra typalternativet Serialisering till Binärt mindre.
-
Lägg till parametern
binaryless
=true
i transport-URI:n. Efter ändringen bör URI:n se ut ungefär så här:https://localhost:4503/bin/receive?sling:authRequestLogin=1&binaryless=true
-
Starta om alla författare- och publiceringsinstanser så att ändringarna börjar gälla.
Skapa ett kluster med S3 och MongoDB creating-a-cluster-using-s-and-mongodb
-
Packa upp CQ-snabbstart med följande kommando:
java -jar cq-quickstart.jar -unpack
-
När AEM har packats upp skapar du en mapp i installationskatalogen crx-quickstart/install.
-
Skapa de här två filerna i mappen
crx-quickstart
:-
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
-
org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
När filerna har skapats lägger du till konfigurationsalternativen efter behov.
-
-
Installera de två paket som krävs för S3-datalagret enligt beskrivningen ovan.
-
Kontrollera att MongoDB är installerat och att en instans av
mongod
körs. -
AEM med följande kommando:
java -Xmx1024m -jar cq-quickstart.jar -r crx3,crx3mongo
-
Upprepa steg 1 till 4 för den andra AEM.
-
Starta den andra AEM.
Konfigurera ett delat datalager configuring-a-shared-data-store
-
Skapa först konfigurationsfilen för datalagret för varje instans som krävs för att dela datalagret:
-
Om du använder en
FileDataStore
skapar du en fil med namnetorg.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
och placerar den i mappen<aem-install>/crx-quickstart/install
. -
Om du använder S3 som datalager skapar du en fil med namnet
rg.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
i mappen<aem-install>/crx-quickstart/install
enligt ovan.
-
-
Ändra konfigurationsfilerna för datalagret på varje instans så att de pekar på samma datalager. Mer information finns i Konfigurationer för datalager.
-
Om instansen har klonats från en befintlig server måste du ta bort den nya instansens
clusterId
med hjälp av det senaste körningsverktyget när databasen är offline. Kommandot du måste köra är:code language-xml java -jar oak-run.jar resetclusterid < repository path | Mongo URI >
note note NOTE Om en segmentnodbutik har konfigurerats måste databassökvägen anges. Som standard är sökvägen <aem-install-folder>/crx-quickstart/repository/segmentstore.
Om ett dokumentnodarkiv har konfigurerats kan du använda en monoanslutningssträng-URI.note note NOTE Du kan hämta Oak-körningsverktyget från följande plats: https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run/ Olika versioner av verktyget måste användas beroende på vilken version av Oak du använder tillsammans med AEM. Kontrollera listan över versionskrav innan du använder verktyget: code language-none * För Oak-versionerna **1.2.x** använder du Oak-run **1.2.12 eller senare** * För Oak-versioner **som är nyare än ovanstående** använder du den version av Oak som matchar Oak-kärnan i din AEM.
-
Validera konfigurationen till sist. Du validerar genom att leta efter en unik fil som lagts till i datalagret av varje databas som delar den. Filformatet är
repository-[UUID]
, där UUID är en unik identifierare för varje enskild databas.Därför bör en korrekt konfiguration ha så många unika filer som det finns databaser som delar datalagret.
Filerna lagras på olika sätt beroende på datalagret:
- För
FileDataStore
skapas filerna under rotsökvägen för datalagringsmappen. - För
S3DataStore
skapas filerna i den konfigurerade S3-bucket under mappenMETA
.
- För
Azure Data Store azure-data-store
AEM kan konfigureras för att lagra data i Microsoft® Azure-lagringstjänst. Det använder org.apache.jackrabbit.oak.plugins.blob.datastore.AzureDataStore.config
-PID:t för konfiguration.
Om du vill aktivera Azure-datalagrets funktioner måste ett funktionspaket som innehåller Azure Connector hämtas och installeras. Gå till Adobe-databasen och hämta den senaste versionen från version 1.6.x av funktionspaketet (till exempel com.adobe.granite.oak.azureblobconnector-1.6.3.zip).
crx3tar-nofds
-körningsläget, till exempel:java -jar <aem-jar-file>.jar -r crx3tar-nofds
När du har hämtat den kan du installera och konfigurera Azure-anslutningen på följande sätt:
-
Extrahera innehållet i ZIP-filen för funktionspaketet till en tillfällig mapp.
-
Gå till den tillfälliga mappen och kopiera innehållet i
jcr_root/libs/system/install
till mappen<aem-install>crx-quickstart/install
. -
Om AEM redan har konfigurerats för att fungera med lagringen tar du bort alla befintliga konfigurationsfiler från mappen
/crx-quickstart/install
innan du fortsätter. De filer som måste tas bort är:ForMongoMK:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
För tarMK:
org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
-
Återgå till den tillfälliga platsen där funktionspaketet har extraherats och kopiera innehållet i
jcr_root/libs/system/config
till mappen<aem-install>/crx-quickstart/install
. -
Redigera konfigurationsfilen och lägg till de konfigurationsalternativ som krävs för installationen.
-
Börja AEM.
Du kan använda konfigurationsfilen med följande alternativ:
-
azureSas="": I version 1.6.3 av anslutningsprogrammet har stöd för Azure Shared Access Signature (SAS) lagts till. Om det finns både SAS- och lagringsreferenser i konfigurationsfilen har SAS prioritet. Mer information om SAS finns i den officiella dokumentationen. Se till att tecknet '=' escape-konverteras som '='.
-
azureBlobEndpoint="": Azure Blob Endpoint. Till exempel https://<storage-account>.blob.core.windows.net.
-
accessKey="": Lagringskontots namn. Mer information om autentiseringsuppgifter för Microsoft® Azure finns i den officiella dokumentationen.
-
secretsKey="": Lagringsåtkomstnyckeln. Se till att tecknet '=' escape-konverteras som '='.
-
container="": Microsoft® Azure-blobbens lagringsbehållarnamn. Behållaren är en gruppering av en uppsättning blober. Mer information finns i den officiella dokumentationen.
-
maxConnections="": Det samtidiga antalet samtidiga begäranden per åtgärd. Standardvärdet är 1.
-
maxErrorRetry="": Antal försök per begäran. Standardvärdet är 3.
-
socketTimeout=""": Tidsgränsen i millisekunder som används för begäran. Standardvärdet är 5 minuter.
Förutom inställningarna ovan kan följande inställningar också konfigureras:
- sökväg: Sökvägen till datalagret. Standardvärdet är
<aem-install>/repository/datastore.
- RecordLength: Den minsta storleken för ett objekt som ska lagras i datalagret. Standardvärdet är 16 kB.
- maxCachedBinarySize: Binärfiler som är mindre än eller lika med den här storleken lagras i minnescachen. Storleken anges i byte. Standardvärdet är 17 408 (17 kB).
- cacheSize: Cachens storlek. Värdet anges i byte. Standardvärdet är 64 GB.
- hemlighet: Ska endast användas om binär replikering används för delad datalagringsinställning.
- stagingSplitPercentage: Den procentandel av cachestorleken som har konfigurerats för att användas för att mellanlagra asynkrona överföringar. Standardvärdet är 10.
- uploadThreads: Antalet överförda trådar som används för asynkrona överföringar. Standardvärdet är 10.
- stagingPurgeInterval: Intervallet i sekunder för tömning av slutförda överföringar från mellanlagringscachen. Standardvärdet är 300 sekunder (5 minuter).
- stagingRetryInterval: Återförsöksintervallet i sekunder för misslyckade överföringar. Standardvärdet är 600 sekunder (10 minuter).
accessKey="ASDASDERFAERAER"
secretKey="28932hfjlkwdo8fufsdfas\=\="
Skräpinsamling för datalager data-store-garbage-collection
Datalagrets skräpinsamlingsprocess används för att ta bort oanvända filer i datalagret, vilket frigör värdefullt diskutrymme under processen.
Du kan köra skräpinsamling för datalager genom att:
-
Gå till JMX-konsolen på https://<serveradress:port>/system/console/jmx
-
Söker efter RepositoryManagement. När du har hittat Databashanterarens MBean klickar du på det för att visa tillgängliga alternativ.
-
Bläddra till slutet av sidan och klicka på länken startDataStoreGC(boolesk markOnly) .
-
I följande dialogruta anger du
false
för parameternmarkOnly
och klickar sedan på Anropa:note note NOTE Parametern markOnly
anger om svepfasen för skräpinsamlingen körs eller inte.
Skräpinsamling för datalager för ett delat datalager data-store-garbage-collection-for-a-shared-data-store
- Stoppa AEM.
- Lägg till parametern
blobTrackSnapshotIntervalInSecs=L"0"
i filencrx-quickstart/install/org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
. Den här parametern kräver Oak 1.12.0, 1.10.2 eller senare. - Starta om AEM.
Med senare versioner av AEM kan skräpinsamlingen i datalagret även köras på datalager som delas av mer än en databas. Så här kan du köra skräpinsamling i datalager på ett delat datalager:
-
Se till att alla underhållsuppgifter som konfigurerats för datalagrets skräpinsamling är inaktiverade för alla databasinstanser som delar datalagret.
-
Kör stegen som anges i binär skräpinsamling individuellt på alla databasinstanser som delar datalagret. Tänk dock på att ange
true
för parameternmarkOnly
innan du klickar på knappen Anropa: -
När du har slutfört ovanstående procedur på alla instanser kör du skräpinsamlingen för datalagret igen från någon av instanserna:
- Gå till JMX-konsolen och välj Repository Manager Mbean.
- Klicka på länken Click startDataStoreGC(boolean markOnly) .
- I följande dialogruta anger du
false
sommarkOnly
-parameter igen.
Alla filer som hittas sorteras med markeringsfasen som användes före och tar bort resten som inte används från datalagret.