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

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

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

Все хорошо работает в локальной целевой файловой системе ext4, т.е. копирование и перемещение демонстрационного изображения 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 ТБ ?!

РЕДАКТИРОВАТЬ: указание sparse-version=1.0 заставляет tar работать на клиенте, но не на NFS (и cifs которые я пробовал между тем с тем же поведением). Это позволяет, по крайней мере, сохранить разреженный файл на сервере и передать результат со стоимостью одного ненужного действия unntar на клиенте.

1 ответ1

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .