Linux용 서버측 복사가 작동하지 않습니다.

Linux용 서버측 복사가 작동하지 않습니다.

Samba4가 설치되어 실행되는 NAS 임베디드 Linux 장치가 있습니다. 삼바 공유를 구성했으며 클라이언트의 해당 삼바 공유 내에서 서버측 복사를 수행하려고 합니다. 이것이 내가하려는 일입니다. https://wiki.samba.org/index.php/Server-Side_Copy

  1. 처음에는 Windows7에서 시도했습니다. 먼저 WIN7 노트북에서 삼바 공유를 마운트하고 robocopy 명령을 사용하여 해당 공유 내의 두 디렉터리 간에 큰 파일을 복사합니다. 그리고 나는 그것이 작동하는 것을 볼 수 있습니다. 로보포이는 대용량 파일을 복사하는 속도가 정말 빠릅니다. 그리고 Wireshark를 사용하여 네트워크 트래픽도 분석합니다. Ioctl req FSCTL_SRV_COPYCHUNK_WRITE File:... 및 Ioctl resp FSCTL_SRV_COPYCHUNK_WRITE File:...

  2. 그런 다음 ubuntu15를 사용해 보았습니다. 나는 ubuntu15의 Linux 커널이 CIFS_IOC_COPYCHUNK_FILE ioctl을 지원한다고 확신합니다. 다음을 사용하여 해당 공유를 마운트합니다: mount.cifs //[host_ip]/[share_name] [mount_path] -o vers=2.1,username=root. 서버 측 복사를 사용하려면 SMB2 프로토콜을 사용해야 하기 때문에 vers=2.1이 있어야 한다고 확신합니다. 그리고 다시 바탕으로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 응답, 오류: status_invalid_device_request라는 오류가 표시됩니다.

Linux에서는 cloner가 작동하지 않지만 win7에서는 robocopy가 작동하는 이유는 무엇입니까? 오류: status_invalid_device_request가 발생하는 이유는 무엇입니까? 클로너에 무엇이 빠졌나요? 여기에 누락된 내용이나 버그가 있는 경우 이를 수정하는 방법은 무엇입니까? 사용할 수 있는 기존 클라이언트 측 서버 측 복사 코드나 도구가 있습니까?

관련 정보