Charla Madrid Devops Junio 2011: ZFS en Despliegues

14
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

Transcript of Charla Madrid Devops Junio 2011: ZFS en Despliegues

Page 1: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 2: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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.

Page 3: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 4: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 5: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 6: Charla Madrid Devops Junio 2011: ZFS en Despliegues

ZFS en despliegues - Despliegues

● Situaciones de despliegue interesantes:● Aumento de capacidad / disponibilidad● Migraciones entre máquinas● Duplicaciones

Page 7: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 8: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 9: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 10: Charla Madrid Devops Junio 2011: ZFS en Despliegues

ZFS en despliegues - Backups

● Backups en ZFS● Snapshots● Send & Receive

Page 11: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 12: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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

Page 13: Charla Madrid Devops Junio 2011: ZFS en Despliegues

ZFS en despliegues

Y eso no es todo …

Pero lo dejaremos aquí por hoy ;-)

Muchas Gracias por vuestra atención

Jorge Moratilla [email protected]://www.moratilla.com

Page 14: Charla Madrid Devops Junio 2011: ZFS en Despliegues

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