Mostrando las entradas con la etiqueta Exchange. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Exchange. Mostrar todas las entradas

miércoles, abril 18, 2012

Y donde esta el Cluster??

Estaba pensando en un lindo articulo sobre SQL Server tranquilamente frente a mi linda note cuando recibo una llamada telefonica, un Exchange 2010 habia perdido el DAG y las bases de datos no montaban.

Ok, quizas sea un caso interesante asi que acepte el desafio y manos a la obra viendo de que se trataba.

Efectivamente las bases estaban abajo, el DAG a simple vista se veia ok, sin embargo no se podia editar ni hacer nada, el error enviado era que no podia contactar el servicio de cluster.

Bien, vamos a mirar como esta el cluster......

El cluster .....

:S

No hay Cluster! Desaparecio, Uups!

[PS] C:\Windows\system32>Get-DatabaseAvailabilityGroup -Identity  'DAG1' -Status

Error en una operación de Active Manager. Error en la operación de clúster. Error: Error en la API de clúster 'OpenByNames('nodo1.dominio.com', 'nodo2.dominio.com') failed for each server. Specific exceptions: 'Error en una operación de Active Manager.

Error en la operación de clúster. Error: Error en la API de clúster '"OpenCluster(nodo1.dominio.com) error con 0x6d9. Error: No hay más extremos disponibles desde el asignador de extremos"'.', 'Error en una operación de Active Manager.

Error en la operación de clúster. Error: Error en la API de clúster '"OpenCluster(nodo2.dominio.com) error con 0x6d9. Error: No hay más extremos disponibles desde el asignador de extremos"'.'.'.

    + CategoryInfo          : InvalidArgument: (:) [Get-DatabaseAvailabilityGroup], AmClusterApiException
    + FullyQualifiedErrorId : 62F1FD80,Microsoft.Exchange.Management.SystemConfigurationTasks.GetDatabaseAvailabilityGRoup


(Odio los mensajes en español, no entiendo nada!!)

He ahi la causa del problema, desaparecio el Cluster y el DAG seguia haciendo referencia a el, bueno, ya tenia la causa del problema, ahora a encontrar la solucion.

Comence a buscar por internet y no encontre nada relacionado con el tema, y si trato de recrear el cluster "a mano"?? mmm a buscar info de como hacerlo, nop, el cluster no existia en ninguno de los 2 nodos, el servicio estaba instalado, pero en ambos nodos estaba desabilitado, al habilitarlo y tratar de levantarlo enviaba error. Por supuesto al tratar de conectarse al cluster tambien enviaba error de RPC.

Habian algunos articulos muy buenos como Recover from a DAG member loss sin embargo no era el escenario, no se perdio un miembro, sino todo el cluster.

Conversando con un colega sobre las alternativas veiamos 2:

1) Guardar las bases de datos, Reinstalar con la opcion /m:RecoverServer y luego colocar las bases de datos.
2) Hacer otro DAG eliminando el actual y asociando las bases a ese nuevo DAG.

Despues de un rato viendo los pro y los contras de cada opcion nos inclinamos por la segunda, aunque no sabiamos con certeza como lo hariamos.

Antes de comenzar a trabajar con el Exchange en esa opcion intente crear un nuevo cluster con ambos nodos, seguro no lo iba a hechar a perder mas de lo que ya estaba, pero no me dejaba agregarlos por que decia que ya pertenecian a un cluster, asi que hice limpieza ejecutando el comando cluster node /force. Despues del comando intente crear el cluster con otro nombre y me dejo, lo elimine y volvi al problema.

Se crea el nuevo DAG y no podemos elegir ningun server para agregar, ya que estan asociados al otro DAG. Intente sacar un nodo y envia el error indicando problema de comunicacion con el servicio de cluster, sin embargo el mismo error me recomendaba una solucion, usar el parametro -ConfigurationOnly, al buscar informacion sobre el parametro me di cuenta que lo que hacia era cambiar la configuracion pero sin intentar conectarse al servicio de Cluster, por lo que saque del DAG antiguo el servidor que habia limpiado ya la configuracion del Cluster usando el siguiente comando PowerShell:

 Remove-DatabaseAvailabilityGroupServer –Identity DAG1 –MailboxServer NODO1 –ConfigurationOnly

