Алексей
нужен быстрый листинг файлов, в зфс это делается отдельным meta device'ом
Alex
нужен быстрый листинг файлов, в зфс это делается отдельным meta device'ом
листинг листингу рознь. Список имен файлов , без меты, например работает быстро практически в дефолтной установке в xfs. Типа ls -f /dir/
Alex
я проверю, спасибо. возможно так оно и есть
Зависит от ОСь немного тоже. У вас linux?
Алексей
Зависит от ОСь немного тоже. У вас linux?
да, Линукс, я обычно работаю с дебиан, но не критично
Alex
разные реалзиации io: в linux можно поиграть с настройками VFS, io sched, покрутить dentry cache'ы
Alex
буквой "z" :D
вам смешно, а я каждый раз плююсь =)
Alex
Может ext4 с отдельным журналом на ссд? Но чем это политически отличается от зфс😁
журнал-то на скорость подгрузки меты каким боком? тут скорее надо курить в сторону кэширования, я даже как-то подозреваю, что скорость там давал не zfs как таковой , а просто кэш VFS. Прогрев может быть небыстрым, но если памяти побольше , да поиграть с настройками штатного кэширования - можно выжать хорошую скорость. Хотя задача странная сама по себе. Создать себе трудность и потом героически её преодолевать =)
Roman
Можно дежать мету в бд и быстро её оттуда брать)
Alex
Можно дежать мету в бд и быстро её оттуда брать)
как пример, есть всякие варианты. Но нужно понимать задачу в целом, а попросили просто альтернативу фс. Но 100-200тыс для xfs не проблема
Алексей
Может ext4 с отдельным журналом на ссд? Но чем это политически отличается от зфс😁
журнал ничего не даст с точки зрения листинга миллионов файлов.
Vladislav
Может ext4 с отдельным журналом на ссд? Но чем это политически отличается от зфс😁
Мне тоже интересно как мета после записи связана с журналом
Vladislav
Если причины политические - BTRFS, BCACHEFS, XFS
Alex
А есть еще F2FS - кто юзал?
Vladislav
А есть еще F2FS - кто юзал?
Эффективно все, ибо Android))) Но надо смотреть по производителям, некоторые всё также ext4 используют
Vladislav
Разговорное выражение есть такое
Alex
эм. оок.
Vladislav
Окей, перефразирую, чтобы было понятней Почти все (эффективно можно округлить до 100% инженеров) использовали F2FS, так как многие пользовались Android
Станислав
Чем её там держать?
Как по мне - странное предложение. Не думаю, что БД будет быстрее ФС с этим справляться
Станислав
zstd весь стрим сожмет так же как и если его в файл засунуть. в пределах окна которое явно больше размера блока и кот. можно до 2 гигов сделать
Если бы можно было окно увеличить до 1Тб, то сжало бы точно лучше, чем с окном 2Гб. Но с таким размером окна будет выигрыш только в случае, если значительно больше совпадений на данной дистанции. А это уже очень специфический кейс, как мне кажется. Я до сих пор знаю только один - архивирование большого количества логов. У Вас есть ещё примеры кейсов? Кстати, вот пример сжатия логов c разным размером окна (20=1М, 27=128М, 31=2G): root@pc:/ext# du -h *ZSTD*/* 6,0G noZSTD/httpd.tar 287M noZSTD/httpd.tar.zst20 269M noZSTD/httpd.tar.zst27 267M noZSTD/httpd.tar.zst31 319M ZSTD1M/httpd.tar 530M ZSTD/httpd.tar
Alex
Как по мне - странное предложение. Не думаю, что БД будет быстрее ФС с этим справляться
смотря какая бд, смотря какие запросы. С бд вылезут другие сложности - синхронизация. Но я говорю, без описания всей задачи гадать можно в огромных диапазонах идей =) если там банально 1 дир с лямом файлов, то просто его кэшируем vfs и там хоть ntfs под низом - плевать
Алексей
Сотен мильенов несколько
Alex
ну если несколько тысяч и в каждой мильон, то это другой разговор. Изначально был миллион в одной дире :)
Станислав
Там банально несколько тысяч папок с сотней мильенов файлов
Если ZFS в этом проверена и справляется, то не стоит крутить носом и воспользоваться ей)
Alex
собрал тестовую XFS с логдевайсом на nvme , сгенерил 700к+ файлов, : ]# df -i /mnt/test2 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda3 61527168 715448 60811720 2% /mnt/test2 # sudo sync; echo 3 > /proc/sys/vm/drop_caches # time ls /mnt/test2 >/dev/null real 0m1.278s user 0m1.016s sys 0m0.134s
Alex
не мгновенно, но вроде нормально
Vladislav
Дописывай в резюме скилл - быстро собрать стенд "на коленке" и протестить идею
Alex
ну там такая коленка, ляма 2 стоит =) просто есть под рукой , 5 команд дать не сложно
Fedor
В тест2
Fedor
Потому как кое чего что-то не совсем сходится
Alex
$ ls /mnt/test2 |wc -l 793683
Alex
имена рандомные, размер 10k
Alex
$ ls /mnt/test2 | head 000hOWWVTIsPHphpno5D2aZs0 000nD9eEpqBURfb9U6w 001BjuJ1Re93u49ooBsxcjIZ 001CY2Pr33OSYlX
Alex
я чот думал будет медленее . хотя кэш сбрасываю, но дай-ка ребутну для верности
Roman
700к - это мало.
Alex
та не, та же секунда
Alex
700к - это мало.
ёлки, ну никто не собирался воспроизводить то окружение
Alex
1с на 800к, ну на 1М будет +- столько же
Alex
меня волновали порядки, я получил что хотел
Roman
/report
Юрий
/report
Y
кто-то знает? - если данные (мелкие файлы) лежат на спешл-вдев... они дублируются в l2arc если к ним частый доступ (но они же и так на быстром диске)
Vladislav
L2arc - это то, что вытеснилось из ARC, а не то, что на медленном диске было
..... Алгоритм L2ARC немного сложнее этого. Самую малость
Vladislav
Если хочется почитать "In short, the L2ARC is continually fed with blocks that are near eviction from ARC."
vanes™
На Special не лежат данные, на нём лежит мета про расположение файлов
дык лежат жеж всё что меньше или равно смолблоксайзу, по дефолту 128к
Vladislav
не
Что-то не припоминаю, чтобы vdev special по умолчанию использовался для малых блоков
vanes™
да, про "по дефолту" я обосрался =)
Vladislav
да, про "по дефолту" я обосрался =)
Я поэтому отдельно отметил это слово)
Станислав
..... Алгоритм L2ARC немного сложнее этого. Самую малость
Я намеренно упростил. Но по факту ведь l2arc всё равно мелкие блоки закешит, верно?
Vladislav
Я намеренно упростил. Но по факту ведь l2arc всё равно мелкие блоки закешит, верно?
Если они были в ARC, а вот попадут ли они в ARC надо выяснять, вроде как да but don't quote me on this
Georg🎞️🎥
Я намеренно упростил. Но по факту ведь l2arc всё равно мелкие блоки закешит, верно?
Кэшиь все по умолчанию, не кэшит стрим по умолчанию :)) из arc
𝚔𝚟𝚊𝚙𝚜
Подскажите, для ZFS можно включить дедупликацию временно? Есть довольно большой домашний архив, разгребать который нет не желания не сил. Уверен там куча повторяющейся информации вроде фоточек, я хотел бы их слить на ZFS и заодно сдедуплицировать, при этом включить её только на время копирования, т.к. в дальнейшем мне дедупликация будет ненужна.
𝚔𝚟𝚊𝚙𝚜
нет
Окей, а если это будет отдельный датасет, то при его загрузке всёравно будет вычитываться хэшмап и держаться в памяти всегда?
Vladislav
нет
М? Дедуп же можно выключить после? Он всё ещё будет для текущих файлов держать в памяти таблицу дедупа, но новые файлы это ведь не затронет?
𝚔𝚟𝚊𝚙𝚜
Хочется воспользоваться чем-то наподобии duperemove для btrfs но делать это на лету и для ZFS :)
Ivan
можно симлинков/хардлинков сделать через fdupes и тому подобный софт ищущий дубликаты
𝚔𝚟𝚊𝚙𝚜
ну как бы выключил, но облегчения от этого не будет 😃
А если дедуплицированный датасет перелить через zfs send/recieve тоже не сработает? 🙂
Vladislav
А если дедуплицированный датасет перелить через zfs send/recieve тоже не сработает? 🙂
Ну, сперва он раздедуплицируется насколько мне известно
Georg🎞️🎥
Стрим? Что имеется ввиду?
Потоковое чтение , префетч