La nube híbrida se encuentra con VDI

La semana pasada, como ya habrán leído, Citrix anunció su visión
sobre la evolución de XenDesktop/XenApp, y en general de la oferta de DaaS basada en su tecnología que ha sido líder en éste mercado por varios años.

Citrix Workspace Services es su nueva apuesta por el futuro de
la productividad móvil como la conocemos, y consiste básicamente en  mover el plano de administración de una completa implementación Citrix hacia la nube de Microsoft (Azure).

Esto por supuesto abre una nueva dimensión tanto para usuarios como para consultores, proveedores de servicio e integradores pues se trata de un encuentro cercano entre el modelo de entrega híbrido
de la nube con el mercado de DaaS, terreno donde Citrix escogió -acertadamente en mi opinión- no tratar de emular la oferta de Amazon Workspaces ó VMware Horizon DaaS, sino que ha creado un plano central desde donde podrán implementarse y gestionarse las aplicaciones y escritorios entregados en VDI, sin importar su ubicación: puede ser en su datacenter local ó en una nube pública (sólo nombrela).

La promesa de Citrix es que si requiere una implementación on-site solo debe comprar hardware, instalar Windows con el agente para Citrix Workspace Services y éste último hará el resto.

Aunque pareciera ser aún un producto etéreo y no hay una fecha clara en la cual estará disponible, es cierto que Citrix hace movimientos hacia facilitar la elección de las organizaciones sobre dónde ubicar sus desktops, y ésto es una de las más nobles tareas que se puedan emprender en el campo de la computación en la
nube: remover las barreras entre vendors, ó atacar el vendor lock-in que por años ha parecido ser una  característica intrínseca de la nube y que ha alejado a muchas organizaciones de migrar sus servicios allí, pero el futuro parece indicar que los grandes jugadores le empiezan a apostar al modelo híbrido.
Kudos para Citrix!

Advertisements

Windows Server con Desktop Experience no permite el uso de Temas Aero

Ya sea que use Citrix Xendesktop, Microsoft RDS, VMware Horizon View u otra suite para implementar VDI, siempre habrá una etapa en la que tendrá que habilitar Desktop Experience como Feature en Windows Server 2008/2012 para entregar Sesiones hosteadas y a la vez ofrecer una experiencia de usuario muy similar a la de un desktop Windows7/8.

Un artículo en Technet indica el sencillo procedimiento para habilitar Desktop Experience como característica del sistema operativo, pero aún después de ello (y del reinicio solicitado) puede ser que no se pueda habilitar ningun tema de escritorio Aero y pocas cosas hayan cambiado a simple vista.

Esta es una restricción pensada en optimizar el uso de memoria en las tareas para las que un server NO está pensado (como una rica experiencia gráfica).

**ATENCIÓN: Los siguientes pasos solo debe ejecutarlos si el caso de uso lo requiere y se ha contemplado en el diseño el consumo extra en CPU y RAM**

Aplican tanto para Windows Server 2008/2012:

1.  Dirigirse a Panel de Control

2.  System

3.  Advanced system settings

4.  Performance > Settings

5.  Seleccionar “Adjust for best appearance”Captura16. Luego de ello ya se puede personalizar el tema de Escritorio del servidor:

Captura2Lamento que el ejemplo parezca un poco de la vieja escuela (Windows 2008 – Windows 7), pero aún son muchas las organizaciones cuya implementación de VDI se basa por completo en éstas versiones.

Saludos!

Principios de operación de los Discos de Estado Sólido (SSD)

Hola, espero cuentes con tiempo para algo de profundidad técnica (sólo la necesaria).

La motivación del presente post proviene de la lectura y revisión del libro “Inside Solid State Drives” publicado por Springer Science (algo que hice mayormente en la playa durante mis más recientes vacaciones familiares). El libro aborda con una considerable profundidad técnica los principios físicos y los mecanismos computacionales bajo los cuales operan los discos de estado sólido (Solid State Drives) que siguen ganando terreno en el datacenter y cuyo protagonismo es indudable como parte de la estrategia de optimización de desempeño para los usuarios empresariales de la nube.

El principal objetivo de éste post, que inicialmente fué una presentación para el personal interno de ingeniería del Service Provider para el que trabajaba, es aportar bases teóricas para toma de decisiones así como para el diseño de soluciones basadas en discos de tipo NAND-flash.

Origen de los SSD

No pretende esta sección ser un compendio histórico acerca del origen de los SSD, pero si es necesario anotar el vacío que pretenden ocupar en los diferentes tipos de almacenamiento de datos presentes en el mercado. La siguiente imagen, tomada del libro, puede ilustrar mejor:

ssd01

Velocidad de acceso vs. precio para diferentes tipos de medios de almacenamiento

