ZFS parte 1: conceitos, tuning, compre ou monte o seu data storage server

Este é o primeiro de uma série de artigos sobre ZFS e Btrfs. Abordaremos desde situação legal do código fonte, apresentação básica do funcionamento para administradores de sistemas, passando por tuning, thin provisioning, tiered storage e configurações de alto desempenho, até dicas de como adquirir ou montar seu Data Storage de alto desempenho, com uma boa BIBLIOGRAFIA selecionada. Este artigo não é um tutorial iniciante. É um resumo de lições aprendidas. Leia a bibliografia selecionada para detalhes. Esta parte 1 é focada nos tópicos para análise e consideração no projeto.

Apresentação básica do funcionamento ZFS para administradores de sistemas

Do ponto de vista do administrador de sistemas, ZFS engloba as funções de sistema de arquivos POSIX transacional Copy On Write CoW com checksum e tamanho de blocos dinâmico, gerenciador de snapshots e clones, gerenciador de volumes, gerenciador de dispositivos de blocos e hot spares, RAID, servidor de arquivos NFS, servidor de arquivos SMB (CIFS), servidor de dispositivos de blocos para serviços em softwares externos de iSCSI e Fiber Channel, gerenciador de tiered storage.
Não é sistema de arquivos em cluster nem compartilhado. Mas oferece NFS, SMB, e o necessário para compor um iSCSI ou FC com outros softwares.
Importante característica corporativa é que faz checksum em ciclo completo, escrita e leitura. Isso permite recuperar dados corrompidos após gravação, se houverem informações de paridade suficientes ou espelhamentos por configuração. No mínimo saberá que o dado não é mais confiável.

Também muito importante nas corporações é que permite fazer verificação (scrub ou “fsck”) ONLINE em background com sistema de arquivos em uso.

O tamanho de blocos dinâmico entre 512 Bytes e 128 Kbytes garante melhor utilização de recursos.

Leia a bibliografia recomendada.

Gerenciador de volumes e dispositivos de blocos para iSCSI e Fiber Channel

No ZFS é possível criar um Volume, internamente composto por um conjunto de arquivos pré-alocados ou não, neste caso “sparse”, no sistema de arquivos dentro de um pool e ele o apresentará como um dispositivo de blocos.
Quando é apresentado como um dispositivo de blocos virtual (vdev), então pode ser exportado como um target iSCSI ou Fiber Channel através de outros softwares, como o ComStar.
Importante notar que um vdev pode ser composto por dispositivos de blocos físicos, ou até outros vdevs, como arquivos, volumes, mirror, raidz, spare, log, cache.
Leia a bibliografia recomendada.

ZFS thin provisioning

Se o Volume no sistema de arquivos dentro do pool for criado como sparse, ele não pré-alocará espaço significativo no disco. Apenas alguns estruturas de controle. O dispositivo de blocos resultante declarará o espaço especificado, mas consumirá muito menos fisicamente no disco.
Apenas ocupará efetivamente quando dados forem escritos. É o thin provisioning.
O administrador de sistemas deverá acompanhar a mudança no espaço efetivo utilizado e, caso necessário, aumentar o tamanho físico do pool incluindo novos dispositivos de blocos.
Voltaremos ao assunto em outro artigo.
Leia a bibliografia recomendada.

Veja os resultados da Intel para thin provisioning, tiered storage, desduplicação.

ZFS tiered storage with Hybrid Storage Pool

O ZFS por definição de arquitetura tem Hybrid Storage Pool. Os dados automaticamente migram entre cache tipo Adaptative Replacement Cache, ARC (composto de um MRU e um MFU, conjugados a MRU Ghost e MFU Ghost) de memória e tipos de armazenamento que constituem o pool.
Basicamente, para sair do RAM L1 cache tipo ARC via ZFS POSIX Layer ZPL , os dados de escrita síncronaprimeiro são gravados no ZFS Intent Log, ZIL, que é um log de transações, e periodicamente em grupos de transações a sincronizar (sync transaction group) escritos também na área permanente do pool. Em seguida as transações correspondentes são descartadas do ZIL.
O ZIL só é lido em recuperação de desastres, para fazer um REDO log , um replay do log das transações pendentes e levar o sistema de arquivos a um estado consistente. Repare que uma transação não é lida do ZIL para a área permanente em utilização normal. Sai do L1 ARC para área permanente periodicamente, já tendo migrado para o sync transaction group na RAM.
ZIL pode estar espalhado no espaço de armazenamento permanente, arquivos normais sem área específica, ou ser um vdev separado.
Os dados de leitura podem ser lidos da área permanente para um opcional L2 ARC, constituído de vdevs diferentes e também lidos para o ARC. Na próxima leitura em que não estiver no L1 ARC, tentará do L2 ARC antes de ler da área permanente.
No data path de escrita síncrona, temos L1 ARC, ZIL “e” área permanente.
No data path de escrita assíncrona, temos L1 ARC, área permanente.
No data path de leitura, temos área permamente, opcional L2 ARC, L1 ARC.
Leia a bibliografia recomendada.

Leia os resultados da Intel para thin provisioning, tiered storage, desduplicação.

ZFS tuning

