Назад | Перейти на главную страницу

Копирование файлов / разрешений на другой сервер без SMB?

Для диагностики проблемы, с которой я столкнулся, мне действительно нужно иметь возможность копировать файлы между серверами Windows, включая разрешения NTFS. без помощи кого-л.. Есть ли готовый способ сделать это? Если бы я работал с Linux, я бы просто использовал поток tcp или SSH. Реализации SSH, на которые я смотрел, не имеют разрешений NTFS, и я еще не видел ничего, кроме необработанного потока tcp.

Задний план:

Я задаю общий ресурс DFS, который будет использоваться для миграции с файлового сервера 2003r2 на сервер 2012r2. У меня есть несколько терабайт данных, которые нужно переместить.

Я исключил проблемы на сетевом уровне с помощью iperf. Мы получаем пропускную способность 800 мегабит или лучше. Я также отключил антивирус и выполнил другие стандартные шаги по устранению неполадок с производительностью.

Что ж, один из методов, который полностью избегал бы SMB, но, вероятно, был бы довольно сложен для создания, был бы основан на iSCSI.

Windows 2012r2 может быть целью iSCSI, а Windows 2003r2 может выступать в качестве клиента. Таким образом, вы можете настроить том в месте назначения и представить его через iSCSI, затем подключиться к нему через вашу клиентскую систему, а затем смонтировать том непосредственно в Windows 2003r2. Затем вы можете использовать локальные инструменты копирования (например, robocopy), чтобы выполнить предварительную настройку.

Вам действительно стоит предоставить нам дополнительную информацию, особенно о Зачем вы в первую очередь хотите избегать smb / cifs.

В любом случае, если предположить, что вы действительно не можете использовать smb, у вас есть две возможности:

  • следуйте предложению Zoredache, используя протокол нижнего уровня (iSCSI) для экспорта удаленной файловой системы, а затем скопируйте необходимые данные с помощью robocopy;
  • установите cygwin на оба сервера и используйте rsync для копирования необходимых файлов.

Позвольте мне подробнее остановиться на втором методе (rsync). Несколько месяцев назад мне нужно было перенести около 200 ГБ с файлового сервера Windows 2003 на новую установку Linux + Samba, и все это без простоев. Мое решение состояло в том, чтобы использовать rsync для постепенной синхронизации двух файловых серверов с очень коротким заключительным этапом синхронизации, во время которого исходный общий ресурс переводился в режим только для чтения.

Я столкнулся со следующими проблемами:

  1. сначала ACL не синхронизировались. Решение состояло в том, чтобы передать -A параметр для команды rsync;
  2. после этого ACL был синхронизирован, но неправильно (неверный uid назначен файлам). Решение было первый подключить новый Linux-сервер к домену и правильно настроить windbind, чтобы при вызове getent passwd вернул список пользователей домена;
  3. передача данных была медленной. Оказалось, что реализация SSH в CygWin идет довольно медленно. Чтобы обойти это, я настроил экземпляр rsync под управлением Windows в автономном режиме демона, не требуя SSH.

Результаты ene были почти идеальной репликой ACL на машине Linux (некоторые незначительные отличия были связаны с тем, чем отличаются SMBACL и Posic ACL).

Вы в чем-то похожи, но лучше, позиция: оба ваших файловых сервера основаны на Windows, и я полагаю, что они находятся в одном домене. Это означает, что у них есть доступ к одной и той же базе данных пользователей с одним и тем же RID - другими словами, вы не должны столкнуться с проблемами при репликации списков ACL. Более того, rsync - очень эффективный и универсальный инструмент, и у него не должно возникнуть проблем с инкрементным копированием ваших файлов.

Перед тем не менее, делая все это, вы действительно должны пересмотреть, почему (и если) вы не можете использовать SMB / CIFS для передачи файлов. Вы действительно, действительно, действительно конечно? Если да, то почему?