Necessitei fazer a migração de um antiga partição ext3 para uma nova partição Fuse-ZFS.
Criando Backup das ACL no ext3:
# getfacl -R DIRETORIO-ORIGEM > regras_ACL.acl
Restaurando as regras no novo diretório ZFS:
# cd /CAMINHO/NOVO/DIRETORIO/
# setfacl --restore regras_ACL.acl
Testando ACL:
0-raiser:/home/joaocep# getfacl ZebraDesignerv2.exe
# file: ZebraDesignerv2.exe
# owner: joaocep
# group: joaocep
user::rw-
group::---
other::---
Sendo meu /home/joaocep um sistema ZFS:
0-raiser:/home/joaocep# zfs list
NAME USED AVAIL REFER MOUNTPOINT
JOAOCEP 36,9G 15,3G 23,3G /home/joaocep
OBS: ACL é extremamente útil usando samba.
grande abraço.
sábado, 19 de junho de 2010
quinta-feira, 10 de junho de 2010
ZFS-fuse Vs BTRFS - Abordagem simples
Com base em um sistema Debian Testing já instalado em um Virtualbox faço uma abordagem simples sobre estes dois excelentes sistemas de arquivos.
Para ficar divertido adicionei mais 4 discos de 1GB usando o Vbox.
# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00001c8c
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 303 2433816 83 Linux
/dev/sda2 304 1044 5952082+ 5 Estendida
/dev/sda5 304 344 329301 82 Linux swap / Solaris
/dev/sda6 345 1044 5622718+ 83 Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux
Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdc1 1 130 1044193+ 83 Linux
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdd1 1 130 1044193+ 83 Linux
Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sde1 1 130 1044193+ 83 Linux
com base nisso, vamos ao que interessa.
Atualizando a base APT:
# echo "deb http://http.us.debian.org/debian testing main contrib non-free" >> /etc/apt/sources.list && apt-get update
Atualizando o Kernel:
# apt-get install linux-image-2.6.32-3-686 linux-headers-2.6.32-3-686 -y && reboot
ZFS-Fuse [Zeta Byte File System]
Criei um diretório /home/zfs para este exemplo.
# apt-get install zfs-fuse
Opa, o zfs sobe automáticamente:
# ps -aux | grep fuse
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 1487 0.1 1.8 1165316 7160 ? Ssl 11:19 0:04 /sbin/zfs-fuse
caso não suba:
# zfs-fuse & >> /dev/null
Indo direto ao que interessa.
Resolvi disponibilizar 3 discos para ZFS, bom .. poderia ser um disco solitário, mas testar crash tem mais graça.
# zpool create ZFS raidz /dev/sdb1 /dev/sdc1 /dev/sdd1
# zpool status
pool: ZFS
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
ZFS ONLINE 0 0 0
raidz1 ONLINE 0 0 0
sdb1 ONLINE 0 0 0
sdc1 ONLINE 0 0 0
sdd1 ONLINE 0 0 0
errors: No known data errors
Com o status conseguimos enxergar informações sobre o pool.
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
ZFS 2,97G 43,6M 2,93G 1% ONLINE -
Listagem de pools é com list (dã).
Caso necessite alterar o caminho do pool.
# zfs set mountpoint=/home/ZFS ZFS
E seu pool troca de caminho...
# zfs create ZFS/joaocep
E eu crio um novo volume "joaocep" dentro de "ZFS"
é interessante possuir áreas dentro dos Pools.
# zfs set compression=on ZFS/joaocep
E seu pool ganha compactação
# zfs set shareiscsi=on ZFS/joaocep
E seu pool NÃO ganha um compartilhamento iscsi simples, isso mesmo... no linux a bagaça ainda não foi implementada --- mas no Opensolaris basta um pkg install SUNWisgt.
Ok, vamos aos snapshots, a parte mais interessante de um sistema inteligente.
Uma cosisa legal - sintaxe
# zfs snapshot NOMEDOPOOL@NOME-DO-BACKUP
# zfs snapshot ZFS@backup-raiz1
# zfs snapshot ZFS/joaocep@backup-subdir1
Acima dois exemplos de formas de backup, de pastas e sub-pastas.
Tá, e o restore?
# zfs rollback ZFS@backup-raiz1
feito, ele retorna o backup de ZFS.
Para verificar os seus volumes, use o comando list (dã)
# zfs list
# zfs list -t snapshot
# zfs list -t all
Clonando subvolumes:
# zfs clone ZFS/joaocep@backup-subdir1 ZFS/joaomancy
Note, antes de criar um "clone" faça um snapshot - o clone só será feito usando um snapshot anterior.
Infelizmente nem todas as funções foram portadas para zfs-fuse -- a grosso modo, no Linux.
BTRFS [B-tree File System]
O Btrfs possui uma grande vantagem, ele converte filesystem ext3 em btrfs usando uma lógica simples ( https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 )
Criei um diretório /home/brtfs para este exemplo.
Instalando e Convertendo:
# apt-get install btrfs-tools -y && fsck.ext3 -f -y /dev/sde1 && btrfs-convert /dev/sde1
Montando a Partição
# mount -t btrfs /dev/sde1 /home/btrfs
Onboot
# echo "/dev/sde1 /home/btrfs btrfs defaults 0 0" >> /etc/fstab
Vamos a parte boa!
Uma dica importante, lembra dos POOL do ZFS, então. um snapshot só poderá ser montando dentro do próprio POOL ( Slice no BSD, Volume Novel, Partição Extendinda com Volume Lógico... como seu cérebro entender )
Criando um Subvolume ( -S cria, -D Destroi):
# btrfsctl -S arquivos /home/brtfs/
Criando um Snapshot do subvol arquivos:
# btrfsctl -s bkarquivos /home/brtfs/arquivos
Voltando um "backup" do btrfs - rollback:
Esta tarefa é simples, ele guarda a imagem na "raiz" do pool no caso um diretório /home/btrfs/bkarquivos - copie o arquivo e pronto.
Verificando o seu sistema de arquivos:
# btrfs-show
Label: none uuid: 7c36bf25-6c45-48bf-adaf-73f9dab93b42
Total devices 1 FS bytes used 93.11MB
devid 1 size 1019.72MB used 1019.72MB path /dev/sde1
Btrfs Btrfs v0.19
Se quiser voltar para ext3 ( rollback de filesystem )
# umount /home/btrfs
# btrfs-convert -r /dev/sde1
Não esqueça de trocar o btrfs da fstab e montar com ext3
Criação de Raid usando btrfs:
https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
Pensou que eu fosse reinventar a roda é...
Minhas Conclusões:
Sinceramente prefiro o ZFS, há muito mais opções e sua sintaxe é simples, btrfs não esconde os snapshots o que atrapalha caso "metidos a admin" queiram visualizar os documentos contidos em seus sistemas.
Há implementações boas no btrfs que superam o zfs-fuse, como o resize de volumes (LVM faz isso) e "QUOTAS" de disco.
ZFS para Opensolaris possui tudo isso com Plus -- Solaris Zones dentro de um subvol é violento , ou shareiscsi=on .
Claro, alguém vai querer Benchmark veja nos links abaixo:
http://oss.oracle.com/projects/btrfs/dist/documentation/benchmark.html
http://www.linux-mag.com/id/7308
Independente de "Velocidade" para minha pessoa ZFS é muito melhor, mas cada caso é um caso e eu penso sinceramente testar btrfs em um Zimbra -- por exemplo.
Grande abraço a todos.
Referências:
https://btrfs.wiki.kernel.org
http://zfs-on-fuse.blogspot.com/
OBS: Esta abordagem não credencia você a sair destruindo o seu disco para usar ZFS ou Btrfs.
Para ficar divertido adicionei mais 4 discos de 1GB usando o Vbox.
# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00001c8c
Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 303 2433816 83 Linux
/dev/sda2 304 1044 5952082+ 5 Estendida
/dev/sda5 304 344 329301 82 Linux swap / Solaris
/dev/sda6 345 1044 5622718+ 83 Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux
Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdc1 1 130 1044193+ 83 Linux
Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdd1 1 130 1044193+ 83 Linux
Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sde1 1 130 1044193+ 83 Linux
com base nisso, vamos ao que interessa.
Atualizando a base APT:
# echo "deb http://http.us.debian.org/debian testing main contrib non-free" >> /etc/apt/sources.list && apt-get update
Atualizando o Kernel:
# apt-get install linux-image-2.6.32-3-686 linux-headers-2.6.32-3-686 -y && reboot
ZFS-Fuse [Zeta Byte File System]
Criei um diretório /home/zfs para este exemplo.
# apt-get install zfs-fuse
Opa, o zfs sobe automáticamente:
# ps -aux | grep fuse
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 1487 0.1 1.8 1165316 7160 ? Ssl 11:19 0:04 /sbin/zfs-fuse
caso não suba:
# zfs-fuse & >> /dev/null
Indo direto ao que interessa.
Resolvi disponibilizar 3 discos para ZFS, bom .. poderia ser um disco solitário, mas testar crash tem mais graça.
# zpool create ZFS raidz /dev/sdb1 /dev/sdc1 /dev/sdd1
# zpool status
pool: ZFS
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
ZFS ONLINE 0 0 0
raidz1 ONLINE 0 0 0
sdb1 ONLINE 0 0 0
sdc1 ONLINE 0 0 0
sdd1 ONLINE 0 0 0
errors: No known data errors
Com o status conseguimos enxergar informações sobre o pool.
# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
ZFS 2,97G 43,6M 2,93G 1% ONLINE -
Listagem de pools é com list (dã).
Caso necessite alterar o caminho do pool.
# zfs set mountpoint=/home/ZFS ZFS
E seu pool troca de caminho...
# zfs create ZFS/joaocep
E eu crio um novo volume "joaocep" dentro de "ZFS"
é interessante possuir áreas dentro dos Pools.
# zfs set compression=on ZFS/joaocep
E seu pool ganha compactação
# zfs set shareiscsi=on ZFS/joaocep
E seu pool NÃO ganha um compartilhamento iscsi simples, isso mesmo... no linux a bagaça ainda não foi implementada --- mas no Opensolaris basta um pkg install SUNWisgt.
Ok, vamos aos snapshots, a parte mais interessante de um sistema inteligente.
Uma cosisa legal - sintaxe
# zfs snapshot NOMEDOPOOL@NOME-DO-BACKUP
# zfs snapshot ZFS@backup-raiz1
# zfs snapshot ZFS/joaocep@backup-subdir1
Acima dois exemplos de formas de backup, de pastas e sub-pastas.
Tá, e o restore?
# zfs rollback ZFS@backup-raiz1
feito, ele retorna o backup de ZFS.
Para verificar os seus volumes, use o comando list (dã)
# zfs list
# zfs list -t snapshot
# zfs list -t all
Clonando subvolumes:
# zfs clone ZFS/joaocep@backup-subdir1 ZFS/joaomancy
Note, antes de criar um "clone" faça um snapshot - o clone só será feito usando um snapshot anterior.
Infelizmente nem todas as funções foram portadas para zfs-fuse -- a grosso modo, no Linux.
BTRFS [B-tree File System]
O Btrfs possui uma grande vantagem, ele converte filesystem ext3 em btrfs usando uma lógica simples ( https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3 )
Criei um diretório /home/brtfs para este exemplo.
Instalando e Convertendo:
# apt-get install btrfs-tools -y && fsck.ext3 -f -y /dev/sde1 && btrfs-convert /dev/sde1
Montando a Partição
# mount -t btrfs /dev/sde1 /home/btrfs
Onboot
# echo "/dev/sde1 /home/btrfs btrfs defaults 0 0" >> /etc/fstab
Vamos a parte boa!
Uma dica importante, lembra dos POOL do ZFS, então. um snapshot só poderá ser montando dentro do próprio POOL ( Slice no BSD, Volume Novel, Partição Extendinda com Volume Lógico... como seu cérebro entender )
Criando um Subvolume ( -S cria, -D Destroi):
# btrfsctl -S arquivos /home/brtfs/
Criando um Snapshot do subvol arquivos:
# btrfsctl -s bkarquivos /home/brtfs/arquivos
Voltando um "backup" do btrfs - rollback:
Esta tarefa é simples, ele guarda a imagem na "raiz" do pool no caso um diretório /home/btrfs/bkarquivos - copie o arquivo e pronto.
Verificando o seu sistema de arquivos:
# btrfs-show
Label: none uuid: 7c36bf25-6c45-48bf-adaf-73f9dab93b42
Total devices 1 FS bytes used 93.11MB
devid 1 size 1019.72MB used 1019.72MB path /dev/sde1
Btrfs Btrfs v0.19
Se quiser voltar para ext3 ( rollback de filesystem )
# umount /home/btrfs
# btrfs-convert -r /dev/sde1
Não esqueça de trocar o btrfs da fstab e montar com ext3
Criação de Raid usando btrfs:
https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
Pensou que eu fosse reinventar a roda é...
Minhas Conclusões:
Sinceramente prefiro o ZFS, há muito mais opções e sua sintaxe é simples, btrfs não esconde os snapshots o que atrapalha caso "metidos a admin" queiram visualizar os documentos contidos em seus sistemas.
Há implementações boas no btrfs que superam o zfs-fuse, como o resize de volumes (LVM faz isso) e "QUOTAS" de disco.
ZFS para Opensolaris possui tudo isso com Plus -- Solaris Zones dentro de um subvol é violento , ou shareiscsi=on .
Claro, alguém vai querer Benchmark veja nos links abaixo:
http://oss.oracle.com/projects/btrfs/dist/documentation/benchmark.html
http://www.linux-mag.com/id/7308
Independente de "Velocidade" para minha pessoa ZFS é muito melhor, mas cada caso é um caso e eu penso sinceramente testar btrfs em um Zimbra -- por exemplo.
Grande abraço a todos.
Referências:
https://btrfs.wiki.kernel.org
http://zfs-on-fuse.blogspot.com/
OBS: Esta abordagem não credencia você a sair destruindo o seu disco para usar ZFS ou Btrfs.
quarta-feira, 2 de junho de 2010
Zfs no Debian Testing [Dummy Mode]
Com base no artigo escrito a um bom tempo sobre ZFS em Debian Lenny
Resolvi fazer uma alteração mais simples.
adicionando no sources.list:
####
deb http://http.us.debian.org/debian testing main contrib non free
####
# apt-get update
# apt-get install zfs-fuse
pronto... bons snapshots.
OBS: Fiz isso em meu Desktop lembrando que servidores estáveis ainda não foram batizados com ZFS do Linux, somente ZFS em Opensolaris ou FreeBSD.
Resolvi fazer uma alteração mais simples.
adicionando no sources.list:
####
deb http://http.us.debian.org/debian testing main contrib non free
####
# apt-get update
# apt-get install zfs-fuse
pronto... bons snapshots.
OBS: Fiz isso em meu Desktop lembrando que servidores estáveis ainda não foram batizados com ZFS do Linux, somente ZFS em Opensolaris ou FreeBSD.
Assinar:
Postagens (Atom)