Post on 20-Aug-2015
ZFS en despliegues - Introducción
● Qué es ZFS (Zettabyte File System)● Desarrollado por Sun (2004 – Solaris 10 6/06)● Objetivos:
● Renovar UFS desde cero● Resolver toda la complejidad de los FS
● Qué hay de nuevo, viejo?● Capacidad de un fichero ~= 2^64 bits ● Copy-on-Write = no se necesita fsck!● Pools, Volúmenes y DataSets● RaidZ, RaidZ-2● Snapshots y Clones
● Qué ventajas tiene para:● Administradores● Desarrolladores● Managers
ZFS en despliegues - Introducción
● Características● Administración mejorada y simplificada● Independiente de Arquitectura y Sistema Operativo● LVM + FS: ya no más Solstice DiskSuite! (o md)● Copy-on-Write: Datos consistentes siempre en disco. No sobreescritura.● RAID-Z (~RAID-5 con mejoras)
● Autoreparación de datos corruptos● Mejoras en la escritura de datos sobre RAID-5
● DataSets = Vistas del pool● Volúmenes = Soft partitions● Optimizaciones en niveles de Cache
Pool = Círculo completo (Representación del espacio en disco)
DataSet = Cada sección del círculoVolumen = Sección separada del círculo
Los pools, volúmenes y datasets tienen propiedades que permiten personalizar cada entidad.
ZFS en despliegues - Introducción
● Administración Simplificada● Rosetta Stone de comandos Unix (http://bhami.com/rosetta.html)● Vs. comandos administración ZFS
Acción UFS/Ext3 ZFS
RAID Metainit, mdadm, lvm, vxvm,... Zpool create | destroy
New FS newfs Zfs create | destroy
Mounting mount,umount,mountall,umountall Zfs mount | umount
Sharing /etc/exports, /etc/dfs/dfstab,share,iscsitadm,iscadm,smbd,nfsd,...
Zfs sharenfs | sharesmb | shareiscsi
Backup Dump, restore, ufsdump, ufsrestore, fssnap Zfs snapshot | clone | send |receive
ZFS en despliegues - Introducción
● Datasets● “Vistas” (directorios) dentro del pool: file systems, snapshot, clones,
volúmenes● Cada Dataset tiene propiedades (como las de mount) y herencia● Tienen listas de control de acceso compatibles con NTFS (para servidores
de ficheros integrados en AD)● Configuran los límites, compresión, cifrado y compartición del dataset● Un dataset puede tener varios datasets, snapshots y clones asociados... y
mucho más:
“ZFS can store 16 Exabytes in each storage pool, file system, file, or file attribute. ZFS can store billions of names: files or directories in a directory, file systems in a file system, or snapshots of a file system. ZFS can store trillions of items: files in a file system, file systems, volumes, or snapshots in a pool.”
http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq
ZFS en despliegues - Introducción
● Snapshots / Clones● Snapshot = Instantánea de sólo lectura● Clone = Instantánea de lectura/escritura● Un clone puede ser promocionado a dataset● Muy útil para cualquier ocasión en la que se necesite duplicar información
● Backups● Duplicados: desarrollo, testing, producción, virtualizaciones...● Actualizaciones de software y sistema operativo
ZFS en despliegues - Despliegues
● Situaciones de despliegue interesantes:● Aumento de capacidad / disponibilidad● Migraciones entre máquinas● Duplicaciones
ZFS en despliegues - Despliegues
● Situaciones de despliegue interesantes:● Aumento de capacidad / disponibilidad
● Añadir un disco al pool (se convierte en pool stripping)# zpool add mipool /dev/sdb
● Añadir un mirror a un pool de mirror (stripping de mirrors)# zpool add mipool mirror /dev/sdb /dev/sdc
● Adjuntar un disco a un mirror# zpool attach mipool /dev/sdb
● Crear un RaidZ de tres discos con disco de Hotspare# zpool create mipool raidz sda sdb sdc spare sdd
ZFS en despliegues - Despliegues
● Situaciones de despliegue interesantes:● Migraciones entre máquinas
● Independientemente arquitectura (x86_32, x86_64, sparc)
● Independientemente Sistema Operativo(Solaris, OpenSolaris, FreeBSD, Linux)
● Exportación# zpool export mipool
● Buscar posibles importaciones# zpool import -D
● Importar# zpool import mipool
ZFS en despliegues - Despliegues
● Situaciones de despliegue interesantes:● Duplicaciones
● Crear un snapshot de algún dataset que tenga contenido:● Aplicaciones● Sistema operativo (ZFS Root)● Máquinas Virtuales
# zfs snapshot mipool/midataset1@snap1
● Ahora clónalo:● Duplica entornos: desarrollo, testing, producción (CI...)● Duplica máquinas virtuales: openvz, kvm, virtualbox, jails● *Solaris: Actualiza el sistema operativo en caliente con luupgrade
# zfs clone mipool/midataset1@snap1 mipool/midataset2
● Si te interesa que sea independiente del snapshot original, promociónalo# zfs promote mipool/midataset2
ZFS en despliegues - Backups
● Backups en ZFS● Snapshots● Send & Receive
ZFS en despliegues - Backups
● Backups en ZFS● Snapshots
● Permiten realizar copias de seguridad en caliente de cualquier dataset, volumen o pool.
● Son accesibles a través de comandos de directorio como datasets normales:
# cd /mipool/midataset/.snapshot/snap1● Se pueden utilizar para volver el dataset a su estado anterior# zfs rollback mipool/midataset@snap1
● Se pueden descartar cuando ya no se necesiten# zfs destroy mipool/midataset@snap1
ZFS en despliegues - Backups
● Backups en ZFS● Send & Receive
● Comandos que permiten enviar un dataset (y sus descendientes) a un volumen y recuperarlo.
● Requieren de snapshots para funcionar● Backup a un fichero
# zfs send mipool/midataset@snap1 > \/var/tmp/midataset.zfs
● Restaurar de un fichero a un dataset (requieren de un pool creado)# zfs receive minuevopool < \
/var/tmp/midataset.zfs
● Todo a la vez y por la red# zfs send mipool/midataset@snap1 | \
ssh root@remotehost zfs receive minuevopool
ZFS en despliegues
Y eso no es todo …
Pero lo dejaremos aquí por hoy ;-)
Muchas Gracias por vuestra atención
Jorge Moratilla Porrasjorge@moratilla.comHttp://www.moratilla.com
ZFS en despliegues
Referencias:Todo el material ha sido obtenido de:● OpenSolaris Community Group ZFS
http://hub.opensolaris.org/bin/view/Community+Group+zfs/● Solaris Internals
http://www.solarisinternals.com//wiki/index.php?title=Category:ZFS● ZFS on Linux
Http://zfsonlinux.org● FreeBSD Handbook
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/filesystems-zfs.html