Копирование на стороне сервера для Linux не работает

Копирование на стороне сервера для Linux не работает

У меня есть встроенное устройство Linux NAS, на котором установлена ​​и запущена Samba4. Я настроил общий ресурс samba и пытаюсь сделать копию на стороне сервера в этом общем ресурсе samba с клиента. Вот что я пытаюсь сделать: https://wiki.samba.org/index.php/Server-Side_Copy

  1. Сначала я попробовал на Windows7. Сначала я монтирую этот общий ресурс Samba с моего ноутбука WIN7 и использую команду robocopy для копирования большого файла между двумя каталогами в этом общем ресурсе. И я вижу, что это работает. Robocpoy действительно быстро копирует большой файл. И я также анализирую сетевой трафик с помощью Wireshark. У него есть что-то вроде: Ioctl req FSCTL_SRV_COPYCHUNK_WRITE File:... и Ioctl resp FSCTL_SRV_COPYCHUNK_WRITE File:...

  2. Затем я попробовал на ubuntu15. Я почти уверен, что ядро ​​Linux в ubuntu15 поддерживает ioctl CIFS_IOC_COPYCHUNK_FILE. Я монтирую этот ресурс с помощью: mount.cifs //[host_ip]/[share_name] [mount_path] -o vers=2.1,username=root. Я почти уверен, что у него должна быть vers=2.1, потому что для использования server-side-copy он должен использовать протокол SMB2. И снова на основеhttps://wiki.samba.org/index.php/Server-Side_Copy, он говорит, что "cloner" выполняет эту функцию. Ключевая функция здесь - вызвать: "ioctl(dst_fd, CIFS_IOC_COPYCHUNK_FILE, src_fd)". Поэтому я скачал и скомпилировал "cloner" и выполнил эту команду, но она не работает. По сути, команда cloner выполняется вечно и никогда не останавливается (kill -9 даже не работает). Я также использую Wireshark для мониторинга сетевого трафика. Я вижу следующее: он отправляет тот же запрос, что и Windows7, а именно Ioctl req FSCTL_SRV_COPYCHUNK_WRITE File:..., но он получает ошибку, говорящую: Ioctl response, Error: status_invalid_device_request

Почему cloner на linux не работает, а robocopy на win7 работает? Почему возникает ошибка: status_invalid_device_request? Чего не хватает в cloner? Если здесь чего-то не хватает или ошибка, как это исправить? Есть ли какой-либо существующий код или инструмент клиент-серверного копирования, который я могу использовать?

Связанный контент