Notas acerca de almacenamiento

Redundant Array of Inexpensive Disks (RAID)

Es una forma de arreglar los discos para guardar la información.

SAN hace deduplicación, almacenamiento diferencial, paridad 1.

SAS: hace mejor corrección de errores que SATA 2.

RAID no protege ante corrupción silenciosa de datos en el disco3.

RAID 0

Junta todos los discos. Si uno se daña, todo se pierde.

RAID 1

Hay dos copias de la información, sólo se puede usar la mitad del espacio en el disco.

RAID 5

El espacio equivalente a un disco se usa para corrección de errores (información de paridad), pero se distribuye entre todos los discos.

Si

a) se muere un disco y b) NO hay errores de lectura

se recupera la información después de un largo tiempo de espera al reemplazar el disco que falla4.

Es muy probable que la reconstrucción falle porque los errores de lectura son muy frecuentes5.

RAID 6

El espacio equivalente a dos discos se usa para corrección de errores pero se distribuye entre todos los discos.

Si

a) se muere un disco y b) no hay errores de lectura para las dos copias de la misma información de paridad

se recupera la información al reemplazar el disco después de un largo tiempo de espera.

Es muy improbable que se pierda la información suponiendo que los errores están distribuídos aleatoriamente6.

Sin embargo, es mucho más lento que la duplicación de datos (RAID 1) y varios artículos advierten en contra de usar este tipo de arreglo7

Este arreglo no proveerá protección cuando la capacidad de los discos individuales sea mayor, se espera que esto será común en 2017.8

btrfs

Puede guardar las cosas en varios discos, se puede elegir qué se duplica y qué no, así como si usar compresión en archivos.

btrfs protege los datos contra errores silenciosos en el disco9.

No es necesario particionar, pero es convenient para tener una partición de recuperación10 o para tener swap11.

Opciones recomendadas12

noatime,compress=lzo,space_cache,autodefrag

Para SSD:

noatime,compress=lzo,ssd,discard,space_cache,autodefrag

Si se tiene un número de archivos muy grande (como en una db)13 :

inode_cache

Quitar un disco de btrfs

# btrfs device delete /dev/sdX /mnt

Agregar un disco

# btrfs device add /dev/sdX /mnt
## El balanceo es necesario para poder usar todo el espaciio disponible.
## Toma mucho tiempo pero puede hacerse mientras se trabaja en otras cosas.
# btrfs balance start -v /mnt

Comprimir archivos

Para convertir los archivos descomprimidos en archivos comprimidos14:

sudo find /path -type f -exec btrfs filesystem defragment -c {} ';'

Reemplazar un disco fallido

  1. Agregar el nuevo disco y exponerlo al sistema operativo.

  2. Montar el sistema btrfs degradado

# mount -o degraded /dev/sda1 /mnt
# btrfs filesystem show
# sudo btrfs replace start N /dev/sdXY /mnt

Mantenimiento

Se debe utilizar un proceso para reparar el sistema de archivos:

btrfs scrub start -v /mnt

Se recomienda revisar el log de este proceso para detectar información corrupta.15

En caso de que el proceso de scrub se detenga inesperadamente y btrfs scrub cancel /mnt falle:

