jueves, enero 15, 2009

Clustering Failover en SQL Server 2008 con Windows 2008

Como es sabido una de las características más interesantes de SQL Server 2005 y 2008 relacionada con la confiabilidad y alta disponibilidad es la posibilidad de usar Failover Clusters, (que traducido al español podría ser una agrupación de computadores configurados en modo a prueba de fallos).

Normalmente un Failover Cluster es usado para proveer alta disponibilidad a soluciones orientadas a Base de Datos, aplicaciones de negocio, y sitios web, y debido a los requerimientos de su implementación su base funcional radica en el sistema operativo.

Algunas de las nuevas características y mejoras en una implementación de clustering de Windows Server son:

  • Antes de Windows Server 2008 las soluciones que podían calificar como clusterizables debían aparecer en la Lista de Hardware compatible o el Catalogo de Windows Server. Ahora, Windows 2008 incluye una herramienta de Validación para Clusterización que se debe ejecutar antes de incluir un nodo en el cluster.
    image
    Esta herramienta de validación verifica muchos aspectos del cluster, incluyendo la red, el almacenamiento, el sistema operativo de cada nodo, y otras cosas.
  • En Windows Server 2008 la herramienta de Administración de Clustering está incorporada en una Consola de Administración (MMC-based snap-in)
  • En Windows Server 2008 failover clustering los nodos y los recursos clusterizados pueden obtener sus direcciones IP via DHCP.
  • Windows Server 2008 Failover Clustering no requiere que todos los nodos estén en la misma red o subred.
  • El heartbeat, o señal de monitoreo, ha cambiado de multicast a unicast.
  • Failover Clustering ahora tiene un proveedor de Volume Shadow Copy Service para facilitar los respaldos de los nodos clusterizados.
  • Ahora son soportados LUNs y discos más grandes de 2TB con discos GUID Partition Table.
  • Para mejorar los aspectos de seguridad, ya no es necesario una cuenta de dominio para configurar un Cluster de Failover en Windows Server 2008. La cuenta puede ser local en cada nodo.

Por el lado de SQL Server 2008 realmente no hay grandes cambios en las funcionalidades (si en el proceso de instalación), esto significa que aún no se pueden clusterizar servicios como Integration Services y Reporting Services.

Cuando se instala SQL Server Failover Clustering, el proceso se realiza creando primero una instancia de Failover Clustering y luego instalando y añadiendo cada nodo a la instancia inicialmente instalada. Tener en cuenta que cada vez que se añade un nodo se deberá ejecutar la herramienta de validación antes mencionada.

Un dato interesante es que tanto SQL 2005 como 2008 Enterprise Edition soportan hasta 16 nodos en un cluster de failover (la versión standar está limitada a 2 nodos). Lo más común actualmente es tener clusters de 5 o 6 nodos.

En resumen, es necesario tener en cuenta los cambios en el sistema operativo y las mejoras y facilidades que existen hoy para implementar ambientes de clustering mas adecuados.

sábado, enero 10, 2009

Una VirtualPC por SD…??

Quien iba a pensar que casi en sólo un par de años ibamos a poder tener una VPC en una tarjeta de SD???… si, así como lo leen, SanDisk ya lanzó al mercado un SD con capacidad de 16GB.homepage-mobile

Lo primero que pensé fue que hace unos pocos años estabamos usando diskettes de 3.5” y de 1.44MB de capacidad y ya andabamos convencidos de que teníamos muchísimo espacio para los documentos, luego se dejaron de incorporar los lectores de diskettes y en reemplazo se empezó a usar CDs y DVDs,… 4 GB, para que???, para las fotos y música??, si pero para algunos de nosotros el problema empezó a aparecer por otro lado.

Ya se lanzaban las primeras versiones de Microsoft VirutalPC y VMWare  andaba fuertemente posicionada en el mercado como una de las empresas que inició el soporte para máquinas virtuales. En ese momento por mi parte el boom sería de los discos externos, 120GB, 160GB, 250GB, cada 4 meses aparecía uno nuevo, y recientemente el de 500GB (por si acaso me refiero a los HD portatiles, mas info acá), a 20GB aprox por VPC, mas que suficiente para unas  25 máquinas virtuales.

Lo que aparece interesante es que la tecnología tiene la tendencia de reducir todo, los laptops ya no vienen con disketeras sino que tienen las ranuras Multi-Cards, las tarjetas SDs tienen cada vez mayor capacidad, y ni hablar del tipo de tecnología interna que usan.

En fin, el único detalle por el que todavía no podremos cargar una VPC completa en una tarjeta SD es el tiempo de lectura/escritura, por lo que vi es de 20MB/s, a comparación de los 400MB/s de un HD externo (gracias al USB). Bueno, pero es seguro que no tendremos que esperar mucho tiempo para que una VirtualPC por SD sea posible… o más de una.

