Размер блока 8 КБ, так как он относится к различным уровням хранения
У меня есть карта PCIe SSD, которая использует блочные ячейки 8 КБ. Он поддерживает "виртуальные контроллеры", которые могут разделить этот диск пополам и создать LVM RAID0 с размером полосы 8 КБ. Кроме того, я устанавливаю файловую систему, которая использует блоки размером 8 КБ. Мое приложение записывает данные в блоки 8 КБ.
Есть ли пространство с каждым добавленным слоем, которое приводит к смещению этого "выравнивания" блока 8 КБ и, в конечном итоге, к необработанным данным, которые записываются в SSD, (значительно?) Больше?
Если мое приложение записывает данные объемом 8 КБ, то FS затем записывает 8 КБ + свои метаданные, которые затем преобразуются в 8 КБ + метаданные fs + метаданные lvm, которые в конечном итоге получаются в 8,5 КБ и приводят в порядок все это выравнивание?
1 ответ
Нет, блоки не увеличиваются в соответствии с метаданными. Метаданные хранятся либо в выделенных блоках (в случае файловых систем), либо в специальной области (в случае LVM и mdraid). Вам просто нужно убедиться, что начало областей данных правильно выстроено.
mdraid размещает свои метаданные в конце раздела и сохраняет данные в самом начале, поэтому они всегда выровнены. LVM хранит метаданные в начале PV, контролируемые pvcreate --dataalignment
который должен быть установлен соответствующим образом. Файловая система должна иметь соответствующий размер блока и / или ширину шага и ширину полосы.