Posts Tagged ‘zfs’

ZFS en Mac OSX Leopard

16 Enero,2008

ZFS en Mac OSX Leopard

Llevaba tiempo queriendo probar ZFS en Mac OSX y gracias a los desarrolladores de Apple, en la web del proyecto ZFS para Leopard podemos obtener los ficheros necesarios para instalar el soporte de este genial sistema de ficheros.

La instalación es muy sencilla, tan solo debemos copiar los ficheros en nuestro sistema, sustituyendo los que ya trae Leopard. Por si acaso, siempre es recomendable realizar una copia de seguridad de los antiguos ficheros, no ser que luego suceda lo peor (como por ejemplo que no arranque el sistema operativo).

Como usuario root o superusuario, procederemos de la siguiente manera:

mv /usr/sbin/zfs /usr/sbin/zfs.old
mv /usr/sbin/zpool /usr/sbin/zpool.old
mv /usr/lib/libzfs.dylib /usr/lib/libzfs.dylib.old
mv /System/Library/Extensions/zfs.kext /System/Library/Extensions/zfs.kext.old
mv /System/Library/Filesystems/zfs.fs /System/Library/Filesystems/zfs.fs.old


Ahora descomprimimos el fichero zfs-102A-source.tgz (tar zxf zfs-102A-source.tgz) y copiamos los ficheros nuevos (previamente tendremos que introducirnos dentro del directorio resultante):

cp build/Release/zfs /usr/sbin/zfs
cp build/Release/zpool /usr/sbin/zpool
cp build/Release/libzfs.dylib /usr/lib/libzfs.dylib
cp -R build/Release/zfs.fs /System/Library/Filesystems/zfs.fs
cp -R build/Release/zfs.kext /System/Library/Extensions/zfs.kext


Segun la documentación, es necesario que todos los ficheros que hayamos copiado tengan como propietario/grupo root:wheel . Así pues, los revisamos y si todo es correcto, ya podemos reiniciar el sistema para que el kernel cargue los nuevos modulos del soporte ZFS.

Una vez reiniciado Mac OSX, abrimos de nuevo un terminal y mediante sudo o autenticándonos como superusuario, podemos utilizar los comandos zfs y zpool para agregar discos ZFS a nuestro sistema.
Pinchamos el disco -en mi caso USB- al ordenador y -importante- ignoraremos que Finder no reconozca el disco (Finder aun no maneja algunas cuestiones de ZFS), por tanto NO debemos inicializar el disco si no queremos destruir los datos.

zpool import -f disco60gb (disco60gb es el nombre de mi pool)

En mi caso utilice el parámetro -f (forzar) debido a que Mac OSX no quería importar el pool al estar adjudicado en otro sistema (OpenSolaris Nevada). Después de esto, ya podía utilizar el pool ZFS en Finder sin problemas, pudiendo leer y escribir en el pool e intercambiando ficheros entre Mac OSX y OpenSolaris :-)

En la imagen de arriba podemos ver como se muestra el pool disco60gb en Finder y en linea de comandos. Desgraciadamente, por algún motivo no fue posible desmontar el pool y al desconectar físicamente el disco USB, se fueron al garete todos los datos (menos mal que tenia copia). Al volver a realizar las pruebas (reiniciar el sistema y restaurar el pool desde OpenSolaris), solo pude desmontar el disco apagando Mac OS X, no me digáis por que…

Y es que, hay que señalar que aun existen problemas importantes a la hora de utilizar ZFS en Leopard, a saber que Spotlight puede llegar a entrar en un looping indexando el pool una y otra vez. Los ficheros que residen en la papelera de Finder no se borran automáticamente al vaciarla, por lo que hay que realizar la limpieza a mano, en linea de comandos. Tampoco se puede guardar la biblioteca de iTunes en un pool ZFS, al parecer iTunes no tiene en cuenta el pool. Otros problemas mas técnicos tratan de la imposibilidad de utilizar snapshots directamente o la imposibilidad de utilizar pools replicados (raidz) si no han sido exportados previamente (zpool export).

Como veis, el soporte de ZFS en Leopard todavía es inmaduro, si bien podemos intercambiar datos entre sistemas operativos Mac OS X, Solaris y OpenSolaris, lo que ya es un logro.

Esperemos que en futuro, tanto OpenSolaris como Mac OS X puedan arrancar directamente desde ZFS y así olvidarnos de UFS y HFS+

Comandos rápidos

21 Noviembre,2007

Algunos comandos rápidos en OpenSolaris y Solaris 10 que seguro os serán de ayuda en alguna ocasión:

Crear y manejar sistemas de ficheros ZFS:
- Listar sistemas de ficheros
zfs list
- Verificar el estado de los pools
zpool status -v
- Crear un pool llamado “home” en el dispositivo /dev/dsk/c1d0s7
zpool create -f home c1d0s7
- Establecer punto de montaje del pool “home” en /home
zfs set mountpoint=/home home
- Mostrar atributos y características sistemas de ficheros ZFS
zfs get all
- Importar un pool (por ejemplo un pool ZFS en un disco externo)
zpool import -f otropool

- Listar los servicios disponibles, así como su estado
svcs -av
- Habilitar SSH
svcadm enable ssh
- Deshabilitar sendmail
svcadm disable sendmail
- Listar los servicios inet disponibles, así como su estado
inetadm

- Mostrar estado y velocidad de los procesadores y/o cores
psrinfo -v
- Mostrar capacidades de la CPU (por ejemplo, si disponemos de SSE2, VT, etc)
isainfo -v
- Mostrar información de configuración del sistema (memoria, chipset, periféricos, etc)
prtconf -pv

