\documentclass[12pt,a4paper]{article} \usepackage[spanish]{babel} \usepackage{hyperref} \usepackage{graphicx} \title{Tema IV Ejercicio II: Sistemas RAID} \author{Nicolás A. Ortega Froysa} \begin{document} \maketitle \pagebreak \tableofcontents \pagebreak \section{Introducción: ¿Qué es RAID?} En la informática, aumentar las capacidades de una unidad suele ser más difícil que simplemente usar varias unidades. Por ejemplo, es más fácil que un ordenador use varios procesadores, que no construir un procesador más rápido. Esto es lo que lleva a que en el almacenamiento de información a largo plazo (i.e.\ en discos duros), para almacenar mucha información se suelen tener muchos discos. La dificultad con este modelo está en que se complica la organización de datos, ya que cada unidad se trata de forma separada. En esto, se han inventado varios sistemas lógicos de almacenamiento para gestionar el espacio en varios discos, como LVM. Pero la más conocida para almacenamiento masivo es {\bf Redundant Array of Independent Disks}, o RAID. El objetivo del almacenamiento con RAID es por seguridad, rendimiento, y capacidad de almacenamiento. \begin{itemize} \item {\bf Seguridad}: se pueden hacer escrituras paralelas a dos discos de la misma información para poder tener copia de seguridad. \item {\bf Rendimiento}: al distribuir información entre varios discos se puede paralelizar la transferencia de datos. \item {\bf Capacidad de almacenamiento}: permite tratar a varios discos como si fueran un solo disco. \end{itemize} Aunque éstos son algunas de las ventajas de usar RAID, realmente depende del tipo de {\em nivel} que tenga. \section{Niveles RAID} Los sistemas configurados con RAID no funcionan todos igual, sino que se pueden configurar de forma distinta, usando distintos niveles, e incluso combinando éstos dependiendo de las necesidades. Dependiendo del nivel que sea, se explota una o más de las ventajas expuestas anteriormente. \subsection{RAID 0} \begin{figure}[!htb] \begin{center} \includegraphics[width=0.5\linewidth]{imgs/striping.png} \caption{Striping con tres discos.} \label{fig:striping} \end{center} \end{figure} Para poder aprovechar tanto la mejora en rendimiento de tener varios discos, como su aumentada capacidad de almacenamiento, este nivel implementa una técnica que se denomina {\em striping}, tal que los segmentos consecutivos de un archivo se distribuyen entre los discos configurados (ver figura \ref{fig:striping}). Al usar varios discos, esto significa que la capacidad máxima de esta configuración RAID sería la suma del espacio de almacenamiento de todos sus discos. También mejora la transferencia de datos, al poder paralelizar su transferencia entre varios discos. \subsection{RAID 1} Para poder asegurarse de la seguridad de los datos guardados, este nivel automáticamente copia la información a los demás discos haciendo {\em mirroring}. Lo que hace es que mientras se escribe a un disco, se va escribiendo los mismos datos en el disco de copia. Esto no causa demasiado retraso, ya que las transmisiones son a dos discos distintos, lo cual se puede hacer en paralelo. \subsection{RAID 2} \begin{figure}[!htb] \begin{center} \includegraphics[width=0.5\linewidth]{imgs/raid2.png} \caption{Diagram of RAID 2 setup.} \label{fig:raid2} \end{center} \end{figure} Al igual que el RAID 0, hace {\em striping}, mas en vez de hacerlo a nivel de bloques, lo hace a nivel de bits. También se suma un método de corrección de errores con un {\em hamming code}. Mas debida a su complejidad comparada con un sistema de paridad, apenas se usa este nivel en la práctica. Esto hace que sea el único nivel original de RAID que no se usa actualmente. También es imposible de hacer varias peticiones a la vez por la distribución a nivel de bit en vez de ser por bloque, lo cual significa generalmente que para leer tan sólo un bloque ya debe de usar todos los discos. \subsection{RAID 3} \begin{figure}[!htb] \begin{center} \includegraphics[width=0.5\linewidth]{imgs/raid3.png} \caption{Diagram of RAID 3 setup.} \label{fig:raid3} \end{center} \end{figure} Muy similar al nivel anterior, RAID 3 implemente {\em striping} a nivel de bytes, y un disco dedicado a guardar la paridad para la detección de errores. El hecho de que su {\em striping} sea a nivel de byte significa que, al igual que en el nivel 2, no se pueden hacer varias peticiones a la vez. Esto significa que puede ser muy útil si se precisa una alta velocidad de transferencia de datos consecutivos de un mismo bloque. Mas este nivel ya casi no se usa en la práctica. \subsection{RAID 4} \begin{figure}[!htb] \begin{center} \includegraphics[width=0.5\linewidth]{imgs/raid4.png} \caption{Diagram of RAID 4 setup.} \label{fig:raid4} \end{center} \end{figure} Al igual que RAID 3, este nivel implementa {\em striping} y un disco dedicado a la paridad, pero a este nivel el {\em striping} sí que es a nivel de bloque, lo cual permite un acceso a datos más veloz, aunque la escritura pueda ser más lenta debido a la escritura al disco de paridad. Su ventaja es que puede ser fácilmente extendida siempre y cuando los nuevos discos estén completamente limpios (sólo bytes de ceros). \subsection{RAID 5} \begin{figure}[!htb] \begin{center} \includegraphics[width=0.5\linewidth]{imgs/raid5.png} \caption{Diagram of RAID 5 setup.} \label{fig:raid5} \end{center} \end{figure} Funciona de manera igual que RAID 4, mas distribuye la información de paridad entre todos los discos, lo cual para funcionar tan sólo hace falta que funcionen todos los discos menos uno. Al faltar un solo disco, se pueden calcular los errores a partir de la información de paridad. Dicho lo cual, este nivel precisa de un mínimo de tres discos. Esto también mejora la velocidad de escritura respecto al RAID 4, ya que la información de paridad se encuentra también distribuida. \subsection{RAID 6} \begin{figure}[!htb] \begin{center} \includegraphics[width=0.5\linewidth]{imgs/raid6.png} \caption{Diagram of RAID 6 setup.} \label{fig:raid6} \end{center} \end{figure} Finalmente existe el nivel RAID 6. Se parece al RAID 5, en que también usa {\em striping} a nivel de bloques, y también usa paridad, pero en vez de ser sólo un bloque de paridad, son dos. Esto hace que haya más penalización al escribir debido a las paridades, pero aumenta la seguridad de los datos, ya que pueden fallar hasta dos discos. \subsection{RAID 5E y 6E} Las variaciones 5E y 6E son de los RAID 5 y 6 que hacen uso de un disco aparte que sirve de {\em backup} o, mejor dicho, {\em hot-spare}. Esto permite mejor rendimiento, para que la carga sea más distribuida, y a la vez más tolerancia a fallos. \section{RAID Híbrido (Nested)} Además de los niveles anteriores, también se pueden hacer combinaciones, que normalmente se denominan por {\em RAID X+Y}. Lo que significa esto es que a nivel más bajo está usando el nivel X, y a nivel más alto usa Y. De los más comunes, podríamos decir que existen: \begin{itemize} \item RAID 0+1 (01) \item RAID 0+3 (03) \item RAID 1+0 (10) \item RAID 5+0 (50) \item RAID 6+0 (60) \item RAID 10+0 (100) \end{itemize} \subsection{RAID 01} \begin{figure}[!htb] \centering \includegraphics[width=0.75\linewidth]{imgs/RAID-01.png} \caption{RAID 0+1.} \label{fig:raid-01} \end{figure} El RAID 01 (o RAID 0+1) consta de un RAID híbrido donde son varios RAID 0 juntados en un RAID 1. De este modo cada subdivisión hace {\em striping} mientras que entre ellas son copias. \subsection{RAID 10} \begin{figure}[!htb] \centering \includegraphics[width=0.35\linewidth]{imgs/RAID-10.png} \caption{RAID 1+0.} \label{fig:raid-10} \end{figure} El RAID 10 (o RAID 1+0) es igual que el RAID anterior, pero a la inversa. \subsection{RAID 30} Este RAID híbrido consta de varios RAID 3, como vimos en la sección anterior, juntado con el {\em striping} del RAID 0. \subsection{RAID 100} \begin{figure}[!htb] \centering \includegraphics[width=0.75\linewidth]{imgs/RAID-100.png} \caption{RAID 1+0+0.} \label{fig:raid-100} \end{figure} Este RAID es igual que el RAID 10 que vimos anteriormente, pero con un nivel más de RAID 0. De este modo hace el {\em striping} de dos maneras. \pagebreak \section{Derechos de Autor} \noindent Copyright \textcopyright\ \the\year\ Ortega Froysa, Nicolás \\ \\ \noindent Este documento está licenciado con la licencia Creative Commons Attribution No Derivatives 4.0 International.\\ \\ \noindent Creado con \LaTeX. \end{document}