martes, agosto 28, 2007

Readyboosteado!!!

Este post va para los que al igual que yo dudan al momento de decidir comprar un "chiche" para el PC que supuestamente "mejora el performance"

... bueno, el tema es así, hace varios días ya que andaba googleando en busca de más info y referencias de usuarios de tarjetas o pendrives con ReadyBoost, para qué o porqué??, simple... con 2.0 GB em RAM en el laptop y 2 máquinas virtuales la cosa no anda muy bien que digamos..., y luego de leer algunos post que no hacían mas que desprestigiar el nunca bien ponderado Vista, no estaba seguro de comprar o no alguno de los dispositivos con readyboost (la verdad es que andaba buscando una tarjeta de tipo pcmcia, pero parece que aún no hay...)

Finalmente, en uno de mis paseos obligados por el mall, me topé con un pendrive de Sandisk, un Cruzer de 4.0 GB ... con ReadyBoost, así que luego de un par de preguntas al vendedor respecto a la política de devolución (...10 días... si no te gusta lo devuelves), lo compré!.

Van tres días de pruebas con el pendrive usando lo que "Windows recommends for optimal performance" y tengo que decir que "en mi caso" si se nota la diferencia, Vista reacciona notablemente más rápido...
Tengo que aclarar que "en mi caso" significa usar lo más posible de los recursos del laptop, nótese que tener dos o tres máquinas virtuales corriendo significa que los recursos se comparten, más aún en el caso de la memoria... y quien termina perjudicado en este caso es el HOST (el laptop), porque es el que se lleva todas las tareas de administración de memoria, entre otras la paginación... por tanto, está claro que dado que se está usando un recurso físico adicional para administrar la memoria obtendremos mejor rendimiento del sistema.

En resumen, totalmente recomendable para quienes requieren sacarle el jugo a los recursos del pc.

Links de referencia:

http://www.microsoft.com/windows/products/windowsvista/features/details/readyboost.mspx
http://en.wikipedia.org/wiki/ReadyBoost

martes, noviembre 30, 2004

Charla Técnica de Smart Clients para la plataforma Windows

Nuevamente por estos lares!!

Bueno, la charla "pretty good!" -como diría un amigo-.
La verdad que es un tema muy interesante, y creo que todos los asistentes se percataron de ello, como lo sé??, bueno, por que nadie se durmió (un par de pestañadas pero nada más) y todos se quedaron hasta el final (fueron 3 horas, así que fue casi sacrificio =) ).

Parece que se viene un workshop sobre el tema, sólo estoy esperando que se pueda orientar a la plataforma Windows y a aplicaciones empresariales, esperemos que todo salga bien!.

La presentación quedó acá.

viernes, octubre 22, 2004

Finalmente!, una especificación que si resuelve los problemas al validar un XML

Desde hace mucho tiempo la mayoría de quienes usabamos XML teníamos claro que los XSD eran vitales para la validación de su estructura. Lamentablemente, luego de intentar resolver algunos problemas, como la condicionalidad de un Sub-Elemento apartir del valor de un Atributo, la sonrisa en nuestra cara desaparecia..., obvio, no podía ser tan fácil!.

Pero ahora, ese y otro problemas como:
- Exclusividad en los atributos: poder condicionar la existencia uno u otro atributo (nunca de ambos juntos).
- Agrupación de atributos: poder agrupar Atributos, tal como se hace con los Elementos.
- Condicionalidad de la estructura: poder condicionar si un Sub-Elemento debe existir o no apartir del valor de un Atributo.

... están resueltos, -> "Long live Schematron!".

más info: Improving XML Document Validation with Schematron

domingo, octubre 10, 2004

Nice components and code


http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=8

...was looking for a BackgroundProcesWorker pattern implementation. (= Tasks pattern = Service Agent Pattern)

jueves, septiembre 16, 2004

SQL 2005 Express

This application is a good replacement for SQL Query Analyzer... try it, if you just have installed VS2005 Beta 1, you will need it.

QA Replacement Application
Due to the lack of GUI tools distributed with the first releases of SQL Server 2005 Express (download) the QA Replacement Application was created. This application does not have all the functionality of Query Analyzer but as time goes on it gets closer. QA Replacement allows the user to run scripts, create DDL from dragging objects to the editor, see the event profiler for executing T-SQL and viewing the Show Plan for query executions.

...and here you can get some samples.

martes, septiembre 14, 2004

Virtual PC 2004 versus Visual Studio 2005

Mi experiencia instalando Visual Studio Beta 1 en una Virtual PC 2004. =)