Si bien los discos duros (Hard Disk Drives HDDs) rotacionales ocupan una vasta extensión de las implementaciones actuales de almacenamiento, presentan un mayor consumo medio de potencia y una menor resistencia al choque cuando se les compara con los SSD, frente a los cuales sus principales ventajas son el menor Costo Total de Adquisición y mayores capacidades disponibles en el mercado.

Por otro lado los SSD pueden brindar el desempeño que se obtiene de fuentes volátiles de almacenamiento como las DRAM (memorias) pero con la posibilidad de retener los datos por hasta 10 años sin polarización (es decir, con el dispositivo apagado), entregando una menor tasa TCO/IOPS a lo largo de su ciclo de vida.

Arquitectura de los SSD y el bus PCI

ssd02

Estructura básica de una celda de NAND Flash

La celda, o Non Volatile Memory (NVM) es una clase especial de MOSFET (transistor de efecto de campo) que cuenta con un mecanismo muy ingenioso -del que Schottky estaría orgulloso- que fué propuesto a finales de los años 60 por la profesora Susan Sze (¿y quien no estudió con uno de sus libros de Semiconductor Physics? ) y que con consiste en una compuerta flotante (Floating Gate) que operando como un capacitor de placas paralelas y que controlando el voltaje en la compuerta de control (Control Gate) puede almacenar electrones por hasta 10 años, que es el período de retención más comúnmente encontrado en los dispositivos disponibles en el mercado.

¿Cuántos electrones puede almacenar? Esto está determinado por el tipo de disco que se adquiere:

  • SLC: Single Level Cell puede almacenar solo un electrón. Por ellos las capacidades ofrecidas son menores pero al tener que operar solo 1 bit, su duración es mayor.
  • MLC: Multiple Level Cell puede almacenar dos electrones. Brinda mayor capacidad a costo de menor número de ciclos erase/write disponibles.

Los SSD se acomodan en arreglos cuyos bit line se conectan en forma serial y responden a la lógica de la compuerta NAND, de ahi que se conozcan como NAND arrays. En esa configuración un arreglo NAND se compone de 8192 bloques, cada uno de 64 páginas y cada página de 4k bytes. La página es la unidad mínima de escritura mientras que el bloque es la unidad mínima de borrado, de ahi que ésta última operación sea más intensiva para un arreglo de SSDs.

Finalmente, las celdas NVM implementan dos operaciones: program (almacenamiento de bits) y erase (remoción de bits).

Confiabilidad de los SSD

Si bien el objetivo de los fabricantes de dispositivos Flash es almacenar la carga por al menos 10 años, los electrones en la compuerta flotante pueden escapar de su lugar por varios mecanismos pero principalmente por la degradación del óxido que actúa como aislante y que se agota debido al constante tunelamiento (que es como se conoce en física del estado sólido a toda situación en que una partícula atraviesa niveles de energía por la acción de una fuerza externa) en las operaciones de program/erase.

Cuando los electrones escapan de la FG (Floating Gate) se pueden acumular en superficies de la celda NVM creando trampas de carga que son como escalones que progresivamente facilitan aún más el escape de nuevos electrones, lo que a la larga reduce el voltaje de umbral que es el pilar de operación de un MOSFET y el que altera su estado de encedido a apagado y viceversa.

ssd07

Voltaje de umbral vs. tiempo de retención de datos

En la gráfica anterior se puede evidenciar la degradación del voltaje de umbral a lo largo de los años de uso. Si éste voltaje baja mas allá del nivel de lectura (read level) el memory controller puede marcar esa celda como borrada aunque haya electrones allí almacenados (pérdida inmediata de datos).

Por otro lado si los electrones se fugan hacia el substrato por tunelamiento, ésto puede elevar el voltaje de umbral necesario para activar la celda, y puede llegar al punto que el memory controller marque la celda como escrita o inválida aunque esté vacía, afectando la capacidad disponible y el desempeño del arreglo.

En la gráfica anterior el rango entre no carga y el read level se conoce como Ventana de lectura, y en ésto no todos los SSDs son creados iguales: los MLC tienen menor endurance (durabilidad) pues su ventana de lectura es una fracción de aquella en los SLC, por lo que una pequeña (y muy probable) variación del voltaje de umbral ya produce los errores mencionados anteriormente.

Funciones del Memory Controller

  • Wear leveling: busca nivelar el número de ciclos program/erase a lo largo de las celdas en un arreglo NAND. Lo lleva a cabo mapeando updates de un sector lógico hacia un sector físico diferente mientras que el sector físico original se marca como inválido.
  • Garbage collection: elimina las copias obsoletas, aunque genera operaciones adicionales de write al mover la última copia válida al sector libre para eliminar el bloque inválido
  • Implementa el Error Correction Code seleccionado por el fabricante
  • Desarrolla las labores de Bad Block Management

