Almacenamiento administrado en Exchange Server

El Almacén administrado es el nombre de los procesos del Almacén de información (también conocido como Almacén) en Exchange Server 2016 y Exchange Server 2019. Introducido en Exchange Server 2013, el Almacén administrado usa un modelo de proceso de controlador/trabajo que proporciona aislamiento de procesos de almacenamiento y conmutación por error de base de datos más rápida. El Almacén administrado también usa un mecanismo de almacenamiento en caché de base de datos estática que reemplaza el algoritmo de búfer dinámico en versiones anteriores de Exchange.

El modelo de varios procesos que usa el Almacén administrado consta de los siguientes procesos en el servidor de buzones de correo:

  • Un proceso de controlador de servicio de almacén único para todo el servidor exchange (Microsoft.Exchange.Store.Service.exe, también conocido como MSExchangeIS).

  • Un proceso de trabajo para cada base de datos montada (Microsoft.Exchange.Store.Worker.exe). Al montar una base de datos, se crea una instancia de un nuevo proceso de trabajo que da servicio a esa base de datos. Cuando se desmonta una base de datos, se termina el proceso de trabajo para dicha base de datos.

Por ejemplo, si tiene 40 bases de datos de buzón montadas en un servidor de buzones de correo, habrá 41 procesos en ejecución para el Almacén administrado: uno para cada base de datos y otro para el controlador de proceso del servicio de almacenamiento. El controlador de procesos de almacén supervisa el mantenimiento de todos los procesos de trabajo del almacén en el servidor. Una terminación forzable o inesperada del Microsoft.Exchange.Store.Service.exe provoca una conmutación por error inmediata de todas las copias de base de datos activas en el servidor.

El almacén administrado también está estrechamente integrado con el servicio de replicación de Microsoft Exchange (MSExchangeRepl.exe) y Active Manager. El proceso de controlador, los procesos de trabajo y el servicio de replicación funcionan conjuntamente para proporcionar una mayor disponibilidad y confiabilidad, como se describe en la lista siguiente:

  • Proceso del servicio de replicación de Microsoft Exchange (MSExchangeRepl.exe)::

    • Responsable de emitir operaciones de montaje y desmontaje en la Tienda.

    • Inicia la acción de recuperación en los errores de almacenamiento o base de datos notificados por el Almacén, el Motor de almacenamiento extensible (ESE) y los respondedores de disponibilidad administrada.

    • Detecta errores inesperados en la base de datos.

    • Proporciona la interfaz administrativa para las tareas de administración.

  • Store service process/controller (Microsoft.Exchange.Store.Service.exe):

    • Administra la duración de cada proceso de trabajo en función de las operaciones de montaje y desmontaje recibidas del servicio de replicación.

    • Controla las solicitudes entrantes del Administrador de control de servicios de Windows.

    • Registra los elementos de error cuando se detectan problemas de proceso de trabajo del almacén (por ejemplo, bloqueo o salida inesperada).

    • Finaliza los procesos de trabajo del almacén en el evento de conmutación por error de respuesta.

  • Proceso de trabajo de almacén (Microsoft.Exchange.Store.Worker.exe)

    • Responsable de ejecutar operaciones RPC para buzones en una base de datos.

    • La instancia de punto de conexión RPC dentro del proceso de trabajo es el GUID de la base de datos.

    • Proporciona caché de base de datos para una base de datos.

Algoritmo de almacenamiento en caché de base de datos estática

El Almacén administrado usa un algoritmo sencillo y sencillo para determinar la memoria caché de la base de datos en comparación con la asignación dinámica de búferes que se usó en las versiones anteriores de Exchange. La memoria asignada para cada caché de base de datos (es decir, cada proceso de trabajo de almacén) se basa en el número de copias de base de datos locales y en el valor configurado del parámetro MaximumActiveDatabases en el cmdlet Set-MailboxServer (el valor predeterminado es $null o en blanco). Si el valor de MaximumActiveDatabases es mayor que el número de copias de base de datos actuales, el cálculo de la caché se basa en el número de copias de base de datos.

El algoritmo estático asigna memoria para la memoria caché ESE de cada proceso de trabajo de almacén en función de la cantidad de RAM física instalada en el servidor. Esto se hace referencia al destino máximo de caché de la base de datos. El 25 % de la memoria total del servidor se asigna a la memoria caché ese y se conoce como destino del tamaño de caché del servidor.