Tenía una máquina virtual donde instalé Windows 2003 Standard, con una partición es de 2.5GB (hmmm, puede que no sirva).
A pesar de que el disco virtual estaba configurado para ser "dinámico", el límite es el definido por la particion configurada inicialmente al instalar el SO. Así que obviamente la instalación de VS2005 no puede completarse.

Siguiente paso, tratar de adquirir mas espacio en el disco virtual, y el primer intento es convertir el disco a Dynamic Disk; se supone que es mas útil para la adminisitración de volúmenes.
Esto no resultó, nunca lo había hecho antes...ja, pero está claro que no tiene nada que ver con el manejo de particiones. Buscando alternativas, me parece que Partition Expert de Acronis es una buena herramienta para el manejo de particiones.

Perfecto, tenía una partición de 2.5Gb, ahora una de 5GB, ... tuto bene.

Oops, necesité suspender la máquina virtual, en plena instalación de VS2005, para ir a casa...

Llegué, reinicié y todo ok =) VPC 2004 rocks!!

Estaba pensando que debería haber tomado el tiempo de instalación, pero pensandolo bien, no vale la pena, ya que mientras se realizaba la instlación, seguí trabajando y el procesador andaba a 100%.

Bien, ya tengo la VPC con W2003 y VS2005 !!!

Actualización 2004/09/15
Ahora estoy haciendo un merge del disco de la máquina virtual "base", y la extensión de VS2005.
Quedó OK.

jueves, septiembre 09, 2004

MBI Uninstall

This .note is for the MBI users group.
MBI is a great product for an enterprise application middle-tier, but usually developers have to deal with the install/uninstall problems. So here is a step-by-step list you can use to uninstall MBI "manually" to install a new version:

1. Run Regedit to open Registry Editor, and delete these keys:
      HKEY_LOCAL_MACHINE\SOFTWARE\MCS.
      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\fwkserver
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\fwkserver

2. Reset your PC. Check that "Framework dispatcher service" does not appear in services list.

3. Open "Computer Management" console, go to "Services and Applications" -> "Message Queuing" -> "Private Queues", and delete MBI related queues.
      fwk__log
      fwk_output
      mbi_actions

4. Open "Visual Studio .Net Command Prompt" (at Visual Studio .Net Tools), go to "\Program Files\fwkdevend" and execute these instructions:
      regsvcs -u fwkbtsaic.dll
      regsvcs -u fwkcore.dll

      regasm shmlib.dll /unregister
      regasm fwkbtsaic.dll /tlb:fwkbtsaic.tlb /unregister
      regasm fwkclient.dll /tlb:fwkclient.tlb /unregister
      regasm fwkcommon.dll /tlb:fwkcommon.tlb /unregister
      regasm fwkcore.dll /tlb:fwkcore.tlb /unregister

5. Remove from GAC the followings assemblies:

      interop.pipecomplib
      interop.mscscore

      shmlib
      fwkbtsaic
      fwkclient
      fwkcommon
      fwkcore

      Note: You can use "gacutil /u [assemblie]" if you have installed .NET SDK.

6. Delete "fwkdevend" directory from "Program Files", and restart your pc, just to be sure =)

... then you can reinstall MBI or install a new version.

lunes, septiembre 06, 2004

MS: Thanks Linux <- ¿?


This one is good, not to fight anyone, just for reading and then think "where do you want to go today?"... =)
"The article"

domingo, septiembre 05, 2004

Patterns and .Net framework

I was watching some saved webcasts, and i found this one - Pattern Based Development for the Enterprise - presented by Craig Utley.

Well, this webcast is about three design patterns: singleton, factory and observer, and I remembered that a few time ago I didn´t know how .Net framework take care about singleton implementation, and maybe you don´t either, so here you have my .notes =)

As you probably know, Singleton pattern solve the need to have a single instance of a particular object (or a specific maximum number of objects).

There are some approaches, like this classical GOF implementation (using Double-Check Lock in multithreading applications):


class Singleton 
{
    public static Singleton Instance() {
        if (_instance == null) {
            lock (typeof(Singleton)) {
                if (_instance == null) {
                    _instance = new Singleton();
                }
            }
        }
        return _instance;      
    }
    protected Singleton() {}
    private static volatile Singleton _instance = null;
}


... and here you have the .Net Fx simplified version:

sealed class Singleton 
{
    private Singleton() {}
    public static readonly Singleton Instance = new Singleton();
}


worried about lazy initialization?, well, .Net Fx takes care about this during JIT process, it will initialize the Instance property when any method uses it. In other words, the class get constructed and instantiated when any static member of the class is used. By the other hand, .Net Fx addresses thread-safe initialization too. the framework internally guarantees thread safety on static type initialization.