Almacén administrado

Se aplica a: Exchange Server 2013

Todas las versiones anteriores de Exchange Server, desde Exchange Server 4.0 hasta Exchange Server 2010, han admitido la ejecución de una única instancia del proceso del Almacén de información (Store.exe) en el rol de servidor Buzón de correo. Esta única instancia de Store hospeda todas las bases de datos del servidor: activa, pasiva, retrasada y recuperación. En las arquitecturas anteriores de Exchange, hay poco aislamiento, si existe, entre las distintas bases de datos hospedadas en un servidor de buzón de correo. Un problema con una base de datos de buzón de correo única puede afectar negativamente al resto de bases de datos y los bloqueos resultantes de daños en el buzón pueden afectar al servicio de todos los usuarios cuyas bases de datos están hospedadas en ese servidor.

Otro desafío con una única instancia de Store en versiones anteriores de Exchange es que el motor de almacenamiento extensible (ESE) se escala bien a 8-12 núcleos de procesador, pero más allá de ese umbral, los problemas de sincronización de caché y comunicación entre procesadores conducen a una escala negativa. Dados los servidores más grandes de hoy en día, con más de 16 sistemas principales disponibles, esto significaría imponer el desafío administrativo de administrar la afinidad de 8 a 12 núcleos para ESE y usar los otros núcleos para procesos que no son de La Tienda (por ejemplo, Asistentes, Search Foundation, Disponibilidad administrada, etc.). Además, la arquitectura anterior restringió el escalado vertical para el proceso de la Tienda.

El proceso Store.exe ha evolucionado considerablemente con el transcurso de los años al igual que Exchange Server, pero como único proceso, su escalabilidad está limitada y representa un único punto de error. Debido a estos límites, Store.exe ya no está disponible en Exchange 2013 y se lo reemplazó por el almacén administrado.

Almacén administrado

Almacén administrado es el nombre de los procesos del almacén de información (también conocido como el almacén) en Exchange Server 2013. El almacén administrado usa un modelo de proceso de controlador/trabajo que proporciona aislamiento del proceso de almacenamiento y conmutación por error de la base de datos más rápida. El almacén administrado también incluye un nuevo mecanismo de almacenamiento en caché de la base de datos estático que reemplaza el algoritmo de búfer dinámico de las versiones anteriores de Exchange Server. En el modelo de varios procesos que usa el Almacén administrado, hay un único proceso de controlador de servicio de almacén (en este caso, Microsoft.Exchange.Store.Service.exe también conocido como MSExchangeIS) y un proceso de trabajo (en este caso, Microsoft.Exchange.Store.Worker.exe) para cada base de datos montada. 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 montadas en un servidor, habrá 41 procesos en ejecución para el almacén administrado, uno para cada base de datos y otro para el controlador de procesos de servicio del almacén.

El controlador de proceso del servicio de almacenamiento es fino y confiable, pero si muere o se termina, todos sus procesos de trabajo mueren (detectarán que el proceso del controlador de servicio ha desaparecido y se cierra). 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 inesperada o forzada de Microsoft.Exchange.Store.Service.exe provoca una conmutación por error inmediata de todas las copias de bases de datos activas. 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 servicio de replicación trabajan en conjunto para proporcionar mayor disponibilidad y confiabilidad:

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

    • Responsable de la emisión de montar y desmontar las operaciones de la tienda

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

    • Detecta errores inesperados en la base de datos.

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

  • Controlador/proceso del servicio de almacén (Microsoft.Exchange.Store.Service.exe)

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

    • Controla las solicitudes entrantes desde el Administrador de control de servicios de Windows.

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

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

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

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

    • La instancia de extremo RPC dentro del proceso de trabajo es el GUID de la base de datos.

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

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

