Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
UltraWarm almacenamiento para Amazon OpenSearch Service
UltraWarm proporciona una forma rentable de almacenar grandes cantidades de datos de solo lectura en Amazon OpenSearch Service. Los nodos de datos estándar utilizan almacenamiento "en caliente", que adopta la forma de almacenes de instancias o volúmenes de Amazon EBS asociados a cada nodo. El almacenamiento en caliente proporciona el rendimiento más rápido posible para indexar y buscar nuevos datos.
En lugar de almacenamiento adjunto, UltraWarm los nodos utilizan Amazon S3 y una sofisticada solución de almacenamiento en caché para mejorar el rendimiento. En el caso de los índices en los que no está escribiendo activamente, que consultan con menos frecuencia y que no necesitan el mismo rendimiento, UltraWarm ofrecen costes significativamente más bajos por GiB de datos. Dado que los índices calientes son de solo lectura, a menos que se devuelvan al almacenamiento activo, UltraWarm es ideal para datos inmutables, como los registros.
En OpenSearch, los índices cálidos se comportan igual que cualquier otro índice. Puede consultarlos mediante las mismas API o utilizarlos para crear visualizaciones en OpenSearch los paneles de control.
Temas
- Requisitos previos
- UltraWarm requisitos de almacenamiento y consideraciones de rendimiento
- UltraWarm fijación de precios
- ¿Habilitando UltraWarm
- Migración de índices al almacenamiento UltraWarm
- Automatizar migraciones
- Ajuste de migración
- Cancelación de migraciones
- Listado de índices calientes y templados
- Devolución de índices templados al almacenamiento caliente
- Restauración de índices templados a partir de instantáneas
- Instantáneas manuales de índices templados
- Migración de índices templados al almacenamiento frío
- Inhabilitando UltraWarm
Requisitos previos
UltraWarm tiene algunos requisitos previos importantes:
-
UltraWarm requiere Elasticsearch 6.8 OpenSearch o superior.
-
Para utilizar el almacenamiento "warm", los dominios deben tener nodos maestros dedicados.
-
Cuando se utiliza una zona de disponibilidad múltiple con un dominio en espera, el número de nodos activos debe ser un múltiplo del número de zonas de disponibilidad que se estén utilizando.
-
Si su dominio utiliza un tipo de instancia T2 o T3 para los nodos de datos, no puede utilizar el almacenamiento templado.
-
Si su índice usa k-NN aproximado
( "index.knn": true
), no puede moverlo al almacenamiento en caliente. -
Si el dominio usa un control de acceso detallado, los usuarios deben estar asignados a la
ultrawarm_manager
función en los OpenSearch paneles para poder realizar llamadas a la API. UltraWarm
nota
Es posible que la ultrawarm_manager
función no esté definida en algunos dominios de servicio preexistentes. OpenSearch Si no ve el rol en el panel, debe crearlo de forma manual.
Configuración de permisos
Si lo habilita UltraWarm en un dominio de OpenSearch servicio preexistente, es posible que el ultrawarm_manager
rol no esté definido en el dominio. Los usuarios que no sean administradores deben estar asignados a este rol para poder administrar índices templados en los dominios mediante un control de acceso detallado. Para crear el rol ultrawarm_manager
de forma manual, siga estos pasos:
-
En los OpenSearch paneles de control, vaya a Seguridad y elija Permisos.
-
Seleccione Crear grupo de acciones y configure los siguientes grupos:
Nombre del grupo Permisos ultrawarm_cluster
-
cluster:admin/ultrawarm/migration/list
-
cluster:monitor/nodes/stats
ultrawarm_index_read
-
indices:admin/ultrawarm/migration/get
-
indices:admin/get
ultrawarm_index_write
-
indices:admin/ultrawarm/migration/warm
-
indices:admin/ultrawarm/migration/hot
-
indices:monitor/stats
-
indices:admin/ultrawarm/migration/cancel
-
-
Seleccione Roles y, a continuación, Crear rol.
-
Asigne al rol el nombre ultrawarm_manager.
-
Para Permisos de clúster, seleccione
ultrawarm_cluster
ycluster_monitor
. -
Para Índice, escriba
*
. -
Para Permisos de índice, seleccione
ultrawarm_index_read
,ultrawarm_index_write
, yindices_monitor
. -
Seleccione Crear.
-
Después de crear el rol, asígnelo a cualquier rol de usuario o backend que UltraWarm administre los índices.
UltraWarm requisitos de almacenamiento y consideraciones de rendimiento
Como se explica en el Cálculo de requisitos de almacenamiento apartado anterior, los datos almacenados en caliente suponen una sobrecarga importante: réplicas, espacio reservado en Linux y espacio reservado en el OpenSearch servicio. Por ejemplo, una partición principal de 20 GiB con una partición de réplica requiere aproximadamente 58 GiB de almacenamiento en caliente.
Como utiliza Amazon S3, no UltraWarm incurre en ninguna de estas sobrecargas. Al calcular los requisitos UltraWarm de almacenamiento, solo se tiene en cuenta el tamaño de las particiones principales. La durabilidad de los datos en S3 elimina la necesidad de mantener réplicas y S3 abstrae (y hace innecesarias) las consideraciones de sistemas operativos o de servicio. Esa misma partición de 20 GiB requiere solo 20 GiB de almacenamiento templado. Si aprovisiona una instancia ultrawarm1.large.search
, puede usar los 20 TiB de su almacenamiento máximo para particiones principales. Consulte UltraWarm cuotas de almacenamiento para obtener un resumen de los tipos de instancia y la cantidad máxima de almacenamiento que puede abordar cada uno.
Con UltraWarm, seguimos recomendando un tamaño de fragmento máximo de 50 GiB. El número de núcleos de CPU y la cantidad de RAM asignados a cada tipo de UltraWarm instancia te dan una idea del número de fragmentos que pueden buscar simultáneamente. Tenga en cuenta que, si bien solo los fragmentos principales cuentan para el UltraWarm almacenamiento en S3, los OpenSearch cuadros de mando indican _cat/indices
el tamaño del UltraWarm índice como el total de todos los fragmentos principales y de réplica.
Por ejemplo, cada instancia de ultrawarm1.medium.search
tiene dos núcleos de CPU y puede abordar hasta 1,5 TiB de almacenamiento en S3. Dos de estas instancias tienen una combinación de 3 TiB de almacenamiento, que funciona en aproximadamente 62 particiones si cada partición es de 50 GiB. Si una solicitud al clúster solo busca cuatro de estas particiones, el rendimiento puede ser excelente. Si la solicitud es amplia y busca los 62, es posible que los cuatro núcleos de CPU tengan dificultades para realizar la operación. Supervise las WarmJVMMemoryPressure
UltraWarm métricas WarmCPUUtilization y las métricas para comprender cómo gestionan las instancias sus cargas de trabajo.
Si realiza búsquedas amplias o frecuentes, considere dejar los índices en el almacenamiento caliente. Al igual que cualquier otra OpenSearch carga de trabajo, el paso más importante para determinar si UltraWarm cumple con sus necesidades es realizar pruebas representativas con los clientes utilizando un conjunto de datos realista.
UltraWarm fijación de precios
Con el almacenamiento en caliente, se paga lo que se aprovisiona. Algunas instancias requieren un volumen de Amazon EBS asociado, mientras que otras incluyen un almacén de instancias. Tanto si el almacenamiento está vacío como si está lleno, se paga el mismo precio.
Con el UltraWarm almacenamiento, pagas por lo que usas. Una instancia ultrawarm1.large.search
puede poner a disposición hasta 20 TiB de almacenamiento en S3. Sin embargo, si únicamente se almacena 1 TiB de datos, solo se le facturará 1 TiB de datos. Como todos los demás tipos de nodos, también pagas una tarifa por hora por cada UltraWarm nodo. Para obtener más información, consulte Precios de Amazon OpenSearch Service.
¿Habilitando UltraWarm
La consola es la forma más sencilla de crear un dominio que utiliza almacenamiento templado. Al crear el dominio, elija Habilitar nodos de UltraWarm datos y el número de nodos calientes que desee. El mismo proceso básico funciona en dominios existentes, siempre que cumplan los requisitos previos. Incluso después de que el estado del dominio cambie de Procesado a Activo, es UltraWarm posible que no esté disponible para su uso durante varias horas.
Cuando se utiliza un dominio Multi-AZ con dominio en espera, el número de nodos calientes debe ser un múltiplo del número de zonas de disponibilidad que se estén utilizando. Para obtener más información, consulte Multi-AZ con modo de espera.
También puede usar la API de configuración AWS CLIWarmEnabled
WarmCount
, las WarmType
opciones y. ClusterConfig
nota
Los dominios admiten un número máximo de nodos templados. Para más información, consulte Cuotas OpenSearch de Amazon Service.
Ejemplo de comando de la CLI
El siguiente AWS CLI comando crea un dominio con tres nodos de datos, tres nodos maestros dedicados, seis nodos calientes y un control de acceso detallado activado:
aws opensearch create-domain \ --domain-name
my-domain
\ --engine-version Opensearch_1.0 \ --cluster-config InstanceCount=3,InstanceType=r6g.large.search,DedicatedMasterEnabled=true,DedicatedMasterType=r6g.large.search,DedicatedMasterCount=3,ZoneAwarenessEnabled=true,ZoneAwarenessConfig={AvailabilityZoneCount=3},WarmEnabled=true,WarmCount=6,WarmType=ultrawarm1.medium.search \ --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=11 \ --node-to-node-encryption-options Enabled=true \ --encryption-at-rest-options Enabled=true \ --domain-endpoint-options EnforceHTTPS=true,TLSSecurityPolicy=Policy-Min-TLS-1-2-2019-07 \ --advanced-security-options Enabled=true,InternalUserDatabaseEnabled=true,MasterUserOptions='{MasterUserName=master-user
,MasterUserPassword=master-password
}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["123456789012
"]},"Action":["es:*"],"Resource":"arn:aws:es:us-west-1
:123456789012
:domain/my-domain
/*"}]}' \ --regionus-east-1
Para obtener más información, consulte la Referencia de comandos de la AWS CLI.
Ejemplo de solicitud a la API de configuración
La siguiente solicitud a la API de configuración crea un dominio con tres nodos de datos, tres nodos maestros dedicados y seis nodos templados con control de acceso detallado habilitado y una política de acceso restrictiva:
POST https://es.us-east-2.amazonaws.com/2021-01-01/opensearch/domain { "ClusterConfig": { "InstanceCount": 3, "InstanceType": "r6g.large.search", "DedicatedMasterEnabled": true, "DedicatedMasterType": "r6g.large.search", "DedicatedMasterCount": 3, "ZoneAwarenessEnabled": true, "ZoneAwarenessConfig": { "AvailabilityZoneCount": 3 }, "WarmEnabled": true, "WarmCount": 6, "WarmType": "ultrawarm1.medium.search" }, "EBSOptions": { "EBSEnabled": true, "VolumeType": "gp2", "VolumeSize": 11 }, "EncryptionAtRestOptions": { "Enabled": true }, "NodeToNodeEncryptionOptions": { "Enabled": true }, "DomainEndpointOptions": { "EnforceHTTPS": true, "TLSSecurityPolicy": "Policy-Min-TLS-1-2-2019-07" }, "AdvancedSecurityOptions": { "Enabled": true, "InternalUserDatabaseEnabled": true, "MasterUserOptions": { "MasterUserName": "
master-user
", "MasterUserPassword": "master-password
" } }, "EngineVersion": "Opensearch_1.0", "DomainName": "my-domain
", "AccessPolicies": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"123456789012
\"]},\"Action\":[\"es:*\"],\"Resource\":\"arn:aws:es:us-east-1
:123456789012
:domain/my-domain
/*\"}]}" }
Para obtener información detallada, consulta la referencia de la API OpenSearch de Amazon Service.
Migración de índices al almacenamiento UltraWarm
Si ha terminado de escribir en un índice y ya no necesita el rendimiento de búsqueda más rápido posible, migre el índice de modo activo a: UltraWarm
POST _ultrawarm/migration/
my-index
/_warm
A continuación, verifique el estado de la migración:
GET _ultrawarm/migration/
my-index
/_status { "migration_status": { "index": "my-index
", "state": "RUNNING_SHARD_RELOCATION", "migration_type": "HOT_TO_WARM", "shard_level_status": { "running": 0, "total": 5, "pending": 3, "failed": 0, "succeeded": 2 } } }
El estado del índice debe ser verde para realizar una migración. Si migra varios índices en una sucesión rápida, puede obtener un resumen de todas las migraciones en texto sin formato, similar a la API _cat
:
GET _ultrawarm/migration/_status?v
index migration_type state
my-index
HOT_TO_WARM RUNNING_SHARD_RELOCATION
OpenSearch El servicio migra un índice a la vez a UltraWarm. Se pueden tener hasta 200 migraciones en la cola. Cualquier solicitud que supere el límite será rechazada. Para comprobar el número actual de migraciones en la cola, supervise la métrica de HotToWarmMigrationQueueSize
. Los índices permanecen disponibles durante todo el proceso de migración, sin tiempo de inactividad.
El proceso de migración tiene los siguientes estados:
PENDING_INCREMENTAL_SNAPSHOT
RUNNING_INCREMENTAL_SNAPSHOT
FAILED_INCREMENTAL_SNAPSHOT
PENDING_FORCE_MERGE
RUNNING_FORCE_MERGE
FAILED_FORCE_MERGE
PENDING_FULL_SNAPSHOT
RUNNING_FULL_SNAPSHOT
FAILED_FULL_SNAPSHOT
PENDING_SHARD_RELOCATION
RUNNING_SHARD_RELOCATION
FINISHED_SHARD_RELOCATION
Como indican estos estados, se pueden producir errores en las migraciones si se realizan durante instantáneas, reubicaciones de particiones o fusiones forzosas. Los errores durante las instantáneas o las reubicaciones de particiones suelen deberse a errores de nodo o problemas de conectividad de S3. La falta de espacio en el disco suele ser la causa subyacente de los errores en las fusiones forzosas.
Una vez finalizada la migración, la misma solicitud _status
devuelve un error. Si comprueba el índice en ese momento, verá algunos parámetros de configuración que son exclusivos de los índices templados:
GET
my-index
/_settings { "my-index
": { "settings": { "index": { "refresh_interval": "-1", "auto_expand_replicas": "false", "provided_name": "my-index
", "creation_date": "1599241458998", "unassigned": { "node_left": { "delayed_timeout": "5m" } }, "number_of_replicas": "1", "uuid": "GswyCdR0RSq0SJYmzsIpiw", "version": { "created": "7070099" }, "routing": { "allocation": { "require": { "box_type": "warm" } } }, "number_of_shards": "5", "merge": { "policy": { "max_merge_at_once_explicit": "50" } } } } } }
-
number_of_replicas
, en este caso, es el número de réplicas pasivas, que no consumen espacio en disco. -
routing.allocation.require.box_type
especifica que el índice debe usar nodos templados en lugar de nodos de datos estándar. -
merge.policy.max_merge_at_once_explicit
especifica el número de segmentos que se van a fusionar simultáneamente durante la migración.
Los índices almacenados en caliente son de solo lectura, a menos que se devuelvan al almacenamiento activo, lo que los hace UltraWarm más adecuados para datos inmutables, como los registros. Puede consultar los índices y eliminarlos, pero no puede agregar, actualizar ni eliminar documentos individuales. Si lo intenta, podría encontrarse con el siguiente error:
{
"error" : {
"root_cause" : [
{
"type" : "cluster_block_exception",
"reason" : "index [indexname] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"
}
],
"type" : "cluster_block_exception",
"reason" : "index [indexname] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];"
},
"status" : 429
}
Automatizar migraciones
Se recomienda utilizar Index State Management en Amazon OpenSearch Service para automatizar el proceso de migración después de que un índice alcance cierta antigüedad o cumpla otras condiciones. Consulte la política de ejemplo que muestra este flujo de trabajo.
Ajuste de migración
Las migraciones de índices al almacenamiento requieren una fusión forzada. UltraWarm Cada OpenSearch índice se compone de un número determinado de fragmentos y cada fragmento se compone de un número determinado de segmentos de Lucene. La operación de fusión forzada purga los documentos marcados para su eliminación y conserva espacio en disco. De forma predeterminada, UltraWarm fusiona los índices en un segmento.
Puede cambiar este valor hasta 1000 segmentos utilizando la configuración de index.ultrawarm.migration.force_merge.max_num_segments
. Los valores más altos aceleran el proceso de migración, pero aumentan la latencia de consulta para el índice activo una vez finalizada la migración. Para cambiar la configuración, realice la siguiente solicitud:
PUT
my-index
/_settings { "index": { "ultrawarm": { "migration": { "force_merge": { "max_num_segments":1
} } } } }
Para comprobar cuánto tiempo tarda esta etapa del proceso de migración, monitoree la métrica de HotToWarmMigrationForceMergeLatency
.
Cancelación de migraciones
UltraWarm gestiona las migraciones de forma secuencial, en una cola. Si una migración está en la cola, pero aún no se ha iniciado, puede eliminarla de la cola mediante la siguiente solicitud:
POST _ultrawarm/migration/_cancel/
my-index
Si el dominio utiliza un control de acceso detallado, debe tener el permiso de indices:admin/ultrawarm/migration/cancel
para realizar esta solicitud.
Listado de índices calientes y templados
UltraWarm añade dos opciones adicionales, similares a_all
, para ayudar a gestionar los índices calientes y cálidos. Para obtener una lista de todos los índices calientes o templados, realice las siguientes solicitudes:
GET _warm
GET _hot
Puede utilizar estas opciones en otras solicitudes que especifican índices, por ejemplo:
_cat/indices/_warm
_cluster/state/_all/_hot
Devolución de índices templados al almacenamiento caliente
Si necesita volver a escribir en un índice, vuelva a migrarlo al almacenamiento en caliente:
POST _ultrawarm/migration/
my-index
/_hot
Puede tener hasta 10 migraciones en cola de almacenamiento en caliente a almacenamiento en caliente a la vez. OpenSearch El servicio procesa las solicitudes de migración de una en una, en el orden en que se pusieron en cola. Para comprobar el número actual, monitoree la métrica de WarmToHotMigrationQueueSize
.
Una vez finalizada la migración, compruebe la configuración del índice para asegurarse de que satisfaga sus necesidades. Los índices vuelven al almacenamiento caliente con una réplica.
Restauración de índices templados a partir de instantáneas
Además del repositorio estándar para instantáneas automatizadas, UltraWarm añade un segundo repositorio para índices calientes,. cs-ultrawarm
Cada instantánea de este repositorio contiene solo un índice. Si elimina un índice caliente, su instantánea permanece en el repositorio de cs-ultrawarm
durante 14 días, al igual que cualquier otra instantánea automatizada.
Cuando restaura una instantánea desde cs-ultrawarm
, se restaura en el almacenamiento "warm", no en el almacenamiento en caliente. Las instantáneas de los repositorios cs-automated
y cs-automated-enc
restauran el almacenamiento en caliente.
Para restaurar una UltraWarm instantánea en un almacenamiento en caliente
-
Identifique la instantánea más reciente que contiene el índice que desea restaurar:
GET _snapshot/cs-ultrawarm/_all?verbose=false { "snapshots": [{ "snapshot": "
snapshot-name
", "version": "1.0", "indices": [ "my-index
" ] }] }nota
De forma predeterminada, la
GET _snapshot/<repo>
operación muestra información detallada sobre los datos, como la hora de inicio, la hora de finalización y la duración de cada instantánea de un repositorio. LaGET _snapshot/<repo>
operación recupera información de los archivos de cada instantánea contenidos en un repositorio. Si no necesita la hora de inicio, la hora de finalización y la duración y solo necesita el nombre y la información de índice de una instantánea, le recomendamos que utilice elverbose=false
parámetro al enumerar las instantáneas para minimizar el tiempo de procesamiento y evitar que se agote el tiempo de espera. -
Si el índice ya existe, elimínelo:
DELETE
my-index
Si no quiere eliminar el índice, debe devolverlo al almacenamiento en caliente y reindexarlo
. -
Restaurar la instantánea:
POST _snapshot/cs-ultrawarm/
snapshot-name
/_restoreUltraWarm ignora cualquier configuración de índice que especifique en esta solicitud de restauración, pero puede especificar opciones como
rename_pattern
yrename_replacement
. Para ver un resumen de las opciones de restauración de OpenSearch instantáneas, consulte la OpenSearch documentación.
Instantáneas manuales de índices templados
Usted puede tomar instantáneas manuales de índices templados, pero no lo recomendamos. El repositorio de automatización cs-ultrawarm
ya contiene una instantánea para cada índice activo, tomada durante la migración, sin cargo adicional.
De forma predeterminada, el OpenSearch servicio no incluye índices calientes en las instantáneas manuales. Por ejemplo, la siguiente llamada solo incluye índices calientes:
PUT _snapshot/
my-repository
/my-snapshot
Si elige tomar instantáneas manuales de índices templados, se aplican varias consideraciones importantes.
-
No puede mezclar índices calientes y templados. Por ejemplo, la siguiente solicitud devuelve un error:
PUT _snapshot/
my-repository
/my-snapshot
{ "indices": "warm-index-1
,hot-index-1
", "include_global_state": false }Si incluyen una mezcla de índices calientes y cálidos, comodín (
*
) también devuelven un error. -
Solo se puede incluir un índice templado por instantánea. Por ejemplo, la siguiente solicitud devuelve un error:
PUT _snapshot/
my-repository
/my-snapshot
{ "indices": "warm-index-1
,warm-index-2
,other-warm-indices-*
", "include_global_state": false }Esta solicitud se realiza correctamente:
PUT _snapshot/
my-repository
/my-snapshot
{ "indices": "warm-index-1
", "include_global_state": false } -
Las instantáneas manuales siempre se restauran al almacenamiento en caliente, incluso si originalmente incluían un índice templado.
Migración de índices templados al almacenamiento frío
Si tiene datos UltraWarm que consulta con poca frecuencia, considere la posibilidad de migrarlos a un almacenamiento en frío. El almacenamiento frío está diseñado para los datos a los que solo se accede ocasionalmente o que ya no están en uso activo. No puede leer ni escribir en índices fríos, pero puede migrarlos de nuevo al almacenamiento templado sin costo cada vez que necesite consultarlos. Para ver instrucciones, consulte Migración de índices al almacenamiento frío.
Inhabilitando UltraWarm
La consola es la forma más sencilla de deshabilitar UltraWarm. Seleccione el dominio, Acciones y Editar la configuración del clúster. Deseleccione Activar nodos de UltraWarm datos y elija Guardar cambios. También puede usar la opción WarmEnabled
en la API de configuración y en la AWS CLI .
Antes de desactivarlos UltraWarm, debe eliminar