A bibliografia recomendada deve ser consultada. Mas a orientação básica é a seguinte:

  1. Mais ECC RAM para o L1 ARC.
  2. Ainda mais ECC RAM.
  3. Precisa instalar mais ECC RAM.
  4. Já falei que precisa mais ECC RAM?
  5. Quanta ECC RAM afinal? Idealmente, até o suficiente para conter seu dataset ativo. Comece estimando 1 GB ECC RAM para cada 1 TB armazenado. Dado empírico. Analise suas estatísticas com o zilstat.sh e arcstat.pl.
  6. Quantos IOPS você precisa? Quantos discos são necessários para atingir isso? Em que configuração? Como distribuir os subconjuntos de acordo com os IOPS? Essencial saber isso.
  7. Não formate, particione ou virtualize (RAID, LVM ou similar) os discos. Simplesmente entregue os raw block devices para o ZFS gerenciar.
  8. Então configure um Hybrid Storage Pool com vdevs de alto IOPS no ZIL e L2 ARC.
  9. Aumente os IOPS dos vdevs no HSP ou compre outros tipos de dispositivo de blocos com maior IOPS para ZIL e L2ARC. Mirrored vdevs tem mais IOPS que RAIDZ.
  10. Quanto L2 ARC? Idealmente, o suficiente para conter seu dataset ativo.
  11. Qual o tamanho do dataset ativo? Isso depende de seu ambiente e aplicações e terás de medir. Cada caso é um caso. A experiência mostra estimativa inicial em até 20% dos dados totais. Mas o dado é empírico. Avalie seus dados do arcstat.pl.
  12. Quanto ZIL? O suficiente para conter ao menos 2 períodos de 5 segundos (período default do flush de ARC) de escrita síncrona em máxima velocidade dos vdevs. Se o ZIL saturar antes do flush, a escrita síncrona passará a ir diretamente para a lenta área permanente do pool.
  13. Precisa mesmo de atime?
  14. ZIL logbias=latency no filesystem em uso?
  15. Deduplicação consome muita ECC RAM. Veja bibliografia de como dimensionar. Considere usar compressão (baixa ou alta?) que resolveria 2 problemas de uma vez e até poderia aumentar desempenho em certos cenários. Como estimativa inicial, a tabela de deduplicação consome 5 GB para cada 1 TB armazenado.
  16. Se for SGBD pode ser indicado alterar o tamanho do bloco para um volume ou filesystem num dado pool.
  17. Veja a bibliografia recomendada para os parâmetros secretos de kernel tuning. Veja a memória RAM permitida e a pressão de memória sobre o cache. Não exagere: cuidado com o pior tempo necessário para liberar RAM. O Solaris e descendentes pré-alocam até 80% da RAM para ZFS. O zfs-fuse tem um arquivo simples de configuração que permite ajustar a RAM para o L1 ARC. Pode ser que sobre muita RAM no seu sistema e seja possível deixar apenas 1,5 GB RAM para o kernel e outros serviços básicos como ComStar. Avalie com cuidado. Raramente necessário alterar.
  18. Contrate consultoria ou estude ainda mais que nós. Se chegou neste ponto, alcançou aquele 1% de casos que demandam 99% do esforço e investimentos.

Leia a bibliografia recomendada.

ZFS em configurações de alto desempenho

ZFS utiliza MUITA ECC RAM para o L1 ARC. O desempenho é fortemente influenciado pela quantidade de ECC RAM para o L1 ARC. Use sempre tipo ECC para prevenir erros silenciosos impossíveis de corrigir.
Depois da ECC RAM para o L1 ARC, ZFS utiliza MUITO poder de CPU, especialmente se utilizar compressão. Sempre calcula checksum. Quanto maior o número de núcleos e mais rápidos, melhor.
Então escolha os mais rápidos (high write IOPS) dispositivos de blocos que puderes adquirir para o mirrored ZIL, que tem forte impacto na LATÊNCIA do tempo de resposta e experiência do usuário. Como o ZIL é geralmente pequeno devido aos critérios de cálculo já apresentados, tente adquirir do tipo Enterprise ECC RAM SSD ou uma LUN em Enterprise RAM Data Storage.
Mirrored ZIL para alto desempenho e confiabilidade. Sem ZIL válido mesmo que vazio, não recupera um crashed filesystem. Se puder, aumente o número de espelhos por segurança. Avalie o impacto no desempenho.
Para o L2 ARC, que é idealmente maior que o ZIL, escolha o segundo tipo mais rápido de dispositivo de blocos que puderes adquirir. Enterprise Flash SLC SSD, Enterprise Flash MLC SSD são bons exemplos. Na prática, não vale muito a pena usar discos rotativos para L2 ARC, devido à pouca diferença de ganho entre discos 15 Krpm e 7,2 Krpm e o trabalho extra de popular o L2 ARC. Avalie e teste com cuidado.
Como L2 ARC é exigido na leitura, aumente o desempenho usando vdevs como striped block devices. Infelizmente L2 ARC não pode ser espelhado ainda.
Para a área permanente do pool, discos mais lentos porém ainda confiáveis. Enterprise NL-SAS, Enterprise SATA 7,2 krpm ou mesmo 5,4 krpm podem ser suficientes. Avalie seu cenário.
Para a área permanente, se as outras recomendações foram seguidas, você pode testar se o desempenho em IOPS de RAIDZ1 ou 2 ou 3 ainda é suficiente. Verifique se possui poder de CPU suficiente para calcular paridade 1, 2 ou 3 vezes em pools com mais de 8 vdevs. Podes tentar um trade-off usando RAIDZ1 e aumentando número de spares e favorecendo o desempenho. Quanto maior o número de vdevs no RAIDZ, menor o gasto relativo de espaço em paridade. Mas aumenta o uso de CPU.
Se você não tem ZIL separado nem L2 ARC, precisará discos rápidos em configuração pool striped over mirror vdevs para maior IOPS. Inicie com pares de espelhos fazendo cada stripe. Similar a RAID 10. Designe sempre ao menos um spare disk para o pool.
Como assim vai gastar 50% do espaço bruto com espelhamento, dependendo do tamanho do pool pode ser vantajoso investir em discos melhores para o ZIL e L2 ARC. Faça as suas contas para seu cenário.
Não abra mão dos spare disks. O custo deles é muito inferior ao downtime de um pool em produção.
Repare na bibliografia que um spare disk acionado VOLTA a ser spare disk se o disco que falhou for fisicamente e depois logicamente substituído com os comandos apropriados.
Existem alguns consumer desktop grade RAM Drives na bibliografia. Mas não utilize em aplicações de missão crítica corporativas, pois nem usam ECC RAM.
Rede TCP 10 Gb/s ou Fiber Channel 8 Gb/s.
Leia a bibliografia recomendada.

