
TL;DR: Есть ли способ клонировать метаданные диска на другой диск?
Я пытаюсь скопировать все данные (включая метаданные) с диска 4TiB на другой диск 2TiB. Я проверил, что диск 4TiB содержит только 1TiB данных, а его файловая система — ext4
.
Мой предыдущий подход был следующим:
- Измените размер файловой системы на исходном диске:
resize2fs -M <source disk mountpath>
- Рассчитайте количество блоков по 16 МБ, необходимых для сжатой файловой системы.
- Используйте 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 МБ, неясно.
Запись больших объемов данных занимает время, и обойти это невозможно, если только вы не приобретете более быстрые диски.