Eso me permitio remover el Server del DAG y agregarlo al nuevo DAG, a continuación fui a cada una de las bases de datos revise las propiedades y guarde quedando asociadas al nuevo DAG, monto una y sube ok. Repito la operacion en el otro nodo ejecutando ambos comandos, el que limpia la configuracion de cluster del nodo2, saco del DAG antiguo el nodo2 y lo agrego al nuevo DAG.

Monto el resto de las bases de datos las cuales montaron sin problemas quedando el servicio ok, excepto una que me daba error MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550) pero eso ya es otra historia :D

Saludos!!!

Isa

martes, febrero 28, 2012

Eliminando un exchange 2010 inexistente

Siempre me tocan problemas extraños .....

En esta ocasión se trato de un disaster recovery con un recovery mas dañino que el desastre.

Con un servidor exchange inexistente que necesitaba eliminar.

Opcion 1:
- Instalar un server con el mismo nombre que el inexistente
- Instalar exchange usando Setup /m:RecoverServer
- Desinstalar Exchange en forma limpia

Esta opcion tiene sus pro y sus contras, es mas limpio, es mas seguro, es la recomendada por microsoft, pero necesito otro server el cual no tenia.

Opcion 2:

Usando ADSI Edit conectarse a la particion de configuracion, navegar hasta CN=Configuration [domain] → CN=Services → CN=Microsoft Exchange → CN=[organization] → CN=Administrative Groups → CN=Servers y eliminar el server desaparecido.

Si era un mailbox, ir a CN=Configuration [domain] → CN=Services → CN=Microsoft Exchange → CN=[organization] → CN=Administrative Groups → CN=Databases y eliminar las bases de datos relacionadas a ese servidor.

Abrir Active Directory Users and Computers y eliminar de los grupos de seguridad de Exchange (Exchange Servers y Exchange Trusted Subsystem) el server inexistentes o mejor aun, eliminar el objeto computador, validar que tampoco exista en el DNS.

Espero que esto les ayude tan bien como me ayudo a mi.

Saludos!

Isa


lunes, agosto 15, 2011

Borrando una configuracion IMAP del perfil de Outlook

El desafio era, agregamos el perfil de exchange, pero como sacamos el perfil anterior??

Aca les dejo el script que contruimos, falta depurarlo, seguro se puede hacer en menos lineas, jejjee.

Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001


Set Ws = WScript.CreateObject("WScript.Shell")


Dim ww


set ww=wscript.createobject("wscript.network")


nombreusu=ww.UserName
avalor = Array(1,1,1,1,1,1)
strComputer = "."
KeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"
DefaultProfile="vacio"