Como adquirir ou montar seu ZFS Data Storage de alto desempenho

Conceitualmente, você precisará ter uma poderosa CPU com bastante ECC RAM conectada a um JBOD contendo dispositivos de blocos de variados tipos para formar o HSP.
Já visto como escolher e dimensionar em outros tópicos, precisará satisfazer pela ordem

  1. Fontes de alimentação e ventilação redundantes, enterprise grade.
  2. No-break, UPS.
  3. Muita, muita ECC RAM, com capacidade de expansão.
  4. muitos e rápidos núcleos de CPU,
  5. Quantos IOPS você precisa? Quantos discos são necessários para atingir isso? Em que configuração?
  6. discos enterprise de diferentes tamanhos e desempenhos respectivamente para ZIL, L2 ARC, área permanente, configurados em JBOD ou DAS.
  7. Múltiplas interfaces de rede TCP 10 Gb/s ou Fiber Channel 8 Gb/s.

Destine sua verba a satisfazer os requisitos pela ordem indicada, para maximizar resultados.
Não adiantarão muito discos rápidos se tiver pouca CPU ou pior, pouca RAM. Muita RAM pode até compensar discos bem mais lentos (vários “degraus” de velocidade), se contiver seu dataset ativo inteiro. Digamos 10 Krpm em vez de ECC RAM SSD. Mais poder de CPU pode compensar um “degrau” na velocidade dos discos. Por exemplo, investir em mais 4 núcleos e comprar discos enterprise de 10 Krpm em vez de 15 Krpm.
Você não precisa controladoras RAID, embora possam ser usadas para formar dispositivos de blocos para o ZFS criar os vdevs, pois o próprio ZFS gerencia tudo, inclusive o RAIDZ.
Para formar JBOD você poderia utilizar SAS Expanders ou controladoras RAID configuradas para DAS.
Poderia ainda adquirir gavetas de expansão de discos em rack, para conexão direta DAS a servidores.

Leia a bibliografia recomendada.

Data Storages e sistemas hardware e software prontos baseados em ZFS

http://www.sgi.com/products/storage/jbod/ SGI faz sistemas completos com NexentaStor, portanto tem o hw adequado *************
http://www.sgi.com/products/storage/servers/ SGI faz sistemas completos com NexentaStor, portanto tem o hw adequado *************
http://www.sgi.com/products/storage/ ***
http://www.compellent.com/Products/Hardware/zNAS.aspx Dell Compellent zNAS faz sistemas completos com NexentaStor, portanto tem o hw adequado *******
http://www.compellent.com/Community/Blog/Posts/2010/4/Compellent-zNAS.aspx ******
http://www.scherm.com.br/storage/scherm-nexenta-storage Scherm faz sistemas completos com NexentaStor, portanto tem o hw adequado ****
http://www.oracle.com/us/products/servers-storage/storage/nas/overview/index.html Oracle Sun StorageTek faz sistemas completos com Solaris, portanto tem o hw adequado ***
http://www.arcstorage.com/ faz sistemas completos com NexentaStor e Napp-It, enterprise
http://www.pogostorage.com/products/nexenta/overview/index.php

http://www.racktopsystems.com/products/brickstor/

http://www.infortrend.com/br/products/families/eonnas

http://www.infortrend.com/br/products/models/EonNAS%205120

http://www.getgreenbytes.com

http://www.pogostorage.com/products/nexenta/overview/index.php

http://www.aberdeeninc.com/abcatg/abersan-z30.htm

http://www.broadberry.co.uk/xlstore.php

http://blog.fosketts.net/2012/02/21/greenbytes-introduces-solidarity-allssd-storage-array/

http://blog.fosketts.net/2008/09/15/greenbytes-embraces-extends-zfs/

http://www.supernas.eu/ data storages com Napp-It

http://www.r2d-si.eu data storages com Napp-It

Cenário ZFS no Oracle Solaris

A Oracle atrasará o código de futuras versões do ZFS e do Solaris. Pretende liberar o código final num tar.gz gigante após alguns meses do lançamento de uma versão estável do Solaris. Enquanto isso, o povo poderá baixar uma ISO binária do Solaris Express.
A última em código realmente livre CDDL foi a versão de pool 28.
Em janeiro 2012 a Oracle já lançou Solaris com ZFS pool version 30.
http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html
Em junho 2012 encontramos o seguinte repositório que aparenta conter boa parte do código CDDL e outras licenças abertas do Solaris.
http://src.opensolaris.org/source/
http://oss.oracle.com/

Situação do Solaris e OpenSolaris

Em futuro artigo analisaremos este tópico com mais detalhes. Agora você pode ir se informando lendo os links para não ter de esperar.

Comunicado da Dell Compellent sobre o futuro do código ZFS:http://www.compellent.com/Community/Blog/Tags/zNAS.aspx

http://sstallion.blogspot.com.br/2010/08/opensolaris-is-dead.html memorando oracle sobre os rumos opensolaris
http://gdamore.blogspot.com.br/2010/08/tap-is-turned-off.html ***
http://www.theregister.co.uk/2010/06/21/oracle_opensolaris_solaris_plans/
http://utcc.utoronto.ca/~cks/space/blog/solaris/ClosedSourceSolaris
http://www.oracle.com/technetwork/opensource/index.html source code for the legally obliged files . it does not boot! ******************
http://www.napp-it.org/doc/downloads/napp-it.pdf contém um bom resumo da situação e análise do cenário em março 2012
http://www.napp-it.org/napp-it/all-in-one/index_en.html

