Мгновенное копирование файлов на NVMe SSD с файловой системой XFS

Экспорт в PDF Преобразовать страницу в формат Open Document

Дата создания: 2025/11/04 13:02 (C) mihanik

Дано

У вас есть NVMe SSD с файловой системой XFS.

Надо

Понять почему на NVMe SSD с файловой системой XFS даже огромные файлы копируются практически мгновенно.

Объяснение

Это одно из самых впечатляющих преимуществ современного SSD + XFS. То, что вы видите «мгновенное» копирование, на самом деле — не совсем копирование в традиционном смысле. Это комбинация нескольких передовых технологий.

Давайте разберем по пунктам, почему это происходит.

Это самая важная часть ответа. Файловая система XFS (начиная с ядра Linux ~4.9) поддерживает reflink.

Обычное копирование (без reflink): когда вы копируете файл, система читает все данные исходного файла с диска, помещает их в оперативную память, а затем записывает новую копию этих данных на новое место на диске. Это долго, особенно для больших файлов.

Копирование с reflink: система не трогает сами данные. Она просто создает новую запись в файловой системе (метаданные), которая указывает на те же самые блоки данных на диске, что и исходный файл. Процесс занимает миллисекунды, так как копируются только метаданные (информация о файле), а не гигабайты самих данных.

Простая аналогия:

Без Reflink: у вас есть книга. Чтобы сделать копию, вы переписываете ее от руки (долго и требует ресурсов).

С Reflink: у вас есть книга в библиотеке. Вы просто вносите две разные карточки в каталог, которые указывают на одну и ту же книгу. Книга осталась в единственном экземпляре, но по каталогу ее можно найти под двумя разными именами.

Что происходит при изменении? Магия в том, что если вы теперь измените копию, система с помощью механизма «Copy-on-Write» (CoW) скопирует только те блоки, которые вы меняете, и перенаправит вашу копию на новые блоки. Исходный файл останется нетронутым. Это быстро и эффективно.

Важно!!!:
Reflink работает только в пределах одной файловой системы. Вы не можете скопировать файл с reflink с одного диска на другой.

2. Основные причины высокой скорости работы с метаданными (XFS + NVMe)

Даже если reflink по какой-то причине не сработал (например, вы копируете между разными файловыми системами), комбинация XFS и быстрого NVMe-диска все равно будет ощущаться очень быстро.

XFS была разработана для высокопроизводительных систем и исключительно быстро работает с метаданными (операции создания файлов, каталогов, поиск и т.д.). Процесс начала копирования, выделения места под файл и обновления каталогов — мгновенен.

NVMe SSD, который работает через шину PCIe, обладает чудовищной скоростью как чтения/записи (последовательной и случайной), так и чрезвычайно низкой задержкой (latency). Операция, которая на HDD занимала бы секунды (поиск блоков, запись), на NVMe занимает микросекунды.

3. Кэширование (Page Cache / System Cache)

Операционная система активно использует оперативную память для кэширования дисковых операций. Когда вы впервые прочитали исходный файл, его данные, скорее всего, остались в кэше в ОЗУ. При последующем копировании система может просто быстро скопировать данные из кэша ОЗУ, а не ждать медленного чтения с диска. Это, конечно, не так быстро как reflink, но на порядки быстрее, чем работа с диском напрямую.

Как проверить, что сработал именно reflink?

В Linux есть утилита cp у которой есть ключ –reflink.

Принудительно использовать reflink, если возможно.

cp --reflink=always big_file.iso big_file_copy.iso

Использовать значение по умолчанию (скорее всего, так и так сработает в вашем случае)

cp --reflink=auto big_file.iso big_file_copy.iso

Принудительно отключить reflink и выполнить настоящее, «честное» копирование.

cp --reflink=never big_file.iso big_file_copy.iso

Попробуйте скопировать один и тот же файл с --reflink=always и –reflink=never — вы сразу почувствуете колоссальную разницу.

Итог в двух словах:

«Мгновенное» копирование больших файлов на вашем M.2 NVMe SSD с XFS — это в большинстве случаев не копирование данных, а создание новой ссылки на существующие данные с помощью технологии reflink. Даже если reflink не используется, феноменальная скорость самого накопителя и оптимизация файловой системы XFS делают процесс копирования невероятно быстрым по сравнению с традиционными HDD.

Источники

⇑ Наверх ⇑

В моей WIKI постоянно ведётся какая-то работа со статьями.
Если у вас возникли вопросы или замечания,
можете их отправлять на почту support@mihanik.net
Только авторизованные участники могут оставлять комментарии.
операционные_системы/linux/работа_с_дисками/мгновенное_копирование_файлов_на_nvme_ssd_с_файловой_системой_xfs.txt · Последнее изменение: 2025/11/04 13:54 — mihanik
Яндекс.Метрика