Облачная платформаAdvanced

Почему размер файловой системы отличается до и после миграции?

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Симптом

  • После миграции использованное пространство раздела на целевом сервере отличается от того, что на исходном сервере.
  • После миграции размер конкретного файла на целевом сервере отличается от размера на исходном сервере.

Возможные причины

Если на исходном сервере есть разрежённые файлы, общий размер перенесённых файлов на целевом сервере может быть меньше, чем на исходном сервере. Это происходит потому, что rsync автоматически усекает разрежённые файлы во время передачи. Файловая система прозрачно преобразует метаданные, представляющие пустые блоки, в "real" блоки, заполненные нулевыми байтами во время выполнения.

Вы можете проверить, согласованы ли файлы до и после миграции. Подробности см. Procedure.

Note

В файловой системе UNIX, когда смещение файла превышает его длину, следующая операция записи расширит длину файла и образует "дырку" в файле, создавая разрежённый файл. Это достигается записью краткой информации (metadata), представляющей пустые блоки, на диски вместо фактического "empty" пространства, составляющего блок, что позволяет использовать меньше дискового пространства. Полный размер блока записывается на диск как реальный размер только тогда, когда блок содержит "real" (non-empty) данные.

Procedure

  1. Проверьте размер файла на исходном сервере и использованное дисковое пространство. Файл /tmp/test-data.img используется в качестве примера.
    1. Проверьте размер файла /tmp/test-data.img.

      ll /tmp/test-data.img

    2. Проверьте дисковое пространство, занятое файлом /tmp/test-data.img.

      du -sh /tmp/test-data.img

      Figure 1 Проверка размера файла


  2. После завершения миграции проверьте размер перенесённого файла на целевом сервере. Figure 2 показывает, что использованное дисковое пространство уменьшается после миграции.

    Figure 2 Проверка размера файла на целевом сервере


  3. Выполните следующую команду на исходном сервере и целевом сервере, чтобы получить значения sha256 файлов и определить, одинаковы ли файлы.

    Если значения sha256 файлов одинаковы, содержимое файлов согласовано.

    sha256sum /tmp/test-data.img

    Figure 3 Получение значения sha256