On Error Resume Next
DefaultProfile = ws.RegRead("HKCU\" & KeyPath & "DefaultProfile")
If DefaultProfile = "vacio" Then
WScript.quit


End if


Call BuscaKey()


WScript.Quit


Sub BuscaKey()
'----------------------


Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676"


oReg.EnumKey HKEY_CURRENT_USER,strKeyPath, arrSubKeys


For Each subkey In arrSubKeys
WScript.Echo subkey


If eslakey(subkey) Then
aborrar = strKeyPath & "\" & subkey
oReg.DeleteKey HKEY_CURRENT_USER, aborrar


End if
Next


End sub






Private Function eslakey(subkey)
'-------------------------------


Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & subkey


oReg.EnumValues HKEY_CURRENT_USER,strKeyPath, arrValueNames


For Each Valor In arrValueNames


If Valor = "IMAP Server" Then
imapserver = 1
End If


Next


eslakey = 0


if imapserver = 1 Then


strValueName = "IMAP Server"
oReg.GetBinaryValue HKEY_CURRENT_USER, strKeyPath, strValueName,strValue
imapsrv=strValue


email= ""


For i = lBound(strValue) to uBound(strValue)
If strvalue(i) <> 0 Then
email=email + Chr(strValue(i))
End If


Next


If LCase(email) = "mailserver.dominio.cl" or LCase(email) = "10.10.10.11" Then
eslakey = 1
End if


End If
End function


WScript.Quit

Saludos!

Isa

miércoles, agosto 10, 2011

Migrando a Exchange

Hace tiempo que no posteaba un articulo para mi blog, mas bien ha sido por que le he dedicado mas tiempo a otro Blog, ya les contare sobre ese proyecto que me ocupa varias de mis horas.

Este ultimo tiempo una de las actividades que mas me ha tocado enfrentar ha sido la migracion de la plataforma de correo de distintos sabores a Exchange 2007/2010, han sido proyectos bastante interesantes y entretenidos, unos mas expeditos que otros, pero el ultimo desafio es mas interesante ya que debiamos practicamente automatizar la migracion usando un grupo de prueba de 5 usuarios y dejar los procedimientos y scripts para migrar los otros 2000 usuarios en forma lo mas trasparente posible.

Interesante.

Primer Desafio: Creación de las cuentas Exchange.

Parecia algo facil, teniendo el archivo csv con los datos de los usuarios el crear la cuenta o asociarles un buzon a cuentas existentes no revertia gran complejidad, sin embargo en este caso las cuentas pertenecian a otro dominio, por lo que se trataba de cuentas linkeadas.

Tomando como base un artículo publicado por Cristian Aguilera y teniendo la línea de comando al crear un usuario me arme del siguiente script.

$Credential = Get-Credential

$data = import-csv $args[0]

foreach ($i in $data)
{
$upn = $i.alias + '@DOMINIO.CORP'

New-Mailbox -Name $i.displayname -Alias $i.Alias -OrganizationalUnit 'DOMINIO.CORP/Usuarios' -UserPrincipalName $upn -SamAccountName $i.sam -FirstName $i.nombre -Initials '' -LastName $i.apellido -Database $i.database -LinkedMasterAccount $i.usuarioad -LinkedDomainController 'DC1.dominio.cl' -LinkedCredential $Credential
}

El script me funciono a la segunda, pues a la primera use el alias como SamAccountName y me reclamo por el largo que era mayor a 20 caracteres, asi que tuve que volver a generar el csv con este dato truncado a 20.

Otro problema que nos surgio fueron los nombres con acentos y eñes, tales como Díaz o Muñoz, al crear el usuario aparecian signos de interrogacion o cuadraditos, estabamos bajando el languaje pack cuando un articulo nos dio la luz, guardar el archivo como unicode, probamos y solucionado.

Segundo Desafio: Transferir los Datos de los Usuarios.

En proyectos anteriores ya habia usado este juguetito, se llama Microsoft Transporter Suite, que sirve para migrar cuentas pop/imap a Exchange 2007 (No esta disponible para Exchange 2010).
Tercer Desafio: Migrar los perfiles Outlook de los Usuarios

En migraciones anteriores esto habia estado a cargo del cliente quien migraba los pst y configuraciones usando a gente de soporte, sin embargo esta vez, debido al volumen de usuarios se queria hacerlo usando alguna GPO a la que se le agregara algun script.

Con la orientacion de mis amigos del GLUE que me recomendaron realizar estos cambios usando archivos prf logre realizar al menos parte de lo que necesitaba.

Tomando el perfil por defecto, llamado Outlook, se le agrego la configuracion de Exchange, se dejo ese perfil como predeterminado, se deja la configuracion exchange como predeterminada configurandola con la informacion del Usuario autenticado, se tomo un archivo de ejemplo y se modificaron las siguientes secciones:

; **************************************************************
; Section 1 - Profile Defaults
; **************************************************************


[General]
ProfileName=Outlook
DefaultProfile=Yes
OverwriteProfile=Append
ModifyDefaultProfileIfPresent=True
DefaultStore=Service1


;***************************************************************
; Section 4 - Default values for each service.
;***************************************************************


[Service1]
OverwriteExistingService=Yes
UniqueService=Yes
MailboxName=%username%
HomeServer=EXMBX0
AccountName=Microsoft Exchange Server
DefaultAccount=TRUE

El resto de las secciones se dejo por defecto, con esto los usuarios quedaron con sus pst y configuraciones que tenian, para aplicar esta modificacion bastaba con ejecutar el outlook con los siguientes parametros:

Outlook.exe /importprf archivo.prf

Queda ahora el desafio de como eliminar la configuración del servidor anterior.

Saludos!

Isa

jueves, marzo 11, 2010

Cambio de Hora en Chile

 

Post original de Gonzalo Balladares

---------------------------------------------------

Como es de conocimiento mundial, el 27 de febrero hubo un “mega-terremoto” con devastadoras consecuencias, tanto en pérdida de vidas humanas como en pérdidas de miles de hogares y cuantiosos daños a la infraestructura pública.

En lo estrictamente informático, esto trajo muchas consecuencias, como las que revisa Luis Montenegro en su blog sobre planes de contingencia, pero una de las consecuencias más importantes que el Gobierno de Chile determinó retrasar el cambio de horario de invierno, el cual se aplaza desde la media noche del sábado 13 de marzo (cuando debiese ocurrir) a la medianoche del sábado 3 de abril (nueva fecha)

Microsoft liberó un hotfix que actualiza los sistemas operativos para este cambio de horario, el cual puede ser descargado en la siguiente dirección:

Le recomiendo leer detenidamente la información referente al hotfix y luego solicitarlo desde el link “Ver y Solicitar la descarga de la revisión” que aparece al inicio de la página. Se recomienda instalar la actualización lo antes posible.

image

Aprovecho la oportunidad para responder un par de preguntas que ya he recibido:

  1. ¿Cómo se aplica el hotfix en un entorno virtualizado con Hyper-V?
    El Hotfix DEBE ser aplicado tanto en la partición padre (host) y como en las particiones hijas (guests). Hay que tener cuidado con las máquinas virtuales que están sincronizando la información de horas con con el host de virtualización.
  2. ¿Cómo afecta este cambio a los Usuarios/Administradores de Exchange Server?
    Las citas del calendario se verán desfasadas 1 hora durante el período entre el 13 de marzo y el 3 abril.
    Una vez aplicado el hotfix, hay 4 formas para enfrentar esto:
    A. No hacer nada, y decir a los usuarios que confirmen sus reuniones por mail o por teléfono.
    B. Pedir a los usuarios que revisen y re-programen manualmente sus reuniones para ese período de tiempo.
    C. Utilizar la herramienta “Time Zone Data Update Tool for Microsoft Outlook” en cada estación de trabajo.
    D. Utilizar la herramienta “Microsoft Exchange Calendar Update Configuration Tool” , con la cual se pueden actualizar las citas en el calendario centralizadamente, pero ojo, pues es un proceso complejo.
    Como pueden ver, hay varias opciones y la mejor dependerá de su entorno particular (cantidad de usuarios, uso de outlook para calendarios, etc.)

Más información:

Cualquier duda pueden hacerla como comentario, o a través de la lista de distribución del Grupo Latinoamericano de Usuarios de Exchange (G.L.U.E.)

Gonzalo

jueves, julio 16, 2009

Esos $##@@&%$ Transaction Logs!!!

A quien no le ha tocado alguna vez que se haya llenado el disco por que los Transaction logs han crecido y crecido?? Tanto en SQL Server como Exchange.

Hoy me toco ver una base de datos SQL Server de solo 600Mb con un Transaction log de 54GB, no es primera vez que me toca ver algo así, había visto Tlogs de 30GB para bases de 2GB y había apagado mas de un incendio por disco lleno debido a esto mismo, es un tema que siempre se esta repitiendo y no muchos administradores entienden por que esta pasando.

 

Por que crece el Tlog?

Cuando una aplicación o una sesión en SQL Server envía una transacción a la base de datos, el motor lee los datos, los carga en memoria (Buffer Cache) y son modificados, esta modificación es registrada en el TLog en disco, cuando el Checkpoint ocurre, las paginas modificadas que están en memoria son escritas al archivo de data, de esta forma, si el server tiene algún problema, al levantar nuevamente con la información de los archivos de data mas el tlog es capaz de reconstruir la información que estaba en memoria y no había sido escrita a disco todavía, dejando la base de datos consistentes. Estas transacciones son las que hacen crecer el archivo.

 

Y cuando se “limpia”?

Eso depende (que me encanta esa palabra :P )

Si el recovery model de la base de datos esta en simple, las transacciones que ya finalizaron y fueron escritas a disco, son eliminadas del archivo, dejando ese espacio libre, sin embargo el tamaño físico del archivo no cambia.

Si el recovery model esta en Full o Bulk-logged, estas transacciones son limpiadas cuando se realiza el backup del Tlog.

 

Pero estoy haciendo un backup full todas las noches, porque no se limpia!

Ese es un error que cometen muchos administradores, piensan que el backup full también respalda el Tlog, sin embargo no es así.

El respaldo Full de la base de datos solo respalda la parte activa del Tlog, es decir, aquellas transacciones que aun no han sido escritas a disco.

 

Entonces que debo hacer para que el archivo no crezca?

Cambiar el recovery model a simple ;)

 