Sistemas operacionais alternativos suportando ZFS

Em futuro artigo analisaremos este tópico com mais detalhes. Alguns vão merecer artigos próprios. Agora você pode ir se informando lendo os links para não ter de esperar.

http://openindiana.org/ sucessor do finado OpenSolaris
http://www.nexentastor.org
http://www.nexenta.com/corp/downloads/nexentastor-download
http://www.napp-it.org/index_en.html perl interface gráfica storage para openindiana, similar nexentastor.
http://illumian.org/ ***
http://sites.google.com/site/eonstorage/faq
http://freebsd.org/
http://www.debian.org/ports/kfreebsd-gnu/ atenção que Debian 6.0.x suporta zpool V15, e Debian 7.x suporta zpool V28, o mesmo do zfs-fuse e último livre.
http://wiki.debian.org/Debian_GNU/kFreeBSD
http://wiki.smartos.org/display/DOC/working+area
http://nexenta.com/corp/component/content/article/21-nexentastor-faq/157-faq-difference-between-versions

http://omnios.omniti.com/

http://wiki.illumos.org/display/illumos/Distributions

Cenário ZFS nos sistemas operacionais alternativos

Se você já leu a bibliografia recomendada, já sabe que os principais desenvolvedores originais do ZFS saíram da agora Oracle e estão em outras empresas, como a Joyent e Nexenta. A ideia é integrar esforços sob o guarda-chuva do Projeto Illumos, que contém vários subprojetos específicos para as necessidades dos vários patrocinadores e voluntários.
Pretendem integrar esforços com o desenvolvimento da Oracle, mas se isso se demonstrar inviável na prática, poderão seguir rumos distintos.
OpenIndiana objetiva continuar binariamente compatível com Solaris. Se a Oracle cumprir o anunciado de publicar o código fonte “algum” tempo depois do lançamento de novas versões do Solaris, podem conseguir.

Qual utilizar?

Dependerá muito dos seus requisitos e dos conhecimentos prévios também.
Numa futura série de artigos sobre ZFS Data Storages, abordaremos com mais detalhes sobre OpenIndiana com Napp-It, Illumian com Napp-It, NexentaStor, Debian GNU/kFreeBSD, SmartOS, FreeBSD, zfsonlinux e zfs-fuse. São os que se enquadram mais nas necessidades corporativas em cenários específicos. Talvez abordemos NAS4Free, OpenMediaVault, ZFSguru e FreeNAS.

Bibliografia

http://en.wikipedia.org/wiki/ZFS
http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq ***
http://hardforum.com/showthread.phpt=1500505 ****
http://docs.oracle.com/cd/E19082-01/817-2271/ Solaris ZFS administration guide ****
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide ****
http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide ********
http://hub.opensolaris.org/bin/view/Community+Group+zfs/source
http://hub.opensolaris.org/bin/view/Community+Group+zfs/
http://www.racktopsystems.com/data-storage-features/zfs/ simply explained ***
http://www.freenas.org/images/resources/freenas8.0.3/freenas8.0.3_guide.html#__RefHeading__6814_100396174
http://comments.gmane.org/gmane.os.solaris.opensolaris.zfs/35630 *
http://markmail.org/thread/yk5rybr4fxqgsvzw ZLE zero lenght encoding necessário para deduplicação.
https://blogs.oracle.com/jsavit/entry/deduplication_now_in_zfs
http://lists.freebsd.org/pipermail/freebsd-current/2007-April/070616.html muitas dicas ***
http://groups.google.com/a/zfsonlinux.org/group/zfs-discuss/browse_thread/thread/d6ff64f92984c7d4 *** ZVOL podem ser apresentados como dispositivos de blocos a formatar, mas com recursos do zfs.
http://xen.1045712.n5.nabble.com/Debian-DomU-on-ZFS-td4801420.html zvol **
http://www.coastlinemicro.com/zforce/index.htm
https://blogs.oracle.com/studler/entry/zfs_and_the_hybrid_storage *
http://www.cloudscaling.com/blog/cloud-computing/technology/storage-storage-storage/ **
https://www.illumos.org/ sucessor dos finados NexentaOS e OpenSolaris, servindo de base ao OpenIndiana
http://openindiana.org/ ***
http://www.nexenta.com/corp/nexentastor-download *
http://nexenta.com/corp/blog/
http://www.livingonthecloud.net/2011/01/nexentastor-community-edition-first.html
http://greg.porter.name/wordpress/p=590
http://www.livingonthecloud.net/2011/01/nexentastor-community-edition.html benchmarking ****
http://www.livingonthecloud.net/2011/01/nexentastor-community-edition_18.html benchmarking compression deduplication ********
http://www.nexentastor.org/ **** Nexenta é parceira Citrix
http://www.vmware.com/appliances/directory/uploaded_files/NexentaStor-QuickStart.pdf **
http://support.citrix.com/article/CTX123996
http://www.citrix.com/English/ps2/products/subfeature.aspcontentID=1681139 un/supported OS
http://www.citrix.com/English/ps2/products/subfeature.aspcontentID=1681139 Solaris roda não oficial no XenServer
http://community.citrix.com/display/xs/The+Operation+of+Unsupported+Guests+on+XenServer+5.5+and+5.6FreeBSD no XenServer *******
http://www.enterprisestorageforum.com/technology/features/article.php/3849556/10-Reasons-Why-ZFS-Rocks.htm
http://sun.systemnews.com/articles/130/3/Intel/21025
http://lildude.co.uk/zfs-cheatsheet ****
http://www.eall.com.br/blog/page_id=588 zfs internals **********
https://blogs.oracle.com/timthomas/entry/creating_zfs_file_systems_from
http://www.opencsw.org/about/ solaris open source sw packages
http://www.blastwave.org/ solaris open source sw packages
http://mail.opensolaris.org/pipermail/zfs-discuss/2009-November/034154.html
http://constantin.glez.de/blog/2010/02/seven-useful-opensolaris-zfs-home-server-tips ****
http://adsm.org/forum/showthread.php10281-Anyone-using-ZFS-with-TSM **
http://xteams.oit.ncsu.edu/iso/zpool_port
http://lildude.co.uk/zfs-cheatsheet
http://docs.oracle.com/cd/E19082-01/819-2240/zfs-1m/index.html
https://blogs.oracle.com/roch/entry/nfs_and_zfs_a_fine why and when synchronous writes are important
http://www.nasstorageserver.com/
http://harryd71.blogspot.com.br/2010/05/freenas-vs-nexentastor.html
http://eonstorage.blogspot.com.br/2009/11/using-napp-it-webadmin-with-your-eon.html
http://eonstorage.blogspot.com.br/
https://blogs.oracle.com/constantin/entry/x4500_solaris_zfs_iscsi_perfect
http://wiki.joyent.com/display/jpc2/The+Joyent+Linux-to-SmartOS+Cheat+Sheet *****
https://blogs.oracle.com/roch/entry/dedup_performance_considerations1
http://docs.huihoo.com/opensolaris/solaris-zfs-administration-guide/html/ch04s04.html
http://www.oracle.com/webfolder/technetwork/hcl/overview.html ****************
http://docs.oracle.com/cd/E19253-01/819-5461/gazss/index.html ZFS properties
http://osholes.blogspot.com.br/2008/07/zfs-volume-copy-and-os-imaging-reborn.html
http://www.markround.com/archives/37-ZFS-as-a-volume-manager.html ***
http://hub.opensolaris.org/bin/view/Project+pkg/WebHome Image Packaging System
http://www.eall.com.br/blog/?p=1844 L2 ARC not mirrored *******
http://researchblogs.cs.bham.ac.uk/specialist-computing/2012/05/configuring-the-storage-pools-building-an-openindiana-based-zfs-file-server-part-4/ L2 ARC not mirrored, automatic snapshots ****
http://docs.oracle.com/cd/E19082-01/817-2271/gavwn/index.html ***
http://www.filibeto.org/~aduritz/truetrue/solaris10/zfs/ZFSNinja-Slides.pdf
http://hardforum.com/showthread.php?t=1593111&page=4 L2 ARC failures
http://hardforum.com/showpost.php?p=1037889274&postcount=16 scrub and integrity
http://hardforum.com/showthread.php?p=1037889274#post1037889274 bit rot
http://www.storage-switzerland.com/Articles/Entries/2009/9/10_What_is_OpenStorage_and_ZFS.html ****
http://www.abiquo.com/news-and-events/nexenta.php
http://storagegaga.wordpress.com/tag/zfs/ ****
http://storagegaga.wordpress.com/2011/10/01/ontap-vs-zfs/

