Перегрузка оверлеев с несколькими слоями (миграция от aufs)

Я сталкивался с одним из этих побочных эффектов миграции. С помощью aufs вы можете указать несколько RO-слоев, и обновление некоторых файлов в них будет обновлено с помощью remount.

fstab с aufs:

aufs    /etc                       aufs    noauto,br:/rw-root/etc=rw:/ro-root/etc=ro:/etc=rr  0 0

Та же функциональность с оверлефами:

none    /.tmp-root/etc              overlayfs  noauto,upperdir=/ro-root/etc,lowerdir=/etc      0 0 
none    /etc                       overlayfs  noauto,upperdir=/rw-root/etc,lowerdir=/.tmp-root/etc  0 0 

Монтаж системы в порядке, и все работает. Проблема возникает, когда мне нужно что-то обновить в разделе ro-root. Запуск remount для того, что видит /etc как уже смонтированные оверлеи, а не исходный ro-root. (Решил зачеркнутую проблему с mount --bind)

Видимо проблема с inode номера файлов. Таким образом, редактирование файла работает нормально, но если я скопирую новый файл поверх старого на более низком уровне, изменение не распространяется. Так что это может быть реальной проблемой оверлеев.

Мне бы очень хотелось, чтобы эта установка продолжала работать (реструктуризация всего требует много работы и тестирования, которого я бы предпочел избежать, потому что это затрагивает +50 виртуальных машин). При этом я также приму ответы, которые позволят выполнить перемещение readonly-root после этапа initrd безопасно, чтобы обойти эту проблему, и если это невозможно, то предложим наиболее минималистичный способ изменения / изменения / создания initrd для выполнения этого перемещения.

Есть еще один связанный с этим вопрос, но это более простая форма, состоящая из двух слоев. Простые оверлеи перезагружают вопрос

1 ответ

Вы пробовали сначала выполнить перемонтирование в /.tmp-reoot/etc, а затем перемонтировать в / etc

например:

 mount -o remount /.tmp-reoot/etc

 mount -o remount /etc
Другие вопросы по тегам