Pero tenia entendido que la recomendación para bases de datos de producción es con recovery model full.

Exactamente!! Pero si no los respaldas ni haces nada con ellos, para que los tienes en full??

 

Ok, creo que voy entendiendo, explícame mejor que es lo que debo hacer entonces para no seguir teniendo este problema.

Primero que nada, resolvamos el problema que tienes, disco lleno. Lo mas probable es que tengas problemas con la base por lo mismo, no creo que valga la pena en este momento realizar un respaldo de ese Tlog, así que lo vamos a truncar a la mala con el siguiente T-SQL

BACKUP LOG <basededatos> WITH TRUNCATE_ONLY

Ya tenemos el espacio liberado en el archivo, ahora devolvamos al sistema este espacio libre “achicando” este archivo a través del siguiente T-SQL

DBCC SHRINKFILE (<nombrelogicoarchivodelog>)

Con esto ya tenemos nuestro archivo chiquitito. Sin embargo comenzara a crecer nuevamente cuando empiecen a entrar los usuarios, mira, ya comenzó a crecer :D

Ahora para tener esto controlado y no vuelva a crecer y llenar el disco programemos un respaldo del Tlog por ejemplo cada una hora y guardémoslo junto a los otros respaldos, cuando necesitemos recuperar la base de datos podremos recuperar hasta casi la ultima transacción que se ejecuto, pero eso es para otro post.

 

