Изменения

Перейти к: навигация, поиск

Простой FTL для флешек

890 байтов добавлено, 22:24, 4 июня 2013
м
Монтирование
Для больших устройств можно увеличить размер кластера, скажем, до 64 кб — тогда индекс будет занимать в 16 раз меньше — всего 12 мб на 64 гб флешку. При этом, однако, потребуется ФС с таким же размером блока, а в Linux, кроме VFAT, подобных, по сути, нет — есть только ext4 с bigalloc’ом, который до сих пор глючит. Хотя, в принципе, для флешек и FAT вполне подходит.
Второй и сильно более сложный вариант снижения потребления памяти — поддерживать карту виртуальных кластеров в специально отведённом наборе ''виртуальных'' же кластеров (то есть, например, в начале ''виртуального'' диска), а в оперативной памяти сохранять только карты этих «индексных» кластеров. Остальные карты читать по требованию, кэшируя заданное их число в оперативной памяти. Засчёт высокой скорости случайного чтения значительного снижения производительности при этом, теоретически, быть не должно. Минусом, однако, является то, что теоретически, в наихудшем случае, из-за необходимости при перезаписи каждого кластера ещё и сбрасывать на диск обновлённую карту, скорости записи может упасть в 3 раза. Это если перезапись каждого кластера приведёт к перезаписи части карт (хранимых такими же кластерами), а перезапись части карт приведёт к перезаписи карт для карт (опять-таки хранимых такими же кластерами). Сия проблема типична для лог-структурированных ФС и называется «wandering tree update».
=== Чтение ===

Навигация