Eu construo um servidor de arquivos FreeBSD doméstico usando o ZFS.
É um AMD X2 3200+ com 3 GB de RAM. Possui um PCI Express Gig-E. A unidade de inicialização é antiga, de 400 GB e eu tenho 4 unidades de 750 GB Seagte (uma com uma versão diferente do firmware, apenas no caso).
Iniciar o ZFS seria bom (tornaria a instalação mais simples), mas eu usei as instruções do ZFSOnRoot para configurar a unidade Root / OS com o ZFS (se todas as partições forem ZFS, não será necessário executar um fsck na inicialização para verificar os sistemas de arquivos UFS). O motivo pelo qual você deseja isso é que você pode configurar todas as suas partições (/ var, / usr, / tmp, etc.) com diferentes opções conforme necessário (como noatime e async para / usr / obj, o que acelerará o kernel compilações), mas todos compartilharão espaço de um pool comum. Em seguida, você pode configurar uma unidade de dados e fornecer a cada usuário uma partição própria (com cotações e configurações diferentes). Você pode tirar instantâneos (que são de baixo custo no ZFS).
My home server has a df that looks like:
/dev/ad0s1a 1.9G 744M 1.1G 41% /
devfs 1.0K 1.0K 0B 100% /dev
dozer/data 1.8T 62G 1.7T 3% /data
dozer/home 1.7T 9.6G 1.7T 1% /home
dozer/home/walterp 1.9T 220G 1.7T 11% /home/walterp
tank/tmp 352G 128K 352G 0% /tmp
tank/usr 356G 4.4G 352G 1% /usr
tank/var 354G 2.2G 352G 1% /var
Em termos de desempenho, copiar arquivos é muito rápido. A única coisa que gostaria de observar é que tenho usado o ZFS nos sistemas FreeBSD AMD64 com 3-4 GB e funcionou bem, mas pela minha leitura, eu estaria preocupado em executá-lo em um sistema i386 com 2 GB ou mais. menos memória.
Eu fiquei sem portas SATA na placa-mãe, então não tentei adicionar nenhuma nova unidade. A configuração inicial era simples, um comando para criar o RAIDZ e, em seguida, o comando para criar / home, que foi formatado em segundos (IIRC). Ainda estou usando a versão mais antiga do ZFS (v6), por isso tem algumas limitações (não requer unidades de tamanho igual, mas, diferentemente de um Drobo, se você tivesse 3 unidades de 750 GB e 1 TB, o resultado final será como se você tivesse 4 unidades de 750 GB).
Uma das grandes razões pelas quais usei o ZFS com o RAIDZ foram as somas de verificação de ponta a ponta. O CERN publicou um documento que documentou um teste que eles fizeram, onde encontraram mais de 200 erros de leitura não corrigidos durante a execução de um teste de R / W durante um período de algumas semanas (espera-se que o ECC em unidades de varejo tenha uma falha a cada 12 TB de leitura). Eu gostaria que os dados no meu servidor estivessem corretos. Tive uma falha grave devido a uma falta de energia (alguém sobrecarregou o no-break conectando um aquecedor de ambiente), mas quando o sistema pode voltar, o ZFS voltou rapidamente, sem os problemas padrão do fsck.
Eu gosto, porque eu poderia adicionar o CUPS ao Samba para obter um servidor de impressão. Adicionei um cache DNS e posso adicionar outro software que eu queira (estou pensando em adicionar o monitoramento SNMP aos desktops da minha casa para medir o uso da largura de banda). Pelo que gastei no sistema, tenho certeza de que poderia comprar uma caixa NAS barata, mas não teria uma caixa Unix local de 64 bits para brincar. Se você gosta do FreeBSD, eu diria que vá com ele. Se você preferir o Linux, recomendo uma solução Linux. Se você não quer fazer nenhuma administração, é quando eu iria para a caixa NAS autônoma.
Na minha próxima rodada de atualizações de hardware, estou planejando atualizar o hardware e instalar a versão atual do FreeBSD, que possui o ZFS v13. V13 é legal porque eu tenho um disco de RAM com backup de bateria que posso usar para o log do ZIL (isso faz com que as gravações gritem). Ele também suporta o uso de SSDs para acelerar o servidor de arquivos (as especificações dos novos Sun File Servers são agradáveis e as obtêm de um sistema ZFS que usa SSD para tornar o sistema muito rápido).
EDIT: (Não é possível deixar comentários ainda). Eu praticamente segui as instruções em http://www.ish.com.au/solutions/articles/freebsdzfs . A única grande mudança que existe no 7.X desde que essas instruções foram escritas foi a 7.2, e se você tiver mais de 2 GB, não deverá adicionar as três linhas a seguir no /boot/loader.conf:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
As instruções também explicam como criar um espelho e como colocar o sistema novamente no modo de recuperação (montado com o ZFS). Depois de jogar suas instruções uma ou duas vezes, usei o manual de administração do ZFS da Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf para entender melhor o que era o ZFS. Para criar meu repositório de dados, usei uma versão modificada do comando na página 91 para criar pools do ZFS. Sendo o FreeBSD, tive que fazer uma pequena alteração:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Onde ad4-ad10 foi encontrado ao executar dmesg | grep 'ata. * Master', esses são os nomes dos discos rígidos SATA no sistema que serão usados para a partição de big data. Na minha placa-mãe, as três primeiras portas ata (ad0-3) onde as 4 portas PATA e, em seguida, como cada porta SATA é mestre, não há números antigos.
Para criar o sistema de arquivos, eu apenas fiz:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
O segundo comando é necessário porque eu desativei os pontos de montagem padrão para compartilhamentos.
Introdução: finalmente construí meu sistema, e aqui estão minhas anotações, caso isso ajude outras pessoas.
Metas:
Especificações:
Projeto:
Usamos o ZFS como sistema de arquivos, pois ele recebeu críticas tão favoráveis. O ZFS exige que rodemos um sistema operacional de 64 bits e goste de muita memória; portanto, devo obter um mínimo de 4Gb
Hardware:
ABS Aplus Caixa preta para computador com torre ATX de aço SECC Steel Monolith preto - 1 @ $ 69,99 http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital Caviar Green WD5000AADS 500 GB SATA 3.0Gb / s Disco rígido de 3,5 "6 @ $ 347,94 ($ 57,99 cada) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 - Ventilador com caixa LED de 120 mm 4 branco - 1 @ $ 8,99 http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
Unidade de DVD-ROM IDE preta LITE-ON Modelo iHDP118-08 - 1 @ $ 19,99 http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Crucial 4 GB (2 x 2 GB) SDRAM DDR2 de 240 pinos DDR2 800 (PC2 6400) CT2KIT25664AA800 - 1 @ $ 45,99 http://www.newegg.com/Product/Product.aspx?Item=N82E16820148160
Placa-mãe AMD GIGABYTE GA-MA74GM-S2 AM2 + / AM2 AMD 740G Micro ATX AMD - 1 @ $ 54.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16813128342
Cabo OKGEAR de 18 pol .
AMD Athlon 64 X2 5050e Brisbane 2.6 GHz Soquete AM2 45W Processador de núcleo duplo ADH5050DOBOX - 1 @ $ 62,99 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103298
Fonte de alimentação KINGWIN Mach 1 ABT-1000MA1S 1000W ATX / BTX - 1 @ $ 199.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16817121037
Unidade IDE Seagate de 400 GB - 1 @ (tinha no armário), mas uma unidade IDE de 80 GB custa cerca de US $ 37,00 e 80 GB é mais que suficiente.
Suporte adaptador para disco rígido IDE para caber em um compartimento de cinco polegadas - 1 @ ~ $ 17.00
Envio - 1 @ ~ $ 35,00
Software: FreeBSD 7.2 - 1 @ $ 0.00 http://www.freebsd.org/
Custo total: $ 874.81
Configuração de hardware: Uma construção básica do computador, com três problemas menores.
O gabinete que comprei tinha slots para 6 discos rígidos e duas baias de 3,5. Presumi que o IDE pudesse caber em uma das 3,5 baias. Essa era uma suposição ruim e não havia uma maneira razoável de fazê-la funcionar. Fui e comprei um adaptador na Fry's por ~ $ 17,00, e funcionou bem.
Os cabos Sata que comprei tinham conectores de 90 graus, o que foi legal, exceto com seis unidades, não havia como fazer o trabalho. Ao conectar um cabo, a parte inflexível do conector ficou pendurada no próximo disco rígido. Eu tive que ir ao Fry e por 5 cabos SATA regulares. Infelizmente, os que comprei em Newegg eram tão baratos que não vale a pena enviá-los de volta.
O gabinete aponta a parte traseira dos discos rígidos para o lado do gabinete, e os cabos de energia da fonte de alimentação têm um conector rígido que se destaca na borda do gabinete. Isso não me permitiu deslizar a tampa lateral de volta no lugar. Eu tive que brincar um pouco para fazê-lo funcionar e, eventualmente, acabei com os dois cabos de alimentação modulares (eles têm quatro plugues SATA em cada) intercalados entre as unidades, para que o primeiro cabo alimentado 0, 2 e 4, e o segundo alimentou 1, 3 e 5. Isso permitiu flexão suficiente para que eu pudesse tirá-los do caminho.
Configuração do SO:
Gravei o ISO do FreeBSD 7.2 em CD. Eu poderia ter usado o único DVD, mas não tinha nenhum por aí.
Gravei o memtest86 + ( http://www.memtest.org/ ) em um CD.
Ligou o computador recém-construído e entrou na BIOS para garantir que ele visse todas as 7 unidades e o DVD-ROM. Sim. Alterada a ordem de inicialização para tornar o CDROM primeiro.
Insira o CD do memtest86 + no computador recém-construído, reinicie-o e deixe-o funcionar durante a noite. Aprovado sem erros.
Instalando o FreeBSD 7.2, se você não estiver familiarizado com isso, recomendo a leitura do seguinte: http://www.freebsd.org/doc/en/books/handbook/install.html Faz um trabalho muito melhor em explicar o que fazer do que eu lata. Aqui estão minhas configurações específicas:
Após instalar e reiniciar, notei que apenas 4 das 6 unidades SATA foram detectadas. Entrei no BIOS e, em Periféricos integrados, altere o tipo de OnChip SATA para AHCI e o tipo de porta 4/5 de OnChip SATA para "SATA" Configurações salvas e reinicializadas.
Nesse ponto, o FreeBSD detectou todas as seis unidades como: ad4 ad6 ad8 ad10 ad12 ad14
Obtenha as informações mais recentes do cvs usando csup: csup -g -L 2 stable-supfile Eu já havia editado o arquivo para usar o host: cvsup11.us.FreeBSD.org deixando todas as outras informações como estão.
Reconstruiu e instalou o kernel e o mundo mais recentes, conforme descrito aqui: http://www.freebsd.org/doc/en/books/handbook/makeworld.html Customizou meu kernel (consulte ZFSNAS). Desabilitei um grande conjunto de dispositivos, pois nunca planejo usar SCSI, USB, PCMCIA, Serial, Paralela etc., adicionei o seguinte ao /etc/make.conf: CPUTYPE = Athlon64 CFLAGS = -O2 -fno-strict-aliasing -pipe make -j8 buildworld
Configuração do NAS:
Crie o pool ZFS para nosso armazenamento: zpool create storage raidz2 ad4 ad6 ad8 ad8 ad10 ad12 ad14
Crie o sistema de arquivos doméstico no armazenamento recém-criado:
edite /etc.rc/conf e adicione o seguinte:
Isso monta os sistemas de arquivos ZFS na inicialização.
Diretórios raiz, samba e forforce criados
A menos que você precise de mais sistemas de arquivos no seu pool, você está praticamente pronto com a parte do ZFS. Veja o seguinte para obter mais detalhes: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
Portas instaladas:
Usuários adicionados:
Grupos criados:
Configuração do Samba:
fonte
Não vejo motivo para você querer, acho que o suporte ao Snapshot é maduro o suficiente no OpenSolaris, para que você possa voltar para uma versão mais antiga e inicializá-la (buth, na verdade, é apenas um palpite).
Adicionar como expandir uma piscina listrada? Basta adicionar uma unidade à piscina, é isso. Considere as implicações da sua próxima pergunta.
Você pode usá-lo como uma faixa e dizer ao ZFS para manter n cópias de um arquivo. Então você pode usar a disponibilidade total de armazenamento que você possui e ainda obter redundância decente
Substituindo dispositivos em um pool de armazenamento Acho que esta é a solução recomendada, a maneira mais fácil de descobrir o quão bem isso funciona no FreeBSD é provavelmente experimentá-lo.
Você já considerou o FreeNAS (Roadmap) 0.70 prestes a ser lançado e suportará o ZFS.
Você economizará o aborrecimento de toda a estrutura e obterá uma GUI relativamente agradável de usar gratuitamente com ela.
fonte
Eu tenho servidores com FreeBSD + ZFS (em 7.2-STABLE e 8.0-CURRENT), não em produção.
A inicialização do ZFS é descrita aqui http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/
Adicionar unidades dinamicamente é tão fácil quanto digitar "zpool add mypool da7"; a nova unidade é utilizável logo após isso; você também pode adicionar várias unidades em tarja, espelho, raidz (raid-5 aprimorado) ou raidz2 (raid-6 aprimorado)
Unidades de tamanhos diferentes podem ser colocadas na piscina, mas não podem ser usadas em mirror / stripe / raid (se bem me lembro, apenas o menor espaço em disco será utilizável)
(Aberto) Solaris tem suporte para ZFS imediatamente
fonte
Há uma boa discussão sobre a criação de um NAS ZFS doméstico na ArsTechnica.
fonte
Não tenho experiência com o ZFS, mas acabei de ver isso no meu feed RSS:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
O que sugere que está amadurecendo, mas não está pronto para produção (no FreeBSD).
fonte