También tengo un problema similar con Exchange, se me llena el disco con los archivos que se generan.

En Exchange el que los Tlog no se estén eliminando es una señal de que los respaldos no están terminando correctamente, estos son archivos de 5M para Exchange 2003 o anteriores y de 1M para Exchange 2007.

Al realizar el respaldo de la base de datos se aplican las transacciones y los archivos aplicados son eliminados de disco, por lo que no debieran eliminarse estos archivos a mano sin tomar algunas precauciones.

Los Tlog están relacionados al storage group mas que a un mailbox store en particular, por lo que para que se eliminen estos archivos deben estar correctamente respaldados todas las bases dentro del storage group.

La forma correcta de eliminar los Tlog en Exchange esta descrita en el KB 240145 para Exchange 2000 y 2003.

Si queremos evitar que se generen estos archivos, considerando que este hecho no nos permitirá recuperarnos de un desastre hasta la ultima transacción, podemos cambiar la modalidad de log a circular siguiendo el KB 314605 para Exchange 2000 y 2003 y en este Artículo para Exchange 2007

 

Conclusión.

Como conclusión final, la recomendación para servidores de producción de SQL Server es el recovery model full realizando backups periódicos de los Tlogs, para Exchange, deshabilitando Circular Logging y validando que los respaldos terminen correctamente y se estén respaldando todas las bases del Storage Group.

 

Saludos!!

Isa

 

Aclaración: Los diálogos que utilizo en el blog corresponden a conversaciones conmigo misma y no con segundos y/o terceros. A veces son media lenta para entenderme y debo explicarme con manzanitas :S

sábado, abril 18, 2009

Webcast Exchange 2010 Beta

Hace unos momentos me llego la siguiente Invitacion de Jorge Diaz:

Seremos los primeros a tener un Webcast con lo que viene con Exchange 2010. No serán los 4 tenores pero serán:
Carlos Dinapoli (6 X 1)
Pablo Vernocchi (6 X 1)
Gonzalo Balladares
Jorge Patricio Diaz (The Wonder Boy from Corinthians)

La URL del Meeting es:
https://www.livemeeting.com/cc/mvp/join?id=SS942G&role=attend

Les advierto que este NO es un evento oficial de Microsoft, pero... para que esperar?

Título : Primera Vista de Exchange 2010
Id. : SS942G
Hora de inicio : 22 de abr de 2009 19:00 (CLT)


Saludos!!

Isa

miércoles, abril 15, 2009

Exchange 2010 Beta

Holas!

