Sergey
Открыть программно, через fopen. Впечатление такое, что есть задержка между окончанием работы команды zpool create -V и тем моментом, когда полученное блочное устройство станет видно системе. Нужно вставить какую-то команду синхронизации
Sergey
У вас линукс?
Sergey
Да, Ubuntu 23.04
Sergey
вообще при создании zvol появляется блочное устройство zd0, например. Оно у вас появилось?
Sergey
оно появляется, но с некоторой задержкой
Sergey
сколько времени проходит?
Sergey
очень небольшой. она проявляется из-за того, что команды я вбиваю не руками, а программно
Sergey
в целом, можно вставить костыль на повторную попытку открытия через какое-то время - но возможно, есть встроенный способ синхронизировать создание volume, по аналогии с флагами -s
Sergio
проверяйте на экзист
Maksym
Коллеги, как вам такое? https://github.com/openzfsonwindows/openzfs/releases
Ivan
Вместе с 3.0 хотят релизнуть, да
что раньше выйдет hl3 или zfs3 ? 😃
Vladislav
что раньше выйдет hl3 или zfs3 ? 😃
))) Я бы ставил на 2025 по zfs3
Maksym
Дело в том, что мне надо определиться - ставить на винде в виртуалке фряху или вот это. Первое я уже знаю, а второе потребует время на изучение. А есть ли заметный выигрыш в производительности или в чём то другом? Есть ли плюсы, кроме минусов?
Vladislav
А что читать надо?
...наверно вкладку release
Maksym
...наверно вкладку release
То, что это бета?
George
Коллеги, как вам такое? https://github.com/openzfsonwindows/openzfs/releases
я только для readonly юзал пару лет назад, но тогда это ещё глубокая альфа была
Maksym
Я даже не знаю смеяться, что Вы не читаете или грустить
так я для личных нужд. У меня есть три бекапа, если что. Это будет ещё один)))
Maksym
так я для личных нужд. У меня есть три бекапа, если что. Это будет ещё один)))
Если бы диски были одинакового объёма, то я бы на винде рейд 10 замутил. На трунас нет проблем! Делаешь девайс и добавляешь в пул, а на винде не знаю. Но по идее напрямую должно работать быстрее, чем через виртуалку, и с меньшими ресурсами. Но будет ли это существенно Заметно?
Free
Познакомился с zfs на примере доставшихся мне серверов, где все виртуальные устройства были из дисков одинакового размера, и считал, что это требование. Обнаружил, что при замене дисков можно использовать и диски большей емкости, при этом размер пула увеличивается. В связи с этим возникли вопросы: 1) По описанию - как будто не только для raidz1/2, но и для mirror происходит увеличение размера пула - как это может быть? Или просто в описании не сделали оговорку для mirror? 2) Есть ли какие-то противопоказания против использования в одном вирутальном устройстве дисков разного размера? Или вообще любые комбинации допустимы, на порядок различающиеся по объему, без какого-либо влияния на эффективность/производительность?
George
Познакомился с zfs на примере доставшихся мне серверов, где все виртуальные устройства были из дисков одинакового размера, и считал, что это требование. Обнаружил, что при замене дисков можно использовать и диски большей емкости, при этом размер пула увеличивается. В связи с этим возникли вопросы: 1) По описанию - как будто не только для raidz1/2, но и для mirror происходит увеличение размера пула - как это может быть? Или просто в описании не сделали оговорку для mirror? 2) Есть ли какие-то противопоказания против использования в одном вирутальном устройстве дисков разного размера? Или вообще любые комбинации допустимы, на порядок различающиеся по объему, без какого-либо влияния на эффективность/производительность?
1 - размер vdevа можно увеличить заменой всех дисков на бОльшие, НО один бОльший диск объём не увеличит, нужно увеличение всех дисков в vdev 2 - в 1 vdev размер 1 диска должен быть одинаковым. При этом никто не мешает добавить бОльший диск, но использовать от него только партицию на размер других дисков при этом разные vdevs могут конечно же быть разных размеров в пуле (vdev может состоять из одного диска, конечно же в таком случае избыточности данных не будет)
George
ну и можно увеличивать пул добавляя новые vdevs
Free
1 - размер vdevа можно увеличить заменой всех дисков на бОльшие, НО один бОльший диск объём не увеличит, нужно увеличение всех дисков в vdev 2 - в 1 vdev размер 1 диска должен быть одинаковым. При этом никто не мешает добавить бОльший диск, но использовать от него только партицию на размер других дисков при этом разные vdevs могут конечно же быть разных размеров в пуле (vdev может состоять из одного диска, конечно же в таком случае избыточности данных не будет)
1. Сам удивился, но можно один диск заменить, и общий объем увеличится. Правда, не сразу, а после дополнительных команд Емкость устройства замены должна быть не меньше минимального размера всех устройств в зеркале или конфигурации RAID-Z. В противном случае такая замена приводит к увеличению размера пула. В настоящее время для определения расширенной емкости необходимо выполнить экспорт и импорт пула. Пример: # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 16.8G 94K 16.7G 0% ONLINE - # zpool replace tank c0t0d0 c0t4d0 # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 16.8G 112K 16.7G 0% ONLINE - # zpool export tank # zpool import tank # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 33.9G 114K 33.9G 0% ONLINE - https://docs.oracle.com/cd/E19253-01/820-0836/gazgd/index.html
George
zfs list не должен был показать увеличение
Free
ну и покажите геометрию пула zpool status
Я пример из официальной документации процитировал - не знаю, где у них геометрию смотреть.
George
Я пример из официальной документации процитировал - не знаю, где у них геометрию смотреть.
ну тогда точно и не сказать) но "Емкость устройства замены должна быть не меньше минимального размера всех устройств в зеркале или конфигурации RAID-Z." как раз про то что я написал говорит
George
Ну да, меньшее добавить нельзя. Но, если добавить БОЛЬШЕЕ - то, судя по их тексту, емкость увеличится
> Но, если добавить БОЛЬШЕЕ - то, судя по их тексту, емксоть увеличится не всегда и не сразу, можете на файликах тестить если что, ftruncate -S 1G file1.img ; zpool create testpool file1.img и тд
George
ну и дока оракла != openzfs местами
Free
ну и дока оракла != openzfs местами
Гугл Оракловскую подсовывает. А какую по openzfs такую же подробную посоветуете?
Free
тыц
Печаль 😞. Не только Гугл, но и сам поиск по официальной документации openzfs по "replace disk" ничего внятного не находит 🤷‍♂️
George
Печаль 😞. Не только Гугл, но и сам поиск по официальной документации openzfs по "replace disk" ничего внятного не находит 🤷‍♂️
https://openzfs.github.io/openzfs-docs/man/master/8/zpool-replace.8.html 4 можете искать по openzfs, 4 ссылка в гугле, он же man zpool-replace
Vladislav
Давайте мыслить логически
Vladislav
У Вас есть страйп 5+1, диски 2ТБ То есть у Вас ВСЕГДА запись 6 секторов на любую операцию (Исключение draid, то сейчас не про него) Вы поменяли 1 диск из 6 на 4ТБ диск У Вас ВСЁ ещё запись 5+1 секторов всегда
Vladislav
Вы не можете записать 4+1 и таким образом повышать количество хранимых блоков на 4тб блоке
Free
У Вас есть страйп 5+1, диски 2ТБ То есть у Вас ВСЕГДА запись 6 секторов на любую операцию (Исключение draid, то сейчас не про него) Вы поменяли 1 диск из 6 на 4ТБ диск У Вас ВСЁ ещё запись 5+1 секторов всегда
1. Если так рассуждать логически, то Оракл сделал что-то не логически? Или наврал в документации? 2. Не изучал, как устроены страйпы - но где-то попадалось, что, если какое-то устройство сильно занято - то запись делается на менее загруженное устройство. То есть не всегда запись идет равномерно на все диски?
Free
1 - где Вы нашли, что у Оракл есть возможно увеличить размер RaidZ путём увеличения объёма одного диска?
Я выше цитировал https://docs.oracle.com/cd/E19253-01/820-0836/gazgd/index.html такая замена приводит к увеличению размера пула. В настоящее время для определения расширенной емкости необходимо выполнить экспорт и импорт пула. Пример: # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 16.8G 94K 16.7G 0% ONLINE - # zpool replace tank c0t0d0 c0t4d0 # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 16.8G 112K 16.7G 0% ONLINE - # zpool export tank # zpool import tank # zpool list tank NAME SIZE USED AVAIL CAP HEALTH ALTROOT tank 33.9G 114K 33.9G 0% ONLINE -
Free
Есть подозрение, что относится оно к При замене устройства в пуле устройств хранения данных без избыточности, который содержит только одно устройство, требуется указать оба устройства
Нет, там явно не про одно устройство, поскольку строчка перед цитированием - Емкость устройства замены должна быть не меньше минимального размера всех устройств в зеркале или конфигурации RAID-Z. То есть явно не одно устройство
Vladislav
Три, создайте ВМ и проверьте уже ради всего святого
Free
У Oracle специфичная дока это раз Два, OpenZFS и Oracle ZFS не одно и то же
Что не одно и то же - мне уже указали выше, и я пытался найти аналогичное описание в openZFS. Сейчас я вернулся к описанию Оракл только потому, что логические рассуждения противоречили реализации Оракла.
Free
Vladislav
Да
Vladislav
Оно никак не используется
Vladislav
Физически невозможно использоватья
Vladislav
Что в зеркале, что в raidz
Free
И нигде в документации никто не подумал про это написать 🤨?
Vladislav
У Вас любой рейд контроллер также себя ведёт
Vladislav
Единственное! что ведёт себя иначе СХД от Seagate в режиме ADAPT
Vladislav
У Вас любой рейд контроллер также себя ведёт
Как программный так и аппаратный
Alexander 🖨
С оговорками можно сказать, что в RAID-Z сам "RAID" работает на файловом уровне, т.е. каждый файл - это отдельный микро-рейд. При этом мелкие файлы и "хвосты" больших файлов могут использовать не все диски из пула. Например, для файла в 1кб достаточно на один диск положить "оригинал", а на другой - его копию, устойчивость к сбою одного диска обеспечена. Т.е. в теории, можно было бы использовать диски разных объемов и на большие писать больше. Но когда я смотрел реализацию несколько лет назад, то она такого никак не позволяла, и RAID-Z использовал одинаковый объем с каждого диска.
Alexander 🖨
вот картинка про размещение данных и избыточности
George
И нигде в документации никто не подумал про это написать 🤨?
а как и какой сторадж из 2 дисков разного размера, к примеру миррор соберёт, используя всё пространство? но в целом why not уточнить, с удовольствием поревьюю контрибьюты в доку :)
George
а как и какой сторадж из 2 дисков разного размера, к примеру миррор соберёт, используя всё пространство? но в целом why not уточнить, с удовольствием поревьюю контрибьюты в доку :)
примеры таких стораджей кстати есть, часто EC варианты стораджей такое могут, то там тоже 100% места утилизировать не получится часто, и от определённого количества дисков, с перекосами по перформанису, цеф такое вроде умел
Free
а как и какой сторадж из 2 дисков разного размера, к примеру миррор соберёт, используя всё пространство? но в целом why not уточнить, с удовольствием поревьюю контрибьюты в доку :)
mirror в чистом виде сложно представить, а вот для аналога raidz1, который устроен как зеркало (может быть, не очень эффективная, но как "доказательство существования" идеи), такая реализация: 2 диска по 1 ТБ 1 диск 2 ТБ Блок длиной 1 МБ записывается: - половина на первый маленький диск - вторая половина на второй маленький диск - целиком дублируется на большой диск
Alexander 🖨
Похожую штуку в Synology сделали с помощью mdamd и lvm: они из дисков разного размера нарезают одинаковые куски, из кусков делают рейды с нужной избыточностью, а потом рейды собирают в один том https://kb.synology.com/en-my/DSM/tutorial/What_is_Synology_Hybrid_RAID_SHR
Free
схема то понятна, но получается несбалансированность по перформансу, к примеру. Руками собрать можно, как выше предложили
Ну всё это к тому, что просто самому "логически додумывать", что и как реализовано в openzfs - не однозначно, и нужно это более явно прописывать в документации, а иначе приходится вот в профильных форумах выяснять... В общем, для себя ответ получил: буду избегать создавать в-устрйоства из дисков разного размера, так же как и заменять диски на бОльшие.
Vladislav
Похожую штуку в Synology сделали с помощью mdamd и lvm: они из дисков разного размера нарезают одинаковые куски, из кусков делают рейды с нужной избыточностью, а потом рейды собирают в один том https://kb.synology.com/en-my/DSM/tutorial/What_is_Synology_Hybrid_RAID_SHR
Все ещё должны быть кратны объему плюс Ты так не соберёшь такое: Без нескольких рейд групп (когда не будет такого, что диск содержит parity и данные для рейда) или Без переменного страйпа
Vladislav
вот картинка про размещение данных и избыточности
Не совсем так кстати, там всегда идёт padding https://jro.io/nas/#overhead
Vladislav
Иными словами такого, что zfs записал блок только на два диска, а остальные отмечены как свободные - нет, они тоже помечаются как занятые
Александр
Из практики работы с пулом на zfs mirror 10 и более, скажу так. При замене пары в зеркале на больший объем, зеркало не растет без пинка. Так как в свойстве пула отключено свойство autoresize
Александр
Потому а 10 массиве после замены всех дисков на больший объем о прежних дисков (с 1тбх4 на 2тбх4) пул по прежнему будет около 2х тб