Мне интересно, какие протоколы передачи файлов, доступные в Linux, поддерживают копирование на стороне сервера (и не загружают и не перезагружают файлы внутри). Самый простой вариант использования - копирование больших файлов (например, виртуальных машин) из одного каталога в другой на том же общем ресурсе.
Я знаю, что Samba 4.1.0 недавно реализовала поддержку FSCTL_SRV_COPYCHUNK в протоколе SMB2, но, насколько мне известно, ни один клиентский инструмент / файловый менеджер еще не поддерживает это (ссылка на сайт). Я также посмотрел на AFP, но единственные два инструмента Linux для установки общих ресурсов AFP - gvfs-afp
и afpfs-ng
и ни то, ни другое не слишком велико. afpfs-ng не обслуживается и плохо взаимодействует с netatalk (segfaults), в то время как gvfs-afp имеет очень низкую пропускную способность по сравнению с afpfs-ng, когда он работает. Обновить: похоже, что следующая версия NFS тоже может это поддерживать.
Есть ли другие протоколы, поддерживающие копирование на стороне сервера?
Заранее спасибо!
Как упомянул Росс Лагерволл, поддержка копирования Samba 4.1+ SMB2 на стороне сервера может использоваться клиентом ядра Linux CIFS (cifs.ko) через ioctl CIFS_IOC_COPYCHUNK_FILE.
В Cloner Утилита, поставляемая с fstests, может использоваться для запуска ioctl на точках монтирования SMB2 cifs.ko. Работа над поддержкой smbclient также продолжается.
Одним из преимуществ реализации копирования на стороне сервера Samba является то, что ее можно использовать поверх файловой системы Btrfs для выполнения почти мгновенного копирования / дедупликации файловых данных, как показано на это сравнение производительности.
Как вы отметили, AFP поддерживает копии на стороне сервера. Последняя неизданная версия gvfs содержит ряд улучшений для gvfsd-afp, которые делают его более надежным и быстрым. В моих тестах он может получить около 70 МБ / с для большой передачи на 1GBE и может дублировать каталог из 10000 файлов за 11 секунд, что не так уж плохо. Если копии на стороне сервера важны и вы не хотите входить в терминал, я бы рекомендовал использовать именно это.
Мы также планируем в ближайшее время добавить поддержку копирования на стороне сервера для gvfsd-smb, но кто знает, когда "скоро" может быть ...
(Отказ от ответственности, я помогаю поддерживать gvfs.)