Hoy a traves de diversos medios, tales como facebook, boletines, mail, amigos, blogs, etc, me entere que fue liberado el beta de Exchange 2010. Para todos aquellos que quieran comenzar a conocerlos les dejo el link:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=1898ed2c-2f88-48ac-824e-d3d20fad77d7

Para mas informacion ver el sitio http://www.microsoft.com/exchange/2010

saludos!!

Isa

miércoles, diciembre 26, 2007

Mas charlas de MISION CRITICA: Alta Disponibilidad y Hardening

y se vienen las proximas charlas!!

La ultima, de exchange 2003 estuvo super buena, aunque al final nos quedamos cortos de tiempo para levantar el cluster de exchange y cual "cocinando con Monica" Christian levanto las maquinas listas para mostarlo funcionando.

Las Charlas son en teatinos 550 de 19:00 a 22:00 hras.

Las proximas ya estan fecha, tenemos el 9 de Enero a las 19:00 hrs "Alta disponibilidad de Exchange 2007" con Christian Aguilera y Oscar Soto, puedes inscribirte Aqui.

Temas de la Charla:

Cluster de Windows 2003 Majority Node Set
Cluster de tipo: CCR – SCR – LCR
Network Load Balancing para Hub Transport / Client Access
Round Robin para Edge Servers
Unified Messaging servers

Luego viene "Alta Disponibilidad de Sharepoint 2007" con Jorge Diaz y Juan Valenzuela, puedes inscribirte Aqui.

Temas de la Charla:

Alta disponibilidad en BackEnds
Beneficios de usar SQL 2005 para mejorar la alta disponibilidad
Network Load Balancing para Front-Ends

Despues de estas charlas vienen mas, tendremos temas como:

Alta Disponibilidad de SQL Server 2005
Alta Disponibilidad de ISA Server 2006
Alta Disponibilidad de Archivos, DNS Externo y DHCP

No se las pierdan!!

Saludos!

Isa

lunes, diciembre 10, 2007

Nuevo Ciclo de Charlas

El miercoles recien pasado comenzo un nuevo ciclo de Charlas Tecnicas Presenciales de las comunidades de technet, en esta oportunidad se unen Glue, Infoclan, SQLGurues y Mossca para este ciclo titulado MISION CRITICA: Alta Disponibilidad y Hardening.

La semana pasada hubo una charla muy buena dada por Oscar Soto y Gonzalo Balladares sobre DNS y Active Directory, creo que todos los presentes aprendimos bastante.

La proxima es sobre Alta Disponibilidad de Exchange 2003, es el miercoles 19 a las 19 hrs en New Horizonts (Teatinos 550, Stgo) las inscripciones son Aquí.

En esta sesión veremos: Cluster de Windows 2003 Single, Cluster de Windows 2003 Single, Cluster de Windows 2003, Majority Node Set y Exchange Server, Network Load Balancing para Front-Ends, Licenciamiento, Demo en vivo creacion de cluster.

Oradores: Christian Aguilera, Jorge Diaz

Pero esto no sera todo, pues quedan 4 charlas mas donde se veran temas como:

* Alta Disponibilidad de Sharepoint 2007
* Alta Disponibilidad de SQL Server 2005
* Alta Disponibilidad de ISA Server 2006
* Alta Disponibilidad de Archivos, DNS Externo y DHCP

No te las puedes perder!!

Saludos!

Isa

miércoles, agosto 08, 2007

Cursos Gratis de Exchange 2007 y Office Communicator Server

Microsoft Learning está ofreciendo en forma gratuita los siguiente cursos de Exchange 2007 y Office Communication Server 2007, todos orientados a Mensajería Unificada.

Clinic 5091: Introduction to Microsoft Exchange Server 2007 Unified Messaging

Clinic 5127: Introducing On-Premise Conferencing Using Microsoft Office Communications Server 2007

Clinic 5128: Introducing Enterprise Telephony Using Microsoft Office Communications Server 2007

Clinic 5129: Customizing Real-Time Communication with Microsoft Office Communications Server 2007

Los cuatro cursos son de una duración de 2 horas cada uno en formato de e-learning y son una excelente introducción al mundo de la integración de la Telefonía en Exchange y Office Communicator Server 2007.

Gracias a Oscar Soto por esta info.

Saludos!

Isa

sábado, agosto 04, 2007

