Как Debian или Linux обычно назначают -имена устройств, такие как /dev/sdX, в ZFS?

Станьте rootи выполните следующее:

zypper addrepo https://download.opensuse.org/repositories/X11:XOrg/openSUSE_Tumbleweed/X11:XOrg.repo
zypper refresh
zypper install font-util

Это добавит репозиторий для font-util, обновит zypperи установит его.

0
16.03.2021, 14:47
1 ответ

Имена /dev/sd*просто присваиваются в порядке обнаружения, который может меняться от одной загрузки к другой, если порядок загрузки модулей драйверов запоминающих устройств не всегда одинаков или если диски подключены или отключены. Текущая мудрость состоит в том, чтобы использовать что-то еще в своей конфигурации :

.
  • в /etc/fstabвы можете использовать синтаксис UUID=или LABEL=вместо имен устройств
  • Если вы используете LVM, он уже включает механизм автоматического -обнаружения физических томов независимо от имен устройств и представления логических томов с использованием путей, которые гарантированно сохранятся
  • при использовании программного RAID он также включает механизм поиска членов RAID на основе того, что на самом деле находится на диске, а не по именам их устройств
  • при использовании SAN LUN с несколькими путями device-mapper-multipathавтоматически -обнаружит отдельные /dev/sd*пути и создаст постоянное имя устройства для доступа к диску с использованием всех этих путей, либо по WWID, либо автоматически -сгенерированное постоянное имя имена или настраиваемые имена в соответствии с вашими предпочтениями
  • В зависимости от того, что именно вы ищете, вы можете найти диски/разделы с подходящим названием, используя символические ссылки в /dev/disk/by-*/каталогах :
    • /dev/disk/by-id/*по названию модели диска и серийному номеру
    • /dev/disk/by-uuid/*с помощью UUID файловой системы (фактически эквивалентен синтаксису /etc/fstabUUID= для использования, не связанного/etc/fstab)
    • /dev/disk/by-label/*с помощью меток файловой системы (, фактически эквивалентных синтаксису /etc/fstabLABEL= для использования, не связанного с/etc/fstab)
    • /dev/disk/by-path/*по пути аппаратного устройства :"шина X,слот Y, функция Z, слот контроллера N" (может быть полезен, если вы хотите, чтобы имя на основе кабеля -)
    • на дисках с разделами GPT -, разделы также можно найти с помощью /dev/disk/by-partuuid/*и/dev/disk/by-partlabel/*

Некоторые дистрибутивы (, например. SuSE, если я правильно помню ), также может иметь механизм, основанный на правиле udev --, который привязывает определенный /dev/sd*к диску с определенным серийным номером или другой идентифицирующей информацией, когда он впервые появляется в ОС. В Дебиане этого нет.

При загрузке Debian контроллер диска для корневой файловой системы загружается первым, когда система все еще работает на initramfs. Если в вашей системе используется только один контроллер диска (, например. AHCI SATA на рабочем столе или аппаратный RAID-контроллер SAS с возможностью горячей замены -на стойке -сервер для монтажа в стойку )он обычно обнаруживает все диски, подключенные к нему в некотором стабильном порядке (драйвер -специфичный, например по номеру разъема SATA или горячему -порядку разъемов )и на этом все :такое упорядочение может быть достаточно стабильным.

Но если у вас есть несколько разных контроллеров памяти, у вас может возникнуть головная боль, так какsystemd-процесс запуска на основе -не гарантирует постоянного детерминированного порядка, а это означает, что небольшая разница во времени в более ранней части процесса загрузки может изменить порядок последних частей. А во время загрузки многие вещи будут происходить параллельно, так что вам все равно не стоит полагаться на неявное упорядочение.

Часто задаваемые вопросы по ZFS содержат немало информации о выборе правильных имен устройств в Linux . В основном:

  • используйте /dev/sd*только для небольших установок разработки/тестирования
  • для небольших пулов (менее 10 дисков )используйте/dev/disk/by-id/*
  • для больших бассейнов,оптимальным решением является настройка /etc/zfs/vdev.confфайла для создания красивых коротких имен, которые по-прежнему отражают структуру основного оборудования
  • альтернативным решением для больших пулов является /dev/disk/by-path/*, хотя имена будут длинными и громоздкими.

К счастью, изменить имена в существующем пуле несложно,:это в основном просто экспорт и повторный -импорт пула с указанием новой схемы имен при импорте.

Например, если ваш пул называется zfspool, вы можете экспортировать его, а затем повторно -импортировать, используя /dev/disk/by-id/*имена, подобные этому:

# <prepare pool for export, i.e. unmount mount points or stop VMs as necessary>
zpool export zfspool
zpool import -d /dev/disk/by-id zfspool
# <resume using the pool>

(Это предполагает, что ZFS на самом деле может иметь аналогичную систему автоматического -обнаружения, как, например. Linux ЛВМ; просто обнаружение происходит при импорте пула, а не при каждом запуске.)

7
18.03.2021, 22:24

Теги

Похожие вопросы