#linux #unix #filesystems
#линукс #unix #файловые системы
Вопрос:
Я недавно пытался переместить свои данные docker с одного пути на другой. Это связано с тем, что мы хотели перенести его в файловую систему большего размера. В настоящее время, когда я звоню df
, он сообщает мне, что файловая система использует это:
/dev/sda2 163544064 114299880 46210088 72% /
Когда я звоню du /var/lib/docker.old/ -hs
, я вижу следующее:
193G /var/lib/docker.old/
Я предположил, что это связано с тем, что жесткие ссылки часто используются. Поэтому я попробовал rsync -aHP
или rsync -aP
или cp -R
и, наконец, я тоже попробовал tar -cf - /var/lib/docker.old/ | tar -C /fs1/docker -xv
. Согласно rsync, -H
следует сохранять жесткие ссылки и -a
неявно делает -l
то, что сохраняет символические ссылки. Также из чтения, чтобы я мог найти, что TAR сохраняет жесткие ссылки как таковые, они должны быть сохранены после упаковки и распаковки. К сожалению, когда я делаю df
это во вновь созданном каталоге докеров:
/dev/mapper/vg01-lv01 261590020 202665432 58924588 78% /fs1
Это грубо переводится в 193 г, что du
показывает. Проанализировав файлы с find .. -links 2
и stat
я смог увидеть индексы определенных файлов. Например, во всех контейнерах docker есть множество файлов zoneinfo, которые используют один и тот же индекс. Вот конкретный пример: /var/lib/docker.old/btrfs/subvolumes/138ade54fda6a1ecd5b061b2eb57d6b0d6617ff01de12b28384b34ce4b24bc9a/usr/share/zoneinfo/posix/America/Lower_Princes
Оригинал:
/fs1# find /var/lib/docker.old -inum 13998 | wc -l 88
Скопированный:
/fs1# find /fs1/docker -inum 29883 | wc -l 2
Из этого я делаю вывод, что жесткие ссылки скопированы неправильно. Этот результат одинаков для любого из методов копирования, используемых выше. Я делаю что-то неправильно или неправильно? Моя операционная система-SLES 12 SP5. Теперь я определенно мог бы просто экспортировать все изображения из моего текущего докера и импортировать их во вновь установленный в новом месте. Но это просто не устраивает меня, так как я чувствую, что это должно быть легко выполнимо, но я просто не могу сделать это правильно.