Tenho experiência com o ZFS em execução no OpenSolaris em um servidor de arquivos NFS de 50 TB para HPC, portanto, responderei suas perguntas com base nisso.
Pergunta 1
What is the CPU overhead of ZFS?
É muito pequeno. Ele irá variar dependendo de quais algoritmos de soma de verificação e compactação você escolher e você habilitar a deduplicação. Eu tenho todos os 3 permite com as opções padrão e raramente obter meus 16 núcleos para utilizar mais de 15% cada. Lembre-se de que a compactação e a dedução também reduzem a quantidade de dados que você precisa gravar para que as coisas realmente acabem acontecendo mais rapidamente às custas da menor utilização da CPU. CPUs são muito rápidas hoje em dia.
Questão 2
From what I learned, when ZFS updates files, it keeps the old file as snapshot, and write the updated part for the new version. However that would mean for each snapshot it keeps that require significant storage overhead. How much is this storage overhead? For example, suppose I have 2TB usable space, how much space can actually be used for the latest version of files one year later?
Os instantâneos armazenam apenas uma diferença do que foi alterado. Você só começa a ver os instantâneos ocupando espaço se você excluir ou modificar os dados existentes. Para o servidor de email que armazena emails em texto simples, isso significa que apenas os emails excluídos resultarão em sobrecarga nos instantâneos. Se você acumular 1,5 GB (após a compactação do ZFS) de e-mails e 0,5 GB forem excluídos com o tempo, você poderá colocar tudo em seu zpool de 2 GB, independentemente do número de snapshots criados.
Ter um ou mais instantâneos significa que você não poderá liberar espaço excluindo arquivos, mas poderá liberar espaço excluindo os instantâneos.
O ZFS é um fs transacional, portanto, mesmo a exclusão de um instantâneo exigirá a gravação de um pequeno log no disco. Isso significa que, se você tiver 0 bytes de espaço livre, não poderá excluir. Eu fiquei preso assim uma vez. Portanto, tome cuidado ao configurar uma cota de espaço em disco (digamos, 99% do seu zpool) para que, quando ficar sem espaço, você possa realmente excluir as coisas.
Pergunta 3
Is FreeBSD with ZFS hosting virtualbox serving half dozen busy guest mission critical mail servers a reasonable combination? Anything particular to be careful with? And can I still choose ZFS for the guest OSs? This is because I may build another identical such box for redundancy, and will need to do some mirroring between each pair of the guest systems across the boxes.
Eu não sei quão bem o VirtualBox funcionará sob esse tipo de carga. Você deve testar o desempenho antes de implantar. A replicação seria a melhor com zfs send
.
Pergunta 4
I'm trying to configure a Dell R710 for this. From what I learned, I shouldn't choose any RAID at all, is that true? In that case, are the drives still arrive hot swappable?
Se você formatar as unidades como JBODs, poderá usar o ZRAID do ZFS. Eles serão hot swappable.
Temos uma SAN da LSI e não usamos o ZRAID. Em vez disso, contamos com o hardware RAID6. Houve casos em que o ZFS detectou corrupção de dados e eu consegui identificar quais arquivos foram afetados. Os dados foram restaurados posteriormente pelo hardware, mas se tivéssemos o ZRAID, não haveria nenhuma corrupção de dados visíveis no nível do arquivo.
Questão 5
If I need more space in the future, I would just hot swap some drivers with larger capacity to expand the storage. There is no problem with these, right?
É uma boa pergunta. Isso seria um problema se você fizer o RAID de hardware. Por outro lado, o ZFS deve permitir que você expanda assim com o ZRAID. Eu nunca me cansei disso. Ao expandir, apenas adicionamos novas prateleiras e criamos novos zpools. Cultivar os zpools existentes seria tão fácil quanto adicionar novos.