The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Оценка производительности файловой системы F2FS, включённой ..."
Отправлено Аноним, 22-Фев-13 23:58 
>> Алсо, у ФС типа ext4 по сути нет понятия "сектор".
> Понятие "сектор" — физическая единица адресации пространства носителя.

Спасибо, капитан. Правда учитывая что SSD для записи 512 байтного сектора делает read-modify-write, это всего лишь такой красивый логический трындеж в паспорте диска, не имеющий под собой никакого реального физического смысла. Это всего лишь гнусная эмуляция, для того чтобы легаси софт (==древние ОС), который не подозревает о SSD не сыпался как горох. Полагаться на этот трындеж - себе дороже. Т.к. работа кусками по 512 байтов будет медленной, неэффективной и с конским write amplification factor, что поможет SSD побыстрее сдохнуть.

>> Есть "блок ФС". Это минимально адресуемый за раз юнит.
> В NTFS и FAT он называется "кластер". И что?

А ничего, то же самое по смыслу. И производители флешек с FAT отлично в курсе этого момента. И очень характерно кроят для них FAT и партишн тейблы, откровенно выравнивая все это на erase block. Чтоб оно по разным erase block было. Что спасает партишн тейбл от слета в момент когда апдейтили фат и питание слетело.

> Это достигается выравниванием размеченного раздела по границе, кратной 4k.

Какой ты догадливый. А лучше уж по erase block-у, т.е. 512К. В том числе из-за озвученных выше соображений, дабы развязать апдейт критичных структур друг от друга. Дабл факап служебных структур - досаден вдвойне.

> Оно само не выровняется. Просто твой хвост от 512k-блока ФС может по
> недоумению захватить первую четверть, две четверти или три четверти 4k-блока,

Ты не понял, в erase-block целове число страниц, при том одинаковое :). В частности erase-block на 512К содержит 128 x 4K страниц. Так что при выравнивании на 512К выравнивание на 4К получится "само" - просто потому что они кратные. А то что ты сказал - это случай когда выравнивание на 512К не удалось сделать.

> а остальной кусочек будет уже принадлежать следующему по физическому расположению 512k-блоку

Ну так это случай когда выравнивание на 512К не удалось сделать как раз. А если ты разместил структуры с смещением кратным 512К, оно будет автоматически кратно и 4К до кучи. И мне кажется наиболее логичным целиться в это двойное совпадение по возможности. Ну, как производители SD/флешек на фабричном формате примерно. Они ж не просто так делают, а из соображений оптимальной скорости и минимального веаринга. Как раз по озвученным тобой же :) причинам.

> ФС, и не факт, что эта пара блоков ФС будет принадлежать одному и тому же файлу.

Ну да, совершенно. Поэтому есть некий write amplification factor, т.е. фактически записей в флеш для удовлетворения конкретных запросов может оказаться больше чем размер запроса. Из-за фрагментации свободного места, например. В этом месте мы знакомимся с TRIM и его подыгрышем garbage collection, нацеленными на минимизацию этого безобразия. С trim накопитель может явно знать какие регионы не используются и расчистив заранее регионы более удачно раскладывать данные + не натыкаться на нужду GC+erase непосредственно в момент записи.

> Кроме того, 512k-блоки — это заранее обрекать себя на потерю пространства на
> маленьких (размером <512k) файлах.

Ну да, поэтому я обошелся более "мягким" хинтом ФС что желаемый размер "страйпа" - вот такой. При этом некий риск что хвост блока будет не идеально стыковаться с erase block - таки есть. Но в целом оно судя по всему работает достаточно недурно, судя по тому что за год SSD даже на 1% не затерся.

>   2  freebsd-zfs  (59G)

Пардон, ZFS достаточно навернут и я не возьмусь даже грубо прикидывать как его variable length блоки будут раскладываться относительно страниц/erase blocks. Если в случае с фиксированными блоками это еще можно прикинуть, то для variable - дохлый номер. Теоретически, на флеше минимальный размер variable блока должен быть 4К и инкремент - строго кратный 4К. Ну, чтоб выравнивание хотя-бы на страницы после такого блока не отъехало. Практически я не знаю можно ли допинать блоки переменного размера ZFS до такой кондиции. Это высший пилотаж для гур в ZFS уже. В случае экстентов типа того что в ext4, такое свойство "само" получается "автоматически", просто потому что минимальным адресуемым юнитом является блок ФС в 4К и менее крупный юнит не будет использоваться, а экстент - это регион из эн * 4K блоков. Что довольно неплохо с точки зрения попадания в геометрию флеша без пересечений.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру