Как скопировать /var / lib / docker с помощью структуры каталогов overlayfs с данными * как есть * без увеличения объема хранилища


У меня есть докер-установка с несколькими образами и около 150Gigs данных в /var/lib/docker. Эта установка использует overlayfs в качестве драйвера хранилища. Существует несколько каталогов для каждого слоя под /var/lib/docker/overlay, содержащих фактические данные. Размер раздела составляет 160 г.

Мое требование состоит в том, чтобы скопировать каталог the docker из /var/lib/docker на новый диск объемом 1 ТБ, чтобы я указал docker, чтобы начать с этого нового раздела и продолжить использовать мои старые образы.

Теперь проблема в том, когда я использую rsync или cp команда с -a, чтобы скопировать /var/lib/docker в новый раздел, вместо общего количества 150g фактических данных, общее количество скопированных данных доходит до целых 600G (и подсчет..).

Docker также остановлен, но не уверен, как ОС смотрит на 160G данные и копирование в 600G+. Надеюсь, это не оверлайфы (объединенные каталоги). Нет никакой информации о наложении на df -aTh. Также это не помогло разгрузить драйвер ядра overlayfs с помощью rmmod overlay

Как это возможно, что я мог бы просто скопировать это данные как есть, без какого-либо расширения/слияния.

1 3

1 ответ:

Оказалось, что docker использует hardlinks в этих каталогах под /var/lib/docker/overlay. Использование -H для rsync (копирование жестких ссылок в качестве жестких ссылок) решило проблему.

rsync -avPHSX /var/lib/docker /new/partition/