У меня есть встроенное устройство Linux NAS, на котором установлена и работает Samba4. Я настроил общий ресурс samba и пытаюсь сделать копию на стороне сервера в этом общем ресурсе samba от клиента. Вот что я пытаюсь сделать: https://wiki.samba.org/index.php/Server-Side_Copy
Сначала попробовал на Windows7. Сначала я монтирую этот общий ресурс samba со своего ноутбука WIN7 и использую команду robocopy для копирования большого файла между двумя каталогами внутри этого общего ресурса. И я вижу, что это работает. Robocpoy действительно быстро копирует большой файл. А еще я анализирую сетевой трафик с помощью wirehark. В нем есть что-то вроде: Ioctl req FSCTL_SRV_COPYCHUNK_WRITE File: ... и Ioctl resp FSCTL_SRV_COPYCHUNK_WRITE File: ...
Потом попробовал на ubuntu15. Я почти уверен, что ядро Linux ubuntu15 поддерживает CIFS_IOC_COPYCHUNK_FILE ioctl. Я монтирую этот общий ресурс, используя: mount.cifs // [host_ip] / [share_name] [mount_path] -o vers = 2.1, username = root. Я почти уверен, что у него должен быть vers = 2.1, потому что для использования копии на стороне сервера он должен использовать протокол SMB2. И снова на основе https://wiki.samba.org/index.php/Server-Side_Copy, он говорит, что "cloner" выполняет эту функцию. Ключевой функцией здесь является вызов: «ioctl (dst_fd, CIFS_IOC_COPYCHUNK_FILE, src_fd)». Итак, я скачал и скомпилировал "cloner" и выполнил эту команду, но она не работает. В принципе, команда cloner работает вечно и никогда не останавливается (kill -9 даже не работает). Я также использую wirehark для мониторинга сетевого трафика. Что я вижу: он отправляет тот же запрос, что и Windows7, который представляет собой Ioctl req FSCTL_SRV_COPYCHUNK_WRITE File: ..., но он получает сообщение об ошибке: Ioctl response, Error: status_invalid_device_request
Почему cloner на linux не работает, а robocopy на win7 работает? Почему появляется ошибка status_invalid_device_request? Чего не хватает в клонере? Если здесь чего-то не хватает или есть ошибка, как это исправить? Есть ли какой-либо существующий код или инструмент для копирования на стороне сервера на стороне клиента, которые я могу использовать?