La amplificación de Write: ¿de dónde viene?

El diagrama a continuación enuncia los pasos lógicos que lleva a cabo el memory controller y que resultan en amplificación de las operaciones de escritura:

ssd05La definición del WAF (Write Amplification Factor) se resume en la tasa entre la cantidad de datos efectivamente escritos al flash sobre la cantidad de datos enviados por el host para escritura al SSD. Esta información debe ser obtenida  tanto en el lado del host como del memory controller, para las que los fabricantes como Samsung, Intel, Kingston, Sandisk, entre otros suelen proveer herramientas.

Es posible reducir el WAF que viene de fábrica asignándole más espacio de bloques libres (y no utilizables) al disco SSD, lo que se conoce como Overprovisioning. Es decir, otorgándole más espacio libre a la controladora desde el nacimiento del arreglo. Este procedimiento también se conoce como under-formatting y lo veremos un poco más ampliado a continuación.

Overprovisioning

El espacio de reserva en un SSD (ó spare space) tiene como objetivo proveer una bodega de bloques libres que el memory controller usa para su proceso de garbage collection y escrituras temporales. La asignación de este espacio de repuesto se conoce como overprovisioning en el argot de los Flash y constituye el limite último de vida de un SSD: una vez el spare space se agota, el disco alcanza el endurance y no recibe actualizaciones a bloques ya escritos, momento en que el host (que en el argot Flash es todo aquello por encima del memory controller) debe marcarlo como fallido.

ssd06

Diagrama lógico de un SSD con espacio libre previamente reservado (Overprovisioning/underformatting)

El bus PCI

Esta basado en carriles (lanes) seriales donde cada uno se comunica de forma Full Dúplex a velocidades que en PCIe Gen 3 alcanzan 1 GB/s por carril.

ssd03

Comunicación por carriles entre dispositivos PCI y hacia el root (board)

Los dispositivos PCI funcionan con un número de carriles que va entre 1 y 32 lo que está definido por el tamaño del slot (x1, x4,…, x32).

El bus PCI se comunica punto a punto entre dispositivos por lo que actualmente se obtienen tasas de transferencia varios órdenes de magnitud por arriba de interfaces como SATA, por lo que se constituyen como una mejor opción para obtener el mayor rendimiento de los discos SSD.

ssd04

Comparativo de desempeño entre interfaces de conexión al almacenamiento

En otras palabras: si realmente necesita explotar el potencial de desempeño de un SSD, debe considerar el uso de PCIe como interface hacia los discos, no los tradicionales buses SATA.

El lugar de los SSD en el datacenter

Debido a las limitaciones inherentes a la operación de las celdas NVM, y que cubriré mas adelante, los SSD no constituyen una cura para todos los males y deben ser apropiadamente elegidos dentro del diseño de la infraestructura convergente que hoy se requiere. Está generalmente aceptado en la academia y la industria que los arreglos NAND tienen una afectación mínima en desempeño debida a búsquedas de pequeños archivos y metadatos mientras que su rendimiento en escritura se ve negativamente impactado por las operaciones que lleva a cabo el memory controller para tratar de alargar la vida útil del disco (lo que se mide con el factor de amplificación de escrituras o WAF por sus siglas en inglés).

Es por lo tanto, una aplicación ampliamente aceptada de los SSD en el datacenter el utilizarlos para mover allí lecturas frecuentes mientras que las escrituras frecuentes van a los HDD. Decidir que operacion (lectura/escritura) atraviesa un umbral de frecuencia para ser movido automáticamente al tipo de disco apropiado es una tarea del software de control sobre los SSD, por lo que la mitad del éxito en una estrategia all-flash le corresponde al software de control: si se conectan discos SSD a controladoras que no los administran como tal y si sobre esa capa no hay una que administre datos frecuentes/infrecuentes, se perderá gran parte del beneficio del almacenamiento flash al tiempo que se pondrán en riesgos cargas de trabajo que dependan del Flash para escrituras, en lo que tiene un desempeño y durabilidad limitadas.

 

 

Recursos adicionales

Intel ha publicado una guía que se aplica para discos SSD incluso de otros fabricantes sobre cómo modificar el spare space, pues de esa manera podría elevarse el endurance natural de un disco a costo de menor capacidad disponible

Para hacer pruebas significativas a discos SSD, es necesario llevar a cabo preconditioning que consiste en hacer escrituras aleatorias al arreglo para que entre a operar el algoritmo de Wear Leveling. Este y otros métodos se explican en éste post.

Finalmente una herramienta para llevar a cabo estas pruebas.

Preguntas/aportes son bienvenidas en los comentarios.

Saludos!