As especificações do seu servidor parecem boas, mas não sei onde você encontrará 30TB (pelo menos não nesta década).
O ZIL não precisa ser muito grande, certamente um SSD de 512 GB é um desperdício. Você teria que calcular o tamanho "ótimo", mas ele vai estar na faixa de 2-20 GB normalmente. Pegue a unidade de armazenamento mais rápida do seu zpool, calcule a velocidade de transferência e multiplique por cerca de 10 segundos. (por exemplo, se o seu disco mais rápido é de 170MBps, então ~ 2GB para ZIL).
O L2Arc pode usar o máximo de SSDs de alta velocidade possível. Particionar os SSDs para que os primeiros shows sejam usados para o ZIL e o restante seja usado para o L2Arc faz muito sentido, e o ZFS fará bom uso de vários dispositivos dessa maneira.
Enquanto eu estou nisso ... Foi mostrado que deixar 20-25% de seus SSDs não utilizados significativamente em seus algoritmos de coleta de lixo, tornando-os mais visíveis em uso típico. E como sempre, os SSDs são mortos relativamente rápido em uso pesado (2-4 anos é típico da minha experiência, YMMV).
Você terá que definir "desempenho quase de metal". O KVM, que o SmartOS usa, impõe tipicamente penalidades de desempenho de 2-10%. O uso de um sistema operacional convidado que possa aproveitar a paravirtualização (virt-io, etc) manterá você próximo do limite inferior desse intervalo. O Ubuntu deve funcionar bem.
A maneira como você veicula a data de um pool do ZFS para VMs e outros dispositivos de rede é realizada da mesma maneira que com qualquer outro armazenamento ... O ZFS pode fornecer armazenamento em block ou armazenamento de arquivos. VMs podem usar qualquer tipo. NFS e Samba / SMB / CIFS usam armazenamento de arquivos. O iSCSI ou FC serve para bloquear o armazenamento pela rede. O SmartOS pode ser configurado para fazer qualquer um deles com paciência suficiente.