41
Almacenamiento en disco: mejora de la velocidad y de la seguridad Juan Piernas Cánovas ([email protected]) III Jornadas por el Software Libre de Elche 12 de noviembre de 2005

Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Embed Size (px)

DESCRIPTION

La mejor explicación sobre el funcionamiento a nivel lógico de discos duros, medidas de seguridad y mejoras de rendimiento que podemos aplicar. Estas laminas acompañan la ponencia: http://www.youtube.com/watch?v=WMlxj8iM1Vg http://leninmhs.wordpress.com/2012/09/19/disco-duro-en-gnulinux/ El vídeo nos ayuda a entender: Estructura del almacenamiento Sistemas de Archivos: Ext2, Ext3, XFS, JFS y ReiserFS Planificadores de E/S Organización de un disco RAID (Redundant Array of Independent Disks) y LVM (Logical Volume Manager) Ponencia de Juan Piernas sobre discos duros en sistemas basados en GNU/Linux. Grabación realizada en las III Jornadas por el Software Libre de Elche por la Asociación de Usuarios de Software Libre de Elche Kleenux el 12 de noviembre del 2005.

Citation preview

Page 1: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Almacenamiento en disco: mejora de la velocidad y

de la seguridad

Juan Piernas Cánovas([email protected])

III Jornadas por el Software Libre de Elche12 de noviembre de 2005

Page 2: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Algunas preguntas

● ¿Qué queremos realmente de un disco?– Velocidad

– ¡Seguridad!

– Si es posible, ¡las dos cosas a la vez!

● ¿Todo depende del disco que tengamos?– ¡NO!

● ¿Puede el software darnos algo que el hardware no nos ofrezca?– ¡SÍ! El software es una parte fundamental

Page 3: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Índice

● Estructura del almacenamiento● Sistemas de ficheros● Planificadores de E/S● Organización de un disco● Organización de varios discos

Page 4: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Índice

● Estructura del almacenamiento● Sistemas de ficheros● Planificadores de E/S● Organización de un disco● Organización de varios discos

Page 5: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Estructura de un disco

Page 6: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Estructura del sistema de almacenamiento

Disco

Plan. E/S

Múltiples dispositivos (RAID o LVM)

Sistema de ficheros Sistema de ficheros Intercambio

Aplicaciones de usuario

Disco

Plan. E/S

Disco

Plan. E/S

Disco

Plan. E/S

Page 7: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Índice

● Estructura del almacenamiento● Sistemas de ficheros● Planificadores de E/S● Organización de un disco● Organización de varios discos

Page 8: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

¿Qué es un sistemas de ficheros?

● Conjunto de estructuras de datos y algoritmos para guardar datos en un array lineal de bloques

● Ejemplo: Ext2

Page 9: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Tipos de sistemas de ficheros

● Existen 2 grandes tipos:– Transaccionales

– No transaccionales

● Principal diferencia: tiempo de recuperación de la consistencia tras una caída

● ¿Qué sistema de ficheros elegir?– ¡Depende de nuestra carga de trabajo!

Page 10: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Sistemas de ficherosno transaccionales

● Ext2● A favor:

– Se puede convertir en Ext3 sin reformatear

– Código muy probado y depurado

– Muy compatible: ideal para la partición de arranque

● En contra:– Recuperación muy lenta de la consistencia

– Pobre rendimiento en directorios con miles de ficheros

Page 11: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Sistemas de ficherostransaccionales

● Ext3, XFS, JFS y ReiserFS● A favor:

– Recuperación muy rápida de la consistencia tras una caída

– Estructuras de datos escalables (principalmente, árboles B+ y extensiones)

● Mejor rendimiento en directorios con miles de ficheros

● Mejor rendimiento con fich. grandes (XFS y JFS)● Adecuados para sistemas de ficheros de varios

terabytes (XFS, JFS)

Page 12: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Sistemas de ficherostransaccionales

● A favor (continuación):– Cambio de tamaño sin reformatear

– Mejores atributos (XFS)

● En contra:– No son compatibles. Para pasar de uno a otro

hay que reformatear la partición

– Código más complejo: depuración costosa y propensos a errores (JFS)

Page 13: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Comparación de tamaños máximos

Ext2/Ext3 2 TiB 16 TiBReiserFS 1 EiB 16 TiB

XFS 8 EiB 8 EiBJFS 8 EiB 4 PiB

Sistema de Ficheros

Tamaño máximo de fichero

Tamaño máximo del sistema de ficheros

