3 Administración de Archivos
3.1 Particionamiento del Disco
Dividir el disco en múltiples pedazos de menor tamaño, esto con la siguiente finalidad:
- Colocar distintos Sistemas Operativos en las diferentes particiones
- Proteger información del sistema, o de misión crítica
- Tip: partir el disco hace que el acceso a este se mejore considerablemente.
Antes de particionar un disco hay que tener en cuenta:
- Que sea algo simple
- Mantener juntos los datos relacionados
- Colocar lo más usado en el centro (particiones de en medio)
- Separar Sistemas Operativos a través de los discos (deseable)
- Aislar datos críticos
Existen distintas herramientas para crear particiones; generalmente al momento de instalar un sistema operativo se puede particionar un disco.
- Windows: FDISK
- DOS/Windows: Partition Magic, Paragon Partition Manager, Partition Star
- Linux: FDISK, Disk Druid
- Solaris: Format
Ej. Partition Magic
|
Ej FDISK Linux
[root@pcproal etc]# fdisk /dev/hda
The number of cylinders for this disk is set to 1222. Command (m for help): m Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 1222 cylinders Device Boot
Start End
Blocks Id System Command (m for help): |
3.2 Sistemas de Archivos
Definición:
Es una estructura de datos basada en disco o en red que es utilizada para almacenar archivos.
Estructura interna de un Sistema de Archivos
|
|
|
|
|
donde cada block contiene:
SuperBlock | Group Descriptors | Block Bitmap | Inode Bitmat |
SuperBlock
- Descripción del sistema de archivos, incluyendo:
- Número de bloques de datos
- Número de grupos de cilindros
- Tamaño de los bloques de datos
- Nombre del punto de montaje
- Bandera del estado del sistema: clean, stable, active. logging, unknown.
Inodes:
- Información de Bloqueo
- Modo de acceso
- Tipo de archivo
- Número de ligas al archivo
- ID del usuario y ID del grupo
- Tamaño del Archivo (bytes)
- Tiempo de acceso y modificación
- Dirección de los bloques del archivo en disco
Ej de inode
Archivo común
Inode 1282 Data BlocksDirectorio Común
Inode 4221 Data Blocks
file1= inode 1282
dirA=inode 5314
Ej de inode con ligas simbólicas
>ln -s file2 link1
>ls -la
lrwxrwxrwx 1 carlos empleado 5 Jan 20 2003 link1 -> file2
link1
|
file2
|
Ej de inode con ligas duras
>ln file1 file2
>ls -la
-rw------- 2 carlos empleado 0 Jan 20 2003 file1
-rw------- 2 carlos empleado 0 Jan 20 2003 file2
file1 file2
|
dir1
|
3.2.1 Tipos de Sistemas de Archivos
Existen diferentes criterios para agrupar los sistemas de archivos:El criterio inicial se refiere a la principal característica de los sa:
- Orientados al disco
- Orientados a la red
Orientados al Disco
Dentro de los orientedos a disco tenemos subcategoríasPor su diseño para un Sistema Operativo
- Native Filesystems: cuando fue creado para un SO específico. Ej. FAT en Windows
- Foreign Filesystems: son aquellos que no fueron creados para un SO pero sin embargo los soporta.
- Ej. Linux tiene sus sistemas de archivos nativos (ext, ext3, ext3) pero soporta otros, como el FAT o el NFS
Podemos mencionar que dentro de los sistemas de archivos nativos existe una división:
- Traditional:
- surgen en los 70's y continuan hasta los 90's
- su característica principal es que tienen la necesidad de realizar una extensiva verificación del sistema de archivos si no se han cerrado correctamente.
- Journaling:
- contienen un "journal" o "bitácora" que contiene la lista de operaciones pendientes que deben realizarse para tener un sistema de archivos consistente.
- por lo general pueden alcanzar mayor capacidad de almacenamiento (Ver ext2 vs ext3).
Ejemplos de Sistemas de ArchivosWindows
- FAT:
- File Allocation Table
- Originalmente utilizado en las computadoras de DOS
- Se le han hecho extensiones (VFAT)para soportar mayor capacidad y el uso de nombres largos > 8.3
- Existen distintos tipos de FAT
- FAT 12
- Usado en floppies
- FAT 16
- Particiones de 2GB
- FAT 32
- Particiones de 2 TB
- HPFS:
- High Performance Filesystem
- Usado cuando Microsoft e IBM eran socios, después pasó a ser únicamente del OS/2
- NTFS:
- New Technology Filesystem
- Disponible en Windows NT o superiores
- La gran diferencia con FAT, los permisos.
- WINFS
- Basado en NTFS
- Agrega metadatos para identificar mejor a los archivos
Linux
- Minix:
- Usado con el sistema operativo Minix
- Capacidad máxima de 64 Mb
- Extended:
- Conocido como ext o extfs
- Surge como un reemplazo para las limitaciones de Minix
- Disponible en las primeras version de Linux pero se removió en el kernel 2.2.x
- Second Extended:
- Conocido como ext2 o ext2fs
- Fue el estándar en Linux para los kernel entre 2.0.x y 2.4.x (2001)
- Máximo tamaño del filesystem = 16 Terabytes
- Máximo tamaño de archivo = 4Gb
- Limitado por el Virtual Filesystem (VFS) a 4TB de fs y 2GB de archivo
- Xia:
- Extensión de Minix
- Surge al mismo tiempo que ext2, pero al ser menos estable se vio superado
- Third Extended:
- Conocido como ext3 o ext3fs
- Es una extensión al ext2, se le agregó un journal
- No existe la limitante de archivos de 4 Gb
- Disponible desde el kernel 2.4.x
- ReiserFS:
- Es un diseño totalmente nuevo, incluyendo journaling
- Con capacidades similares a ext2
- Aún experimental
- XFS:
- Journaling filesystem creado por Sillicon Graphics (SGI)
- Tamaño máximo del filesystem = 16,384 PB (1 petabyte= 1024 Terabytes)
- Tamaño máximo de archivo = 8,192 PB
- JFS:
Algunos benchmarks de filesystems para linux (fuente original en LinuxGazzette)
- IBM Journaling Filesystem, diseñado para el Sistema Operativo AIX
- Tamaño máximo del filesystem = 32 PB
- Tamaño máximo de archivo = 4 PB
Apple
- MFS:
- Macintosh Filesystem
- Usado para los primeros floppies
- No utilizado actualmente
- HFS:
- Hierarchical Filesystem
- Reemplazo de MFS, floppies de 800kb
- Dejó de utilzarse en 1998 para discos duros
- Se sigue empleando para algunos dispositivos ej. CD's
- HFS+
- Características similares a los sistemas de archivos en unix
- Posee la capacidad de Journaling
- No se utiiliza en medios removibles (CD's)
- Elvis
- Originalmente un producto de BeOS
- Posee un journal
- Se teme una disminución del rendimiento
SUN
- ZFS:
- 128 bits
- Virtualization
Miscelánea
- FFS/UFS:
- Fast Filesystem también conocido como Unix Filesystem)
- Empleados en FreeBSD y Solaris
- BFS:
- BeOS filesystem
- UDF:
- Universal Disk Format
- De reciente creación
- Pensado para CD y DVD
- Veritas
- Creado por la empresa del mismo nombre
- Journaling de alta velocidad
- Gran capacidad de recuperación en desastres
CD-ROM
- ISO-9660
- La base y el estándar para archivos en CD
- Limitado en la longitud del nombre de archivos
- Carencia de permisos
- Rock Ridge
- Extensión a ISO-9660
- Permite nombres largos y permisos
- Joliet
- Se utiliza en conjunto con un sistema ISO-9660
- Diseñado pensando en las características de archivos en Windows, principalmente en los nombres
Orientados a la Red
Son usados para compartir archivos.
- NFS
- Sun's Network FileSystem
- El método más recomendado para compartir archivos en ambientes UNIX
- Soporte para la arquitectura cliente/servidor
- Coda:
- Similar a NFS
- Soporta Encriptamiento (seguridad)
- Mejora el "caching"
- SMB/CIFS:
- Server Message Block, renombrado a Core Internet Filesystem
- Utilizado en los sistemas de Microsoft para compartir archivos
- El servidor de SMB para sistemas unix es SAMBA
- NCP:
- NetWare Core Protocol (NCP)
- Utilizado por Novell
3.2.2 Creando el Sistema de archivos
- Windows:
- Format
- Linux
- mkfs [-t fsname] [options] device [size]
- fsname nombre del tipo de sistema de archivos (alternativamente usar mkfs.fsname)
- options:
- -c revisa el disco por bloques dañados
- -v verbose, despliega información adicional
- device dispositivo donde se creará el filesystem
- size tamaño de la partición
- Solaris
- newfs
- -F fsname
- -i value Número de bytes por inode
Para reparar un sistema de archivos
Unix:
fsck [ -t fstype ] filesys
3.2.3 Accesando Filesystems
Compartiendo los directorios de una máquina
Windows
En Windows esta actividad es gráfica y no requiere mayor conocimiento, pero el operativo asume algunas cosas y esta restringido en la capacidad de importar/montar sistemas de archivos externos
Para compartir basta con dar click derecho en el archivo/directorio deseado y seleccionar "compartir"Unix
En unix (aunque ya existen ambientes graficos) tradicionalmente se realiza a través de archivosLinux: /etc/exports
/home/carlos 192.168.0.1(rw) |
Solaris: /etc/dfs/dfstab
root:scanner:/etc/dfs>more dfstab
# Place share(1M) commands here for automatic execution |
Montando/importando directorios de otras máquinasConceptos Importantes:
- Filesystem: tipo del sistema de archivos del directorio a importar
- Device (dispositivo): dispositivo o directorio que se quiere importar.
ej. /dev/hda3 , /home/lolo, acadaplic:/home/carlos- Mount Point (punto de montaje): directorio donde vamos a ver los que estamos importando (de preferencia que NO sea el raíz)
Windows
Nuevamente la interfaz nos ayuda para realizar esta actividad
Existen varias opciones para montar un directorio de otra maquina:
- 1) Si las máquinas son parte de nuestra intranet podemos ir al Vecindario o Neighbourhood y buscar por grupo, máquina y directorios.
- 2) En otro caso podemos buscar la maquina desde el explorador de archivos o bien utilizar la opción "Conectar a unidad de Red" en el menú de "Herramientas".
Se nos pedirá la ruta o path a importar asi como el usuario y password respectivos
ej: \\192.168.0.23\directorio
username: abcde
password: xxxxxxx
Y opcionalmente podemos seleccionar si queremos importar ese directorio cada vez que entremos a la máquina
Unix (Linux y Solaris)
Existen 2 tipos de montaje en unix: los temporales y los permanentesPara montar temporalmente (solo durante la sesión) se utilizan los comandos mount y umount
mount [-a] [ -t fstype] [-o options ] device dir
- -a= monta todo lo que este en los archivos fstab (en Solaris existe el comando mountall)
- fstype= ext2, ext3, ufs, nfs, smbfs, vfat, swap, etc
- options (separadas por comas)= rw , ro, uid=value
- device= dispositivo físico a montar
- dir= directorio donde se localizará el filesystem (debe estar creado)
ej:
mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -t nfs www.linux.com:/directorio /mnt/directorio
umount [-a] [-f] [-t fstype] mountpoint | device
- -a desmonta todo lo que está definido en /etc/fstab o /etc/vfstab
- -f forza el desmontaje, aún si está en uso el filesystem
ej.
umount -a -f
umount /mnt/cdrom
Para montar permanentemente tenemos que configurar algunos archivos
que permitan el montaje al arrancar la máquina:
Linux : /etc/fstab
[root@pcproal etc]# more fstab LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda2 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 |
Contenido de cada línea:
Dispositivo a montar
Punto de Montaje
Tipo de sistema de archivos
Opciones de Montaje
Dump
fsckSolaris : /etc/vfstab
root:scanner:/etc>more vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes - fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /tmp ufs 2 yes - /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /var/tmp ufs 2 yes - filer0:/vol/vol0/home - /scanner nfs - yes - superadminaplic:/home/34/vol301 - /archivos/vol301 nfs - yes - centia:/centia01 - /centia01 nfs - yes - centia:/centia03 - /centia03 nfs - yes - |
Contenido de cada línea:
- Dispositivo a montar
- Dispositivo donde se ejecutará el comando fsck
- Punto de Montaje
- Tipo de sistema de archivos
- fsck pass (1 o -)
- Mount at boot (bandera usada por mountall)
- Opciones de Montaje
Montando con Automounter
El hecho de tener muchos sistemas de archivos, ya sean locales o externos implica un costo en el rendimiento de la máquina, por ello unix posee una variante a lovisto anteriormente que se conoce como Automounter, montar/importar sobre demanda.
Tenemos un archivo principal (auto.master o auto_master) el cual contiene las especificaciones del punto de montaje para lo que se quiere montar (ej. /misc) y que está especificado en otro archivo (ej. /etc/auto.misc)
[carlos@pcproal /etc]$ more auto.master # $Id: auto.master,v 1.2 1997/10/06 21:52:03 hpa Exp $ # Sample auto.master file # Format of this file: # mountpoint map options # For details of the format look at autofs(8). /misc /etc/auto.misc --timeout=60 |
En el archivo incluído por el automaster se definen los montajes de manera muy similar a los archivos "tab" mencionados anteriormente
[carlos@pcproal /etc]$ more auto.misc # $Id: auto.misc,v 1.2 1997/10/06 21:52:04 hpa Exp $ # This is an automounter map and it has the following format # key [ -mount-options-separated-by-comma ] location # Details may be found in the autofs(5) manpage #cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom # the following entries are samples to pique your imagination |
De manera que el montaje quedaría:
/misc/centia01Nota: a diferencia de fstab y vfstab aqui el punto de montaje no debe ser creado por el administrador, se crea sobre demanda
Samba (www.samba.org)
Samba es una aplicación para unix que permite compartir archivos entre plataformas unix y windows a traves de la red
Nota: si lo que queremos es compartir una "partición" de algun disco local, entonces se puede utilizar simplemente el mountDos componentes principales
- Servidor de Samba
- Interfaz web de administración Swat , (normalmente en el puerto 901)
3.3 Comandos comunes para la manipulación de archivos
file | Determina el tipo de archivo | ||||||||||||||||||||||||||||||||||||||||||||
chown | Cambia los id del dueño y del grupo de un archivo | ||||||||||||||||||||||||||||||||||||||||||||
chmod |
Descripción r,w,x para archivos
Modifica los permisos de un archivo o directorio Permiso adicional (visible en el bit the execute)
-rwsr-xr-x 1 carlos mail 932 Aug 24 20:23 script.sh (El script se correrá con permisos de 'carlos') ej. chmod g+s script.sh ej. chmod o+wt directory
Modo Absoluto (Octal)
Por ejemplo si queremos modificar un archivo de manera que Para permisos adicionales (setuid + setgid) |
||||||||||||||||||||||||||||||||||||||||||||
grep | Busca expresiones regulares en la entrada | ||||||||||||||||||||||||||||||||||||||||||||
ln | Creación de ligas, simbólicas o duras | ||||||||||||||||||||||||||||||||||||||||||||
ls | Listado de archivos en un directorio | ||||||||||||||||||||||||||||||||||||||||||||
cp | Copiar archivos o directorios | ||||||||||||||||||||||||||||||||||||||||||||
mv | Mueve o renombra un archivo | ||||||||||||||||||||||||||||||||||||||||||||
more | Visualizador de un archivo hacia adelante | ||||||||||||||||||||||||||||||||||||||||||||
less | Visualizador de un archivo hacia adelante y hacia atrás | ||||||||||||||||||||||||||||||||||||||||||||
head | Ver el encabezado (primeras líneas de un archivo) | ||||||||||||||||||||||||||||||||||||||||||||
tail | Ver la cola (últimas líneas de un archivo) | ||||||||||||||||||||||||||||||||||||||||||||
find | Busca archivos con cierto criterio (nombre, fecha) en una ruta dada | ||||||||||||||||||||||||||||||||||||||||||||
> | Redireccionamiento hacia un archivo nuevo ej. ls > archivo.txt |
||||||||||||||||||||||||||||||||||||||||||||
>> | Redireccionamiento hacia un archivo existente (append) ej. ls >> archivo.txt |
3.4 Respaldos (Backups)
Full Backups
- Respaldo de toda la información que se ha generado
- Consume mucho tiempo el realizar estos respaldos
- Gran gasto de dispositivos para respaldos
Incremental Backups (daily backups)
- Unicamente se respaldan los archivos nuevos o que han cambiado desde el último full backup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Differential Backups
- Unicamente se respaldan los archivos nuevos o que han cambiado desde el último backup, a cualquier nivel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mezcla de Full, Incremental y Differential Backups
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otra posibilidad de la mezcla de varios tipos:
Cómo se realizan los respaldos ?
- Se utilizan los comandos
- Debemos definir los niveles si queremos hacer backups incrementales o diferenciales, para ello se puede emplear la fecha o bien directamente la opción de los niveles (comandos de dump)
- Calendarizarlos, usando alguna herramienta como "crontab"
Comandos para realizar respaldos
- tar
- La más antigua utilería para respaldar archivos en cintas
- Solaris ufsdump/ufsrestore
- Linux dump/restore
- Herramientas de bajo nivel que interactúan directamente con el filesystem
- cpio
- cp con I/O, es una versión más nueva que las anteriores y permite el agregar o recuperar solo algunos archivos del respaldo
- mt
- Comando para la manipulación de la cinta
Notas:1.- No olvidar los comandos de Compresión
- compress
- zcat
- gzip
2.- Herramientas de Terceros