Ошибки при создании пула могут возникать по многим причинам. Некоторые из этих причин очевидны – например, отсутствие указанного устройства; выявить другие может быть затруднительно.
Перед форматированием устройства в ZFS сначала определяется, используется ли диск ZFS или другим компонентом операционной системы. Если диск используется, могут появиться следующие ошибки:
# zpool create tank c1t0d0 c1t1d0 invalid vdev specification use '-f' to override the following errors: /dev/dsk/c1t0d0s0 is currently mounted on /. Please see umount(1M). /dev/dsk/c1t0d0s1 is currently mounted on swap. Please see swap(1M). /dev/dsk/c1t1d0s0 is part of active ZFS pool zeepool. Please see zpool(1M). |
Некоторые из этих ошибок можно подавить с помощью параметра -f, однако большинство ошибок таким образом устранить невозможно. Ниже показаны ошибки, которые должны быть исправлены вручную, а не при помощи параметра - f:
Диск или один из его подразделов содержат смонтированную файловую систему. Для исправления этой ошибки выполните команду umount.
Диск содержит файловую систему, указанную в файле /etc/vfstab, однако в настоящее время эта файловая система не смонтирована. Для исправления этой ошибки удалите или закомментируйте строку в файле /etc/vfstab.
Диск используется как выделенное устройство дампа в системе. Для исправления этой ошибки выполните команду dumpadm.
Диск или файл является компонентом активного пула устройств хранения данных ZFS. Чтобы исправить эту ошибку, используйте команду zpool destroy для уничтожения другого пула, если он более не требуется. Или используйте команду zpool detach, чтобы отсоединить диск от другого пула. Отсоединить можно только диск из зеркального пула устройств хранения данных.
Следующие проверки использования служат в качестве полезных предупреждений и могут быть подавлены с помощью параметра -f при создании пула.
Диск содержит известную файловую систему, хотя она не смонтирована и не используется.
Диск является частью тома SVM.
Диск используется в качестве альтернативной загрузочной среды для Solaris Live Upgrade.
Диск является элементом пула устройств хранения данных, экспортированного или вручную удаленного из системы. В последнем случае пул имеет статус potentially active (потенциально активен), поскольку диск может быть подключенным к сети накопителем, используемым другой системой. При переопределении потенциально активного пула следует соблюдать осторожность.
Ниже приведен пример использования параметра -f:
# zpool create tank c1t0d0 invalid vdev specification use '-f' to override the following errors: /dev/dsk/c1t0d0s0 contains a ufs filesystem. # zpool create -f tank c1t0d0 |
В идеальном случае вместо применения параметра -f следует исправить ошибки.
Создавать пулы с виртуальными устройствами на разных уровнях репликации не рекомендуется. Команда zpool позволяет предотвратить случайное создание пула с несоответствующей степенью избыточности. При попытке создания пула с такими настройками могут появиться следующие ошибки:
# zpool create tank c1t0d0 mirror c2t0d0 c3t0d0 invalid vdev specification use '-f' to override the following errors: mismatched replication level: both disk and mirror vdevs are present # zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 c5t0d0 invalid vdev specification use '-f' to override the following errors: mismatched replication level: 2-way mirror and 3-way mirror vdevs are present |
Эти ошибки можно подавить с помощью параметра -f, однако это не рекомендуется. Эта команда также предупреждает пользователя о создании зеркального пула или пула RAID-Z с использованием устройств различной емкости. Несмотря на то, что такая конфигурация является допустимой, несоответствие по степени избыточности может привести к возникновению в более емком устройстве неиспользуемого пространства и требует ввода параметра -f для подавления предупреждения.
Поскольку при создании пула могут возникнуть непредвиденные ошибки, а форматирование дисков является потенциально опасной операцией, команда zpool create имеет дополнительный параметр -n, который позволяет создать пул без фактической записи данных на диск. Этот параметр используется для проверки использования устройства и уровня репликации и выявляет любые ошибки, возникающие в процессе создания пула. При отсутствии ошибок отображается следующий результат:
# zpool create -n tank mirror c1t0d0 c1t1d0 would create 'tank' with the following layout: tank mirror c1t0d0 c1t1d0 |
Некоторые ошибки не могут быть обнаружены без фактического создания пула. Наиболее типичный пример – указание одного и того же устройства в той же конфигурации дважды. Эта ошибка не может быть гарантированно обнаружена без записи данных, поэтому команда create -n может быть выполнена успешно, однако при реальном прогоне пул не создается.
Точкой монтирования корневого набора данных при создании пула является /имя_пула. Изначально этот каталог должен отсутствовать или быть пустым. Если каталог не существует, он создается автоматически. Если каталог пуст, корневой набор данных монтируется поверх существующего каталога. Для создания пула с другой точкой монтирования по умолчанию используется параметр - m команды zpool create:
# zpool create home c1t0d0 default mountpoint '/home' exists and is not empty use '-m' option to specify a different default # zpool create -m /export/zfs home c1t0d0 |
# zpool create home c1t0d0 default mountpoint '/home' exists and is not empty use '-m' option to provide a different default # zpool create -m /export/zfs home c1t0d0 |
Эта команда создает новый пул home и набор данных home с точкой монтирования /export/zfs.
Для получения дополнительной информации о точках монтирования см. Управление точками монтирования ZFS.