Должен ли я создавать ZFS zpools с целыми дисками или разделами?

14

Я делаю zpools на машине FreeBSD. При создании zpools я наблюдаю следующие два случая:

  1. Если я возьму raw disksи создаю, zpoolя смогу сформировать zpools, и они работают отлично.

  2. Если я форматировать диски , используя gpartв freebsd-zfsформате , а затем сделать zpool то и они работают отлично.

В чем я запутался, какой подход лучше для создания zpools?

shivams
источник

Ответы:

8

По возможности лучше использовать целые диски с ZFS.
Там нет необходимости разделять в вашем случае использования.

ewwhite
источник
Что вы подразумеваете под your use case. Можете ли вы привести случай, когда разбиение может быть полезным?
Шивамс
Разбиение в ZFS бесполезно, если у вас нет эзотерической конфигурации, или вы используете определенные решения для SSD, или делаете что-то странное с устройствами ZIL и L2ARC . И даже тогда лучше всего использовать целые устройства / диски.
ewwhite
Но почему лучше использовать целые диски?
leetNightshade
1
@leetNightshade Потому что при использовании ZFS нет особого смысла в разбиении дисков, когда файловым системам не нужны свои собственные разделы. Более того, когда ZFS «владеет» диском, он может включить кэш записи на диск для повышения производительности. См. Solarisinternals.com/wiki/index.php/…
jlliagre
1
@ Гроги Какие-нибудь веские доказательства, подтверждающие это?
leetNightshade
5

Используйте один фрагмент / раздел, выделенный для ZFS на физический диск, и оставьте некоторое пространство без разделов. Таким образом, если вам когда-нибудь понадобится заменить диск, а замена будет на 10 секторов меньше, вы все равно сможете это сделать ( http://www.freebsddiary.org/zfs-with-gpart.php ).

Это то, что делает Solaris автоматически, то, что делает FreeNAS ( https://forums.freenas.org/index.php?threads/zfs-on-partitioned-disks.37079/ ), и это делает ZoL, когда вы даете ему целый диск - это разделит это ...

Накладные расходы на перевод позиции на перегородке в позицию на реальном устройстве незначительны. Поэтому, если раздел правильно выровнен по границе физического сектора, у него нет причин вести себя иначе, чем у целого блочного устройства.

С ZoL единственное различие, которое я знаю, состоит в том, что ZoL переключит планировщик диска, noopкогда весь диск был передан vdev. Ничто не мешает вам установить его вручную.

Хотя некоторые не делают этого ... Не создавайте больше разделов для ZFS на диск, и если вы решите проигнорировать приведенный выше совет, никогда не создавайте из них vdevs в одном и том же zpool. Это в основном убьет производительность, так как ZFS будет разделять данные между vdevs, а последовательные iops превратятся в поиски-кошмар ...

Grogi
источник
Можете ли вы пролить немного света на поведение zfs при поиске-кошмаре с разделением / использованием фрагментов диска?
satch_boogie
Самый простой сценарий - вы создаете пул из двух vdevs, каждый из которых находится на одном жестком диске. Теперь вы хотите написать достаточно большой блок данных, который охватывает оба vdevs. Несмотря на последовательную запись данных, накопитель должен искать между двумя отдельными местоположениями, чтобы сохранить его.
Grogi
Одинаково ли это поведение, если Pool_A использует (sda1, sdb1, sdc3) и Pool_B использует (sda2, sdb2, sdc3)
satch_boogie
Вам не нужно писать им одновременно ... Если у вас есть vdevs в одном пуле, вы ничего не можете сделать ...
Grogi
0

в моей голове этот вопрос возникает из-за сомнений, что если я опоздаю, можно указать, что находится на этом диске ... поэтому, когда вы создаете пул на весь диск (да, с опцией -f, если необходимо), zpool практически создает таблицу разделов gpt и разделы соляриса, вот так:

(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

так что действительно нет необходимости создавать разделы вручную ...

Тарас Филатов
источник
Я не считаю, что солярис лучше всего подходит для freebsd. Например, в случае зеркал вы можете заменить диски на диски большего размера и увеличить размер пула на лету с помощью одной команды или даже автоматически, если настроено как таковое.
Cstamas