Perfomance: Exchange

Aunque hay varias herramientas que podemos usar para medir el perfomance de exchange, tales como Load Simulator (LoadSim), Exchange Stress and Performance (ESP) 2003, Network Monitor, Filemon, etc, nos enfocaremos hoy solo en Perfomance Monitor (Perfmon) como una continuacion del ciclo.

La recomendacion de tiempo seria al menos tomar un dia, donde se presente ojala el problema o sitacion que queremos analizar, con intervalos de 5 minutos, tambien se puede hacer un monitoreo online con mustras cada 30 segundos, para ver que esta ocurriendo en cada momento con nuestra maquina, en particular con las colas.

Es importante conocer los periodos de mantenimiento del server, por ejemplo cuando se realiza el respaldo o las defragmentaciones online ya que esto tambien se vera reflejado en las muestras.

Contadores para las colas

SMTP Server\Local Queue Length
Indica el numero de mensajes esperado ser distribuido localmente, si este numero comienza a aumentar estamos frente a un problema con nuestra abase de datos local, este numero no debe sobrepasar los 1000 mensajes, la cola debiera mantenerse en un promedio bajo sin muchas variaciones.

SMTP Server\Remote Queue Length

Indica en numero de mensajes esperando se distribuido hacia otros servidores, si este numero crece se debe a problemas de comunicaciones con el o los servidores donde esta el destino del correo, esta cola no debe sobrepasar los 1000 mensajes y debe mantenerse en un numeros promedio que no varia demasiado.

SMTP Server\Categorizer Queue Length

Es el numero de mensajes en la cola smtp para busqueda de atributos en el active directory, este valor debe ser muy pequeño, ojala siempre en 0 y no debe sobrepasar los 10.

MSExchangeIS Mailbox\Send(Receive) Queue Size

Indica en numero de mensajes en la cola de envio(recepcion) del mailbox store, estas cola no debe sobre pasar los 500 mensajes.

MSExchangeIS Public\Send(Receive) Queue Size

Igual que el contador anterior, pero relacionado con las carpetas publicas, de la misma manera, esta cola no debe sobrepasar los 500 mensajes.

Requerimientos RPC

Cuando se usa outlook en modo MAPI, se produce una "traduccion" a RPC (Remote procedure calls) entre el cliente y el servidor, si el usuario esta online, estas llamadas ocurren sincronicamente. Cualquier demora en el server para responder a estos requerimientos afectan directamente al usuarios con una percepcion de lentitud o servicio degradado.

Si el usuario esta en modo cache, esta conversacion es principalmente asincronica, esto se traduce que si hay lentitud en la respuesta esta no es sentida en una lentitud al usuario, no se tiene esa sensacion de que se "pego" el outlook.

Los contadores que nos pueden ayudar a identificar estas demoras (delay) son los siguientes:

MSExchangeIS\RPC Requests
Indica el numero de requerimientos MAPI RPC que estan siendo atendidos por el Information Store, el Information Store solo puede atender hasta 100 de estos requerimientos antes de comenzar a rechazar las conexiones, este numero no debiera soprepasar los 30.

MSExchangeIS\RPC Averaged Latency
Indica la latencia promedio en milisegundos de los ultimos 1024 paquetes, este numero no debiera sobreparasar los 50ms.

Eproxy

EProxy (ExIPC) es un mecanismo de memoria compartida que habilita el proceso de comunicacion entre el IIS (inetinfo) y Exchange Information Store (IS), esta comunicacion es bidireccional la cual atiende protocolos tales como WebDav, IMAP4, POP3, NNTP y SMTP. Esta memoria tambien es usada por DSAccess, el componente de exchange que interactua con Active Directory.

Los contadores que nos sirven para ver este componente son:

Epoxy\Client Out Queue Length (WebDAV)
Indica el numero de mensajes conteniendo mensajes WebDAV en la cola enviados por inetinfo, esta cola no debiera ser mayor a 10.

Epoxy\Store Out Queue Length (WebDAV)
Indica el numero de mensajes conteniendo mensajes WebDAV ern la cola enviados por IS, esta cola tampoco debe sobrepasar los 10 mensajes.

Epoxy\Client Out Queue Length (DSAccess)
Indica el numero de mensajes conteniendo mensajes DSAccess en la cola enviados por inetinfo, esta cola no debe sobrepasar los 10 mensajes.

