Administración UNIX: Almacenamiento de datos

Anuncio
Administración UNIX:
Almacenamiento de datos
Juan Hernando
jhernando@fi.upm.es
Septiembre 2013
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
1/1
Almacenamiento de datos
• En UNIX la información puede estar almacenada en uno o
más dispositivos.
• Estos dispositivos se montan de manera ordenada para
formar un árbol de directorios único.
• En el árbol de directorios se pueden combinar dispositivos
de distinto tipo (discos duros, DVDs, discos virtuales...) y
con distinta organización interna (sistema de ficheros).
• Algunos dispositivos se pueden además dividir en
particiones para gestionar mejor su espacio.
• Los dispositivos se pueden combinar mediante
mecanismos hardware o software para crear entidades
mas sofisticadas (RAID, volúmenes lógicos...).
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
2/1
Tipos de dispositivos
En UNIX se definen dos tipos de dispositivos:
• Dispositivos de tipo bloque (discos).
• Dispositivos de tipo carácter (cintas).
En ciertos UNIX el mismo dispositivo puede ser gestionado en
modo bloque y modo carácter.
• En modo bloque: montaje y uso.
• En modo carácter: Acceso en crudo (raw mode) para
operaciones de recuperación.
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
3/1
Gestión de dispositivos
1
Dar formato al soporte
• Separación fı́sica entre sectores, pistas, etc
• Operación de muy bajo nivel
• Casi nunca necesario (en discos viene de fábrica)
2
Particionado
• División del disco en zonas asignables a diferentes
sistemas de ficheros
• Operación de alto nivel de reparto del disco
• Solo para discos o similares (no CDs o DVDs)
3
Creación del sistema de ficheros
• Creación de las estructuras lógicas de un formato
especifico de organización de datos (SF)
• Realizado sobre particiones (discos duros) o sobre
dispositivos enteros (CDs/DVDs)
4
Montaje y uso del soporte
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
4/1
Dispositivos y particiones
En el directorio /dev se encuentra los ficheros especiales para
manejar los diferentes dispositivos de almacenamiento
• Discos duros: hda, hdb, sda, sdb...
• Disco ópticos: sr0, sr1...
• Otros dispositivos: fd0...
Las particiones permiten organizar el espacio de los discos,
dividiéndolo en zonas separadas. UNIX presenta un fichero
distinto en /dev para cada partición.
• Para el disco /dev/sda las particiones serı́an sda1,
sda2...
En Linux, los discos también pueden identificarse por su UUID
a través de /dev/disk/by-uuid.
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
5/1
Dispositivos y particiones
• Una partición es una subdivisión fı́sica de la superficie de
un disco duro
• Dentro de una partición se puede crear un sistema de
ficheros
• Normalmente para poder almacenar información ordenada
(sistema de ficheros), un disco duro debe tener al menos
una partición
• El espacio no particionado solo podrá ser accedido “en
crudo” (raw mode)
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
6/1
Dispositivos y particiones
La información relativa a las particiones se guarda en una tabla
(tabla de particiones) al comienzo del disco (hay un espacio
reservado para ello)
• Indica donde comienza y termina cada partición
• Incluye información adicional como el sistema de ficheros
o el punto de montaje
Herramienta de gestión de la tabla de particiones
Depende del SO en concreto (no está en el estándar SUS)
• Linux: fdisk, cfdisk, gparted para particiones MBR
gdisk, sgdisk, cgdisk para particiones GPT.
• Solaris: format
• AIX: smit
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
7/1
Sistemas de ficheros
El sistema de ficheros organiza la información almacenada en
un dispositivo en ficheros y directorios, almacenando permisos
y otras propiedades
• Sistemas tradicionales (la mayorı́a obsoletos):
• Almacenan datos y metadatos
• Gestionan el espacio libre de la manera mas eficiente
posible
• ext2, ufs, hfs, FAT32...
• Sistemas transaccionales:
• Extienden los SF tradicionales añadiendo logs de
operaciones y/o semántica transaccional
• Mayor tolerancia a errores y menor tiempo de recuperación
• ext3, ext4, ntfs, hfs+...
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
8/1
Sistemas de ficheros
Creación del SF
El proceso depende del SF escogido, pero en general UNIX
incluye herramientas para llevarlo a cabo.
• Linux: mkfs.* (mkfs.ext4, mkfs.vfat...)
• Solaris: newfs
Mantenimiento del SF
• El uso puede general errores en el sistema de ficheros,
que hay que detectar y corregir
• UNIX incluye herramientas que ayudan en esta taréa
(fsck en Linux)
• Es importante realizar comprobaciones periódicas para
evitar errores catastróficos
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
9/1
Montaje
• Para poder acceder a los datos dentro del SF de una
partición es necesario montarla
• El SF se muestra al SO residente con su contenido dentro
de un directorio concreto: punto de montaje
• En la mayorı́a de UNIX se usa el mandato mount
mount [-fnrsvw] [-t vfstype] [-o options] device dir
Ejemplo:
mount -t ext3 /dev/sdb1 /mnt
Para desmontar se emplea umount
• El proceso de montaje permite construir el árbol de
directorios del sistema
• FUSE (el Linux) permite montar sistemas de ficheros en
espacio de usuario. Ejemplo: fuseiso imagen.iso /mnt
fusermount -u /mnt
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
10/1
Montaje automático
• El sistema de ficheros raı́z se monta al arranque
• Dependiendo del UNIX, existen determinados ficheros de
configuración que contienen tablas de montaje:
• Linux: /etc/fstab
• Solaris: /etc/ufstab
• AIX: /etc/filesystems
Estos ficheros indican el dispositivo o partición, punto de
montaje, SF, opciones, etc.
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
11/1
Estrategias de organización
Es recomendable repartir el árbol de directorios en diferentes
SSFF para evitar que los posibles fallos afecten al sistema
entero
• / (SF raiz): De tamaño justo. Que sirva como base para
los demás (“perchero”)
• /usr: Tamaño justo, ya que se puede conocer de
antemano (aplicaciones del fabricante/distro)
• /home: Lo mas grande posible
• /usr/local - /opt: Depende de las necesidades
adicionales del sistema. En general de gran tamaño
• /var: Depende de las polı́ticas de administración y la
configuración de las aplicaciones
• swap y /tmp: Depende de la carga
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
12/1
Estrategias de organización
Es recomendable:
• Mantener las cuentas de usuario en un disco diferente al
de sistema
• Separar los SSFF de mayor acceso en diferentes discos
(swap y sistema)
• Ubicar las particiones de manera que sea posible
redistribuir los discos
• Colocar prescindibles (swap, /tmp) entre las que pueden
necesitar crecimiento (/home, /usr/local)
• Vigilar el porcentaje de disco libre
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
13/1
Cuotas de disco
Asocian a cada usuario/grupo un lı́mite de espacio en disco.
Las cuotas limitan:
• Número máximo de archivos (i-nodos)
• Numero máximo de bloques
Dos lı́mites:
• Soft: informativo
• Hard: restrictivo
Los lı́mites se aplican a cada sistema de ficheros y se
comprueban al arranque y cuando se hace login
En Linux: herramienta quota
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
14/1
Backup
• Backup: Copia de seguridad de determinados datos de un
sistema
• Esquemas de backup:
• Backups completos: Se copia toda la información
• Backups incrementales: Solo los ficheros modificados son
copiados
• Habitualmente se combinan los dos esquemas
Ejemplo:
• Cada dı́a se realiza un backup incremental
• Una vez a la semana se almacena un backup completo
• Normalmente se almacena más de un backup
simultáneamente, permitiendo hacer rollback a diferentes
momentos del pasado
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
15/1
Decisiones de backup
Una estrategia de backup debe incluir:
• Estimación del volumen de datos:
• Tamaño original de los datos que copiar
• Estimación del ratio de compresión
• Selección de los ciclos de backup:
• Cuándo se realizan y de qué tipo son
(completo/incremental)
• Automatización (cliente/servidor):
• Programación de los backups
• Verificación del sistema.
Herramientas de backup: rsync, Amanda, KDat, Tivoli....
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
16/1
Backup sencillo con rsync
rsync
Herramienta para la copia de datos local y remota
• No es una solución de backup en si misma, pero se puede
utilizar para crear un backup sencillo
• Copia solo diferencias entre los datos de origen y destino,
lo que agiliza el proceso
• Detecta y propaga cambios en propietario, grupo,
permisos y otras propiedades de los archivos
• Respeta enlaces simbólicos
• Permite definir patrones complejos de inclusión y exclusión
de ficheros
man rsync para lista completa de opciones
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
17/1
Backup sencillo con rsync
Ejemplo
Realizar un backup a un servidor remoto
• Directorio origen: /home
• Servidor destino: server.org
• Directorio destino: /backups
Mandato para realizar la copia:
rsync --recursive /home server.org:/backups/
¿Como hacer que se ejecute todos los dı́as a las 4 de la
madrugada?
Regla en /etc/crontab:
0 4 * * * rsync --recursive /home ...
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
18/1
Dispositivos redundantes
Dispositivos RAID:
• Dispositivo virtual compuesto por varios dispositivos
fı́sicos reales agrupados
• Proporciona redundancia y mejores prestaciones
• Invisible para el SF por encima
/
/bin
/etc
/
/usr
/usr
/var
/var
RAID
sd01
/bin
/etc
sd02
sd03
jhernando@fi.upm.es
≈
md1
Administración UNIX: Almacenamiento de datos
19/1
Tecnologı́a RAID
Redundant Array of Independent Disks
•
•
•
•
•
0 4 ...
0 1 ...
0 3 ...
0
1 5 ...
0 1 ...
1 4 ...
1 3 ...
2 6 ...
0 1 ...
2 5 ...
2 4 ...
3 7 ...
0 1 ...
...
5 ...
3-5
Tipos:
...
Lineal: Concatenación
RAID 0: Modo alternado
RAID 1: Discos espejos
RAID 4: Disco de paridad
RAID 5: Bloques de
paridad
0-2
jhernando@fi.upm.es
RAID 0
(Stripe)
3-5
0-2
Puede haber discos de
sobra (spare disks), que
sirven de reserva
RAID 1
RAID 4
RAID 5
(Mirroring) (Parity disk)(Parity blocks)
Administración UNIX: Almacenamiento de datos
20/1
Tecnologı́a RAID
RAID hardware
• Proporcionado por la controladora de disco u otro
dispositivo especı́fico (controladora RAID)
• Transparente al SO: Lo ve como si fuese un disco normal
• Máxima eficiencia, pero requiere hardware adicional
RAID software
• Proporcionado por un servicio del SO
• El SO puede acceder de forma separada a los diferentes
componentes del RAID
• Menor eficiencia, pero no requiere hardware adicional
• En Linux: herramienta mdadm
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
21/1
mdadm (Linux Software RAID)
Herrmienta común en GNU/Linux para la creación de RAID
software. Permite:
• Crear RAIDs (0, 1, 5 etc...)
• Reconstruir RAIDs a partir de sus discos
• Monitorizar RAIDs creados
• Gestionar errores en RAIDs (reemplazar discos, etc.)
La página del manual de mdadm muestra todas sus opciones
Los RAIDs de mdadm se manejan con ficheros especiales que
comienzan por md (/dev/md0, /dev/md1, etc)
El estado de los RAIDs existentes se muestra en /proc/mdstat
La configuración se guarda en /etc/mdadm/mdadm.conf
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
22/1
mdadm - Ejemplos
Crear un RAID 5
mdadm --create --level=5 --raid-devices=4 /dev/md0 /dev/sdb
/dev/sdc /dev/sdd /dev/sde
Obtener información del RAID /dev/md0
mdadm --detail /dev/md0
Salvar la configuración del RAID /dev/md0
mdadm --detail /dev/md0 --brief >> /etc/mdadm/mdadm.conf
Extraer un disco defectuoso del RAID /dev/md0
mdadm --manage --remove /dev/md0 /dev/sdd
Agregar un nuevo disco al RAID /dev/md0
mdadm --manage --add /dev/md0 /dev/sdd
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
23/1
mdadm - Ejemplos
Redimensionar un RAID
Sólo posible si las particiones fı́sicas pueden redimensionarse
o si se reemplazan los dispositivos fı́sicos
1 Redimensionar cada partición que forma parte del RAID:
• Desconectar la partición del RAID: mdadm /dev/md0 --fail
/dev/sdaX --remove /dev/sdaX
• Redimensionar la partición o reemplazar el dispositivo.
• Añadir de nuevo al RAID y esperar a que la sincronización
termine. mdadm --add /dev/md0 /dev/sdaX
2
Redimensionar el dispositivo virtual: mdadm --grow /dev/md0
-z max
3
Finalizada la sincronización, redimensionar el sistema de
ficheros. Ej: resize2fs /dev/md0
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
24/1
Volúmenes lógicos
Mecanismo para gestionar el
espacio de forma dinámica
/
/bin
/etc
/usr
• Redimiensionar
particiones
/var
• Utilizar varios
dispositivos como
soporte
LV1
LVM
Proporcionado por:
• LVM (Linux, AIX)
• Veritas VM (HP-UX)
LV2
sd01
sd02
sd03
• Sun Volume Manager
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
25/1
lvm (LVM TOOLS 2.0)
Es el gestor de volúmenes
lógicos mas común en
GNU/Linux. Sus tres
eleméntos básicos son:
/
/etc
/usr
/var
• Volúmenes fı́sicos
(discos o particiones)
• Grupos de volúmenes
LV1
jhernando@fi.upm.es
LV2
LVM
• Volúmenes lógicos
lvm incluye un conjunto de
herramientas para gestionar
todos éstos
/bin
sd01
sd02
sd03
Administración UNIX: Almacenamiento de datos
26/1
lvm (LVM TOOLS 2.0)
¿Como crear volúmenes lógicos con lvm?
1
Inicializar los volúmenes fı́sicos que se vayan a usar
2
Crear un grupo de volúmenes
3
Crear Uno o mas volúmenes lógicos dentro del grupo
4
Crear el sistema de ficheros dentro de cada volumen
lógico
Al finalizar, cada volúmen lógico se puede montar como una
partición
Posteriormente se podrán agregar nuevos volúmenes fisicos al
grupo, cambiar el tamaño de los volúmenes lógicos, etc.
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
27/1
lvm (LVM TOOLS 2.0)
Gestión de volúmenes
fı́sicos
Gestión de volúmenes
lógicos
• pvcreate
• lvcreate
• pvremove
• lvremove
• pvdisplay
• lvdisplay
Gestión de grupos
volúmenes fı́sicos
• lvextend
• lvreduce
• vgremove
man lvm para ver el listado
completo
• vgdisplay
Otras herramientas útiles
• vgcreate
• vgscan
• resize2fs
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
28/1
lvm - Ejemplo
Tenemos tres particiones de 50GB (sdb1, sdc1 y sdd1) y
queremos crear dos volúmnes lógicos de 60GB y uno de 10GB
Inicializamos los volúmnes fı́sicos
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
Creamos un grupo (llamado dataserver)
vgcreate dataserver /dev/sdb1 /dev/sdc1 /dev/sdd1
Creamos los tres volúmenes lógicos
lvcreate --name data1 --size 60G dataserver
lvcreate --name data2 --size 60G dataserver
lvcreate --name data3 --size 10G dataserver
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
29/1
lvm - Ejemplo (continuación)
Ahora podemos acceder a los volúmnes lógicos como si
fuesen particiones de disco. Sus ficheros especiales son
/dev/dataserver/data1, /dev/dataserver/data2, etc.
Ampliar su tamaño
lvextend -L15G /dev/dataserver/data3
Reducir su tamaño
lvreduce -L40G /dev/dataserver/data1
Crear un sistema de ficheros
mkfs.ext4 /dev/dataserver/data2
Montar el volúmen en el árbol de directorios
mount /dev/dataserver/data2 /mnt
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
30/1
RAIDs y volúmenes lógicos
¿Tiene sentido construir uno o mas volúmenes lógicos sobre
un dispositivo RAID?
Depende del contexto
• Pros: Ventajas de tolerancia a fallos del RAID
• Contras: Posible pérdida de rendimiento (sobre todo si
RAID software)
¿Tiene sentido construir un RAID a partir de volúmenes
lógicos?
NO
¿Por qué?
La abstracción del espacio de disco en volúmenes lógicos
anula las ventajas de tolerancia a fallos del RAID. Además se
limita enormemente la flexibilidad de los volúmenes lógicos
jhernando@fi.upm.es
Administración UNIX: Almacenamiento de datos
31/1
Descargar