LINUX.ORG.RU

mkfs.exfat: вопрос про мгновенное форматирование и надёжность

 ,


0

3

Закралось тут сомнение насчёт надёжности EXFAT.

Флешка на 65.9 GiB была по-дефолту отформатирована в EXFAT.

Отформатировал её в ext4 - очень долго создавала структуру супер-блоков, наконец закончила. Подмонтировал её через автомонтирование в Гноме. Каждая малейшая запись на неё стала занимать заметное время. Вернул обратно в EXFAT.

Но удивило сразу то, что форматирование в EXFAT выполняется практически мгновенно.

Нет ли здесь подвоха?

Что лучше в плане баланса скорость-надёжность использовать для флешек под Linux в 2022 году?

Ну а в чем тут подвох? Весь раздел не проверяется, создается только оглавление, поэтому и быстро.

Смотря для чего флешка. Если для переноса данных, то лучше имхо использовать простые фс без прав и владельцев файлов - fat32,exfat

Если нужно систему ставить или использовать в одном компьютере, права доступа, владельев, то ext4 с удалением журнала.

специальные файловые системы сделаны не для usb-флешек, там нужен доступ к нижнему слою.

AVL2 ★★★★★
()

Форматирую в exfat, так как мне на флешках важна вездеходность, а не надёжность. Если на ней накроется что то — ещё раз отформатирую и запишу, я не храню на флешках уникальные ценные данные, только переношу. И даже при этом за последние дцать лет данные терял всего пару раз по причине ухода всей флешки в мир иной, а не по причине дамага ФС, так как научился флешки отмонтировать перед выдёргиванием и проверять что сброс буферов действительно завершён и устройство открытым ничего больше не держит. Тут контрольная лампочка на флешке рулит конечно.

Монтирую-отмонтирую руками, синхронную запись отключаю. Вроде как при включённой синхронной записи можно и без отмонтирования дёргать сразу как запись завершилась, но я не доверяю ей как то.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Форматирую в exfat, так как мне на флешках важна вездеходность, а не надёжность.

А вот у меня на MIREX USB 3.0 Flash Drive UNIT BLACK какой-то сюр с EXFAT – скорость записи 1.85 … 2.0 Мбайт/сек под Debian 11.3 (linux 5.10, amd64).

На стикере от ДНС-shop у неё было что-то про USB 3.2.Gen1
USB Flash 64 ГБ Mirex Unit [13600-FM3UBK64] https://www.dns-shop.ru/product/e021737fe151ed20/pamat-usb-flash-64-gb-mirex-unit-13600-fm3ubk64/

Окей, пробую под ext4:

> time mkfs.ext4 /dev/sdX1
...
Creating filesystem with 16107264 4k blocks and 4030464 inodes
...
Writing superblocks and filesystem accounting information: done   

real	2m2,689s
user	0m0,007s
sys	0m0,026s

# time tune2fs -O ^has_journal /dev/sdb1
tune2fs 1.46.2 (28-Feb-2021)

real	1m36,485s
user	0m0,008s
sys	0m0,014s

Скорость записи на ext4 спустя несколько минут проседает до 2.6 Мбайт/сек - что несколько лучше, чем при EXFAT.

Но… всё это говорит, что переклеивание и отрисовка левых лэйблов при параллельном импорте - плохой шаг. Походу, флешка работает на уровне моей старой USBBAR на 32 Мбайта USB 1.1.

Mirage1_
() автор топика
Ответ на: комментарий от utanho

Мирекс это вроде из екб контора?

Да. АО «Компания Мирекс», город Екатеринбург, улица Студенческая 9а.

Сделано в Китае, 3 этаж, строение C, Маолин Индастриал Парк, ... Хуанцзян Таун, Дунгуань Сити, провинция Гаундун.

Mirage1_
() автор топика

Отформатировал её в ext4

mkfs.ext4 экономит время при создании, не заполняя какие-то там структуры. Когда монтируешь свежеотформатированный том, драйвер ext4 начинает тихонько эти структуры инициализировать. На флешках и HDD это может вызвать заметные тормоза. Либо добавляй параметры -E lazy_itable_init=0,lazy_journal_init=0 при вызове mkfs.ext4, либо подожди, пока ядерный процесс [ext4lazyinit] закончит свои тёмные делишки. А уже потом смотри на скорости.