Epoxy\Store Out Queue Length (DSAccess)
Indica el numero de mensajes conteniendo mensajes DSAccess en la cola enviados por IS, esta cola no debe sobrepasar los 10 mensajes.

Estos contadores tambien estan disponibles para IMAP4, POP3, NNTP y SMTP, para NNTP no debiera sobrepasar los 10 mensajes, para IMAP4, POP3 y SMTP no debe pasar los 50

Procesador

Los analisis que hicimos en el articulo sobre perfomance del procesador con que iniciamos este ciclo siguen siendo validas para Exchange, para este caso, debemos poner especial cuidado en los siguientes tambien:

Process(STORE)\% Processor Time
Process(inetinfo)\% Processor Time
Process(EMSMTA)\% Processor Time
Process(System)\% Processor Time

Estos contadores pueden si usan por ejemplo el de 0 a 100% de 4 CPU mostraran un valor entre 0 y 400%

Si otros procesos son tambien grandes consumidores de CPU en el server, debemos incluirlos tambien en el analisis, estos pueden ser por ejemplo el antivirus.

Memoria

Los indicadores de memoria que analizamos anteriormente tambien son utiles para ver el comportamiento de nuestro servidor, en particular para Exchange, el componente mas comsumidos es IS, por lo que debemos analizar el siguiente contador:

Process(process name)\Private Bytes

Database\Database Cache Size

Cabe hacer notar que Exchange intentara consumir toda la memoria disponible.

Es bueno mencionar en este punto el uso de 2 optimizaciones a nivel del archivo boot.ini, les recomiendo revisar los siguientes articulos respecto a los parametros /3GB y /userva:

823440, "Use of the /3GB switch in Exchange Server 2003 on a Windows Server 2003-based system" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=823440)

316739, "How to use the /userva switch with the /3GB switch to tune the User-mode space to a value between 2 GB and 3 GB" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=316739)

Red

Para analizar que esta ocurriendo a nivel de red, revisemos lo mismos contadores que mencionamos anteriormente.

Disco

Antes de pasar a revisar los contadores de Disco en particular para Exchange, es bueno tener presente lo que ya habiamos revisado.

Para el disco de temporales, debemos considerar los siguientes contadores:

PhysicalDisk\Average Disk sec/Read (Write)
Los valores no deben ser en promedio mayores a 10 con peak no mayores de 50.

PhysicalDisk\Average Disk Queue Length

El promedio debiera ser menor al numero de discos fisicos, 1 si es solo un disco.

Para el disco de la Base de datos (archivos edb y stm)usaremos los siguientes criterios:

PhysicalDisk\Average Disk sec/Read (Write)
Los valores no deben ser en promedio mayores a 20 con peak no mayores de 50.

Database\Database Page Fault Stalls/sec
Indica la tasa de paginas que no pudieron ser entregadas por que no estaban disponibles en el cache de la base de datos, este contador debiera ser 0 en servidores de produccion.

Para el dosco donde se encuentran los transaction logs los criterios debieran ser los siguientes:

PhysicalDisk\Average Disk sec/Read (Write)

Los valores no deben ser en promedio mayores a 5(read)/10(Write) con peak no mayores de 50.

Database\Log Record Stalls/sec

Indica el numero de registros de logs que no pudieron agregarse al buffer de log por segundo por que el log estaba lleno, este valor no debiera ser mayor a 10 por segundo en promedio y los peaks no debieran ser mayores a 100

Database\Log Threads Waiting

Indica el numero de hebras esperando a completar una actualizacion de la base de datos para escribir su dato en un log. si este numero es muy grande estamos frente a cuello de botella provocado por el log, el promedio no debiera ser mayor a 10 hebras.

Para el disco donde se encuentran las colas SMTP

PhysicalDisk\Average Disk sec/Read (Write)
Los valores no deben ser en promedio mayores a 10 con peak no mayores de 50.

Archivo de Paginacion

Ya analizamos el archivo de paginacion anteriormente indicando los valores a considerar para un servidor Exchange.

Espero este articulo les sirva, al igual que los anteriores y espero en una proxima oportunidad profundizar un poco mas en los contadores para problemas mas especificos.

Saludos!

Isa