Arseniy
Взял диск, прогнал Victoria, перезназначил сектора, вырубилось часть. Или купил диск новый, а он уже такой
Vladislav
Если вылетают сектора, то SMART как только закончатся сектора начнёт визжать об этом
Arseniy
Аргумент, не поспоришь. Проэкспериментирую. Есть ли вариант сунуть 2х3Тб в пару к 6Тб для создания зеркала?
Vladislav
Аргумент, не поспоришь. Проэкспериментирую. Есть ли вариант сунуть 2х3Тб в пару к 6Тб для создания зеркала?
Берёте виртуалку, создаёте 2 диска по 307200 Мб. удаляете один. создаёте 307199 МБ диск
Arseniy
Берёте виртуалку, создаёте 2 диска по 307200 Мб. удаляете один. создаёте 307199 МБ диск
Да, Я так и делаю. Просто про 8Мб не знал, попробую именно с такой разницей
Vladislav
Аргумент, не поспоришь. Проэкспериментирую. Есть ли вариант сунуть 2х3Тб в пару к 6Тб для создания зеркала?
Если это дедик, то разбиваешь 6ТБ на две части и делаешь из 4х разделов пул raid10, только два раздела от 6ТБ не надо засовывать в одно зеркало :)
Arseniy
Дедик - эт что, простите?)
Vladislav
И не забыть в каждом разделе 3ТБ дисков откусить 1 или несколько МБ в конце
Vladislav
Дедик - эт что, простите?)
Физический сервер
Arseniy
Да, физический. Попробую. Не знаю, насколько из под TrueNas удастся ручками откусить
Vladislav
Там ещё будут нюансы с 4к блоками
Vladislav
Vladislav
Это HDD. Какие 4к блоки
Здрасьте. Проверь свои диски крупнее 2ТБ на размер блоков
Vladislav
Здрасьте. Проверь свои диски крупнее 2ТБ на размер блоков
Смотрю. Вижу, что всё ещё 512б в ОС сообщается
Vladislav
Поэтому всё ещё не понимаю к чему 4к
Vladislav
И причём он тут?
Vladislav
И причём он тут?
Читай документацию
Vladislav
Я уже с телефона
Vladislav
На то, что 1 сектор в ОС = 1 логическому сектору на диске?
Vladislav
На что?
Что такое логикал и физикал блок сайзы.
Vladislav
Там ещё будут нюансы с 4к блоками
Ты мне лучше объясни как они связаны с этим
Vladislav
Если ОС работает по логическим секторам
Vladislav
На то, что 1 сектор в ОС = 1 логическому сектору на диске?
Это тоже мимо. За это отвечает файловая система
Vladislav
fdisk -l посмотри
Vladislav
За количество логических секторов на диске отвечает диск, если диск говорит, что у него X логических сектора 512б ОС по другому их не увидит, даже если физика там 256кб сектор
Vladislav
Я с телефона. Если не осилишь самостоятельное образование, то через 4 часа накидаю ссылок.
Vladislav
Я с телефона. Если не осилишь самостоятельное образование, то через 4 часа накидаю ссылок.
То есть причем тут нарезка диска по разделам и физический размер сектора ты не можешь сказать, ну ок
Vladislav
Понятно, учись студент
Arseniy
жду результат этой информационной перепалки с нетерпением))))
Vladislav
А мне то что учится, я хотя бы знаю, что ОС глубоко фиолетово на физический размер сектора и она оперирует логическими
Vladislav
Размер блока на ФС вообще отдельный разговор, можно иметь диск 4к, с 512 логикой и 64кб размером у ФС. И получать "крутую" производительность на рандомных с 0%r тестах 4к блоками
Arseniy
Вы тут эксперты, я нуб в этой теме, пока сам не смог разобраться между зависимостями логических разделов и физических блоков на диске. Как я понял, из "документации" производителя эту информацию не узнать, а то что диск сообщает ОС - вообще может не соотноситься с реальностью из-за погони за совместимсотью с разными ОС
Vladislav
Вы тут эксперты, я нуб в этой теме, пока сам не смог разобраться между зависимостями логических разделов и физических блоков на диске. Как я понял, из "документации" производителя эту информацию не узнать, а то что диск сообщает ОС - вообще может не соотноситься с реальностью из-за погони за совместимсотью с разными ОС
Да, проще всего у nvme где sector size можно менять меняя namespace, там заодно сразу видно изменение количества логических секторов. С HDD такой функциональности вроде нет, поэтому не суть важно. Рекомендация - ashift=12 если физика 4к, но это вопрос производительности. С твоим изначальным вопросом никак не связано
Arseniy
Да, с изначальным не связано, но это не значит, что вопрос выбора настроек ФС меня не беспокоит)) Как и ashift. Единственное, я усвоил, что для ssd ashift>=13 надо ставить
Vladislav
Да, с изначальным не связано, но это не значит, что вопрос выбора настроек ФС меня не беспокоит)) Как и ashift. Единственное, я усвоил, что для ssd ashift>=13 надо ставить
Эрм, ладно, Ваше дело. Больше 13 имеет смысл только когда Вы точно знаете, что у Вас мало 4к нагрузки и много 8,16,64
Arseniy
Да, само собой. Но для HDD, как я понял, такой фокус не сработает
Vladislav
Да, само собой. Но для HDD, как я понял, такой фокус не сработает
ashift это для ФС. То есть ashift=13 сделает размер блока на ФС равным 8к. То есть если операция будет 4к, то ФС считает блок 8к на каждую операцию 4к При этом для дисков это будет выглядеть как команда на считывание 16 секторов по 512б И контроллер диска объединит их в два 4к
Arseniy
Но суть изменения ashift же в повышения производительности, если того требует ситуация. Прошу не пинать, если я что то не то говорю, основываюсь на изученной документации. Так вот, изменение ashift выше 12 при условии работы БД, например, даст результат только на SSD, а на HDD прироста скорости не будет. Опять же, насколько я понял
Vladislav
И в целом за счёт задержки, пока ищется нужный блок на поверхности диска просто потеряется выигрыш в повышении ashift
Arseniy
Так вроде на современных дисках блок 4к, не?
Vladislav
Так вроде на современных дисках блок 4к, не?
Если банальным языком https://www.nix.ru/computer_hardware_news/hardware_news_viewer.html?id=188116
Vladislav
Физический сектор на hdd - да 4к, я указывал это выше Но ОС оперирует логическими секторами
Vladislav
блок это у Файловой системы, сектор у диска
George
Да, с изначальным не связано, но это не значит, что вопрос выбора настроек ФС меня не беспокоит)) Как и ashift. Единственное, я усвоил, что для ssd ashift>=13 надо ставить
для старта достаточно полагаться на автоматику. Если хочется - то тогда на бенчи конкретного диска, производители не публикуют эти данные, 13 для ssd тоже может быть не оптимально, иногда лучше 9 или 12. Плюс надо смотреть как сам nvme настроен, у некоторых этот параметр можно менять и бОльший будет более эффективным для некоторых кейсов
Arseniy
Интересно, почему система сама предлагает установить 128к
Vladislav
Интересно, почему система сама предлагает установить 128к
Посмотрите, что у Вас в пуле Inherit это унаследовано от уровня выше
Arseniy
Ok, создал новый пул. Дефолтные 128 остались, ничего до этого не было
Arseniy
ZFS самостоятельно принимает решение, в зависимости от параметров диска?) Изменить можно, пока dataset не создан, но блин, почему 128к то? логика какая?
Vladislav
Record size != ashift
George
recordsize != ashift, да, и и там и там есть дефолтное поведение
Arseniy
Сложно. Фактически, диск 4к, имитирующий 512-блоки (для совместимости). В таком случае, recordsize разумно установить в 4к (для соответствия блока диска), или увеличить (в зависимости от типа хранимых данных), что позволит выиграть в скорости записи, но "сожрёт" больше места на диске, если много файлов НЕ будут кратны 4к. При этом, ashift следует устанавливать также в соответствии с размером блока на диске. Если мы имеем 4к блок, а ashift - это степень двойки, то ставим его на 12 (2^12 = 4096). Можем увеличить recordsize до 128к, в таком случае минимально записываемая "единица" информации будет занимать 128к. Если пишем 400к, запишется 512к, соответственно, расточительно уходит объём. Зато возрастает скорость записи. Я верно всё изложил?
George
sector size это именно минимальный кусок которым оперирует ФС, считая что диск не умеет в меньшие блоки
George
а record size это логический размер в рамках одного из слоёв ZFS
Vladislav
Сложно. Фактически, диск 4к, имитирующий 512-блоки (для совместимости). В таком случае, recordsize разумно установить в 4к (для соответствия блока диска), или увеличить (в зависимости от типа хранимых данных), что позволит выиграть в скорости записи, но "сожрёт" больше места на диске, если много файлов НЕ будут кратны 4к. При этом, ashift следует устанавливать также в соответствии с размером блока на диске. Если мы имеем 4к блок, а ashift - это степень двойки, то ставим его на 12 (2^12 = 4096). Можем увеличить recordsize до 128к, в таком случае минимально записываемая "единица" информации будет занимать 128к. Если пишем 400к, запишется 512к, соответственно, расточительно уходит объём. Зато возрастает скорость записи. Я верно всё изложил?
Дополню своё объяснение. Я забыл, про recordsize когда описывал. Файл - 1024КБ recordsize=128КБ ashift=12 (4k) Logical sector size = 512 Physical size = 4k Чтение проще всего будет описать (ни одной части файла нет в ARC, потому что это ещё один уровень был бы) Мы хотим прочитать Файл 1024КБ Для этого ФС ZFS запрашивает 8 блоков по 128КБ у "виртуального диска" ZFS (тут есть умный термин, который я не знаю) Виртуальный диск делит эти блоки по 128КБ на 32 запроса по 4к Дальше каждый запрос по 4к бьётся уже самой ОС (при общении с блочным устройством) на блоки по 512 А уже контроллер диска считывает сектор на 4к и смотрит попадают ли туда все наши блоки по 512
nikolay
zfs list NAME USED AVAIL REFER MOUNTPOINT swift 115T 266T 792G /swift swift/obj 11.8T 278T 56K - swift/obj1 12.5T 278T 56K - swift/obj2 90.0T 356T 56K -
@gmelikov Георгий, может вы подскажете почему так странно показывает занятое место для толстых zvol сразу после создания?
George
и файл с меньшим размером чем recordsize будет записан размером не менее размера сектора, кратно размеру сектора (4k, 8k, и тд). Есть ещё частный случай, что если файл больше recordsizeа, то последний логический блок будет равен recordsize (лечится включением сжатия)
George
@gmelikov Георгий, может вы подскажете почему так странно показывает занятое место для толстых zvol сразу после создания?
как кстати быстро вы смотрели вывод? после txg sync? но в расчёте свободного места в части ещё не занятого пространста есть местами эвристики, но не более. Например недавно в draid натыкались, что там расчёт максимального объёма зашит на конкретный recordsize
nikolay
как кстати быстро вы смотрели вывод? после txg sync? но в расчёте свободного места в части ещё не занятого пространста есть местами эвристики, но не более. Например недавно в draid натыкались, что там расчёт максимального объёма зашит на конкретный recordsize
мм, тут дело до txg sync не доходило, если я все верно понимаю. я делал так - есть пул на 380 Тб, создаю thick zvol с volblocksize 32к, затем даю команду zfs list, вижу что на томе показывает занятым 11.8 Тб, далее создаю второй zvol - 8к - на нем занято 12.5 Тб, далее создаю третий zvol - 512k - занято 90 Тб)) сразу после создания, никакого i/o в пуле нет.
nikolay
все тома размером по 95 ТБ
Arseniy
sector size это именно минимальный кусок которым оперирует ФС, считая что диск не умеет в меньшие блоки
То есть, по факту этот параметр всегда 4кб. А recordsize - настраиваемый параметр. Рассмотрим запись 12кб данных. Если recordsize установлен на 4кб, то будет сформировано 3 обращения к диску на уровне ФС ZFS, в рамках каждого из которых записывается блок по 4кб. Если recordsize = 8кб, то ФС сформирует 2 обращения, в рамках каждого из которых будет 2 операции. Так?
George
Ashift стоит считать оптимизацией, что диск на меньшем размере сектора будет rmw на записи делать и тд
George
И чем больше recordsize, тем меньше метаданных нужно записать и прочитать
Georg🎞️🎥
И чем больше recordsize, тем меньше метаданных нужно записать и прочитать
Скажите, пожалуйста, может ли отдельный спешл под метаданные помочь со скоростью доступа к видео файлам ? Мне кажется, что до жирных файлов это не даст прироста 🤷🏻‍♂️👋
George
нет идей?)
Неа, а какая версия кода? Не помню тикетов на такое