Как клонировать метаданные одного диска на другой

Как клонировать метаданные одного диска на другой

TL;DR: Есть ли способ клонировать метаданные диска на другой диск?

Я пытаюсь скопировать все данные (включая метаданные) с диска 4TiB на другой диск 2TiB. Я проверил, что диск 4TiB содержит только 1TiB данных, а его файловая система — ext4.

Мой предыдущий подход был следующим:

  1. Измените размер файловой системы на исходном диске:resize2fs -M <source disk mountpath>
  2. Рассчитайте количество блоков по 16 МБ, необходимых для сжатой файловой системы.
  3. Используйте dd для копирования всех данных (включая метаданные): dd bs=16M if=<src> of=<dst> count=<# block calculated in step2.

Этот метод отлично работает, когда объем данных относительно небольшой. Но когда объем данных большой, например 1TiB, и то, resize2fsи другое ddможет занять много времени.

Я думаю об использовании rsyncвместо dd, так что нет необходимости изменять размер исходной файловой системы, и plus rsyncкажется быстрее, чем dd. Но одна проблема в том, что он rsyncне копирует метаданные диска, такие как uuid, метка и т. д.

Я хотел бы, чтобы новый диск имел точно такие же метаданные, как и оригинальный, чтобы я мог напрямую использовать новый диск для замены оригинального, не изменяя ничего на сервере. Есть ли способ клонировать метаданные диска?

решение1

Да, есть способ клонировать диск с метаданными: используйте dd, как вы изначально и сделали. Хотя, зачем вам это делать кусками по 16 МБ, неясно.

Запись больших объемов данных занимает время, и обойти это невозможно, если только вы не приобретете более быстрые диски.

Связанный контент