http://www.racktopsystems.com/12-reasons-zfs-in-2012/ *

http://rudd-o.com/linux-and-free-software/ways-in-which-zfs-is-better-than-btrfs ***

https://news.ycombinator.com/item?id=4356053 comments to the article ways in which zfs is better than btrfs

http://www.vivaolinux.com.br/artigo/OpenSolaris-Sistema-Operacional-Open-Source?pagina=9 ******

http://www.nex7.com/readme1st *******

http://www.googlux.com/zfshogs.html

http://snltd.co.uk/scripts/zfs.php

https://blogs.oracle.com/erwann/entry/zfs_on_the_desktop_zfs zfs snapshot desktop visualization tool

http://docs.oracle.com/cd/E23823_01/html/817-5093/disksxadd-2.html#disksxadd-40

http://backintime.le-web.org/category/news/ linux similar sw to Mac OSX timemachine

http://solarisbackupandstorage.wordpress.com/2011/07/22/solaris-zfs-arc-mechanism-3/ ****
http://hlangeveld.blogspot.com.br/2007/01/adaptive-replacement-cache-in-zfs.html **

http://lwn.net/Articles/459754/ smartos virtualization features description and zfs

Hybrid storage pools

http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide#Hybrid_Storage_Pools_.28or_Pools_with_SSDs.29
https://blogs.oracle.com/studler/entry/zfs_and_the_hybrid_storage
http://www.eall.com.br/blog/p=701 ZIL
https://blogs.oracle.com/brendan/entry/test ***
https://blogs.oracle.com/ahl/entry/hybrid_storage_pools_in_cacm
https://github.com/pjjw/logfix
http://mail.opensolaris.org/pipermail/zfs-discuss/2010-August/044205.html
http://www.unix.com/solaris/141343-import-zpool-missing-slog-device.html
http://comments.gmane.org/gmane.os.solaris.opensolaris.zfs/38950
http://forums.freebsd.org/archive/index.php/t-18221.html
https://blogs.oracle.com/ds/entry/add_and_remove_zils_live
http://www.oracleimg.com/technetwork/issue-archive/2011/11-sep/o41storage-400446.html ******

http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/data-storage-solutions-paper.pdfresultados da intel com thin provisioning, tiered storage, deduplicação *****************

RAM drives e SLC Flash Drives