Нет ли здесь подвоха?

mkfs.exfat пишет в первые примерно два мегабайта, не трогая остальное пространство.

i-rinat ★★★★★
()
Ответ на: комментарий от Mirage1_

А покажи выхлоп mount при смонтированной флешке в exfat, мне интересно с какими параметрами по умолчанию монтируется? Возможно у тебя в настройках синхронная запись включена, она ЕМНИП вообще всюду по умолчанию нынче, в том числе и в Винде, потому что так проще чем научить юзеров флешки отмонтировать. Особенно юзеров винды, которые таких слов не знают и что им там компьютер пишет про «безопасное извлечение устройств» тоже не читают. Флешки с дешёвыми говноконтроллерами именно так стрёмно и пишут в синхронном режиме, так как у них нет ни своего буфера, ни NCQ, подбором размера блока под конкретную флешку тоже никто не заморачивается обычно. Буфер в ОЗУ ОС в асинхронном режиме слегка всё это сглаживает, хотя как посмотреть...

Ходят слухи что у некоторых асинхронная запись провоцирует мифический баг 12309 до сих пор, но опять таки у кого то его провоцирует запись синхронная. Тут я ХЗ, я с 12309 ни разу за 25 лет использования Линукс не встречался. В Windows 3.11 и Windows 95\98 видел, при форматировании дискет, лол.

Jameson ★★★★★
()
Ответ на: комментарий от i-rinat

Либо добавляй параметры -E lazy_itable_init=0,lazy_journal_init=0 при вызове mkfs.ext4, либо подожди, пока ядерный процесс [ext4lazyinit] закончит свои тёмные делишки. А уже потом смотри на скорости.

Лорчую первый вариант, безо всяких «либо».

pr849
()
Ответ на: комментарий от i-rinat

Сделал `mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 ...`

Сейчас записывает AVI-файл на флешку на скорости 360 Кбайт/сек.

На следующем файле скорость выросла до 1.6 Мбайт/сек, потом до 2.8 Мбайт/сек. Процесса `[ext4lazyinit]` по `ps aux` не было в памяти. Потом выросло до 3.2 Мбайт/сек. И колеблется в диапазоне от 1 до 3 Мбайт/сек. Копирую с флешки USB 3.1.

В общем, скорость записи на ext4 осталась такая же.

Mirage1_
() автор топика
Ответ на: комментарий от Mirage1_

Первая запись будет медленной, так как параллельно создаются структуры ФС. Чтобы было «быстро» и придумали асинхронный фоновый процесс который ты отключил. После стирания запись на уже инициализированную ФС будет быстрее.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от greenman

Журнал отключить уже предлагали?

На флешке Samsung (USB 3.1) всё по-дефолту, и работает без тормозов. Правда, их сейчас из-за санкций не везут, есть остатки со складов по двойной цене.

У флешки Mirex заявлено USB 3.0 или USB 3.2Gen1 (я так и не понял, на чём там маркетологи сошлись). Но, даже при задании lazy-опций и ^has_journal записывает со скоростью 2-3 Мбайт/сек.

Mirage1_
() автор топика
Последнее исправление: Mirage1_ (всего исправлений: 2)

Напоминаю, что флешка подготавливает лишь ограниченный размер для быстрой записи, например флешка на 32ГБ, в фоне может подготавливать например 2ГБ, и если записать 3ГБ, то 2ГБ запишутся на полной скорости, но остальные 1ГБ медленнее, потому что подготовка идет с более медленной скоростью и скорость проседает, но если записывать 3 раза по 1ГБ с паузой, без учета паузы они запишутся на полной скорости если фс норм.

naKovoNapalBaran
()
Ответ на: комментарий от Mirage1_

переклеивание и отрисовка левых лэйблов при параллельном импорте

Непонятно, зачем приплетать танцпол, когда это просто продажа ODM/OEM продукции (заказал готовое, чтобы продать под своей маркой). Тебе же не под видом Кингстона флешку продали.

agentgoblin
()
Ответ на: комментарий от Mirage1_

У флешки Mirex заявлено USB 3.0 или USB 3.1Gen1

Скорее так. Что совершенно правильно. Это скорость интерфейса. А уж скорость записи флешки указана в характеристиках. И да, если купишь самый дешман, то там такая скорость и будет.

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)