El algoritmo de almacenamiento en caché de base de datos conocido como asignación dinámica de búfer que se introdujo en Exchange Server 5.5 y que también usó el Almacén de información en Exchange 2000 Server, Exchange Server 2003, Exchange Server 2007 y Exchange Server 2010, también ha desaparecido de Exchange 2013. Exchange 2013 usa un algoritmo sencillo y sencillo para determinar la memoria caché de la base de datos. El almacén administrado ya no reasigna dinámicamente la memoria caché entre las bases de datos cuando se produce una conmutación por error, lo que simplifica enormemente la administración interna de la caché. En su lugar, la memoria asignada para cada caché de base de datos (por ejemplo, cada proceso de trabajo de almacén) se basa en el número de copias de base de datos locales y el valor de MaximumActiveDatabases, si está configurado. 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 que usa Exchange 2013 asigna memoria para cada memoria caché del ESE del proceso de trabajo del trabajo en función de la memoria RAM física. Esta memoria se conoce como destino máximo de caché de una base de datos. El 25 % de la memoria total del servidor se asigna a la caché del ESE. Esta proporción de memoria se conoce como destino del tamaño de caché del servidor.

Nota:

El destino de tamaño de caché del servidor y, por lo tanto, la cantidad de memoria asignada a la memoria caché del Almacén para ESE, se puede invalidar mediante el atributo msExchESEParamCacheSizeMax 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 de almacén).

Se asigna una cantidad estática de esta memoria caché a las copias activas y pasivas. El proceso de trabajo de almacén se asignará al destino máximo de memoria caché solo cuando se brinda servicio a una copia de la 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 el servicio no se reinicia, las bases de datos recién creadas tendrán un destino de tamaño de caché más pequeño que las bases de datos creadas antes del inicio del servicio. En este caso, la suma de los destinos de tamaño de la memoria caché de bases de datos probablemente superará el destino de tamaño de la memoria caché de servidor hasta que se reinicie MSExchangeIS.

Cálculos de memoria caché de bases de datos de ejemplo

A continuación se proporcionan cálculos de memorias caché de bases de datos que se basan en la configuración de memoria y base de datos de un servidor de buzones.

Ejemplo 1

En este ejemplo, el servidor de buzón tiene 48 GB de memoria y hospeda dos bases de datos activas y dos bases de datos pasivas. Además, el parámetro MaximumActiveDatabases no está configurado. En esta configuración, la cantidad de caché de base de datos es de 3 GB para cada proceso de trabajo de copia de base de datos activa y 0,6 GB para cada proceso de trabajo de copia pasiva de la base de datos. Aquí le mostramos cómo se obtuvieron estos valores.

Para obtener el destino de tamaño de la memoria caché de servidor, multiplique la cantidad de memoria en un 25 %:

48 GB X 25 % = 12 GB

Para obtener el destino máximo de memoria caché de la base de datos, divida el destino de tamaño dela memoria caché de servidor por el número total de bases de datos activas y pasivas:

12 GB / 4 bases de datos = 3 GB

Para determinar la cantidad de memoria utilizada para las copias pasivas de la base de datos, multiplique el destino máximo de memoria caché de base de datos en un 20 %:

3 GB X 20 % = 0,6 GB

Fuera de los 12 GB de memoria asignada al destino de tamaño de memoria caché del servidor, los procesos de trabajo de la base de datos usarán 7,2 GB y el almacén de información reservará 4,8 GB para las dos copias de bases de datos pasivas en caso de que se conviertan en copias activas. En ese caso, usarán su destino máximo de caché de 3 GB.

Ejemplo 2

En este ejemplo, el servidor de buzón de correo cuenta también con 48 GB de memoria y hospeda dos bases de datos activas y dos bases de datos pasivas; no obstante, el parámetro MaximumActiveDatabases está configurado con un valor de 2. En esta configuración, la cantidad de memoria caché de la base de datos es 5 GB para cada proceso de trabajo de copia de base de datos activa y 0,2 GB para cada proceso de trabajo de copia de base de datos pasiva. Aquí le mostramos cómo se obtuvieron estos valores.

Para obtener el destino de tamaño de la memoria caché de servidor, multiplique la cantidad de memoria en un 25 %:

48 GB X 25 % = 12 GB

Para obtener el 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 más el número total de bases de datos pasivas multiplicado por el 20 %:

12 GB / (2A + (2P X 20 %)) = 5 GB

Para determinar la cantidad de memoria utilizada para las copias pasivas de la base de datos, multiplique el destino máximo de memoria caché de base de datos en un 20 %:

5 GB X 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 y 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 en esta configuración (porque MaximumActiveDatabases está configurado con un valor de 2, y ya hay dos copias de base de datos activas en el servidor).