- Listar zonas del sistema
zoneadm list -v
- Crear una zona llamada “mizona”
zonecfg -z mizona create
- Arrancar la zona “mizona”
zoneadm -z mizona boot
- Parar la zona “mizona”
zoneadm -z mizona halt

Estoy preparando una “chuleta” con ésta (y más) información ampliada para que cualquiera pueda imprimirla y utilizarla en el día a día; estad atentos en los próximos días ;-)

ZFS: mirror de 100 filesystems en 5 minutos

21 Noviembre,2005

En la web de OpenSolaris podemos encontrar una demostración en flash de ZFS.

En ésta demo veremos cómo funcionan los pool, los snapshots, quotas etc… además de una impresionante manera de hacer un mirror de 100 sistemas de ficheros en cuestión de pocos minutos.

Éste fin de semana estuve jugando un poco con ZFS, y la verdad es que me quedé asombrado de la rapidísimo que funciona incluso en discos IDE. Ahora hay que ver el rendimiento que da en comparación con otros sistemas de ficheros como XFS ó reiserfs.

¿Alguno de mis lectores ha hecho algo con ésta cuestión?

Qué es ZFS?

18 Noviembre,2005

Extraído y traducido de su página en opensolaris.org:

ZFS es una nueva clase de sistema de ficheros que proporciona una administración simple, semántica transaccional, integridad de los datos, y una inmensa escalabilidad. ZFS no es una mejora incremental de la tecnología existente; es fundamentalmente un nuevo acercamiento a la administración/gestión de datos.

ZFS presenta un modelo reunido de almacenamiento que elimina totalmente el concepto de volúmenes y los problemas asociados de particiones, del aprovisionamiento, del ancho de banda perdido y del almacenamiento inmovilizado. Los millares de sistemas de ficheros pueden escribirse en un pool de almacenamiento común, cada uno consumiendo sólamente tanto espacio como realmente necesite.

El ancho de banda combinado de E/S de todos los dispositivos en el pool está siempre disponible para todos los sistemas de ficheros. Todas las operaciones son transacciones ‘copia-en-escritura’, así que el estado de los datos en disco son siempre válidos. No es necesario realizar fsck(1M) en ZFS, nunca. Cada bloque es comprobado para prevenir la corrupción silenciosa de datos y éstos son comprobados en (duplicado espejo ó en RAID) configuraciones replicadas. Si se daña una copia, ZFS la detectará y utilizará otra copia para repararla.

ZFS introduce un nuevo modelo de replicación de datos llamado RAID-Z. Es similar al RAID-5, pero emplea anchura variable para eliminar el agujero de escritura que deja RAID-5 (corrupción debido a pérdida de energía entre los datos y las actualizaciones de paridad). Todo el RAID-Z escribe en full-stripe. NO hay ninguna imposición de lectura-modificación-escritura, no hay agujeros en la escritura, y -la mejor parte-, ninguna necesidad de NVRAM en hardware. A ZFS le gustan los discos baratos.

Pero los discos baratos pueden fallar, así que ZFS proporciona “fregado” del disco. Al igual que la memoria ECC, la idea es leer todos los datos para detectar errores latentes mientras éstos puedan ser corregidos. Un “fregado” atraviesa el pool entero del almacenamiento para leer cada copia de cada bloque, validarla contra la suma de comprobación 256-bit, y repararla en caso de necesidad. Todo ésto sucederá mientras el pool de almacenamiento siga vivo y en uso.

ZFS tiene un motor canalizado de E/S, similar en concepto a las tuberías de la CPU. La tubería funciona sobre dependencias de E/S y proporciona scoreboarding, prioridad, programación de plazo, out-of-order y agregación de E/S . La carga de E/S que traen otros sistemas de ficheros a sus rodillas son manejadas con facilidad por la tubería de E/S de ZFS.

ZFS proporciona snapshots ilimitados y clonaciones. Un snapshot es una copia inalterable de un punto en el tiempo de un sistema de ficheros, mientras que una copia es una copia escribible de un snapshot. Las clonaciones proporcionan una manera extremadamente eficiente de almacenar muchas copias de datos sobre volúmenes compartidos, tales como espacios de trabajo (workspaces), instalaciones de software, y clientes diskless (sin discos).

Las copias de seguridad (backups) y el restaurado (restore) ZFS son realizados a través de snapshots. Cualquier snapshot puede generar un backup completo, y cualquier par de snapshot puede generar un backup incremental. Los backups incrementales son tan eficientes que pueden ser utilizados para la réplicados remotos -por ejemplo transmitir una actualización incremental cada 10 segundos-.

No hay límites arbitrarios en ZFS. Puedes tener tantos ficheros como desees; offsets de 64-bit del fichero; enlaces/links ilimitados, entradas de directorio, snapshots, etcétera.

ZFS proporciona compresión incorporada. Además de reducir uso del espacio en x2 ó x3, la compresión también reduce la cantidad de E/S de 2 a 3 veces. Por ésta razón, permitir la compresión hace realmente que algunas cargas de trabajo vayan más rápidamente. Además de sistemas de ficheros, los pools de almacenamiento ZFS pueden proporcionar volúmenes para usos que necesitan la semántica crudo-dispositivo (raw-device). Por ejemplo, los volúmenes de ZFS se pueden utilizar como dispositivos de intercambio ó swap. Y si permitimos la compresión en un volumen de intercambio/swap, ahora tendríamos memoria virtual comprimida.

La administración de ZFS es simple y poderosa. Mira por favor las página de manual zpool(1M) y zfs(1M) para más información, y échale un vistazo a la sección Comenzando con ZFS para un pequeño tutorial.

ZFS es ya absolutamente rapidísimo en la mayoría de cargas de trabajo, y eso que estamos empezando…