The OpenNET Project / Index page

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



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

Исходное сообщение
"Теодор Тцо отказался от предложений по стабилизации ФС Ext4 ..."
Отправлено Аноним, 30-Окт-12 00:35 
> Нужно уменьшить размер файла на длину удаляемого блока.

Поскольку это пересекается с sparse файлами, надеюсь что мсье в курсе что есть sparse и как получается что 100500Гб файл может занимать всего 10Мб на диске. Ну вот hole punch это инверсное действие. Занимаемое место сокращается, т.к. блоки отдаются ФС. А логический размер остается как и был. То-есть, если выкусили 5Мб, файловая система получит их назад и файл будет занимать по факту лишь 5Мб. Хотя логический размер в 100500Гб у него останется. Файл делается "более sparse".

Кстати posix_fallocate() так не умеет. Линевый fallocate() - расширенная версия, через которую можно posix_fallocate() забабахать в 2 счета, но у него есть как аллокация так и деаллокация. Что довольно логично. Просто POSIX ничего не знает о sparse файлах и сами по себе sparse являются следствием того что стандарт никак не обязывает ФС что-либо реально выделять под некий файл просто на основании того что его создали и возжелали чтобы это было нечто размером в 100500Гб. Файловая система имеет полное право выделять фактическое место как-нибудь потом и это ее внутренее дело. Если в сторону создания sparse-ов можно считерить не выехав за рамки posix, то вот с деаллокацией и разреживанием файлов так уже не получится. В posix тупо нет сисколлов через которые так можно сделать, ни с читерством ни без.

Если же речь была о том чтобы урезать и логический размер файла (при наличии sparse это довольно декларативная цифра и оно не так уж и актуально) - тогда да, придется вырубить блок и присобачить хвост файла его фактическим перемещением. Не потому что иначе запрещают законы физики и логики, а потому что в posix опять же IIRC нет каких либо сисколов для того чтобы внятно запросить данную операцию. Хотя чисто технически я вполне могу себе представить как какой-нибудь CoW вообще не будет кантовать при этом данные и оформит это как просто измененный вариант метаданных, описывающих размещение файла с поправкой на "выпавший" или "урезанный" блок. Да и обычный дизайн в принципе мог бы. Просто метаданные описывающие размещение придется перестраивать. Основная проблема в том что для такого нет рукояток. Видимо не столь частая операция чтобы кому-то понадобилось.

 

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



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

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