1 GiB (230 bytes) = 1024 MiB1 TiB (240 bytes) = 1024 GiB1 PiB (250 bytes) = 1024 TiB1 EiB (260 bytes) = 1024 PiB

Page 14: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Mejora del rendimiento:opciones de montaje

● Generales:– noatime

● Ext3:– journal=[data|ordered|writeback]

– commit=num_seg

● XFS– logbufs=[2-8]

Page 15: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Mejora del rendimiento:opciones de montaje

● JFS:– nointegrity

● ReiserFS:– notail

– nolog

● Al ser opciones de montaje, todas se pueden usar o no sin reformatear

Page 16: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Mejora del rendimiento:opciones al formatear

● Muy específicas de cada sistema de ficheros

● Ext3:– «-J size=tamaño»

– «-J device=dispositivo»

● XFS:– «-l logdev=dispositivo»

– «-l size=tamaño»

Page 17: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Mejora del rendimiento:opciones al formatear

● XFS (continuación):– «-d agcount=valor»

– «-i size=[256-2048]»

● JFS:– «-j dispositivo_registro»

– «-s tamaño_registro»

● ReiserFS:– «-j dispositivo_registro»

– «-s tamaño_registro»

Page 18: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Ver la configuración actual deun sistema de ficheros

● Herramienta disponible:– Ext2/Ext3: dumpe2fs

– XFS: xfsdump

– JFS: jfs_debugfs

– ReiserFS: reiserfstune

● Permiten ver el valor actual de los parámetros de configuración de cada sistema de ficheros

Page 19: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Ver la configuración actual deun sistema de ficheros

● Ejemplo con Ext3:...........Filesystem features: has_journal resize_inode filetype needs_recovery sparse_super large_file...........Errors behavior: Continue...........Inode count: 2501856Block count: 5002208Reserved block count: 250110Free blocks: 3136909Free inodes: 2239406First block: 0Block size: 4096...........Blocks per group: 32768...........Mount count: 4Maximum mount count: 33Last checked: Thu Jul 7 09:14:58 2005Check interval: 15552000 (6 months)

Page 20: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Índice

● Estructura del almacenamiento● Sistemas de ficheros● Planificadores de E/S● Organización de un disco● Organización de varios discos

Page 21: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Planificadores de E/S

● Son necesarios por las características mecánicas de los discos

● Función:– Cuando hay varias peticiones de E/S

pendientes, determinan el orden en el que se atienden

● A partir de la versión 2.6.9 de Linux es posible:– Indicar uno para cada dispositivo

– Cambiarlo en caliente

Page 22: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Planificadores de E/S

● Planificador noop:– Atención en orden de llegada (FIFO)

– Útil para discos RAM, memorias USB, discos inteligentes, etc.

● Planificador «deadline»:– Asigna un plazo máximo de respuesta a cada

petición (similar al tiempo-real)

– Se atiende inmediatamente a las peticiones con plazo agotado. Si no hay → C-SCAN

– Útil para reducir la latencia de E/S

Page 23: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Planificadores de E/S

● Planificador «deadline» (continuación):Cola: 98, 183, 37, 122, 14, 124, 65, 67La cabeza se encuentra en 53

14 18312412298676537 53

C-SCAN

Page 24: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Planificadores de E/S

● Planificador «anticipatory»:– Añade un pequeño tiempo de espera tras

atender una petición → mejor localidad

– Si expira el tiempo de espera, la siguiente petición se obtiene siguiendo un C-SCAN

– Útil para discos lentos, aunque puede incrementar la latencia de E/S

Page 25: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Planificadores de E/S

● Planificador «cfq»:– CFQ: Complete Fair Queuing

– Intenta distribuir el ancho de banda de E/S disponible equitativamente entre todas las peticiones

– También intenta atender peticiones con plazos de espera máximos e incrementar la localidad

– Útil en sistemas medianos/grandes con varios procesadores y discos

Page 26: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Planificadores de E/S

● El planificador a seleccionar depende de la carga de trabajo

● A diferencia de los sistemas de ficheros, ¡es fácil experimentar!

● Ejemplo de cambio en caliente:

[root@portatil ~]# cat /sys/block/hda/queue/schedulernoop [anticipatory] deadline cfq[root@portatil ~]# echo cfq > /sys/block/hda/queue/scheduler[root@portatil ~]# cat /sys/block/hda/queue/schedulernoop anticipatory deadline [cfq]

Page 27: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Comparación de planificadores de E/S usando bases de datos

