RAIDs
Un sistema RAID es un sistema formado por múltiples discos trabajando en paralelo, con los objetivos de incrementar la capacidad total (empleando diversos discos), incrementar el ancho de banda o rendimineto (distribuyendo partes de un mismo fichero entre discos), aumentar la fiabilidad (sistemas redundantes y corrección de errores).
Es un conjunto de discos físicos, visto como una unidad lógica por el SO. Los datos de un RAID son distribuidos de forma entrelazada entre los diversos discos físicos. El entrelazado puede ser:
- No ser entrelazado - Se almazena todo en cada disco.
- Entrelazado a nivel de tira - Se entrelazan los datos por "tiras" de tamaño definido durante su configuración.
- Entrelazado a nivel de byte - Se entrelazan los datos por bytes.
- Entrelazado a nivel de bit - Se entrelazan los datos por bits.
Entrelazar no significa nada más que repartir los datos entre los discos. En esta imágen (IGNORAR "RAID0"):
- Si imaginamos ABCDEF como los bytes de un dato (A = Byte1, B = Byte2...), sería un entrelazado por byte.
- Si imaginamos A como un dato, B como otro.... no habría entrelazado.
- Si imaginamos cada letra como una "tira" configurada a 4Bytes, habría entrelazado por tiras...
La redundancia de datos es útil de cara a poder recuperar información en caso que falle algún disco. Las técnicas de redundancia son:
- Mirroring
- Paridad
- Códigos Hamming
- Códigos Reed-Solomon
Fiabilidad
La fiabilidad se mide en MTTF, ahora pero, tenemos varios discos:
MTTF(N discos) = MTTF(1 disco)/N
Raid 0
- Entrelazado a nivel tira.
- No hay redundancia de datos.
- Ideal para ficheros de gran tamaño que no sean críticos, ya que al no tener redundancia de datos si falla un disco perdemos todos los datos, a menos que tengamos una copia de seguridad.
Raid 1 - Mirroring
- Los discos adicionales son copias exactas.
- Fiabilidad elevada, si falla un disco, trabajamos sobre los otros (mirror)
- Problema: Cuando escribimos, debemos hacerlo en todos los discos, manteniendo todas las copias sincronizadas. Coste temporal.
Raid 2 - Redundancia Hamming
- Entrelazado a nivel bit.
- Detecta y corrige si falla un disco. También si fallan dos discos, pero no hay posibilidad de corrección entonces.
- Más teorico que práctico, se necesita mucho espacio.
Raid 3
- Entrelazado a nivel byte.
- Sólo se dedica un disco a información de paridad.
- Accesos al mismo sector (fila) en paralelo.
Raid 4
- Igual que RAID3 pero entrelazado a nivel de tira y acceso individual.
- Un disco para información de paridad
- Se pueden hacer accesos de forma individual a cada disco cuando se pide un dato de tamaño tira.
- Escrituras costosas : Requiere dos lecturas y dos escrituras.
En la imagen cada Letra-Numero representa una tira (bloque). Las paridades son para los bloques.