[devel] архивирование репозиториев

Dmitry V. Levin ldv на altlinux.org
Чт Авг 27 15:09:18 MSK 2020


On Thu, Aug 27, 2020 at 02:59:22PM +0300, Anton Farygin wrote:
> On 27.08.2020 14:54, Andrey Savchenko wrote:
> > On Thu, 27 Aug 2020 10:27:11 +0300 Anton Farygin wrote:
> > [...]
> >> Т.е. - для экономии места старые пакеты хардлинкаются в новое место и в
> >> него уже добавляются изменения из сборочного задания. Очень простая и
> >> очень надёжная схема, при которой риск потери данных минимален и всегда
> >> можно взять консистентное состояние репозитория за любой момент времени.
> >>
> >> Живёт это всё сейчас, вроде как, на ext4 (я могу ошибаться).
> >> Максимальное количество inodes у ext4 2^32 - 4,294,967,295
> >>
> >> Каждый новый таск в репозиторий приводит к тому, что на файловой системе
> >> появляется около 160 тысяч (а может быть и больше, я давно не смотрел
> >> цифры) новых записей.
> >>
> >> Т.е. - условно мы можем записать около 26 тысяч сборочных заданий в
> >> архив, а после этого из него придётся удалять что-то старое для того,
> >> что бы записать что-то новое.
> > Это полная чушь, поскольку все жесткие ссылки на файл используют
> > один и тот же inode:
> >
> > https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Directory_Entries
> >
> > In an ext4 filesystem, a directory is more or less a flat file that
> > maps an arbitrary byte string (usually ASCII) to an inode number on
> > the filesystem. There can be many directory entries across the
> > filesystem that reference the same inode number--these are known as
> > hard links, and that is why hard links cannot reference files on
> > other filesystems. As such, directory entries are found by reading
> > the data block(s) associated with a directory file for the
> > particular directory entry that is desired.
> >
> Точно. Не хардлинки, а симлинки. Спасибо за замечание.

В архиваторе репозиториев используется захардлинкивание симлинков
для уменьшения количества используемых inode'ов.


-- 
ldv


Подробная информация о списке рассылки Devel