http://www.observium.org/wiki/Persistent_RAM_disk_RRD_storage workaround using tmpfs sync to disk
http://www.stec-inc.com/product/zeusram.php RAM SSD enterprise
http://www.ddrdrive.com/zil_accelerator.pdf ********
http://www.ramsan.com ******************
http://www.servix.com/ revendedor RamSan ******
http://www.dell.com/br/corporativo/p/fusion-io-drive ****
http://www.storagereview.com/fusionio_iodrive_duo_review_640gb ***
http://techreport.com/articles.x/16255 ACard's ANS-9010 Serial ATA RAM disk review ****
http://www.acard.com/english/fb0101.jsptype1_title=SATA%20RAM%20Disk%20&ino=28 not enterprise (no ECC) **
http://www.theregister.co.uk/2011/01/14/ocz_and_ddrdrive_performance_row/ **
http://gizmodo.com/5241079/ddrdrives-x1-ssd-is-superfast-and-superexpensive **
http://www.fusionio.com/platforms/iodrive2-duo/ ***
http://www.curtisssd.com/products_curtis/drives/hyperhd/
http://www.hyperossystems.co.uk/ not enterprise (no ECC) **
http://en.wikipedia.org/wiki/Hyperdrive_(storage) **
http://www.hyperossystems.co.uk/07042003/hardware.htm ****
http://arstechnica.com/business/2011/11/can-dram-replace-hard-drives-and-ssds-ramcloud-creators-say-yes/
http://www.tomshardware.com/reviews/hyperos-dram-hard-drive-block,1186.html
http://en.wikipedia.org/wiki/Solid-state_drive
http://en.wikipedia.org/wiki/I-RAM
http://www.anandtech.com/show/1742
http://www.gigabyte.com/products/product-page.aspxpid=2180#fq descontinuado
http://www.hardware.com.br/tutoriais/entendendo-ssd/hibridos-aceleradores-ram.html
http://www.tomshardware.com/reviews/ssd-storage-value,3184.html **
http://www.stec-inc.com/enterprisessd/ ****
http://www.stec-inc.com/ ***
https://blogs.oracle.com/ahl/entry/ddrdrive *
http://techreport.com/articles.x/9312/1 Gigabyte's i-RAM storage device (descontinuado)
http://www.storagereview.com/corsair_vengeance_ddr3_ram_disk_review

SLC Flash SSD drives

http://en.wikipedia.org/wiki/Multi-level_cell comparison MLC SLC
http://www.oracle.com/us/products/servers-storage/storage/flash-storage/f20/overview/index.html enterprise ****
http://www.oracle.com/us/products/servers-storage/storage/flash-storage/ssd/features/index.html enterprise ***
http://www.oracle.com/us/products/servers-storage/storage/flash-storage/f5100/overview/index.html enterprise *****
http://www.oracle.com/us/products/servers-storage/storage/flash-storage/overview/index.html enterprise *********
http://www.oracle.com/us/products/servers-storage/storage/nas/overview/index.html enterprise, sistemas prontos storage Solaris ZFS
http://www.oracle.com/us/products/servers-storage/storage/nas/zfs7120/overview/index.html enterprise
http://www.violin-memory.com/products/6000-flash-memory-array/ enterprise
http://www.violin-memory.com/products/vshare-san-attached/ enterprise SAN
http://www.lsi.com/channel/products/storagecomponents/Pages/WarpDriveSLP-300.aspx
http://www.ocztechnology.com/ocz-revodrive-3-x2-pci-express-ssd.html
http://www.storagereview.com/ocz_zdrive_r4_ssd_review
http://www.storagereview.com/lsi_warpdrive_slp300_review
http://www.ramsan.com/products/pcie-storage/ramsan-70
http://storage.dataram.com/ enterprise **
http://www.storagereview.com/pure_storage_flasharray_300_series_available_now enterprise, com recursos zfs

http://www.redbooks.ibm.com/abstracts/redp4807.html?Open IBM exFlash drives

JBOD

http://www.sgi.com/products/storage/jbod/ SGI faz sistemas completos com NexentaStor, portanto tem o hw adequado *************
http://www.sgi.com/products/storage/servers/ SGI faz sistemas completos com NexentaStor, portanto tem o hw adequado *************
http://www.sgi.com/products/storage/ ***
http://www.compellent.com/Products/Hardware/zNAS.aspx Dell Compellent zNAS faz sistemas completos com NexentaStor, portanto tem o hw adequado *******
http://www.compellent.com/Community/Blog/Posts/2010/4/Compellent-zNAS.aspx ******
http://www.scherm.com.br/storage/scherm-nexenta-storage Scherm faz sistemas completos com NexentaStor, portanto tem o hw adequado ****
http://www.redbooks.ibm.com/redbooks/pdfs/sg245465.pdf
http://www.dell.com/br/corporativo/p/disk-expansion-enclosures **
http://support.dell.com/support/edocs/storage/RAID/PERC5/en/UG/HTML/index.htm
http://support.dell.com/support/systemsinfo/documentation.aspxc=us&cs=04&l=en&s=bsd&~subcat=41&~cat=6*
http://www.mail-archive.com/zfs-discuss@opensolaris.org/msg48570.html ****
http://www.kioskbrasil.com.br/produtos_detalhes.phpid_departamento=22&id_subdepartamento=284&id_fabricante=140&id=2323
http://www-03.ibm.com/industries/ca/en/education/k12/technical/whitepapers/storagenetworking.pdfDemystifying Storage Networking DAS, SAN, NAS, NAS Gateways ****
http://publib.boulder.ibm.com/infocenter/svc/ic/topic/com.ibm.storage.svc.console.doc/svc_rulescontrollers_223fnc.htmlExternal storage-system configuration details *
http://www.areca.com.tw/products/6gsasjbod.htm *****

DAS to build JBOD

http://www.dell.com/br/empresa/p/powervault-md32x0-series/pd
http://www.dell.com/br/empresa/p/powervault-md1200/pd
http://www.scherm.com.br/storage/scherm-jbod
http://www.raidon-usa.com/product_detail.phpproduct_name=J4-4S-SB3%28USB+3.0%29&p_id=78
http://www.raidon-usa.com/product_detail.phpproduct_name=SL7280-8S-L4D&p_id=95
http://www.raidon-usa.com/product_detail.phpproduct_name=SL7650-4S-L4D&p_id=97

