AEM Configuración de almacenes de nodos y almacenes de datos en el 6 configuring-node-stores-and-data-stores-in-aem
Introducción introduction
En Adobe Experience Manager AEM (), los datos binarios se pueden almacenar de forma independiente de los nodos de contenido. Los datos binarios se almacenan en un almacén de datos, mientras que los nodos de contenido se almacenan en un almacén de nodos.
Tanto los almacenes de datos como los almacenes de nodos se pueden configurar mediante la configuración OSGi. Se hace referencia a cada configuración de OSGi mediante un identificador persistente (PID).
Pasos de configuración configuration-steps
Para configurar el almacén de nodos y el almacén de datos, realice estos pasos:
-
AEM Copie el archivo JAR de inicio rápido de la en su directorio de instalación.
-
Cree una carpeta
crx-quickstart/install
en el directorio de instalación. -
En primer lugar, configure el almacén de nodos creando un archivo de configuración con el nombre de la opción de almacén de nodos que desee utilizar en el directorio
crx-quickstart/install
.AEM Por ejemplo, el almacén de nodos de documentos (que es la base para la implementación de MongoMK de la aplicación de la documentación de documentos) utiliza el archivo
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
. -
Edite el archivo y defina las opciones de configuración.
-
Cree un archivo de configuración con el PID del almacén de datos que desee utilizar. Edite el archivo para establecer las opciones de configuración.
note note NOTE Consulte Configuraciones del almacén de nodos y Configuraciones del almacén de datos para ver las opciones de configuración. -
AEM Inicio de.
Configuraciones del almacén de nodos node-store-configurations
crx-quickstart/install
. Después de la actualización, restaure el contenido de la carpeta a la instalación actualizada y modifique la extensión de los archivos de configuración de .cfg a .config.Almacén de nodos de segmentos segment-node-store
El almacén de nodos de segmentos es la base de la implementación de TarMK de Adobe AEM en la versión 6 de. Utiliza el PID org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
para la configuración.
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService in previous versions
de 6 a org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
en 6.3. Asegúrese de realizar los ajustes de configuración necesarios para reflejar este cambio.Puede configurar las siguientes opciones:
-
repository.home
: ruta al inicio del repositorio en el que se almacenan los datos relacionados con el repositorio. De manera predeterminada, los archivos de segmentos se almacenan en el directoriocrx-quickstart/segmentstore
. -
tarmk.size
: tamaño máximo de un segmento en MB. El máximo predeterminado es 256 MB. -
customBlobStore
: valor booleano que indica que se utiliza un almacén de datos personalizado. AEM El valor predeterminado es True para la versión 6.3 y versiones posteriores de la versión de. AEM Antes de la versión 6.3, el valor predeterminado era false.
El siguiente es un archivo de muestra org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
:
#Path to repo
repository.home="crx-quickstart/repository"
#Max segment size
tarmk.size=I"256"
#Custom data store
customBlobStore=B"true"
Almacén de nodos de documentos document-node-store
AEM El almacén de nodos de documentos es la base de la implementación de MongoMK de la aplicación de la. Utiliza el PID de org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService
. Estas son las opciones de configuración disponibles:
-
mongouri
: el MongoURI necesario para conectarse a la base de datos de Mongo. El valor predeterminado esmongodb://localhost:27017
-
db
: nombre de la base de datos Mongo. El valor predeterminado es Oak. However, new AEM 6 installations use **aem-author**
como nombre de base de datos predeterminado. -
cache
: tamaño de la caché en MB. Se distribuye entre varias memorias caché utilizadas en DocumentNodeStore. El valor predeterminado es256
-
changesSize
: tamaño en MB de la colección limitada utilizada en Mongo para almacenar en caché la salida de diferencia. El valor predeterminado es256
-
customBlobStore
: valor booleano que indica que se utiliza un almacén de datos personalizado. El valor predeterminado esfalse
.
El siguiente es un archivo de muestra org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
:
#Mongo server details
mongouri="mongodb://localhost:27017"
#Name of Mongo database to use
db="aem-author"
#Store binaries in custom BlobStore
customBlobStore=B"false"
Configuraciones del almacén de datos data-store-configurations
Cuando se trata de un gran número de binarios, se recomienda utilizar un almacén de datos externo en lugar de los almacenes de nodos predeterminados para maximizar el rendimiento.
Por ejemplo, si el proyecto requiere muchos recursos multimedia, almacenarlos en el almacén de datos de archivos o S3 hace que el acceso a ellos sea más rápido que almacenarlos directamente en un MongoDB.
El almacén de datos de archivos proporciona un mejor rendimiento que MongoDB, y las operaciones de copia de seguridad y restauración de Mongo también son más lentas con un gran número de recursos.
A continuación se describen los detalles de los diferentes almacenes de datos y configuraciones.
customBlobStore
está establecido en true
en el archivo de configuración del almacén de nodos correspondiente (almacén de nodos de segmentos o almacén de nodos de documentos).Almacén de datos de archivo file-data-store
Esta es la implementación de FileDataStore presente en Jackrabbit 2. Proporciona una forma de almacenar los datos binarios como archivos normales en el sistema de archivos. Utiliza el PID org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore
.
Estas opciones de configuración están disponibles:
-
repository.home
: ruta al inicio del repositorio en el que se almacenan varios datos relacionados con el repositorio. De manera predeterminada, los archivos binarios se almacenarían en el directoriocrx-quickstart/repository/datastore
-
path
: ruta de acceso al directorio en el que se almacenarán los archivos. Si se especifica, tiene prioridad sobre el valorrepository.home
-
minRecordLength
: tamaño mínimo en bytes de un archivo almacenado en el almacén de datos. El contenido binario inferior a este valor estaría en la línea.
Almacén de datos de Amazon S3 amazon-s-data-store
AEM Se puede configurar el almacenamiento de datos en el servicio de almacenamiento simple (S3) de Amazon. Utiliza el PID org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
para la configuración.
Para habilitar la funcionalidad del almacén de datos S3, se debe descargar e instalar un paquete de funciones que contenga el conector del almacén de datos S3. Vaya a Repositorio de Adobe y descargue la versión más reciente de las versiones 1.10.x del paquete de funciones (por ejemplo, com.adobe.granite.oak.s3connector-1.10.0.zip). AEM AEM Además, debe descargar e instalar el Service Pack más reciente tal y como se indica en la página Notas de la versión de.5.
FileDataStore
. AEM Para usar TarMK con el almacén de datos S3, debe comenzar a usar el modo de ejecución crx3tar-nofds
, por ejemplo:java -jar <aem-jar-file>.jar -r crx3tar-nofds
Una vez descargado, puede instalar y configurar el conector S3 de la siguiente manera:
-
Extraiga el contenido del archivo zip del paquete de funciones en una carpeta temporal.
-
Vaya a la carpeta temporal y navegue hasta la siguiente ubicación:
code language-xml jcr_root/libs/system/install
Copie todo el contenido de la ubicación anterior en
<aem-install>/crx-quickstart/install.
-
AEM Si ya está configurado para trabajar con el almacenamiento Tar o MongoDB, elimine los archivos de configuración existentes de la carpeta <aem-install>/crx-quickstart/install antes de continuar. Los archivos que deben eliminarse son los siguientes:
For MongoMK: org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
For TarMK: org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
-
Vuelva a la ubicación temporal en la que se ha extraído el paquete de funciones y copie el contenido de la siguiente carpeta:
jcr_root/libs/system/config
hasta
<aem-install>/crx-quickstart/install
Asegúrese de copiar únicamente los archivos de configuración necesarios para la configuración actual. Tanto para un almacén de datos dedicado como para una configuración de almacén de datos compartido, copie el archivo
org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
.note note NOTE En una configuración de clúster, realice los pasos anteriores en todos los nodos del clúster uno a uno. Además, asegúrese de utilizar la misma configuración de S3 para todos los nodos. -
Edite el archivo y añada las opciones de configuración que requiera el programa de instalación.
-
AEM Inicio de.
Actualización a una nueva versión del conector S3 1.10.x upgrading-to-a-new-version-of-the-s-connector
Para actualizar a una nueva versión del conector 1.10.x S3 (por ejemplo, de 1.10.0 a 1.10.4), siga estos pasos:
-
AEM Detenga la instancia de la.
-
AEM Vaya a
<aem-install>/crx-quickstart/install/15
en la carpeta de instalación de la y haga una copia de seguridad de su contenido. -
Después de la copia de seguridad, elimine la versión antigua del conector S3 y sus dependencias eliminando todos los archivos jar de la carpeta
<aem-install>/crx-quickstart/install/15
, por ejemplo:- oak-blob-cloud-1.6.1.jar
- aws-java-sdk-osgi-1.10.76.jar
note note NOTE Los nombres de archivo presentados anteriormente se utilizan únicamente con fines ilustrativos. -
Descargue la última versión del paquete de funciones 1.10.x del Repositorio de Adobe.
-
Descomprima el contenido en una carpeta independiente y luego vaya a
jcr_root/libs/system/install/15
. -
AEM Copie los archivos jar en <aem-install>/crx-quickstart/install/15 en la carpeta de instalación de la.
-
AEM Inicie y compruebe la funcionalidad del conector.
Puede utilizar el archivo de configuración con las opciones detalladas a continuación.
Opciones del archivo de configuración del conector S3 s3-connector-configuration-file-options
accessKey
y secretKey
del archivo de configuración. El conector S3 tendrá de forma predeterminada la función IAM asignada a la instancia.crx-quickstart/repository/datastore
cacheSize
que se utilizará para la realización de cargas asincrónicas.Almacenamiento en caché de DataStore data-store-caching
S3DataStore
, CachingFileDataStore
y AzureDataStore
admiten el almacenamiento en caché del sistema de archivos local. La implementación de CachingFileDataStore
resulta útil cuando DataStore está en NFS (Network File System).Al actualizar desde una implementación de caché anterior (anterior a Oak 1.6) hay una diferencia en la estructura del directorio de caché del sistema de archivos local. En la estructura de caché antigua, tanto los archivos descargados como los cargados se colocaban directamente debajo de la ruta de caché. La nueva estructura separa las descargas y cargas y las almacena en dos directorios llamados upload
y download
en la ruta de acceso de la caché. El proceso de actualización debe ser fluido, y cualquier carga pendiente debe programarse para su carga, y cualquier archivo descargado anteriormente en la caché se coloca en la caché en la inicialización.
También puede actualizar la caché sin conexión utilizando el comando datastorecacheupgrade
de oak-run. Para obtener más información sobre cómo ejecutar el comando, compruebe readme para el módulo oak-run.
La caché tiene un límite de tamaño y se puede configurar utilizando el parámetro cacheSize.
Descargas downloads
Se comprueba el registro del archivo/blob solicitado en la caché local antes de acceder a él desde el almacén de datos. Cuando la caché supera el límite configurado (consulte el parámetro cacheSize
) mientras agrega un archivo a la caché, algunos de los archivos se desalojan para reclamar espacio.
Carga asincrónica async-upload
La caché admite cargas asincrónicas al DataStore. Los archivos se almacenan localmente en la caché (en el sistema de archivos) y se inicia un trabajo asincrónico para cargar el archivo. El número de cargas asincrónicas está limitado por el tamaño de la caché de ensayo. El tamaño de la caché de ensayo se configura con el parámetro stagingSplitPercentage
. Este parámetro define el porcentaje del tamaño de la caché que se utilizará para la caché de ensayo. Además, el porcentaje de caché disponible para las descargas se calcula como (100 - stagingSplitPercentage
) *cacheSize
.
Las cargas asincrónicas son de varios procesos y el número de subprocesos se configura con el parámetro uploadThreads
.
Los archivos se mueven a la caché de descarga principal una vez completadas las cargas. Cuando el tamaño de la caché de ensayo supera su límite, los archivos se cargan sincrónicamente en el almacén de datos hasta que se completan las cargas asincrónicas anteriores y vuelve a haber espacio disponible en la caché de ensayo. Los archivos cargados se quitan del área de ensayo mediante un trabajo periódico cuyo intervalo se configura con el parámetro stagingPurgeInterval
.
Las cargas que generan errores (por ejemplo, debido a una interrupción de la red) se colocan en una cola de reintentos y se vuelven a intentar periódicamente. El intervalo de reintento se configura usando stagingRetryInterval parameter
.
Configuración de la replicación binaria con Amazon S3 configuring-binaryless-replication-with-amazon-s
Para configurar la replicación binaria con S3, se requieren los siguientes pasos:
-
Instale las instancias de autor y publicación y asegúrese de que se inician correctamente.
-
Vaya a la configuración del agente de replicación abriendo una página en https://localhost:4502/etc/replication/agents.author/publish.html.
-
Presione el botón Editar en la sección Configuración.
-
Cambie la opción de tipo Serialization a Binary less.
-
Agregue el parámetro "
binaryless
=true
" en el URI de transporte. Después del cambio, el URI debe ser similar al siguiente:https://localhost:4503/bin/receive?sling:authRequestLogin=1&binaryless=true
-
Reinicie todas las instancias de autor y publicación para que los cambios surtan efecto.
Creación de un clúster con S3 y MongoDB creating-a-cluster-using-s-and-mongodb
-
Desempaquete el inicio rápido de CQ con el siguiente comando:
java -jar cq-quickstart.jar -unpack
-
AEM Una vez desempaquetado el paquete, cree una carpeta dentro del directorio de instalación crx-quickstart/install.
-
Cree estos dos archivos dentro de la carpeta
crx-quickstart
:-
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.configuración
-
org.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.configuración
Una vez creados los archivos, agregue las opciones de configuración según sea necesario.
-
-
Instale los dos paquetes necesarios para el almacén de datos S3 tal como se explica más arriba.
-
Asegúrese de que MongoDB está instalado y de que se está ejecutando una instancia de
mongod
. -
AEM Comience con el siguiente comando:
java -Xmx1024m -jar cq-quickstart.jar -r crx3,crx3mongo
-
AEM Repita los pasos del 1 al 4 para la segunda instancia de.
-
AEM Inicie la segunda instancia de.
Configuración de un almacén de datos compartido configuring-a-shared-data-store
-
En primer lugar, cree el archivo de configuración del almacén de datos en cada instancia necesaria para compartir el almacén de datos:
-
Si usa un(a)
FileDataStore
, cree un archivo con el nombreorg.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config
y colóquelo en la carpeta<aem-install>/crx-quickstart/install
. -
Si usa S3 como almacén de datos, cree un archivo con el nombre
rg.apache.jackrabbit.oak.plugins.blob.datastore.S3DataStore.config
en la carpeta<aem-install>/crx-quickstart/install
como se ha indicado anteriormente.
-
-
Modifique los archivos de configuración del almacén de datos en cada instancia para que apunten al mismo almacén de datos. Para obtener más información, consulte Configuraciones del almacén de datos.
-
Si la instancia se ha clonado de un servidor existente, debe quitar
clusterId
de la nueva instancia con la última herramienta oak-run mientras el repositorio está sin conexión. El comando que debe ejecutar es:code language-xml java -jar oak-run.jar resetclusterid < repository path | Mongo URI >
note note NOTE Si se configura un almacén de nodos de segmentos, se debe especificar la ruta del repositorio. De manera predeterminada, la ruta es <aem-install-folder>/crx-quickstart/repository/segmentstore.
. Si se configura un almacén de nodos de documento, puede usar un URI de cadena de conexión Mongo.note note NOTE La herramienta de ejecución de Oak se puede descargar desde esta ubicación: https://mvnrepository.com/artifact/org.apache.jackrabbit/oak-run/ Se deben utilizar distintas versiones de la herramienta en función de la versión de Oak AEM que utilice con la instalación de la. Compruebe la lista de requisitos de versión que aparece a continuación antes de utilizar la herramienta: code language-none * Para las versiones de Oak **1.2.x**, use la versión de Oak **1.2.12 o posterior** * Para las versiones de Oak **más recientes que las anteriores**, use la versión de Oak-run que coincida con el núcleo de Oak AEM de su instalación de la.
-
Por último, valide la configuración. Para validarlo, busque un archivo único agregado al almacén de datos por cada repositorio que lo comparta. El formato de los archivos es
repository-[UUID]
, donde UUID es un identificador único de cada repositorio individual.Por lo tanto, una configuración adecuada debe tener tantos archivos únicos como repositorios que compartan el almacén de datos.
Los archivos se almacenan de forma diferente, según el almacén de datos:
- Para
FileDataStore
, los archivos se crean en la ruta raíz de la carpeta del almacén de datos. - Para
S3DataStore
, los archivos se crean en el contenedor configurado de S3 en la carpetaMETA
.
- Para
Almacén de datos de Azure azure-data-store
AEM Se puede configurar el almacenamiento de datos en el servicio de almacenamiento de Azure de Microsoft®. Utiliza el PID org.apache.jackrabbit.oak.plugins.blob.datastore.AzureDataStore.config
para la configuración.
Para habilitar la funcionalidad del almacén de datos de Azure, se debe descargar e instalar un paquete de funciones que contenga el conector de Azure. Vaya a Repositorio de Adobe y descargue la versión más reciente de las versiones 1.6.x del paquete de funciones (por ejemplo, com.adobe.granite.oak.azureblobconnector-1.6.3.zip).
crx3tar-nofds
, por ejemplo:java -jar <aem-jar-file>.jar -r crx3tar-nofds
Una vez descargado, puede instalar y configurar el conector de Azure de la siguiente manera:
-
Extraiga el contenido del archivo zip del paquete de funciones en una carpeta temporal.
-
Vaya a la carpeta temporal y copie el contenido de
jcr_root/libs/system/install
en la carpeta<aem-install>crx-quickstart/install
. -
AEM Si ya está configurado para trabajar con el almacenamiento Tar o MongoDB, quite los archivos de configuración existentes de la carpeta
/crx-quickstart/install
antes de continuar. Los archivos que deben eliminarse son los siguientes:Para MongoMK:
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService.config
Para TarMK:
org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
-
Vuelva a la ubicación temporal en la que se extrajo el paquete de características y copie el contenido de
jcr_root/libs/system/config
en la carpeta<aem-install>/crx-quickstart/install
. -
Edite el archivo de configuración y añada las opciones de configuración que requiera el programa de instalación.
-
AEM Inicio de.
Puede utilizar el archivo de configuración con las siguientes opciones:
-
azureSas="": en la versión 1.6.3 del conector, se agregó compatibilidad con la firma de acceso compartido (SAS) de Azure. Si existen credenciales de SAS y de almacenamiento en el archivo de configuración, SAS tiene prioridad. Para obtener más información acerca de SAS, consulte la documentación oficial. Asegúrese de que el carácter "=" tiene un carácter de escape similar a "=".
-
azureBlobEndpoint="": El extremo del blob de Azure. Por ejemplo, https://<storage-account>.blob.core.windows.net.
-
accessKey="": nombre de la cuenta de almacenamiento. Para obtener más información acerca de las credenciales de autenticación de Microsoft® Azure, consulte la documentación oficial.
-
secretKey="": La clave de acceso de almacenamiento. Asegúrese de que el carácter "=" tiene un carácter de escape similar a "=".
-
container="": el nombre del contenedor de almacenamiento del blob de Microsoft® Azure. El contenedor es una agrupación de un conjunto de blobs. Para obtener más información, lea la documentación oficial.
-
maxConnections="": el número simultáneo de solicitudes simultáneas por operación. El valor predeterminado es 1.
-
maxErrorRetry="": número de reintentos por solicitud. El valor predeterminado es 3.
-
socketTimeout="": intervalo de tiempo de espera, en milisegundos, utilizado para la solicitud. El valor predeterminado es 5 minutos.
Además de los ajustes anteriores, también se pueden configurar los siguientes ajustes:
- ruta: la ruta del almacén de datos. El valor predeterminado es
<aem-install>/repository/datastore.
- RecordLength: tamaño mínimo de un objeto que debe almacenarse en el almacén de datos. El valor predeterminado es 16 KB.
- maxCachedBinarySize: Los binarios con un tamaño menor o igual a este tamaño se almacenan en la memoria caché. El tamaño es en bytes. El valor predeterminado es 17408 (17 KB).
- cacheSize: Tamaño de la caché. El valor se especifica en bytes. El valor predeterminado es 64 GB.
- secret: solo se debe utilizar si se utiliza la replicación binaria para la configuración del almacén de datos compartido.
- stagingSplitPercentage: porcentaje del tamaño de caché configurado para utilizarse en las cargas asincrónicas de ensayo. El valor predeterminado es 10.
- uploadThreads: número de subprocesos de carga que se utilizan para cargas asincrónicas. El valor predeterminado es 10.
- stagingPurgeInterval: intervalo en segundos para purgar cargas finalizadas de la caché de ensayo. El valor predeterminado es 300 segundos (5 minutos).
- stagingRetryInterval: intervalo de reintento en segundos para cargas fallidas. El valor predeterminado es 600 segundos (10 minutos).
accessKey="ASDASDERFAERAER"
secretKey="28932hfjlkwdo8fufsdfas\=\="
Recopilación de residuos del almacén de datos data-store-garbage-collection
El proceso de recolección de elementos no utilizados del almacén de datos se utiliza para quitar los archivos no utilizados del almacén de datos, lo que libera espacio en disco valioso en el proceso.
Para ejecutar la recolección de elementos no utilizados del almacén de datos:
-
Ir a la consola JMX en https://<serveraddress:port>/system/console/jmx
-
Buscando RepositoryManagement. Cuando encuentre el MBean del Administrador de repositorios, haga clic en él para que aparezcan las opciones disponibles.
-
Desplácese hasta el final de la página y haga clic en el vínculo startDataStoreGC(boolean markOnly).
-
En el siguiente cuadro de diálogo, escriba
false
para el parámetromarkOnly
y, a continuación, haga clic en Invocar:note note NOTE El parámetro markOnly
indica si se ejecuta o no la fase de barrido de la recolección de elementos no utilizados.
Recolección de elementos no utilizados del almacén de datos para un almacén de datos compartido data-store-garbage-collection-for-a-shared-data-store
- AEM Detenga la instancia de.
- Agregue el parámetro
blobTrackSnapshotIntervalInSecs=L"0"
en el archivocrx-quickstart/install/org.apache.jackrabbit.oak.segment.SegmentNodeStoreService.config
. Este parámetro requiere Oak 1.12.0, 1.10.2 o posterior. - AEM Vuelva a iniciar la instancia de.
AEM Con las versiones más recientes de la aplicación, la recolección de elementos no utilizados del almacén de datos también se puede ejecutar en almacenes de datos compartidos por más de un repositorio. Para poder ejecutar la recolección de elementos no utilizados del almacén de datos en un almacén de datos compartido, siga estos pasos:
-
Asegúrese de que todas las tareas de mantenimiento configuradas para la recopilación de residuos del almacén de datos estén desactivadas en todas las instancias del repositorio que compartan el almacén de datos.
-
Ejecute los pasos mencionados en Recopilación binaria de basura de forma individual en todas las instancias del repositorio que comparten el almacén de datos. Sin embargo, asegúrese de escribir
true
para el parámetromarkOnly
antes de hacer clic en el botón Invocar: -
Después de completar el procedimiento anterior en todas las instancias, ejecute de nuevo el recolector de elementos no utilizados del almacén de datos de cualquiera de las instancias:
- Vaya a la consola JMX y seleccione el MBean Repository Manager.
- Haga clic en el vínculo Click startDataStoreGC(boolean markOnly).
- En el siguiente cuadro de diálogo, vuelva a escribir
false
para el parámetromarkOnly
.
Todos los archivos encontrados se recopilan utilizando la fase de marcado utilizada anteriormente y eliminando el resto que no se utilicen del almacén de datos.