
Я создал пул в zfs с помощью:
zpool create data001 mirror /dev/sda /dev/sdb
но оглядываясь назад я хотел создать
zpool create data/001 mirror /dev/sda /dev/sdb
Ни один из найденных мной вариантов переименования/перемещения не работает, поскольку «data» не существует, но я не могу создать «data», поскольку не вижу смысла создавать пул, в котором нет устройств.
решение1
Я почти уверен, что вы имеете в виду "zpool create", а не "zfs create" для первого. Итак, вот что вам следует сделать:
# zpool create data mirror /dev/sda /dev/sdb
# zfs create data/001
Первая команда создаст ваш пул «данных» и файловую систему /data, а вторая команда создаст файловую систему /data/001.
решение2
zpool create data mirror /dev/sda /dev/sdb
zfs create data/001
Это тот набор команд, который я должен был выполнить, или все еще могу, сохраняя данные? Первая строка выглядит так, как будто она создаст новый пул поверх существующего.
Это то, что вы должны были сделать. Если вы сделаете это сейчас, то просто узнаете, что невозможно использовать диски, которые уже являются частью пула, для нового пула без уничтожения старого или удаления из него дисков (кроме последнего, что невозможно, если использовать raidz вместо зеркал). Также может быть хорошим моментом подумать о своей стратегии резервного копирования, если у вас ее нет.
Я новичок в zfs и считаю, что разделение функциональности между zfs и zpool кажется произвольным, вероятно, из-за некоторого непонимания технологии.
У Oracle естьподробное руководствокак вы используете пулы и файловые системы, а также есть некоторые сжатыелучшие практики. Если подвести итог в самом общем плане, то есть три слоя:
- Вы создаете виртуальные устройства (vdev) из обычных устройств (обычно дисков, также могут быть файлами или разделами) с определенной функцией избыточности (базовая, зеркала или raidz).
- Вы создаете пулы хранения (zpools) из нескольких виртуальных устройств, которые всегда чередуются (объединяются) и предлагают вам суммарный размер этих виртуальных устройств в качестве непрерывного хранилища.
- Вы создаете либо файловые системы, либо zvols внутри этих пулов. Файловые системы могут быть вложены друг в друга. Теоретически сам пул также доступен для записи, но рекомендуется этого не делать из-за более простого управления/наследования свойств.
Мои личные рекомендации по этим слоям:
- Используйте диски одинакового размера, скорости и качества для каждого vdev. Предпочитайте зеркала, так как они более гибкие и быстрые, чем raidz. Избегайте базовых vdev, так как они могут уничтожить весь ваш пул, если один из них выйдет из строя.
- Создайте пулы хранения для похожих vdev, например, один пул с SSD vdev (зеркалами) для хранения VM и один пул с HDD vdev (raidz2) для более медленного, но большего резервного хранилища. Объединение их сделает пул таким же медленным, как HDD, и таким же опасным, как одно зеркало для ВСЕХ данных, поэтому это не очень хорошая идея.
- Создайте столько файловых систем, сколько захотите, и используйте наследование для простого управления ими (такие свойства, как SMB или NFS share, можно наследовать так же, как квоты или общие настройки ACL). Ваш дизайн зависит от вашей организации и структуры, но общие правила таковы: «одна файловая система для каждого домашнего каталога пользователя» и «одна файловая система для каждого независимого сетевого общего ресурса». Избегайте разделения файловых систем, если содержимое внутри по сути относится к одной и той же теме, но перемещение происходит часто, поскольку перемещение между файловыми системами всегда является полной и дорогостоящей операцией, даже в одном и том же пуле. Вам нужны zvols только в случае экспорта блочного хранилища или с KVM, поэтому начните с простого (файловые системы также можно использовать в качестве блочного хранилища).
- Используйте каталоги внутри файловых систем так, как вы это обычно делаете (устанавливайте списки контроля доступа, разделяйте данные и т. д.).