перемещение/копирование разреженных файлов через NFS

Я создал разреженный файл с

truncate -s 4T image.img

на файловой системе ext4, которую я монтирую поверх NFS. Следующий тест показывает, что система имеет проблемы с распознаванием разреженных файлов: оба

cp --sparse=always /mnt/data_extension/a.img /tmp/a.img # where a.img is created the same way image.img is
rsync --sparse /mnt/data_extension/a.img /tmp/a.img

занимает много времени, и я никогда не позволяю ему закончить, поскольку занимает больше секунды для команды показывает, что разреженный файл не распознается как таковой, и копирование/перемещение отверстий потребляет ввод/вывод, который не должен быть так.

tar --sparse -c -v -f /tmp/a.tar /mnt/data_extension/a.img

возвращает сразу и производит деготь, который может быть нетронутым, если.img пуст, если я пишу что-то внутри (например, создаю фиктивную файловую систему btrfs с sudo mkfs.btrfs /mnt/data_extension/a.img), он перестает работать, т. е. занимает вечность, как команды выше.

все хорошо работает на локальной целевой файловой системе ext4, i.e копирование и перемещение демонстрационного изображения a.img происходит за 1 секунду или намного меньше.

когда я применяю вышеуказанные команды к фактическому изображению image.img и watch du -h /local/image.img размер 0 никогда не обновляется, но он следует после записи первого байта.

смонтировать информацию /mnt/data_extension:

$ mount | grep /mnt/data_extension
192.168.178.76:/volume1/data_extension on /mnt/data_extension type nfs (rw,addr=192.168.178.76)

как я могу переместить/скопировать image.img из NFS монтировать в локальную файловую систему без необходимости читать 4 ТБ?!

EDIT: указание sparse-version=1.0 делает tar работа на клиенте, но не над NFS (и cifs который я пробовал тем временем с тем же поведением). Это позволяет, по крайней мере, деготь разреженный файл на сервере и передавать результат со стоимостью одного ненужные действия untar на клиенте.

3
задан Karl Richter
14.11.2022 4:39 Количество просмотров материала 2702
Распечатать страницу

1 ответ

создание поддержка через SEEK_SET поддержка fallocate будет добавлена в версии 4.2 (в стадии разработки) [http://www.spinics.net/lists/linux-nfs/msg44500.html]

0
отвечен Karl Richter 2022-11-15 12:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

file-transfer
linux
nfs
sparsefile
sparseimage
Вверх