Я делаю zpools на машине FreeBSD. При создании zpools я наблюдаю эти два случая:
Если я возьму raw disks
и создать zpool
тогда я могу создавать zpools, и они отлично работают.
Если я форматирую диски с помощью gpart
в freebsd-zfs
format, а затем создайте zpool, тогда они также отлично работают.
Что меня смущает, какой подход лучше для создания zpools?
По возможности лучше использовать с ZFS целые диски.
В вашем случае использования разделов нет необходимости.
Используйте один раздел / раздел, выделенный для 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 на диск, и если вы решите проигнорировать приведенный выше совет, никогда не создавайте vdev из них в одном zpool. Это в основном убьет производительность, поскольку ZFS разделит данные между vdev, и последовательные операции ввода-вывода превратятся в кошмар поиска ...
в моей голове этот вопрос возникает из-за сомнений, если я поздно смогу указать, что находится на этом диске ... поэтому, когда вы создаете пул на всем диске (да, с параметром -f, если необходимо), zpool практически создает таблицу разделов gpt и разделы Solaris, например:
(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
так что действительно нет необходимости создавать разделы вручную ...