perl -pi -e 's/finished:0/finished:1/' /var/lib/btrfs/*

Mostrar errores en BTRFS (si aparecen en el log actual de linux)

sudo dmesg | grep BTRFS | grep path | sed -e 's/^.*path: //;s/)$//' | sort | uniq

Limpiar el log de btrfs

Este procedimiento puede causar pérdida de información:

sudo btrfs-zero-log

Puede ayudar cuando hay errores de la forma16 :

parent transid verify failed on 4316004352 wanted 289 found 283

Plan para recuperación17

  • Dos particiones para iniciar el S.O.
  • El initrd contiene btrfs-progs.

ZFS18

Es un sistema de archivos de 5a generación, tiene todas las ventajas de btrfs, usa CoW (Copy on Write) para hacer fotos de ¿archivos, pools, filesystems, todos sus elementos? utiliza 128 bits para identificar los archivos.

Permite hacer RAID-Z (usar varios discos y n copias de la información de paridad) pero esta parece ser una mala idea.

Todas las operaciones son concurrentes.

Guarda su configuración independiente del archivo de configuración del sistema.

Se puede utilizar un pool de discos como bloque y escribir sobre él otro sistema de archivos (p.e. Lustre).

Requiere mucha RAM para funcionar correctamente.

La licencia CDDL impide integrarlo a linux0. El soporte en linux es a través de FUSE, tiene problemas de desempeño y está abandonado19. También existen parches para usar nativamente ZFS20.

Referencias

[1]: RAID: Obsolete? New Tech BTRFS/ZFS and “traditional” RAID - TekEnterprise https://www.youtube.com/watch?v=yAuEgepZG_8

[2]: Why you should not use RAID 5 storage (but use RAID 6) - ThioJoeTech https://www.youtube.com/watch?v=A2OxG2UjiV4

[3]: Understanding Hard Drive Types, RAID and RAID Controllers on Dell PowerEdge and Blade Chassis Servers Article ID: SLN129581 Last Date Modified: 07/19/2016 09:37 AM http://www.dell.com/support/article/us/en/04/SLN129581

[4]: Linux Don’t Need No Stinkin’ ZFS: BTRFS Intro & Benchmarks - By Jeffrey B. Layton Tuesday, April 21st, 2009 http://www.linux-mag.com/id/7308/

[5]: A Guide to Synology BTRFS NAS file system - Advance in Network Attached Storage or just a gimmick? - SPANdotCOM Publicado el 16 feb. 2016 https://www.youtube.com/watch?v=er0889N40Ko

[6]: My case for BTRFS over ZFS Tom Cameron Saturday, February 15, 2014 at 3:27PM http://drdabbles.us/journal/2014/2/15/my-case-for-btrfs-over-zfs.html

[7]: Why RAID 6 stops working in 2019 By Robin Harris for Storage Bits February 22, 2010 – 06:50 GMT (22:50 PST) http://www.zdnet.com/article/why-raid-6-stops-working-in-2019/

[8]: RAID 6 – Do you really want it? Guy Murrel | in The Enterprise Cloud June 8, 2007, 4:08 AM PST http://www.techrepublic.com/blog/the-enterprise-cloud/raid-6-do-you-really-want-it/

[9]: Using Btrfs with Multiple Devices 14 May 2016, at 12:27 https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices

[10]: Bitrot and atomic COWs: Inside “next-gen” filesystems Jim Salter - 1/15/2014, 7:00 AM http://arstechnica.com/information-technology/2014/01/bitrot-and-atomic-cows-inside-next-gen-filesystems/

[11]: Preventing a btrfs Nightmare | LAS 320 # Notes: How I saved myself from a btrfs nightmare http://www.jupiterbroadcasting.com/61572/preventing-a-btrfs-nightmare-las-320/

[12]: Why you should consider using btrfs … like Google does. Linux.conf.au 2015 – Auckland, New Zealand Publicado el 16 ene. 2015 https://www.youtube.com/watch?v=6DplcPrQjvA

[13]: Mount options - btrfs Wiki https://btrfs.wiki.kernel.org/index.php/Mount_options

[14]: Btrfs - Archlinux Wiki https://wiki.archlinux.org/index.php/Btrfs

[15]: ZFS - The last word on filesystems Bill Moore, Sr Staff Engineer Sun Microsystems http://drdabbles.us/journal/2014/2/15/my-case-for-btrfs-over-zfs.html

[16]: ZFS - Wikipedia https://en.wikipedia.org/wiki/ZFS

[17]: Oracle® Linux - Administrator’s Solutions Guide for Release 6 # 5.4 Compressing and Defragmenting a Btrfs File System https://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

[18]: BTRFS – transid issue explained and fix http://ram.kossboss.com/btrfs-transid-issue-explained-fix/

[19]: Problem FAQ - BTRFS wiki https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#parent_transid_verify_failed

Pendientes:

Sysadmin Guide 11 June 2016, at 10:01 https://btrfs.wiki.kernel.org/index.php/SysadminGuide

Use Cases 16 June 2016, at 14:20 https://btrfs.wiki.kernel.org/index.php/UseCases

Raid 5 - http://goo.gl/OLkbjT

https://en.wikipedia.org/wiki/Category:Distributed_file_systems_supported_by_the_Linux_kernel

More Reading
Newer// Infraestructura