Nota:

Puede invalidar el destino de tamaño de caché del servidor y, por tanto, la cantidad de memoria asignada a la memoria caché de Store for ESE mediante msExchESEParamCacheSizeMax el atributo del objeto InformationStore en Active Directory (el valor configurado es el número de páginas de 32 KB que se van a asignar en todos los procesos del almacén).

Se asigna una cantidad estática de esta memoria caché a las copias activas y pasivas. Al proceso de trabajo del almacén se le asigna el destino máximo de caché solo cuando se atiende una copia de base de datos activa. A las copias de bases de datos pasivas se les asigna el 20 % del destino máximo de memoria caché. El almacén reserva el resto y lo asigna al proceso de trabajo si la base de datos pasa de pasivo a activo.

El destino máximo de memoria caché se calcula solo en el inicio del almacén. Por lo tanto, si agrega o quita las bases de datos o las copias de la base de datos, debe reiniciar el servicio del controlador de almacén (MSExchangeIS) para que la memoria caché se pueda ajustar en consecuencia. Si no se reinicia el servicio, las nuevas bases de datos tendrán un destino de tamaño de caché más pequeño que las bases de datos que existían antes del último inicio del servicio. En este escenario, la suma de los destinos de tamaño de caché de base de datos probablemente superará el destino de tamaño de caché del servidor hasta que se reinicie MSExchangeIS.

Cálculos de caché de base de datos de ejemplo

Estos son cálculos de almacenamiento en caché de base de datos de ejemplo que se basan en la configuración de la base de datos y la memoria de un servidor de buzones.

Ejemplo 1

Configuración del servidor de buzón de correo:

  • 48 GB de memoria

  • Dos bases de datos activas y dos pasivas

  • Parámetro MaximumActiveDatabases : no configurado

La cantidad de caché de base de datos es de 3 GB por cada proceso de trabajo de copia de base de datos activa y de 0,6 GB por cada proceso de trabajo de copia de base de datos pasiva. Este es el modo en que se calculan estos valores:

  • Destino del tamaño de caché del servidor: 25 % de la cantidad de memoria: 48 GB * 0,25 = 12 GB.

  • Destino de caché máxima de base de datos: divida el destino de tamaño de caché del servidor por el número total de bases de datos activas y pasivas: 12 GB/4 bases de datos = 3 GB.

  • Memoria usada para copias pasivas de base de datos: 20 % del destino de caché máxima de la base de datos: 3 GB * 0,20 = 0,6 GB.

De los 12 GB de memoria asignados al destino de tamaño de caché del servidor:

  • Los procesos de trabajo de base de datos usarán 7,2 GB.

  • El Almacén de información reservará 4,8 GB para las dos copias pasivas de la base de datos en caso de que se conviertan en copias activas. Si esto sucede, usarán su destino máximo de caché de 3 GB.

Ejemplo 2

Configuración del servidor de buzón de correo:

  • 48 GB de memoria

  • Dos bases de datos activas y dos pasivas

  • Parámetro MaximumActiveDatabases : 2

La cantidad de caché de base de datos es de 5 GB por cada proceso de trabajo de copia de base de datos activa y de 0,2 GB por cada proceso de trabajo de copia de base de datos pasiva. Este es el modo en que se calculan estos valores:

  • Destino del tamaño de caché del servidor: 25 % de la cantidad de memoria: 48 GB * 0,25 = 12 GB.

  • Destino de caché máxima de base de datos: divida el destino de tamaño de caché del servidor por la suma de:

    • Número de bases de datos activas

    • 20 % del número de bases de datos pasivas

    12 GB/ (2A + (2P * 0,20)) = 5 GB

  • Memoria usada para copias pasivas de base de datos: 20 % del destino de caché máxima de base de datos: 5 GB * 0,20 = 1 GB.

De los 12 GB de memoria asignados al destino de tamaño de caché del servidor:

  • Los procesos de trabajo de base de datos usarán 12 GB

  • El Almacén de información no reservará memoria para las dos copias pasivas de base de datos porque no pueden convertirse en copias activas (MaximumActiveDatabases está configurado con un valor de 2 y ya hay 2 copias de base de datos activas en el servidor).