helby255
а зачем делать экспорт, где про это можно прочитать?
А ты попробуй без экспорта потом его импортируй😈
Free
Поделюсь - может, кому-нибудь поможет. Имеется десктоп с недавно установленной Debian 12. Сразу после установки поставил zfs, подготовил для будущего использования. На днях установил контроллер SAS, подключил диски, пытался создать пул - но на любые команды zfs/zpool (даже просто version) выдавал ошибку Failed to initialize the libzfs library. Загуглить ничего внятного не получилось. Обновление/переустановка не помогли (но попутно узнал, что было Module zfs-2.2.4 for kernel 6.1.0-23-amd64 (x86_64) который заменился на: Loading new zfs-2.2.5 DKMS files... Через пару дней заглянул (по другому поводу) в dmesg - обнаружил предупреждение, что параметры для zfs_arc_max и zfs_arc_min какие-то неправильные, и вместо них подставляются дефолтные значения 0. Заинтересовался, что же я написал в /etc/modprobe.d/zfs.conf для этих параметров. Значения числовые вроде верные, но в конце строки что-то было неотображаемое. Видимо, какие-то символы перенеслись из программы Notes на макбуке, где я сохранил эти настройки с другого сервера. Когда стер эти невидимые символы в обеих строчках (сами числовые значения не менял) - после перезагрузки все заработало 💪. Но поведение совершенно не ожидаемое. Ведь эти параметры были распознаны как невалидные, и заменены на дефолтные - зачем же дополнительно еще и "стулья ломать" 😡?
Vladislav
Поделюсь - может, кому-нибудь поможет. Имеется десктоп с недавно установленной Debian 12. Сразу после установки поставил zfs, подготовил для будущего использования. На днях установил контроллер SAS, подключил диски, пытался создать пул - но на любые команды zfs/zpool (даже просто version) выдавал ошибку Failed to initialize the libzfs library. Загуглить ничего внятного не получилось. Обновление/переустановка не помогли (но попутно узнал, что было Module zfs-2.2.4 for kernel 6.1.0-23-amd64 (x86_64) который заменился на: Loading new zfs-2.2.5 DKMS files... Через пару дней заглянул (по другому поводу) в dmesg - обнаружил предупреждение, что параметры для zfs_arc_max и zfs_arc_min какие-то неправильные, и вместо них подставляются дефолтные значения 0. Заинтересовался, что же я написал в /etc/modprobe.d/zfs.conf для этих параметров. Значения числовые вроде верные, но в конце строки что-то было неотображаемое. Видимо, какие-то символы перенеслись из программы Notes на макбуке, где я сохранил эти настройки с другого сервера. Когда стер эти невидимые символы в обеих строчках (сами числовые значения не менял) - после перезагрузки все заработало 💪. Но поведение совершенно не ожидаемое. Ведь эти параметры были распознаны как невалидные, и заменены на дефолтные - зачем же дополнительно еще и "стулья ломать" 😡?
этот баг называется - символ окончания строк. посему везде заметки стараюсь держать в блокнотах с LF окончанием строк
Vladislav
(либо просто копировать как человек, по строчкам \ по параметрам, а не ctrl-a —> ctrl-v)
Vladislav
но главное, успеть войти в IT....
Vladislav
То есть известный баг? А исправление запланировано?
Некоторые вещи в этом мире нельзя исправить
Georg🎞️🎥
https://www.storagereview.com/review/qnap-ts-h2490fu-review 24 u2 слота и zfs 🥹
Vladislav
Как вам такое измерение производительности дисков с ZFS ?
Roman
То есть известный баг? А исправление запланировано?
Это баг винды, которая не умеет нормально заканчивать строку.
LordMerlin
Ничего это не баг. Просто особенность некоторых редакторов. При чем тут винда вообще.
Free
Это баг винды, которая не умеет нормально заканчивать строку.
Это было в приложении Notes на MacOS. Но вообще-то сама zfs распознала, что параметр был "неправильный" из-за этого символа и заменила его на 0. Почему там еще какие-о побочные эффекты появились - это уже вообще не к редактору, а все-таки к самой zfs
Free
в можете подставить в этот конфиг эти самые 0 и убедится что она сломается?
Попробую вечером. Но вообще-то 0 - это её дефолтное значение, ломаться не должна
Сергей
Это баг винды, которая не умеет нормально заканчивать строку.
В Unix конец строки - LF (0x0A), в macOS - CR (0x0D), в Windows - CR/LF (0x0D0A, наследие CP/M и телеграфных аппаратов). Больше 40 лет так и менять никто ничего не будет.
Free
В Unix конец строки - LF (0x0A), в macOS - CR (0x0D), в Windows - CR/LF (0x0D0A, наследие CP/M и телеграфных аппаратов). Больше 40 лет так и менять никто ничего не будет.
Вопрос даже не в том, как правильно прочитать строку. Пусть воспринимается неправильной, с неизвестным символом. Но зачем из-за этого ломаться в знак протеста?
Сергей
Вопрос даже не в том, как правильно прочитать строку. Пусть воспринимается неправильной, с неизвестным символом. Но зачем из-за этого ломаться в знак протеста?
CR не относится к пробельным символам, для парсера это буква. Число выделить невозможно, строка игнорируется, параметр остаётся в значении по умолчанию. Всё логично. :1,$ s/<ctrl-V><ctrl-M>$//
Free
CR не относится к пробельным символам, для парсера это буква. Число выделить невозможно, строка игнорируется, параметр остаётся в значении по умолчанию. Всё логично. :1,$ s/<ctrl-V><ctrl-M>$//
Вот так было бы хорошо. Но ведь проблема была не в том, что строка проигнорирована и заменена на дефолтное значение, а в том, что в результате не загружается библиотека libzfs и zfs вообще не работает!!!
Сергей
Вот так было бы хорошо. Но ведь проблема была не в том, что строка проигнорирована и заменена на дефолтное значение, а в том, что в результате не загружается библиотека libzfs и zfs вообще не работает!!!
Это стоит разработчикам в багтрекер написать. Но тут хоть написать можно, а вот в 94-95 году “~” единственным символом в файле зоны коллеги искали часа два. И диагностика невнятная, и в vi он теряется в пустых строках...
Vladislav
Во-первых, я не удивлюсь, если это баг, ибо маковцы должны страдать Во-вторых, люди, которые на маках с Линукс системами....либо понимают, что такое окончание строки, либо не должны работать с ними
Δαρθ
для начала дропнуть из ядра все модули zfs и загрузить заново
Δαρθ
ессно модули и утилиты должны быть от одной версии
Free
ессно модули и утилиты должны быть от одной версии
Так вначале и думал, и все обновлял. Не помогло, все равно ломалось. Заработало только после удаления неправилных символов в конце строки.
Сергей
Так вначале и думал, и все обновлял. Не помогло, все равно ломалось. Заработало только после удаления неправилных символов в конце строки.
Можно проверить - ломается только на ASCII <32 или на любых нецифровых символах. И отправить багрепорт.
Ivan
Вот так было бы хорошо. Но ведь проблема была не в том, что строка проигнорирована и заменена на дефолтное значение, а в том, что в результате не загружается библиотека libzfs и zfs вообще не работает!!!
попробуйте испортить конфиги к другим сервисам и посмотрите как они это переживут. ставлю на то что 90% сервисов перестанут работать.
Δαρθ
Сдаётся мне "сервисы" тут не причём. Парсят строчки из файла не каждая программа по-своему а libc
Ivan
Допустим даже что так. Почему не постараться делать, как 10% "лучших"?
потомучто линукс для админов, а не домохозяек, увы.
Δαρθ
Хотя для случая "каждый по-своему" нет никаких проблем жрать любой (из трёх) вариант перевода строки
Free
потомучто линукс для админов, а не домохозяек, увы.
Еще раз: Можно игнорировать домохозяйку, если она поставит не тот символ, и применить дефолтное значение (что оно, судя по dmesg, и сделало). Но зачем при этом отказываться работать?
Сергей
Еще раз: Можно игнорировать домохозяйку, если она поставит не тот символ, и применить дефолтное значение (что оно, судя по dmesg, и сделало). Но зачем при этом отказываться работать?
Можно игнорировать строку. Можно игнорировать весь файл (вдруг он просто повреждён и вовсе опасен)? Но тут обсуждать это бессмысленно. https://github.com/openzfs/zfs/issues
Free
ждем ваших пулл реквестов
Давайте вообще баг репорты запретим. Пусть все сразу пулл реквесты отправляют
Free
Можно игнорировать строку. Можно игнорировать весь файл (вдруг он просто повреждён и вовсе опасен)? Но тут обсуждать это бессмысленно. https://github.com/openzfs/zfs/issues
Да я обсуждать и не собирался. Просто поделился здесь на случай, если кто-то наступит на подобные грабли. Гугл вот по запросу "Failed to initialize the libzfs library" ничего подобного не нашел - так, может, в этом чате кто-нибудь найдет.
George
Давайте вообще баг репорты запретим. Пусть все сразу пулл реквесты отправляют
всё не читал, но было бы отлично issue завести с репро как раз чтобы гуглилось да и проблему подсветить
Free
Можно проверить - ломается только на ASCII <32 или на любых нецифровых символах. И отправить багрепорт.
Ломается. Попробовал поставить ~ в конце чисел. Результат: конфиг парсится нормально, значение считается неверным (правда, про дефольное значение ничего не говорится), и библиотека ломается. sk@PC2 ~> sudo dmesg -T | grep zfs [Tue Aug 20 20:11:06 2024] zfs: `2147483648~' invalid for parameter `zfs_arc_max' [Tue Aug 20 20:11:06 2024] zfs: `1073741824~' invalid for parameter `zfs_arc_min' [Tue Aug 20 20:11:19 2024] zfs: `2147483648~' invalid for parameter `zfs_arc_max' [Tue Aug 20 20:11:19 2024] zfs: `1073741824~' invalid for parameter `zfs_arc_min' И в результате sk@PC2 ~> zfs version Failed to initialize the libzfs library.
Free
Что там насчёт символа окончания строк?
Это с нормальными окончаниями. Просто в работающий конфиг поставил в конце ~ В Debian, nano
Alex
Ломается. Попробовал поставить ~ в конце чисел. Результат: конфиг парсится нормально, значение считается неверным (правда, про дефольное значение ничего не говорится), и библиотека ломается. sk@PC2 ~> sudo dmesg -T | grep zfs [Tue Aug 20 20:11:06 2024] zfs: `2147483648~' invalid for parameter `zfs_arc_max' [Tue Aug 20 20:11:06 2024] zfs: `1073741824~' invalid for parameter `zfs_arc_min' [Tue Aug 20 20:11:19 2024] zfs: `2147483648~' invalid for parameter `zfs_arc_max' [Tue Aug 20 20:11:19 2024] zfs: `1073741824~' invalid for parameter `zfs_arc_min' И в результате sk@PC2 ~> zfs version Failed to initialize the libzfs library.
если GPT правильно спросить, то она дело советует: Если вы видите сообщение об ошибке "invalid for parameter `zfs_arc_max'" из-за не печатаемых символов в значении переменной, это может указывать на наличие незаметных или скрытых символов, которые не принимаются при установке значения. Вот несколько шагов для устранения этой проблемы: 1. **Проверьте наличие не печатаемых символов**: Убедитесь, что в значении переменной отсутствуют лишние символы, такие как пробелы, табуляции или управляющие символы. Вы можете использовать команды `cat -v`, `od -c` или `hexdump` для отображения не печатаемых символов. ```bash echo "10G" > /sys/module/zfs/parameters/zfs_arc_max cat -v /sys/module/zfs/parameters/zfs_arc_max hexdump -C /sys/module/zfs/parameters/zfs_arc_max ...
Nikita
истина в последней инстанции
правильно сформулированный вопрос содержит часть ответа)
Alex
правильно сформулированный вопрос содержит часть ответа)
по дергал несколько раз в разных вариациях и видимо научилась или контекст набрала и даже на просто ошибку "invalid for parameter `zfs_arc_max'", подсказывает верные варианты в списке 😂
Vladislav
Поделюсь - может, кому-нибудь поможет. Имеется десктоп с недавно установленной Debian 12. Сразу после установки поставил zfs, подготовил для будущего использования. На днях установил контроллер SAS, подключил диски, пытался создать пул - но на любые команды zfs/zpool (даже просто version) выдавал ошибку Failed to initialize the libzfs library. Загуглить ничего внятного не получилось. Обновление/переустановка не помогли (но попутно узнал, что было Module zfs-2.2.4 for kernel 6.1.0-23-amd64 (x86_64) который заменился на: Loading new zfs-2.2.5 DKMS files... Через пару дней заглянул (по другому поводу) в dmesg - обнаружил предупреждение, что параметры для zfs_arc_max и zfs_arc_min какие-то неправильные, и вместо них подставляются дефолтные значения 0. Заинтересовался, что же я написал в /etc/modprobe.d/zfs.conf для этих параметров. Значения числовые вроде верные, но в конце строки что-то было неотображаемое. Видимо, какие-то символы перенеслись из программы Notes на макбуке, где я сохранил эти настройки с другого сервера. Когда стер эти невидимые символы в обеих строчках (сами числовые значения не менял) - после перезагрузки все заработало 💪. Но поведение совершенно не ожидаемое. Ведь эти параметры были распознаны как невалидные, и заменены на дефолтные - зачем же дополнительно еще и "стулья ломать" 😡?
Так проблема, что ошибка изначальная
Alex
а теперь напиши этому псевдо ИИ , что ее ответы неправильные и в коде совершенно другое написано
вечер перестает быть томным.. 😂 GPT: Извините за неудобства. Давайте попробуем разобраться и найти правильное решение для...
Vladislav
Развлекайтесь, только не поломайте его
Fedor
Всё-таки слушать GPT в технически точных вопросах как-то ненадежно имхо
Fedor
И тут им лучше не спамить, тем более не давать советы, сгенерированные с его помощью
Free
если GPT правильно спросить, то она дело советует: Если вы видите сообщение об ошибке "invalid for parameter `zfs_arc_max'" из-за не печатаемых символов в значении переменной, это может указывать на наличие незаметных или скрытых символов, которые не принимаются при установке значения. Вот несколько шагов для устранения этой проблемы: 1. **Проверьте наличие не печатаемых символов**: Убедитесь, что в значении переменной отсутствуют лишние символы, такие как пробелы, табуляции или управляющие символы. Вы можете использовать команды `cat -v`, `od -c` или `hexdump` для отображения не печатаемых символов. ```bash echo "10G" > /sys/module/zfs/parameters/zfs_arc_max cat -v /sys/module/zfs/parameters/zfs_arc_max hexdump -C /sys/module/zfs/parameters/zfs_arc_max ...
Так ведь, как выяснилось, ПЕЧАТАЕМЫЕ символы тоже приводят к той же проблеме. Вот если бы на ошибку Failed to initialize the libzfs library. ИИ что-то подсказал - тогда его можно было бы похвалить. Когда я нашел в dmesg про invalid parameter - то уже ни секунды не задерживаясь пошел и исправил сроку в конфиге
Δαρθ
одно дело когда это юзерспейсная софтина, другое когда вопрос стоит забутиться - не забутиться
Fedor
одно дело когда это юзерспейсная софтина, другое когда вопрос стоит забутиться - не забутиться
Любые изменения в серьезных системах требуют тестирования. Вместе с этим, линукс дает огромный набор инструментов для того, чтобы починить систему, находящуюся практически в любом состоянии на практически любом из этапов загрузки
Fedor
Ругаться буду, умирать от этого - нет
В ряде случаев лучше не загрузиться, чем загрузиться и испортить что-то, сделав вид, что все хорошо
Fedor
Если администратор системы не умеет в указание точных данных при настройке системы, это точно не проблема системы
Fedor
Ну размер арк кеша помоему не тот случай
На ряде нагрузок это может принести больше проблем, чем пользы
Δαρθ
Fedor
Ну насчёт молча испортить ЗФС уже имеет рекорды )))
Есть какие-то баги внутри, а есть взаимодействие с оператором системы, это разные вещи
Fedor
Имхо, лучше не грузиться, чем грузиться с неожиданными настройками
Fedor
Дефолтные - это не те, что указал администратор - следовательно, неожиданные
Fedor
Зато загрузится и можно будет исправить
Есть альтернативные способы загрузки, не только через стандартную последовательность
Fedor
При желании, можно даже загрузиться вручную
Vladislav
одно дело когда это юзерспейсная софтина, другое когда вопрос стоит забутиться - не забутиться
Во-первых, держать рут на zfs идея как минимум странная, как максимум глупая. Если ты не знаешь что делаешь
Vladislav
А люди которые знают что делают - не копируют строчки из блокнота без *display unprintable symbols*
Vladislav
А бутаться с дефолтными параметрами... Банальный пример. Проксмон. По дефолту Арк займёт 10% и не больше 16ГБ (раньше 50%). А потом резкая деградация сервисов после таких запусков, если дефолтные параметры использовать. А раньше спокойно OOM killer берёт и убивает кого-нибудь
Free
То есть ты не полез первым делом в dmesg, чтобы посмотреть что не так?
Первым делом я полез в гугл с этой ошибкой, где, среди прочего, говорилось про возможность расхождения версий пакетов и ядра, а поскольку версии zfs отказывалась сообщать, то переустановил/проапгрейдил всё, что можно
Vladislav
Почему в гугл?
хороший и быстрый поисковик