|
| Tendencias: Más allá
de la unidad lógica SCSI de 2 TB |
| |
| Suri Brahmaroutu, arquitecto y
estratega de software |
| |
Hoy, los principales sistemas
operativos y el software de virtualización de almacenamiento,
producidos por fabricantes como Veritas y EMC, les permiten
a los usuarios crear grandes conjuntos de almacenamiento que
comprenden múltiples dispositivos destinados a tal fin.
La medida de estos conjuntos (conocidos también como
volúmenes, unidades lógicas o discos virtuales)
está restringida a 2 terabytes (TB), debido a las limitaciones
del protocolo Small Computer System Interface (SCSI). Así
mismo, el esquema prevaleciente de partición de disco
según la arquitectura x86 circunscribe la medida de la
partición a 2 TB. Las tecnologías como Microsoft®
Dynamics Disks y EMC® MetaLUNs permiten agregar unidades
lógicas múltiples dentro de una unidad lógica
compuesta que puede ser mayor de 2 TB. Por lo tanto, es posible
crear y formatear un sistema único de archivo o base
de datos mayor de esa medida.
Sin embargo, existen ciertas desventajas en el desempeño
asociadas con esas unidades lógicas compuestas, debido
a las capas adicionales de la virtualización de almacenamiento
requerida. Se espera que surja, en pocos años más,
una fuerte demanda para las unidades lógicas originalmente
mayores de 2 TB. Se requiere una solución que haga posible
que las medidas de las unidades lógicas y las particiones
escalen más allá de los 2 TB, y dentro de la capacidad
de disco de petabyte en el futuro. Inicialmente, estas unidades
lógicas mayores es posible que aparezcan en entornos
de high-performance computing (HPCs), que tengan que tratar
con conjuntos de datos superiores a 2 TB. Los casos típicos
son las aplicaciones de bioinformática, petroquímica
y meteorología, así como los clubes Web que soportan
sitios para descarga de música y multimedia. Junto con
ellos, muchas aplicaciones de manejo de almacenamiento, tales
como las de resguardo, se benefician de la capacidad de dirigir
los datos como una unidad lógica simple más que
como unidades lógicas múltiples. Las crecientes
capacidades de los discos simples también derivarán
hacia la necesidad de soporte original para las unidades lógicas
mayores de 2 TB. En poco tiempo más, estarán a
la venta drives ATA de 500 GB (o 0,5 TB). Si las capacidades
históricas continúan creciendo, los drives simples
con más de 2 TB de capacidad podrían estar disponibles
al concluir esta década. A los fines prácticos,
estas mayores capacidades de los drives simples requerirán
que el límite de partición de 2 TB de las unidades
lógicas se extienda. Este informe muestra la limitación
de 2 TB de las unidades lógicas, y los cambios producidos
en el protocolo SCSI y en el esquema de partición de
disco de x86 actualmente en curso. Se han identificado los cambios
asociados a los sistemas operativos, los drivers de clasificación
de disco y el firmware del Redundant Array of Independent Disks
(RAID). Para ello, se organizó la información
alrededor de las dos operaciones fundamentales involucradas
en la creación y uso de los sistemas de almacenamiento
SCSI: crear una unidad lógica y llevar a cabo operaciones
I/O en ella. Creación
de unidades lógicas SCSI
El software de virtualización de almacenamiento
se utiliza para crear unidades lógicas SCSI, algo similar
a un gran conjunto que abarca múltiples drives físicos.
Al igual que un disco drive físico, la unidad lógica
habitualmente es particionada y formateada antes de que pueda
ser utilizada. Una partición es un espacio contiguo de
almacenamiento en un disco físico o lógico, que
funciona como un disco físico separado. Las herramientas
de partición de discos crean varias estructuras de datos
y las escriben en el disco una vez que éste fue particionado.
El formato de estas estructuras varía en función
de la arquitectura del equipo informático involucrado.
Los equipos basados en la arquitectura Intel® x86 exigen
discos para particionar que respeten el formato Master Boot
Record (MBR). En contraste, los equipos informáticos
basados en la arquitectura Intel Itanium® exigen discos
a ser particionados siguiendo el formato Globally Unique Identifier
(GUID) Partition Table (GPT). Este sistema operativo, que desconoce
las estructuras de datos, describe las características,
incluyendo la medida de las particiones y los sectores constituyentes
del disco. MBR limita
la medida de partición del disco a 2 TB
Dentro de la estructura de datos del MBR, la
tabla de partición contiene información que describe
cómo se particiona el disco. Cada ingreso en la tabla
realiza un listado de la locación cylinder/head/sector
(CHS) por cada partición, así como información
del tipo de partición realizado.
El campo de cuatro bytes en la tabla de partición restringe
el número total de sectores de la unidad lógica
a 232 – 1. Por lo tanto, bajo la arquitectura x86, la
medida máxima de partición utilizando el estándar
de sectores de 512 bytes, es 2 TB. Esta limitación a
la medida de la partición debe ser direccionada de modo
que las aplicaciones aprovechen las ventajas de las unidades
lógicas de gran tamaño, que son potenciadas por
los cambios en el conjunto del SCSI Block Command (SBC) explicado
en la próxima sección.
La industria está enfrentando las restricciones de la
tabla de partición del MBR, adoptando el formato GPT
usado en la arquitectura Intel Itanium. El GPT identifica y
define las particiones por medio de sus logical block addresses
(LBAs), antes que por la locación CHS. El direccionamiento
CHS es poco adecuado para los drivers de disco del sistema operativo
que acceden al disco de almacenamiento de manera directa, porque
requiere que los drivers estén al tanto de la geometría
del drive de disco. Con los LBAs, los bloques de disco se numeran
en una secuencia lógica. El firmware del drive de disco
convierte los equivalentes de LBA y CHS. El formato GPT tiene
8 bytes (o 64 bits) de LBA, lo cual se puede adecuar a las medidas
de partición más allá del actual límite
de 2 TB asociado al formato MBR. De hecho, un esquema de direccionamiento
de 64 bits de LBA tiene la capacidad de adaptarse a particiones
de hasta 16 exabytes.
A fin de implementar el GPT, los fabricantes de sistemas operativos
deben proveer el soporte para el disco de partición de
GPT, y las herramientas para migrar un disco desde MBR hacia
GPT. Las herramientas de Linux están actualmente en el
mercado. Por su parte, Microsoft aún no ha anunciado
sus planes al respecto.
Los cambios adicionales necesarios para soportar los LBAs de
64 bits se detallan en la siguiente sección.
Para llevar a cabo las operaciones
de I/O
El SCSI es una de las interfaces primarias utilizadas para conectar
los dispositivos de almacenamiento con los equipos informáticos.
La definición de la interface está a cargo del
T 10 Technical Committee, integrado por representantes de los
principales fabricantes de equipos informáticos, hard-drive
y componentes. La interface SCSI ha ido evolucionando según
las sucesivas versiones del estándar SCSI, desde 1986.
La actual definición del SCSI, fijada en 1997, usa un
direccionamiento de una longitud de 4 bytes de LBA, lo cual
limita la medida direccionable a una unidad lógica a
2 TB. Un estándar revisado, llamado SBC, que será
dado a conocer a inicios del 2005, extiende el direccionamiento
a 8 bytes para adecuarlo a las medidas de las unidades lógicas
mayores de 2 TB.
Llevar adelante esa especificación revisada requerirá
modificar varios componentes del hardware que manejan los requerimientos
de I/O.
La Figura 1,
incluida en el apartado “I/O del SCSI”, muestra
los componentes de alto nivel –desde las aplicaciones
hasta lo arreglos de almacenamiento físico– involucrados
al leer y escribir en una unidad lógica SCSI. Los detalles
del esquema de partición de la unidad lógica,
así como los cambios asociados a la norma revisada de
conjunto del SCSI están ocultos (o han sido abstraídos)
de las aplicaciones de los usuarios y de la mayoría de
los sistemas operativos. Por esta razón, es posible que
los cambios impacten directamente sólo en la columna
del driver de disco, y en el firmware del RAID controlante1.
Columna del driver de
disco
El actual estándar SBC establece un Command Descriptor
Block (CDB) de 10 bytes, estructura de datos empleada para conectar
los comandos del SCSI. El CDB comprende un campo de 4 bytes
de LBA. El primitivo estándar SBC-2 establece una definición
de CDB de 16 bytes. La columna del driver de disco debe ser
actualizada a fin de soportar los comandos que usan los nuevos
CDBs de 16 bytes. La Figura 2 es una muestra de alto nivel del modelo de driver de disco de
Microsoft, formado por un disco clasificador, un puerto y drivers
minipuerto. El modelo de driver de Linux es similar, con un
bloque de I/O, y drivers de capas medias y bajas.
 |
