Devo criar zpools do ZFS com discos ou partições inteiros?

14

Estou criando zpools na máquina FreeBSD. Ao criar zpools, observo esses dois casos:

  1. Se eu pegar raw diskse criar zpool, sou capaz de formar zpools e eles estão funcionando perfeitamente.

  2. Se eu formatar discos usando gpartem freebsd-zfsformato e depois criar o zpool, eles também estarão funcionando perfeitamente.

O que eu estou confuso é: qual abordagem é melhor para a criação de zpools?

shivams
fonte

Respostas:

8

É melhor usar discos inteiros com o ZFS, quando possível.
Não há necessidade de particionar no seu caso de uso.

ewwhite
fonte
Como assim your use case? Você pode dar um exemplo em que o particionamento pode ser útil?
shivams
O particionamento não é útil no ZFS, a menos que você tenha uma configuração esotérica ou esteja usando determinadas soluções SSD ou fazendo algo estranho com os dispositivos ZIL e L2ARC . E mesmo assim, é melhor usar apenas dispositivos / discos inteiros.
precisa saber é o seguinte
Mas por que é melhor usar discos inteiros?
precisa saber é o seguinte
1
@leetNightshade Porque não há muitos discos de particionamento pontual quando você usa o ZFS com o qual os sistemas de arquivos não precisam de suas próprias partições. Além disso, quando o ZFS "possui" o disco, ele pode habilitar o cache de gravação de disco para obter melhor desempenho. Veja solarisinternals.com/wiki/index.php/…
jlliagre
1
@Grogi Alguma boa evidência para apoiar isso?
LeotNightshade
5

Use uma fatia / partição dedicada ao ZFS por disco físico e deixe algum espaço não particionado. Dessa forma, se você precisar substituir uma unidade e a substituição for 10 setores menor, ainda poderá fazê-lo ( http://www.freebsddiary.org/zfs-with-gpart.php ).

É isso que o Solaris faz automaticamente, é o que o FreeNAS faz ( https://forums.freenas.org/index.php?threads/zfs-on-partitioned-disks.37079/ ) e é o que o ZoL faz quando você fornece um disco inteiro - irá particioná-lo ...

A sobrecarga para converter a posição na partição para a posição no dispositivo real é insignificante. Portanto, uma vez que a partição está alinhada corretamente com o limite do setor físico, não há razão para se comportar de maneira diferente do dispositivo de bloco inteiro.

Com o ZoL, a única diferença que eu sei é que o ZoL mudará o agendador de disco para noopquando todo o disco foi fornecido ao vdev. Nada impede você de configurá-lo manualmente.

Porém, existem alguns que não ... Não crie mais partições para o ZFS por disco e se você decidir ignorar o conselho acima, nunca crie vdevs a partir deles no mesmo zpool. Isso basicamente matará o desempenho, pois o ZFS dividirá os dados entre os vdevs e os iops sequenciais se transformarão em pesadelo de busca ...

Grogi
fonte
Você pode esclarecer um pouco mais sobre o comportamento do zfs sobre o pesadelo de busca com as fatias de disco sendo compartilhadas / usadas?
Satch_boogie
Cenário mais simples - você cria um pool a partir de dois vdevs, cada um partição no mesmo disco rígido. Agora, você deseja gravar um pedaço de dados grande o suficiente para se estender pelos dois vdevs. Apesar de gravar dados sequencialmente, a unidade precisa procurar entre dois locais separados para salvá-los.
Grogi 17/08/19
É esse comportamento mesmo se os usos Pool_A (sda1, sdb1, sdc3) e usos Pool_B (sda2, sdb2, sdc3)
satch_boogie
Você não tem que escrever-lhes simultaneamente ... Se você tem os vdevs em uma piscina, não há nada que você pode fazer ...
Grogi
0

na minha cabeça, essa pergunta surge por causa da dúvida, se eu puder designar tarde, o que está nesse disco ... então, quando você cria um pool em toda a unidade (sim, com a opção -f, se necessário), o zpool praticamente cria a tabela de partição gpt e partições do Solaris, assim:

(fdisk -l ...)
...
Disklabel type: gpt
Disk identifier: 4CBE587E-23AF-8E4B-A7F0-B44AD6083171

Device          Start        End    Sectors  Size Type
/dev/sdd1        2048 3907010559 3907008512  1,8T Solaris /usr & Apple ZFS
/dev/sdd9  3907010560 3907026943      16384    8M Solaris reserved 1

então realmente não há necessidade de criar partições manualmente ...

Taras Filatov
fonte
Não considero o que o solaris faz com as melhores práticas no freebsd. Por exemplo, no caso de espelhos, você pode substituir os discos por outros maiores e expandir o tamanho do pool em tempo real com um comando ou mesmo automaticamente, se configurado como tal.
Cstamas # 25/18