SAS expanders to build JBOD

http://www.sasexpanders.com/ ***************
http://www.servethehome.com/sas-expanders-diy-cheap-low-cost-jbod-enclosures-raid/ ********
http://www.servethehome.com/sas-expanders-build-jbod-das-enclosure-save-iteration-2/ *******
http://www.amazon.com/Hewlett-Packard-Options-Expander-Controller/dp/B005M0JXMY/ref=pd_sim_sbs_e_5/185-8685593-0597719
http://www.adaptec.com/en-us/_whitepapers/tech/sas/sas_expanders_wp.htm ****
http://www.storageforum.net/forum/showthread.php/8012-HP-SAS-Expander **
http://pmcs.com/products/storage/sas_expanders/pm8005/ ****
http://www.pc-pitstop.com/sas_expanders/ ****
http://h10010.www1.hp.com/wwpc/br/pt/sm/WF06b/12169-304616-3930445-3930445-3930445-3954787-5158425.htmldnr=1&jumpid=reg_r1002_brpt&lang=pt&cc=br Compartimentos de disco HP StorageWorks D2000 (QK766A) - Especificações
http://h20195.www2.hp.com/v2/default.aspxcc=br&lc=pt&oid=5158425 HP D2600 w/6 3TB 6G SAS 7.2K LFF Dual port MDL HDD 18TB Bundle (QK766A) - Documentação de produto
http://www8.hp.com/br/pt/products/disk-enclosures/product-detail.htmloid=4021628 Compartimento de disco HP D2600 (AJ940A)
http://h18000.www1.hp.com/products/quickspecs/13404_div/13404_div.html HP D2000 Disk Enclosures specs
http://www.lsi.com/products/storagecomponents/Pages/LSISAS2x36.aspx *
http://www.areca.com.tw/products/sascableexpander.htm ****
http://www.newegg.com/Product/Product.aspxItem=N82E16816117207 intel ****
http://www.newegg.com/Product/Product.aspxItem=N82E16816117157
http://www.addonics.com/products/adsa3gpx8-4e.php

SAS switch to build JBOD

http://www.lsi.com/products/storagecomponents/Pages/LSISAS6160Switch.aspx

SAS RAID to build JBOD

http://www.adaptec.com/en-us/products/controllers/hardware/sas/entry/sas-6805e/

ZFS remote mirror and replication

https://blogs.oracle.com/chrisg/entry/zfs_pool_in_an_iscsi
https://blogs.oracle.com/chrisg/entry/rolling_incremental_backups
https://blogs.oracle.com/erickustarz/en_US/entry/zfs_on_a_laptop substituido pelo rolling incremental backups
https://blogs.oracle.com/chrisg/entry/zfs_remote_replication **
http://docs.oracle.com/cd/E19082-01/817-2271/gbchx/index.html *****
http://blog.smartcore.net.au/zfs-remote-replication-script/
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide *******
http://www.markround.com/archives/38-ZFS-Replication.html ****
http://phillipcooper.co.uk/2011/12/zfs-replication/ ***
http://doc.freenas.org/index.php/Replication_Tasks
http://linux.turbolinux.org/tutorial/zfs-replication-marks-blog/

ZFS RAID-Z

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/filesystems-zfs.html

IOPS needed: RAID-Z, mirror, striping, mixing all

https://blogs.oracle.com/roch/entry/when_to_and_not_to **
http://sites.google.com/site/eonstorage/zpool_notes *****
You see: Whenever the keywords "mirror", "raidz", "raidz2", "raidz3" etc. show up in a zpool command, a new vdev is created out of the disks that follow the keyword.
And in all cases, a ZFS pool is always a stripe of vdevs, no matter what.
http://constantin.glez.de/blog/2010/06/closer-look-zfs-vdevs-and-performance ****
https://blogs.oracle.com/relling/entry/zfs_raid_recommendations_space_performance ***
http://constantin.glez.de/blog/2010/01/home-server-raid-greed-and-why-mirroring-still-best ******
http://lists.freebsd.org/pipermail/freebsd-geom/2009-June/003597.html
http://www.eall.com.br/blog/p=2481
http://eonstorage.blogspot.com.br/2010/03/whats-best-pool-to-build-with-3-or-4.html

Sun StorageTek Availability Suite (AVS)

http://hub.opensolaris.org/bin/view/Project+avs/WebHome
http://www.oracle.com/technetwork/documentation/storage-software-245737.html
http://hub.opensolaris.org/bin/view/Project+nws/

Desempenho e Cyrus

http://nsayer.blogspot.com.br/2011/02/zfs-and-cyrus.html
http://lists.andrew.cmu.edu/pipermail/info-cyrus/2010-August/033280.html
http://lists.andrew.cmu.edu/pipermail/info-cyrus/2007-May/025974.html
http://www.spinics.net/lists/info-cyrus/msg14311.html
http://comments.gmane.org/gmane.mail.imap.cyrus/35878
https://wiki.umbc.edu/display/CIG/Cyrus+Backend+Instance+Configuration **
http://www.irbs.net/internet/info-cyrus/0707/0026.html
http://openindiana.org/pipermail/openindiana-discuss/2011-July/004773.html
http://www.sysadmin-cookbook.net/cyrus-imap/
http://www.markround.com/archives/35-ZFS-and-caching-for-performance.html *****

ZFS snapshots

http://eternity.iu.hio.no/theses/master2009/martin.pdf ***********
http://letsgetdugg.com/2010/03/30/automated-zfs-snapshots/ ***
http://automatthias.wordpress.com/2008/10/20/accessing-zfs-snapshots/
http://www.cs.arizona.edu/computing/accounts/zfs-snapshots.html
http://docs.oracle.com/cd/E18752_01/html/819-5461/gbcxz.html clones
http://compgroups.net/comp.unix.solaris/can-i-create-zfs-snapshots-on-another-pool/192940
http://houdini68.blogspot.com.br/2009/03/sparse-zones-cloning-and-zfs.html sparse
http://www.googlux.com/zfs-snapshot.html *

