Eu uso os dois, mas prefiro o ZFS. O ZFS no Linux tem sido muito bom para mim, mas não é o "consertar tudo" para todas as situações.
Um servidor típico ficará assim:
(Lembre-se, eu costumo usar o RAID de hardware e principalmente uso o ZFS como um gerenciador de volume flexível)
- Hardware RAID com um volume lógico composto por discos subjacentes. Esse array será gravado em um pequeno volume do sistema operacional (apresentado como um dispositivo de bloco), depois particionado (/, / usr, / var e tal).
- O espaço restante apresentará outro dispositivo de bloco a ser usado como zpool do ZFS.
Smart Array P420i in Slot 0 (Embedded) (sn: 001438029619AC0) array A (SAS, Unused Space: 1238353 MB) logicaldrive 1 (72.0 GB, RAID 1+0, OK) logicaldrive 2 (800.0 GB, RAID 1+0, OK) physicaldrive 1I:2:1 (port 1I:box 2:bay 1, SAS, 900.1 GB, OK) physicaldrive 1I:2:2 (port 1I:box 2:bay 2, SAS, 900.1 GB, OK) physicaldrive 1I:2:3 (port 1I:box 2:bay 3, SAS, 900.1 GB, OK) physicaldrive 1I:2:4 (port 1I:box 2:bay 4, SAS, 900.1 GB, OK)
Eu, então, pego o zpool e crio os sistemas de arquivos adicionais do ZFS (ou pontos de montagem) e zvols, conforme necessário.
# zpool list -v vol1
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
vol1 796G 245G 551G 30% 1.00x ONLINE -
wwn-0x600508b1001c4d9ea960806c1becebeb 796G 245G 551G -
E os sistemas de arquivos ...
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
vol1 245G 539G 136K /vol1
vol1/images 245G 539G 245G /images
vol1/mdmarra 100G 539G 100G /growlr_pix
Portanto, usar o ZFS para partições de dados é extremamente interessante, pois permite abordar um conjunto de dados, definir cotas e gerenciar atributos na granularidade do ponto de montagem. O LVM ainda requer lidar com ferramentas do sistema de arquivos e é um pouco mais rígido.