私は Samba4 がインストールされ、実行されている NAS 組み込み Linux デバイスを持っています。私は Samba 共有を構成しており、クライアントからその Samba 共有内でサーバー側のコピーを実行しようとしています。私がしようとしているのは以下のことです: https://wiki.samba.org/index.php/サーバーサイドコピー
まず Windows7 で試しました。まず WIN7 ラップトップからその samba 共有をマウントし、robocopy コマンドを使用してその共有内の 2 つのディレクトリ間で大きなファイルをコピーしました。そして、それが機能しているのがわかりました。robocopy は大きなファイルをコピーするのに非常に高速です。また、wireshark を使用してネットワーク トラフィックを分析しました。次のようなものがあります: Ioctl req FSCTL_SRV_COPYCHUNK_WRITE File:... および Ioctl resp FSCTL_SRV_COPYCHUNK_WRITE File:...
次に、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/サーバーサイドコピー、"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
Linux のクローン作成ツールは動作しないのに、Win7 の robocopy は動作する理由は何ですか? エラー: status_invalid_device_request が発生するのはなぜですか? クローン作成ツールに何が欠けていますか? 何かが欠けているかバグがある場合、これを修正するにはどうすればよいですか? 使用できる既存のクライアント側サーバー側コピー コードまたはツールはありますか?