Resultados de un test OLTP en una base de datosde 10GB usando Oracle y un computador de

2 procesadores, 4 GB de RAM y 8 discos

Page 28: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Índice

● Estructura del almacenamiento● Sistemas de ficheros● Planificadores de E/S● Organización de un disco● Organización de varios discos

Page 29: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Organización de un único disco

● No todas las zonas de un disco son igual de rápidas. Ejemplo:[root@portatil ~]# cat /proc/ide/hda/capacity78140160 (en sectores)[root@portatil ~]# time dd if=/dev/hda of=/dev/null bs=1048576count=100..........real 0m5.900s..........[root@portatil ~]# time dd if=/dev/hda of=/dev/null bs=1048576count=100 skip=38054..........real 0m8.369s (¡Casi un 42% más lento!)..........

● Además, el tiempo de mover las cabezas (tiempo de búsqueda) es el que suele tener más peso

Page 30: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

“Consejos” para mejorar el rendimiento de un disco

● Use varias particiones (intercambio, raíz, /home, /var, arranque, etc.), con SSFF y opciones de montaje distintos

● Si hay una partición que se usa mucho:– Que sea lo más pequeña posible

– Que se encuentre en la zona rápida

● Si el uso de las particiones es similar:– Sitúe la más usada en el centro del disco

– Coloque las otras alrededor, dejando las menos usadas en los extremos

Page 31: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Índice

● Estructura del almacenamiento● Sistemas de ficheros● Planificadores de E/S● Organización de un disco● Organización de varios discos

Page 32: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Organización de varios discos

● Si tenemos varios discos, podemos conseguir:– Un dispositivo con una gran capacidad de

almacenamiento

– Mejorar el rendimiento

– Mejorar la seguridad de nuestros datos

● Es posible conseguir las tres cosas a la vez mediante RAID (Redundant Array of Independent Disks) y LVM (Logical Volume Manager)

Page 33: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

RAID 0

● Se consigue:– Un gran dispositivo de

almacenamiento

– E/S paralela en lecturas y escrituras

● No se consigue:– Seguridad

Page 34: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

RAID 1

● Se consigue:– ¡Seguridad!

– E/S paralela en lecturas

● No se consigue:– Escrituras en paralelo

– Un gran dispositivo de almacenamiento

● ¡Buena opción para un PC!

Page 35: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

RAID 5

● Se consigue:– ¡Seguridad!

– E/S paralela en lecturas y escrituras

– Un gran dispositivo de almacenamiento

● Problema:– Escrituras pequeñas por

cálculo de paridad

– Mínimo, 3 discos

Page 36: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Configuración de un RAID 1 en Linux

● Aplicación: mdadm

● Ejemplo de creación de un RAID1mdadm --create /dev/md1 --level=1 --raid-devices=2/dev/hd[ac]2

● Fich. de configuración: /etc/mdadm.conf

DEVICE /dev/hda* /dev/hdc*

ARRAY /dev/md1 devices=/dev/hda2,/dev/hdc2 level=raid1

MAILADDR [email protected]

● Cambiar el tipo de la partición a «fd» (Linux raid autodetect)

Page 37: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Convertir un disco con datos y otro sin datos en un RAID 1

● Paso 1. Crear un RAID1 de 1 disco para el disco con datos:mdadm --create /dev/md1 --force --level=1--raid-devices=1 /dev/hda2

● Paso 2. Añadir el nuevo disco al array como disco de repuesto (spare):mdadm /dev/md1 -a /dev/hdc2

● Paso 3. Activar el nuevo disco:mdadm --grow /dev/md1 -n 2

Page 38: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

RAIDs y sistemas de ficheros

● Algunos SSFF de Linux tienen opciones especiales para los niveles 0, 4, 5 y 6 de RAID

● Ext2/Ext3:– «-E stride=tamaño»

● XFS:– «-d sunit=valor»

– «-d swidth=valor»

Page 39: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Referencias

● ReiserFS.

– http://www.namesys.com● XFS.

– http://oss.sgi.com/projects/xfs● JFS.

– http://jfs.sourceforge.net● LVM2.

– http://sources.redhat.com/lvm2

Page 40: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Referencias

● RAID y MDADM.

– http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html● Planificadores.

– http://www.wlug.org.nz/LinuxIoScheduler● Discos (características).

– http://www.seagate.com

– http://www.maxtor.com

Page 41: Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas

Almacenamiento en disco: mejora de la velocidad y

de la seguridad

Juan Piernas Cánovas([email protected])

¡Gracias por la atención prestada!