Копирование жестких ссылок в файловой системе

#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. Теперь я определенно мог бы просто экспортировать все изображения из моего текущего докера и импортировать их во вновь установленный в новом месте. Но это просто не устраивает меня, так как я чувствую, что это должно быть легко выполнимо, но я просто не могу сделать это правильно.