Оverlayfs - инструкция, которая позволяет реализовать наложение деревьев каталогов одного на другое — различия между версиями
(Новая страница: «Overlayfs позволяет реализовать наложение деревьев каталогов одного на другое. Обычный кейс…») |
м (Vyklyuk.an переименовал страницу Инструкция по overlayfs в [[Оverlayfs - инструкция, которая позволяет реализовать наложение деревьев каталогов одн…) |
(нет различий)
|
Текущая версия на 11:33, 15 февраля 2024
Overlayfs позволяет реализовать наложение деревьев каталогов одного на другое. Обычный кейс - наложение на дерево в режиме "чтение" другого дерева в режиме "чтение+запись". Возможно применение в реализации послойной записи изменений. Например в docker-подобных приложениях или в Live-CD/USB.
На AlterOS:
[root@wsxx ~]# uname -a
Linux wsxx 5.16.2-1.el7.alteros.x86_64 #1 SMP PREEMPT Mon Feb 7 02:40:56 EST 2022 x86_64 x86_64 x86_64 GNU/Linux
Для использования ovrtlayfs нужно подгрузить соответствующий модуль. Изначально он не загружен:
[root@wsxx ~]# lsmod |grep overlay
[root@wsxx ~]# modprobe overlay
[root@wsxx ~]# lsmod |grep overlay
overlay 135168 0
Для перманентного использования:
echo "overlay" > /etc/modules-load.d/overlay.conf
Для тестирования создадим структуру каталогов в /tmp:
[root@wsxx ~]# cd /tmp
[root@wsxx ~]# mkdir lower upper workdir overlay
и структуру файлов в них:
[root@wsxx tmp]# touch /tmp/lower/{low_00,low_01,low_02}
[root@wsxx tmp]# touch /tmp/upper/{up_00,up_01,up_02}
Смонтируем /tmp/upper над /tmp/lower
(где /tmp/workdir каталог на том же уровне, что и /tmp/upper, /tmp/overlay - результирующий каталог)
[root@wsxx tmp]# mount -t overlay -o lowerdir=/tmp/lower,upperdir=/tmp/upper,workdir=/tmp/workdir none /tmp/overlay
Видим, что в overlay смонтировано содержимое из upper и lower:
[root@wsxx tmp]# ls ./overlay/
low_00 low_01 low_02 up_00 up_01 up_02
Создадим файлы в overlay и проверим, где они создадутся:
[root@wsxx tmp]# touch /tmp/overlay/{up_03,up_04}
[root@wsxx tmp]# ls ./overlay/
low_00 low_01 low_02 up_00 up_01 up_02 up_03 up_04
[root@wsxx tmp]# ls /tmp/upper/
up_00 up_01 up_02 up_03 up_04
[root@wsxx tmp]# ls /tmp/lower/
low_00 low_01 low_02
Отмонтируем и проверим:
[root@wsxx tmp]# umount /tmp/overlay/
[root@wsxx tmp]# ls /tmp/lower/
low_00 low_01 low_02
[root@wsxx tmp]# ls /tmp/upper/
up_00 up_01 up_02 up_03 up_04
[root@wsxx tmp]# ls /tmp/overlay/
[root@wsxx tmp]#