Blog de Amazon Web Services (AWS)
Uso de un volumen de AWS Storage Gateway en modo caché con SQL Server
Por Miguel Soto, Partner Solutions Architect, AWS.
El almacenamiento en la nube brinda la posibilidad de contar con un almacenamiento de gran capacidad. Sin embargo, hay aplicaciones que demandan tiempos de respuesta difícilmente alcanzables si la petición requiere consultar la nube por el dato y regresar. Se puede considerar en este caso la solución de Volume Gateway. Ya que permite mantener una caché de los datos de manera local a los que se ha tenido acceso recientemente o una copia completa del volumen para que sus aplicaciones puedan beneficiarse de un acceso ágil a los datos. Al mismo tiempo, todos los datos de volúmenes se comprimen y almacenan de manera duradera y rentable en AWS, con escalabilidad en el orden de petabytes.
En este Blog vamos a repasar los pasos necesarios para crear un volumen de Storage Gateway y como utilizarlo con SQL Server. En el ejemplo se usa la versión de SQL Server 2017 sobre Windows Server 2019. De acuerdo a la documentación de Microsoft el soporte de Windows Server a los targets iSCSI aplica para Windows Server 2022, 2019, 2016, 2012 R2 y 2012, la información completa se puede consultar aquí.
¿Como funciona un volumen de Storage Gateway?
Storage Gateway proporciona almacenamiento con respaldo en la nube a sus aplicaciones en sus instalaciones mediante conectividad iSCSI. No necesita volver a escribir sus aplicaciones en sus instalaciones para utilizar el almacenamiento en la nube. Puede implementar Volume Gateway como una máquina virtual o con un dispositivo (appliance) de hardware de Storage Gateway en sus instalaciones.
Arquitectura de volúmenes en caché
Con el uso de volúmenes en caché se puede aprovechar Amazon S3 como almacenamiento de datos principal, mientras se conservan los datos a los que se accede con frecuencia localmente en Storage Gateway. Los volúmenes en caché minimizan la necesidad de escalar la infraestructura de almacenamiento local, al mismo tiempo que brindan a las aplicaciones acceso de baja latencia a los datos a los que se accede con frecuencia. Se pueden crear volúmenes de almacenamiento de hasta 32 TiB de tamaño y conectarlos como dispositivos iSCSI desde los servidores de aplicaciones locales. El Gateway almacena los datos que escribe en estos volúmenes en Amazon S3 y retiene los datos leídos recientemente en la memoria caché del Storage Gateway local y en el almacenamiento del búfer de carga.
Los volúmenes en caché pueden variar de 1 GiB a 32 TiB de tamaño. Cada Storage Gateway configurado para volúmenes en caché puede admitir hasta 32 volúmenes para un volumen de almacenamiento máximo total de 1024 TiB (1 PiB).
En la solución de volúmenes en caché, Storage Gateway almacena todos los datos de la aplicación local en un volumen de almacenamiento en Amazon S3. El siguiente diagrama proporciona una descripción general de la implementación de volúmenes en caché.
El detalle de la arquitectura puede consultarse aquí.
Creando el Storage Gateway
Abrir la Consola de administración de Amazon Web Services en: https://console.thinkwithwp.com/storagegateway/home
Seleccionar “Create Gateway” y elegir “Volume Gateway” con la opción “Cached volumes”.
Se recomienda crear el Gateway en las instalaciones para tener mayor agilidad en el intercambio de datos. En este ejercicio utilizaremos una instancia de Amazon EC2. Seleccionando esta opción en la opción “Select host platform”.
Con esta opción seleccionamos “Launch instance” para crear el Gateway en los demás casos se descargará la imagen para la plataforma seleccionada. Utilizaremos el tipo m4.xlarge recomendado.
A continuación, en la alternativa de “Service endpoint” usaremos “Public”.
En la opción “Connect to Gateway” usaremos “IP address” indicando la IP pública asignada al Storage Gateway.
En “Activate Gateway” indicamos la zona horaria adecuada y ponemos un nombre.
A continuación, indicamos los volúmenes que dedicaremos a “Cache” y “Upload buffer”
Para este ejercicio usamos dos dispositivos de EBS de 500 GB y 200 GB respectivamente. Encuentra más información sobre la determinación del tamaño del almacenamiento aquí.
Después indicamos si deseamos llevar el registro de las actividades en la opción “Configure logging”
Para este ejercicio indicamos “Create a new log group”, indicamos “Save and continue” y en la opción de “Review and finish” elegimos “Finish”
Creando un volumen
Abrir la consola de Storage Gateway en: https://console.thinkwithwp.com/storagegateway/home
En “volumes” seleccionar “Create volumen”.
Seleccionamos el Gateway creado, indicamos la capacidad y asignamos un nombre para identificar el iSCSI target.
Podemos configurar el Challenge-Handshake Authentication Protocol (CHAP) para el volumen, o podemos elegir Cancelar y configurar CHAP más tarde. Para obtener más información sobre la configuración de CHAP, consultar Configure CHAP authentication for your volumes. Para este ejemplo seleccionamos “Cancel” y a continuación podemos ver nuestro volumen disponible.
Conectando el volumen con un cliente de Microsoft Windows
Desde el cliente de Windows iniciar iscsicpl.exe. En el cuadro de diálogo Propiedades del iniciador iSCSI, elegir “Discovery” y luego elegir “Discovery Portal”.
En las propiedades del iniciador iSCSI proporcionar la IP del Storage Gateway:
Verificar la conexión exitosa del destino:
Inicialización y formateo del volumen Microsoft Windows
Iniciar diskmgmt.msc para abrir la consola de administración de discos.
Desplegar el menú de contexto con el click-derecho y poner el volumen Online
Dar nuevamente click-derecho y seleccionar “Initialize disk”
A continuación, indicar el tipo de particionamiento:
En este caso indicamos MBR, lo cual aplica para volúmenes con caché menores a 2 TiB.
Nuevamente dar click-derecho y en el menú de contexto seleccionar “New Simple Volume”
Dar “Next” en el “Volume Wizard”
Indicar la información del tamaño, en este caso 1 TiB y dar “Next”
Asignar una letra para el dispositivo y dar “Next”.
En el ejemplo asignamos la letra D. Dar “Next”.
A continuación, damos formato a la partición. En este caso usamos NTFS, con la opción “quick format” y etiquetamos el volumen.
Damos “Next” y después de revisar las opciones seleccionamos “Finish”.
El volumen se muestra listo para su uso:
Configuración del volumen de Storage Gateway en SQL Server
En el SQL server abrimos SQL Server Management Studio. En este ejemplo usaremos el volumen en una base de datos nueva, aunque es posible agregarlo a una base de datos existente.
Dar click-derecho en “Databases” y seleccionar “New Database”
En las especificaciones de la Base de datos asignar un nombre, tamaño y utilizar el volumen definido de Storage Gateway, en nuestro caso ubicado en el drive D. Seleccionar “OK”.
Verificamos que la información de la Base de datos se ubica en la ruta que usa nuestro volumen de Storage Gateway.
Conclusión
El uso de Storage Gateway con la opción de volumen con caché ofrece la posibilidad de utilizar el almacenamiento en la nube para extender las capacidades del centro de datos. El impacto de la latencia en la transferencia de información se mitiga con el uso del caché local. Esta opción puede ser útil para casos en los que se desea mantener los datos en la nube por el tamaño que ocupan y se aprovecha para tenerlos resguardados en un lugar seguro fuera del centro de datos local. Una base de datos o una tabla con altos volúmenes de información podría aprovechar las características de este servicio, especialmente si la información no es altamente transaccional o su porcentaje de uso frecuente es igual o menor a lo que puede mantenerse en el caché local.
Sobre el autor
Miguel Soto es Partner Solutions Architect apoyando a empresas de Telecomunicaciones en la implementación de soluciones en la nube para el Sector Público. Cuenta con más de 25 años de experiencia en tecnologías de Información.
Revisores
Gabriel Gasca Torres es Solutions Architect en AWS en México.
Edgar Tellez es Senior Solutions Architect en AWS en México.