Figura 2. Modelo del
driver de disco de
Microsoft |
. El driver clasificador de disco
Los fabricantes de Microsoft y Linux brindan drivers clasificadores
(o bloques de I/O) que manejan tipos específicos (o clases)
de dispositivos tales como drives de discos. El rol principal
del driver clasificador de disco es construir un SCSI CDB al
recibirse un I/O request packet (IRP).
El driver clasificador empaqueta el CDB dentro de un SCSI Request
Block (SRB) y lo traspasa al driver de puerto SCSI. Por lo tanto,
el driver clasificador debe modificarse ya que construye el
CDB.
. Drivers de puerto y minipuerto SCSI
Los drivers de puerto son, por lo general, provistos por los
desarrolladores de sistemas. Por otro lado, los drivers de minipuertos
son producidos por los fabricantes de hardware. El driver de
puerto SCSI programa el disco controlador, y determinada ciertos
pasos y valores de target especificados en el SRB. Luego, éste
es enviado desde el driver de minipuerto. El driver de puerto
de SCSI no altera los contenidos del CDB. Por este motivo, no
es probable que los drivers de puerto deban ser actualizados,
así como tampoco que se exigirán cambios en los
drivers de minipuerto. Soporte
de los sistemas operativos de Microsoft y Linux
A partir de todo lo mencionado hasta aquí, puede concluirse
que el soporte del fabricante del sistema operativo es clave
para la transición dentro de esta industria. Estos fabricantes
deben proveer el soporte y las herramientas de partición
de los discos GPT, a fin de migrar un disco desde MBR hacia
GPT, así como para actualizar los drivers. Las herramientas
de Linux para la partición y migración de los
discos ya se encuentran disponibles, y se espera que Microsoft
ofrecerá herramientas similares en el corto plazo. Del
mismo modo, la versión 2.6.x del bloque de capa de Linux,
equivalente al driver clasificador de Microsoft, soporta LBAs
de 64 bits. (Esta funcionalidad no ha sido aún testeada
de manera total por la comunidad de Linux.) Microsoft aún
no anunció sus planes referentes a la modificación
de los drivers de disco clasificador. El
firmware del RAID
El firmware del RAID controlador debe ser actualizado para reflejar
los cambios en el estándar del SCSI. Ese firmware procesa
cada CDB recibido desde el driver de la capa superior. El firmware
puede particionar un CDB en varios CDBs, antes de pasar a los
respectivos drives de disco físicos. Los fabricantes
de RAID están actualizando el firmware adecuadamente
a fin de manejar los CDBs con LBAs de 8 bites. Los productos
de la próxima generación que soporte unidades
lógicas de más de 2 TB, según se espera,
serán presentados por distintos fabricantes de RAID a
lo largo del 2005. Sistemas
de archivo
Los sets con grandes volúmenes de datos generalmente
son alojados en sistemas de archivos, y no en bases de datos.
Por esta razón, la capacidad de los sistemas de archivo
es un asunto fundamental en toda discusión sobre sistemas
de almacenamiento de gran dimensión (esto es, petabyte).
La arquitectura del Microsoft Windows NT® file system (NTFS)
ha sido concebida para dar cabida a 264 bytes, o 16 exabytes,
de almacenamiento de archivo. Los sistemas de archivo Linux
extended (EXT) 2 y EXT 3 pueden alojar 8 y 16 TB, respectivamente,
por sistema de archivo en entornos de procesador de 3 bits.
Además de ello, muchos sistemas de archivo basados en
UNIX®, incluyendo XFS, ReiserFS y JFS de IBM, poseen límites
más amplios. Por lo tanto, en teoría es posible
implementar un gran sistema de archivo con un simple nombre
de espacio sobre una capacidad de almacenamiento dada. No se
requieren cambios adicionales a realizar en estos sistemas para
soportar las unidades lógicas mayores de 2 TB.
Conclusión
Con los próximos cambios en el esquema de partición
de x86, los drivers de disco SCSI y el firmware para RAID SCSI,
las configuraciones de las unidades lógicas que resulten
mayores de 2TB se transformarán en algo factible, aunque
esas unidades deben tener una dimensión manejable de
manera que los conjuntos de datos puedan ser resguardados y
restaurados eficientemente. Estas restricciones prácticas
es muy probable que determinen la medida máxima de las
unidades lógicas que esté por debajo del petabyte.
Los cambios planteados en este documento requieren un esfuerzo
coordinado entre los fabricantes de sistemas operativos, y los
de hardware para servidores y almacenamiento. Sumado a ello,
los desarrolladores de software que generen sistemas para grandes
bases de datos y archivos, así como los productores de
sistemas como Dell, deben asegurar que las nuevas columnas de
drivers funcionen adecuadamente al integrarse interoperativamente
en las actuales “plugfests” del sector, e invertir
en validaciones extensivas para garantizar la retrocompatibilidad.
Se espera que a mediados del 2005 se lancen al mercado soluciones
de inicio a fin que soporten 2 TB y unidades lógicas
mayores. |
| |
| Las nuevas regulaciones del gobierno
de Estados Unidos sobre archivo y retención de documentos,
podrán hacer que las compañías inviertan
más en sistemas de almacenamiento de alta capacidad.
Además, el creciente despliegue de servidores equipados
con procesadores de 64 bits acelerará la demanda de sistemas
de almacenamiento de alta capacidad, ya que ellos pueden direccionar
y procesar mayores grupos de datos. |
| |
| Ésta no es la primera vez
que la industria tiene que superar los límites de los
discos de direccionamiento. La especificación de diseño
original para la interface ATA definía un direccionamiento
de 28 bits, lo cual limitaba la capacidad de un disco rígido
ATA a 137 GB. Esta restricción forzó a los usuarios
a la partición de los discos rígidos más
grandes en múltiples unidades lógicas. En el 2001,
se especificó en la revisión ATA/ATAPI-6 un método
de direccionamiento de 48 bits, ampliando así el soporte
de los drives ATA con una capacidad de hasta 144 petabytes. |
| |
I/O
del SCSI
La mayoría de los requerimientos de I/O
comienzan cuando una aplicación abre un archivo de manejo
y llama a una rutina de I/O. La rutina habitualmente es provista
por una biblioteca de lenguaje (como C++), o un subsistema del
entorno como la application program interface (API) Win32®.
El subsistema (o biblioteca del lenguaje, si está vinculado
al programa) se comunica con un servicio de llamado de un sistema
I/O nativo. El manager de I/O acepta el llamado de servicio
y el archivo asociado de manejo crea el I/O request packet (IRP),
y se lo envía al sistema de archivo. Éste posee
un gran control sobre la operación de I/O en ese punto,
y eventualmente reenvía el requerimiento al manager del
volumen. Este manager crea un nuevo IRP y se lo remite al driver
del disco. En ese momento, ninguno de los procesos se realiza
en el nivel de la unidad lógica. Comenzando con la columna
del driver de disco, sin embargo, los procesos de I/O deben
actuar en el nivel de la unidad lógica y, por lo tanto,
están potencialmente sujetos a cambios en el soporte
mayores a las unidades lógicas de 2 TB. |
| |
Soporte
en el BIOS legacy para las LUNs bootable mayores de 2 TB
Por lo general, el cargador de choque del BIOS y el sistema
operativo toman como modelo una tabla de partición del
estilo MBR. Este código puede también ser modificado
para alojar el GPT. Junto con ello, los drivers que sirven los
llamados del BIOS INT 13, deben modificarse. Los llamados del
INT 13 son utilizados por el sistema operativo y las aplicaciones,
para que el I/O acceda a los discos rígidos antes de
cargar los drivers del controlador de disco. Para soportar las
LUNs mayores de 2 TB, los drivers que sirven los llamados del
INT 13 deben estar equipados como para manejar un direccionamiento
de LBA de 64 bits. Debido a que no existe un evidente impulso
de la industria por las particiones bootable mayores de 2 TB,
Dell no tiene planeado incorporar soporte de GPT dentro de su
BIOS. |
| |
| Para más información:
. Virtual Storage Redefined - Technologies and Applications
for Storage Virtualization, Paul Massiglia y Frank Bunn, VERITAS
Software Corporation, abril 2003.
. Propuesta de trabajo de SCSI Block Commands - 2 (SBC-2):
www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf.
1 El servicio de manejo del volumen no debería requerir
cambios para sopotar un LBA de 64 bits. Sin embargo, algunos
fabricantes de manejo de volúmenes pueden haber decidido
limitar el código rígido de LBA en sus aplicaciones.
Éstas necesitan ser reescritas para habilitar las medidas
de las unidades lógicas mayores de 2 TB.
Este documento tiene únicamente fines informativos
y puede presentar errores tipográficos e imprecisiones
técnicas. El contenido se muestra tal como fue generado
por el autor, y no implica garantías de ningún
tipo.
Fuente: www.dell.com/r&d
|
| |
| |
| |
¿Qué le pareció
esta nota?
|
| |
|
| |
| Volver
al índice >> |
|