Как можно синхронизировать списки пользователей и файлы на файловом сервере с двумя географически удаленными филиалами на Linux?

Как можно организовать двунаправленную синхронизацию файлов между двумя серверами (не в режиме зеркала), чтобы удаленные и новые файлы на первом сервере корректно удалялись и создавались на втором, с сохранением прав доступа ACL (планируется использование ext4 с опцией acl)? Я рассматривал Syncthing, но не уверен, поддерживает ли он ACL. Также я думал о FreeIPA, Samba DC и других вариантах для управления списками пользователей, включая написание скриптов для копирования конфигураций, однако пока не определился с оптимальным решением (домен/AD использовать не планирую, так как достаточно Windows Home) и не разобрался, как осуществлять репликацию. 

В целом, моя цель заключается в создании двух копий файлового сервера с полным содержимым, чтобы любой пользователь мог получить доступ к "местному" серверу из любого филиала и работать с файлами, а администратору было достаточно создавать новые учетные записи только на одном сервере, и чтобы все это автоматически реплицировалось. 

Есть ли у кого-то примеры конфигураций по данной тематике?
  • 9 января 2025 г. 18:04
Ответы на вопрос 2
Синхронизация файлов и управления пользователями на файловых серверах в двух географически удалённых филиалах может быть непростой задачей. Однако с использованием правильного подхода и инструментов это можно реализовать. Вот несколько идей и решений, которые могут помочь вам.

### Синхронизация файлов

1. **rsync**:
   - Этот инструмент может быть использован для синхронизации файлов между серверами. С помощью скриптов можно настроить двухстороннюю синхронизацию.
   - `rsync` поддерживает передачу ACL с использованием параметра `-A`.
   - Пример базовой команды:
     ```bash
     rsync -avz --delete --acls /path/to/source/ user@remote_server:/path/to/destination/
     ```

2. **Unison**:
   - Unison — это двунаправленный инструмент для синхронизации, который поддерживает локальные и удаленные пути, обеспечивая синхронизацию файлов и каталоги между двумя системами.
   - Он поддерживает ACL, и может быть хорошим вариантом для ваших нужд.
   - В конфигурационном файле можно указать параметры игнорирования, которые помогут справиться с конфликтами.

3. **Syncthing**:
   - Syncthing позволяет синхронизировать файлы в реальном времени и поддерживает работу с несколькими устройствами. Однако его поддержка ACL может быть ограниченной, что стоит проверить.
   - Вы можете использовать обратную связь от сообщества и тесты для проверки совместимости с вашими требованиями.

### Управление пользователями

1. **FreeIPA**:
   - FreeIPA может быть использован как централизованный инструмент управления пользователями и правами доступа на Linux серверах.
   - Вы можете настроить репликацию между двумя серверами FreeIPA, что позволит управлять пользователями и группами из одного места.

2. **Samba**:
   - Если в вашей сети уже используются Windows-системы, вы можете рассмотреть установку Samba в режиме контроллера домена. Это позволит вам настроить репликацию пользователей и прав.

3. **Скрипты для автоматизации**:
   - Вам может понадобиться создать собственные скрипты на Bash или Python, которые будут автоматически копировать конфигурации пользователей и групп за одно выполнение.

### Дополнительные моменты

1. **Сетевое соединение**:
   - Убедитесь, что между филиалами установлено надежное соединение, чтобы синхронизация файлов проходила без задержек и потерь.

2. **Безопасность**:
   - Обратите внимание на безопасность при передаче данных между филиалами (используйте SSH, VPN и т.д.).

3. **Мониторинг и логирование**:
   - Настройте логи для изменений и синхронизации, чтобы отслеживать возможные ошибки и конфликты, особенно если используются автоматические скрипты.

### Примеры конфигурации

- **Unison** может быть настроен с помощью простого конфигурационного файла. Например:
```bash
root = /path/to/local
root = ssh://user@remote_server//path/to/remote

# Опции
auto = true
batch = true
# Другие опции, такие как ignore
```

- Установите `unison` на обоих серверах, и регулярно запускайте проверку на предмет изменений.

### Заключение

Учитывая ваши требования, лучшим решением может быть сочетание Unison для синхронизации файлов и FreeIPA для управления пользователями. Это обеспечит двунаправленную синхронизацию файлов и централизованное управление пользователями, что значительно упростит вашу работу.
DFS на Samba. 
А прежде чем просить конфиги, нужно правила ресурса изучить и п.5.12 в частности
Похожие вопросы