ZFS tuning

http://wiki.freebsd.org/ZFSTuningGuide ******
http://dtrace.org/blogs/brendan/2012/01/09/activity-of-the-zfs-arc/ *****
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide *****
http://en.wikipedia.org/wiki/Adaptive_replacement_cache ****
http://www.cuddletech.com/blog/pivot/entry.phpid=979 arcsummary
http://ptribble.blogspot.com.br/2008/08/jkstat-meets-zfs-arc.html
http://www.c0t0d0s0.org/archives/5329-Some-insight-into-the-read-cache-of-ZFS-or-The-ARC.html *****
http://blog.harschsystems.com/2010/09/08/arcstat-pl-updated-for-l2arc-statistics/ *********
http://jhell.googlecode.com/files/arcstat.pl arcstat para freebsd
https://github.com/mharsch/arcstat arcstat para freebsd com l2arc ****
https://blogs.oracle.com/brendan/entry/test zfs l2arc ****
http://nilesh-joshi.blogspot.com/2010/07/zfs-revisited.html Understanding ZFS & ZFS ARC/L2ARC
http://constantin.glez.de/blog/2011/02/frequently-asked-questions-about-flash-memory-ssds-and-zfs ZIL and L2ARC dimensioning *****
http://www.zfsbuild.com/2010/04/15/explanation-of-arc-and-l2arc/ L2ARC needs 2% of main memory, read comment 10 **********
http://hardforum.com/showthread.phpt=1591181
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/fs/zfs/arc.c ****
http://gestaltit.com/all/tech/storage/stephen/zfs-c0t0d0s0/
http://www.richardelling.com/Home/scripts-and-programs-1/zilstat ***********
http://cuddletech.com/arc_summary/ ********
http://www.eall.com.br/blog/p=1844 L2ARC redundancy
http://serverfault.com/questions/168326/zfs-and-cache-devices ******
https://blogs.oracle.com/realneel/entry/zfs_arc_statistics ***
http://www.c0t0d0s0.org/archives/5343-Insights-into-ZFS-today-The-nature-of-writing-things.html *************
https://blogs.oracle.com/realneel/ many artcles and hints
https://blogs.oracle.com/realneel/entry/ssds_for_performance_engineers
http://www.anandtech.com/show/3963/zfs-building-testing-and-benchmarking/11 many experienced hints *******
http://www.zfsbuild.com/ *****
http://www.markround.com/archives/35-ZFS-and-caching-for-performance.html ******
http://www.zfsbuild.com/2010/10/09/nexenta-core-platform-benchmarks/ **
http://www.zfsbuild.com/2010/07/30/testing-the-l2arc/ ****
https://blogs.oracle.com/roch/entry/doubling_exchange_performance ************
https://blogs.oracle.com/roch/category/ZFS **********************
http://forums.freebsd.org/showthread.phpt=26587 comparisons at article bottom ********************
https://blogs.oracle.com/roch/entry/using_zfs_as_a_network ssd in zfs ****
http://cuddletech.com/blog/p=407
http://www.zfsbuild.com/2010/06/03/howto-zfs-add-log-drives-zil ****
http://www.zfsbuild.com/2010/06/03/howto-add-cache-drives-to-a-zpool/ ****
https://blogs.oracle.com/roch/entry/when_to_and_not_to when to use or not use RAIDZ
https://blogs.oracle.com/ds/entry/add_and_remove_zils_live how remove ZIL drives **************
http://www.tummy.com/journals/users/jafo/entryindex_start0_count25.html
http://storagemojo.com/2006/08/15/zfs-performance-versus-hardware-raid/
http://constantin.glez.de/blog/2010/04/ten-ways-easily-improve-oracle-solaris-zfs-filesystem-performance**************************
http://serverfault.com/questions/341552/zfs-redistribute-zvol-over-all-disks-in-the-zpool *******
http://docs.oracle.com/cd/E19253-01/819-5461/gfgaa/index.html Setting Up Separate ZFS Log Devices ******
http://constantin.glez.de/blog/2010/07/solaris-zfs-synchronous-writes-and-zil-explained **
http://hardforum.com/showthread.phpt=1577141
http://www.zfsbuild.com/
http://www-958.ibm.com/software/data/cognos/manyeyes/visualizations/new/bar-chart/zfs-xfs-and-ext4-filesystems-compa/1
http://www.zfsbuild.com/2012/04/18/let-zfs-use-all-of-your-ram/ ******

ZFS Deduplication table

http://www.c0t0d0s0.org/archives/7271-ZFS-Dedup-Internals.html
http://hub.opensolaris.org/bin/view/Community+Group+zfs/dedup
http://constantin.glez.de/blog/2011/07/zfs-dedupe-or-not-dedupe
https://blogs.oracle.com/roch/entry/dedup_performance_considerations1

Replace failed disks and hot spare disks

http://prefetch.net/blog/index.php/2007/02/14/replacing-failed-disk-drives-in-a-zfs-pool/
http://docs.oracle.com/cd/E19082-01/817-2271/ghzvx/index.html
http://docs.oracle.com/cd/E19253-01/819-5461/gcvdi/index.html
http://docs.oracle.com/cd/E19082-01/817-2271/gbbzy/index.html
http://docs.oracle.com/cd/E19253-01/819-5461/gbcet/index.html

RAID 10 X RAID 01

http://aput.net/~jheiss/raid10/ **********
http://decipherinfosys.wordpress.com/2008/01/15/difference-between-raid-01-vs-raid-10/
http://www.stringliterals.com/?p=161 ZFS Performance – RAIDZ vs RAID 10