Este artículo tiene varios problemas. Ayúdenos a mejorarlo o a discutir estos problemas en la página de discusión . ( Aprenda cómo y cuándo eliminar estos mensajes )
|
En informática , la virtualización del almacenamiento es "el proceso de presentar una vista lógica de los recursos de almacenamiento físico a" [1] un sistema informático host, "tratando todos los medios de almacenamiento (disco duro, disco óptico, cinta, etc.) en la empresa como un único grupo de almacenamiento". [2]
Un "sistema de almacenamiento" también se conoce como matriz de almacenamiento, matriz de discos o archivador . Los sistemas de almacenamiento suelen utilizar hardware y software especiales junto con unidades de disco para proporcionar un almacenamiento muy rápido y fiable para la informática y el procesamiento de datos. Los sistemas de almacenamiento son complejos y pueden considerarse como una computadora de propósito especial diseñada para proporcionar capacidad de almacenamiento junto con funciones avanzadas de protección de datos. Las unidades de disco son solo un elemento dentro de un sistema de almacenamiento, junto con el hardware y el software integrado de propósito especial dentro del sistema.
Los sistemas de almacenamiento pueden proporcionar almacenamiento con acceso a bloques o a archivos. El acceso a bloques suele proporcionarse mediante protocolos Fibre Channel , iSCSI , SAS , FICON u otros. El acceso a archivos suele proporcionarse mediante protocolos NFS o SMB .
Dentro del contexto de un sistema de almacenamiento, existen dos tipos principales de virtualización que pueden ocurrir:
La virtualización del almacenamiento ayuda a lograr independencia de la ubicación al abstraer la ubicación física de los datos. El sistema de virtualización presenta al usuario un espacio lógico para el almacenamiento de datos y se encarga del proceso de mapeo de dicho espacio a la ubicación física real.
Es posible tener múltiples capas de virtualización o mapeo. Entonces, es posible que la salida de una capa de virtualización se pueda utilizar como entrada para una capa superior de virtualización. La virtualización mapea el espacio entre los recursos de back-end y los recursos de front-end. En este caso, "back-end" se refiere a un número de unidad lógica (LUN) que no se presenta a una computadora o sistema host para su uso directo. Un LUN o volumen "front-end" se presenta a un host o sistema informático para su uso.
La forma real del mapeo dependerá de la implementación elegida. Algunas implementaciones pueden limitar la granularidad del mapeo, lo que puede limitar las capacidades del dispositivo. Las granularidades típicas varían desde un solo disco físico hasta un pequeño subconjunto (múltiplos de megabytes o gigabytes) del disco físico.
En un entorno de almacenamiento basado en bloques, un solo bloque de información se direcciona mediante un identificador de LUN y un desplazamiento dentro de ese LUN, conocido como direccionamiento de bloque lógico (LBA).
El software o dispositivo de virtualización es responsable de mantener una vista coherente de toda la información de mapeo para el almacenamiento virtualizado. Esta información de mapeo suele denominarse metadatos y se almacena como una tabla de mapeo.
El espacio de direcciones puede estar limitado por la capacidad necesaria para mantener la tabla de mapeo. El nivel de granularidad y el espacio direccionable total afectan directamente el tamaño de los metadatos y, por lo tanto, de la tabla de mapeo. Por este motivo, es común tener compensaciones entre la cantidad de capacidad direccionable y la granularidad o la granularidad de acceso.
Un método común para abordar estas limitaciones es utilizar múltiples niveles de virtualización. En varios sistemas de almacenamiento implementados en la actualidad, es común utilizar tres capas de virtualización. [4]
Algunas implementaciones no utilizan una tabla de mapeo y, en su lugar, calculan las ubicaciones mediante un algoritmo. Estas implementaciones utilizan métodos dinámicos para calcular la ubicación en el momento del acceso, en lugar de almacenar la información en una tabla de mapeo.
El software o dispositivo de virtualización utiliza los metadatos para redirigir las solicitudes de E/S. Recibirá una solicitud de E/S entrante que contenga información sobre la ubicación de los datos en términos del disco lógico (vdisk) y la traducirá en una nueva solicitud de E/S a la ubicación del disco físico.
Por ejemplo, el dispositivo de virtualización puede:
La mayoría de las implementaciones permiten la gestión heterogénea de dispositivos de almacenamiento de varios proveedores dentro del alcance de la matriz de soporte de una implementación determinada. Esto significa que las siguientes capacidades no están limitadas a un solo dispositivo de un proveedor (como sucede con capacidades similares proporcionadas por controladores de almacenamiento específicos) y, de hecho, son posibles en dispositivos de diferentes proveedores.
Las técnicas de replicación de datos no se limitan a los dispositivos de virtualización y, por lo tanto, no se describen aquí en detalle. Sin embargo, la mayoría de las implementaciones proporcionarán algunos o todos estos servicios de replicación.
Cuando se virtualiza el almacenamiento, los servicios de replicación se deben implementar por encima del software o dispositivo que realiza la virtualización. Esto es así porque solo por encima de la capa de virtualización se puede copiar una imagen verdadera y consistente del disco lógico (vdisk). Esto limita los servicios que pueden implementar algunas implementaciones, o hace que su implementación sea muy difícil. Si la virtualización se implementa en la red o en un nivel superior, los servicios de replicación proporcionados por los controladores de almacenamiento subyacentes resultan inútiles.
Los recursos de almacenamiento físico se agrupan en grupos de almacenamiento, a partir de los cuales se crea el almacenamiento lógico. Se pueden agregar más sistemas de almacenamiento, que pueden ser de naturaleza heterogénea, según sea necesario, y el espacio de almacenamiento virtual se ampliará en la misma cantidad. Este proceso es completamente transparente para las aplicaciones que utilizan la infraestructura de almacenamiento.
El software o dispositivo que proporciona la virtualización del almacenamiento se convierte en un administrador de discos común en el entorno virtualizado. Los discos lógicos (vdisks) son creados por el software o dispositivo de virtualización y se asignan (se hacen visibles) al host o servidor requerido, lo que proporciona un lugar o una forma común de administrar todos los volúmenes del entorno.
Es fácil proporcionar funciones mejoradas en este entorno:
Uno de los principales beneficios de abstraer el host o servidor del almacenamiento real es la capacidad de migrar datos mientras se mantiene el acceso de E/S simultáneo.
El host solo conoce el disco lógico (el LUN asignado) y, por lo tanto, cualquier cambio en la asignación de metadatos es transparente para el host. Esto significa que los datos reales se pueden mover o replicar a otra ubicación física sin afectar el funcionamiento de ningún cliente. Cuando se han copiado o movido los datos, los metadatos se pueden actualizar simplemente para que apunten a la nueva ubicación, liberando así el almacenamiento físico en la ubicación anterior.
El proceso de mover la ubicación física se conoce como migración de datos . La mayoría de las implementaciones permiten que esto se haga de manera no disruptiva, es decir, simultáneamente mientras el host continúa realizando operaciones de E/S en el disco lógico (o LUN).
La granularidad del mapeo determina la rapidez con la que se pueden actualizar los metadatos, cuánta capacidad adicional se requiere durante la migración y la rapidez con la que se marca como libre la ubicación anterior. Cuanto menor sea la granularidad, más rápida será la actualización, se necesitará menos espacio y más rápido se podrá liberar el almacenamiento anterior.
Hay muchas tareas cotidianas que un administrador de almacenamiento debe realizar y que pueden realizarse de forma sencilla y simultánea mediante técnicas de migración de datos.
La utilización puede aumentarse gracias a los servicios de agrupación, migración y aprovisionamiento fino. Esto permite a los usuarios evitar la compra y el aprovisionamiento excesivos de soluciones de almacenamiento. En otras palabras, este tipo de utilización a través de un grupo compartido de almacenamiento se puede asignar de forma fácil y rápida según sea necesario para evitar las limitaciones de capacidad de almacenamiento que a menudo obstaculizan el rendimiento de las aplicaciones. [5]
Cuando se agrupa toda la capacidad de almacenamiento disponible, los administradores de sistemas ya no tienen que buscar discos que tengan espacio libre para asignar a un host o servidor en particular. Se puede asignar un nuevo disco lógico simplemente desde el grupo disponible o se puede ampliar un disco existente.
La agrupación también significa que se puede utilizar toda la capacidad de almacenamiento disponible. En un entorno tradicional, se asignaría un disco entero a un host. Este puede ser más grande de lo necesario, lo que desperdicia espacio. En un entorno virtual, se asigna al disco lógico (LUN) la capacidad requerida por el host que lo utiliza.
El almacenamiento se puede asignar donde se necesite en ese momento, lo que reduce la necesidad de adivinar cuánto necesitará un host determinado en el futuro. Con Thin Provisioning , el administrador puede crear un disco lógico de aprovisionamiento fino muy grande, por lo que el sistema que lo utiliza piensa que tiene un disco muy grande desde el primer día.
Con la virtualización del almacenamiento, varios dispositivos de almacenamiento independientes, incluso si están dispersos en una red, parecen un único dispositivo de almacenamiento monolítico y pueden administrarse de forma centralizada.
Sin embargo, todavía se requiere la gestión tradicional de los controladores de almacenamiento, es decir, la creación y el mantenimiento de matrices RAID , incluida la gestión de errores y fallos.
Una vez que la capa de abstracción está instalada, solo el virtualizador sabe dónde residen realmente los datos en el medio físico. Por lo tanto, para salir de un entorno de almacenamiento virtual es necesario reconstruir los discos lógicos como discos contiguos que se puedan utilizar de manera tradicional.
La mayoría de las implementaciones proporcionarán algún tipo de procedimiento de retroceso y con los servicios de migración de datos es al menos posible, pero lleva mucho tiempo.
La interoperabilidad es un factor clave para cualquier software o dispositivo de virtualización. Se aplica a los controladores de almacenamiento físico y a los hosts, sus sistemas operativos, software de rutas múltiples y hardware de conectividad.
Los requisitos de interoperabilidad difieren según la implementación elegida. Por ejemplo, la virtualización implementada dentro de un controlador de almacenamiento no agrega ninguna sobrecarga adicional a la interoperabilidad basada en host, pero requerirá soporte adicional de otros controladores de almacenamiento si se los va a virtualizar con el mismo software.
Es posible que la virtualización basada en conmutadores no requiera interoperabilidad de host específica, si utiliza técnicas de descifrado de paquetes para redirigir la E/S.
Los dispositivos basados en red tienen el nivel más alto de requisitos de interoperabilidad, ya que deben interoperar con todos los dispositivos, almacenamientos y hosts.
La complejidad afecta a varias áreas:
La información es uno de los activos más valiosos en los entornos empresariales actuales. Una vez virtualizados, los metadatos son el pegamento que une los datos. Si se pierden los metadatos, también se pierden todos los datos reales, ya que sería prácticamente imposible reconstruir las unidades lógicas sin la información de mapeo.
Toda implementación debe garantizar su protección con niveles adecuados de copias de seguridad y réplicas. Es importante poder reconstruir los metadatos en caso de una falla catastrófica.
La gestión de metadatos también tiene implicaciones en el rendimiento. Cualquier software o dispositivo de virtualización debe ser capaz de mantener todas las copias de los metadatos atómicas y rápidamente actualizables. Algunas implementaciones restringen la capacidad de proporcionar ciertas funciones de actualización rápida, como copias puntuales y almacenamiento en caché donde se requieren actualizaciones superrápidas para garantizar una latencia mínima con respecto a la E/S real que se está realizando.
En algunas implementaciones, el rendimiento del almacenamiento físico puede mejorarse, principalmente gracias al almacenamiento en caché. Sin embargo, el almacenamiento en caché requiere la visibilidad de los datos contenidos en la solicitud de E/S y, por lo tanto, está limitado a dispositivos y software de virtualización en banda y simétricos. Sin embargo, estas implementaciones también influyen directamente en la latencia de una solicitud de E/S (error de caché), debido a que la E/S debe fluir a través del software o dispositivo. Suponiendo que el software o dispositivo esté diseñado de manera eficiente, este impacto debería ser mínimo en comparación con la latencia asociada con los accesos a discos físicos.
Debido a la naturaleza de la virtualización, la asignación de datos lógicos a físicos requiere cierta capacidad de procesamiento y tablas de búsqueda. Por lo tanto, cada implementación agregará una pequeña cantidad de latencia.
Además de las preocupaciones relacionadas con el tiempo de respuesta, se debe considerar el rendimiento. El ancho de banda que entra y sale del software de búsqueda de metadatos afecta directamente el ancho de banda disponible del sistema. En las implementaciones asimétricas, donde la búsqueda de metadatos se produce antes de que se lea o escriba la información, el ancho de banda es una preocupación menor, ya que los metadatos son una fracción minúscula del tamaño real de E/S. Los diseños de flujo continuo simétrico en banda están limitados directamente por su potencia de procesamiento y anchos de banda de conectividad.
La mayoría de las implementaciones ofrecen algún tipo de modelo de escalabilidad horizontal, en el que la inclusión de software adicional o instancias de dispositivos proporciona una mayor escalabilidad y, potencialmente, un mayor ancho de banda. Las características de rendimiento y escalabilidad están directamente influenciadas por la implementación elegida.
La virtualización basada en host requiere que se ejecute software adicional en el host, como una tarea o proceso privilegiado. En algunos casos, la administración de volúmenes está integrada en el sistema operativo y, en otros casos, se ofrece como un producto independiente. Los volúmenes (LUN) presentados al sistema host son manejados por un controlador de dispositivo físico tradicional. Sin embargo, una capa de software (el administrador de volúmenes) reside por encima del controlador del dispositivo de disco, intercepta las solicitudes de E/S y proporciona la búsqueda de metadatos y la asignación de E/S.
La mayoría de los sistemas operativos modernos tienen algún tipo de administración de volumen lógico incorporada (en Linux llamada Administrador de volumen lógico o LVM; en Solaris y FreeBSD, la capa zpool de ZFS ; en Windows llamada Administrador de disco lógico o LDM), que realiza tareas de virtualización.
Nota: Los administradores de volúmenes basados en host se utilizaban mucho antes de que se acuñara el término virtualización de almacenamiento .
Al igual que la virtualización basada en host, existen varias categorías desde hace años y solo recientemente se han clasificado como virtualización. Los dispositivos de almacenamiento de datos simples, como las unidades de disco duro individuales , no proporcionan ninguna virtualización. Pero incluso las matrices de discos más simples proporcionan una abstracción lógica a física, ya que utilizan esquemas RAID para unir varios discos en una sola matriz (y posiblemente dividirla más tarde en volúmenes más pequeños).
Las matrices de discos avanzadas suelen ofrecer clonación, instantáneas y replicación remota. Por lo general, estos dispositivos no ofrecen los beneficios de la migración o replicación de datos en almacenamiento heterogéneo, ya que cada proveedor tiende a utilizar sus propios protocolos patentados.
Una nueva generación de controladores de matrices de discos permite la conexión en sentido descendente de otros dispositivos de almacenamiento. A los efectos de este artículo, solo analizaremos el último estilo, que en realidad virtualiza otros dispositivos de almacenamiento.
Un controlador de almacenamiento principal proporciona los servicios y permite la conexión directa de otros controladores de almacenamiento. Según la implementación, estos pueden ser del mismo proveedor o de diferentes proveedores.
El controlador principal proporcionará los servicios de agrupación y gestión de metadatos. También puede proporcionar servicios de replicación y migración entre los controladores de los que es responsable.
Virtualización de almacenamiento que funciona en un dispositivo basado en red (normalmente un servidor estándar o un conmutador inteligente) y utiliza redes de canal de fibra iSCSI o FC para conectarse como una SAN . Estos tipos de dispositivos son la forma de virtualización más comúnmente disponible e implementada.
El dispositivo de virtualización se encuentra en la SAN y proporciona la capa de abstracción entre los hosts que realizan la E/S y los controladores de almacenamiento que proporcionan la capacidad de almacenamiento.
Existen dos implementaciones comunes de virtualización de almacenamiento basada en red: la basada en dispositivos y la basada en conmutadores . Ambos modelos pueden proporcionar los mismos servicios: administración de discos, búsqueda de metadatos, migración de datos y replicación. Ambos modelos también requieren algún hardware de procesamiento para proporcionar estos servicios.
Los dispositivos basados en dispositivos son dispositivos de hardware dedicados que proporcionan conectividad SAN de una forma u otra. Se ubican entre los hosts y el almacenamiento y, en el caso de los dispositivos en banda (simétricos), pueden proporcionar todos los beneficios y servicios que se describen en este artículo. Las solicitudes de E/S se dirigen al dispositivo en sí, que realiza la asignación de metadatos antes de redirigir la E/S mediante el envío de su propia solicitud de E/S al almacenamiento subyacente. El dispositivo en banda también puede proporcionar almacenamiento en caché de datos, y la mayoría de las implementaciones proporcionan alguna forma de agrupamiento de dispositivos individuales para mantener una vista atómica de los metadatos, así como de los datos en caché.
Los dispositivos basados en conmutadores, como sugiere su nombre, residen en el hardware del conmutador físico que se utiliza para conectar los dispositivos SAN. También se ubican entre los hosts y el almacenamiento, pero pueden utilizar técnicas diferentes para proporcionar la asignación de metadatos, como el descifrado de paquetes para espiar las solicitudes de E/S entrantes y realizar la redirección de E/S. Es mucho más difícil garantizar actualizaciones atómicas de metadatos en un entorno conmutado y los servicios que requieren actualizaciones rápidas de datos y metadatos pueden estar limitados en las implementaciones conmutadas.
Los dispositivos de virtualización en banda , también conocidos como simétricos , se ubican en la ruta de datos entre el host y el dispositivo de almacenamiento. Todas las solicitudes de E/S y sus datos pasan a través del dispositivo. Los hosts realizan E/S al dispositivo de virtualización y nunca interactúan con el dispositivo de almacenamiento real. El dispositivo de virtualización, a su vez, realiza E/S al dispositivo de almacenamiento. El almacenamiento en caché de datos, las estadísticas sobre el uso de datos, los servicios de replicación, la migración de datos y el aprovisionamiento fino se implementan fácilmente en un dispositivo en banda.
Los dispositivos de virtualización fuera de banda , también conocidos como asimétricos , a veces se denominan servidores de metadatos . Estos dispositivos solo realizan las funciones de mapeo de metadatos. Esto requiere software adicional en el host que sepa solicitar primero la ubicación de los datos reales. Por lo tanto, se intercepta una solicitud de E/S del host antes de que salga del host, se solicita una búsqueda de metadatos al servidor de metadatos (esto puede ser a través de una interfaz distinta a la SAN) que devuelve la ubicación física de los datos al host. Luego, la información se recupera a través de una solicitud de E/S real al almacenamiento. El almacenamiento en caché no es posible ya que los datos nunca pasan por el dispositivo.
La virtualización basada en archivos es un tipo de virtualización de almacenamiento que utiliza archivos como unidad básica de almacenamiento. Esto contrasta con la virtualización de almacenamiento basada en bloques, que utiliza bloques como unidad básica. Es una forma de abstraer los detalles físicos del almacenamiento y permitir que los archivos se almacenen en cualquier tipo de dispositivo de almacenamiento, sin necesidad de controladores específicos ni otra configuración de bajo nivel.
La virtualización basada en archivos se puede utilizar para la consolidación del almacenamiento, la mejora de su utilización, la virtualización y la recuperación ante desastres. Esto puede simplificar la administración del almacenamiento y reducir la cantidad total de dispositivos de almacenamiento que se deben administrar. Los administradores de sistemas y los desarrolladores de software administran el almacenamiento virtual a través de operaciones fuera de línea utilizando herramientas integradas o de terceros.
Existen dos esquemas predominantes de virtualización de almacenamiento basado en archivos que son:
El disco virtual se implementa dividido en una colección de archivos planos, cada uno de los cuales tiene un tamaño de 2 GB (en conjunto, denominado archivo plano dividido ), o como un único archivo plano monolítico de gran tamaño . El esquema de almacenamiento preasignado también se conoce como esquema de aprovisionamiento grueso [6] .
El disco virtual puede implementarse nuevamente utilizando archivos divididos o monolíticos, excepto que el almacenamiento se asigna según demanda. Varias implementaciones de Virtual Machine Monitor inicializan el almacenamiento con ceros antes de proporcionárselo a la máquina virtual que está en funcionamiento. El esquema de almacenamiento de crecimiento dinámico también se conoce como esquema de aprovisionamiento fino [6] .
La virtualización basada en archivos también puede mejorar la utilización del almacenamiento al permitir que los archivos se almacenen en dispositivos que no se utilizan a plena capacidad. Por ejemplo, si un servidor de archivos tiene una cantidad de discos duros que solo están parcialmente llenos, se puede utilizar la virtualización basada en archivos para almacenar archivos en esos discos, lo que aumenta la utilización de los dispositivos de almacenamiento.
La virtualización basada en archivos se puede utilizar para crear un servidor de archivos virtual (o dispositivo NAS virtual), que es un sistema de almacenamiento que aparece ante el usuario como un único servidor de archivos pero que en realidad se implementa como un conjunto de archivos almacenados en varios servidores de archivos físicos.