В умовах розвитку онлайн-бізнесу та, відповідно, віртуалізації всіх робочих процесів, актуальним стає питання забезпечення узгодженості даних, що зберігаються на різних комп'ютерах мережі, тобто їх синхронізація між собою. Існує безліч варіантів вирішення цього питання, найбільш оптимальним з яких буде використання спеціального програмного забезпечення (ПЗ), що синхронізує дані в автоматичному режимі без прив'язки до стороннього централізованого сховища. Програма Syncthing відноситься до зазначеного ПЗ і є однією з найкращих у своєму сегменті. Розглянемо докладніше її можливості та продемонструємо їх використання на практиці.
Синхронізація файлів та папок
Автоматична синхронізація даних позбавляє користувачів від рутини ручного копіювання у разі необхідності мати копію даних на іншому вузлі локальної або глобальної мережі, особливо якщо дублювання інформації використовується декількох вузлів. У разі автоматичної синхронізації копіювання відбувається у фоновому режимі, непомітно для користувачів. До того ж, низка програм синхронізації, у тому числі Syncthing, використовують шифровані канали передачі даних, що гарантує захист інформації від злому. Це робить програму незамінним інструментом для організації розгалуженої мережі робочих вузлів із даними, що синхронізуються в автоматичному режимі.
Альтернативним варіантом може бути використання хмарних сервісів та інших централізованих сховищ даних, проте в цьому випадку значно підвищується ризик витоку інформації, оскільки вона зберігатиметься на сторонньому сервері. Крім того, власники якісних сховищ, як правило, згодом підвищують оплату за їх використання та/або посилюють вимоги щодо ряду деяких параметрів.
Використання децентралізованих сховищ у межах власного кластера машин, що динамічно масштабується, на наш погляд, є кращим вирішенням проблеми. Особливо, якщо програмою синхронізації буде використовуватися вільне ПЗ з відкритим вихідним кодом, як у Syncthing. Виходячи із зазначених характеристик та ряду інших параметрів, можна констатувати, що програма Syncthing дійсно є одним із найперспективніших програмних засобів синхронізації даних.
Можливості Syncthing
Вкажемо найбільш значущі характеристики Syncthing, що відрізняють її від інших програмних засобів синхронізації:
- Належить до вільного безкоштовного ПЗ;
- Можливість використання для локальних та глобальних мереж;
- Децентралізоване зберігання даних;
- Надійна ідентифікація вузлів кластера за допомогою криптографічного сертифіката;
- Легкість та простота масштабування кластера будь-якого розміру та типу;
- Кросплатформенність – можливість роботи на багатьох платформах – Linux, Windows, Mac та деяких інших;
- Для передачі даних використовуються шифровані канали TLS і механізм обміну ключами;
- Відкриті розробки та програмний код;
- Обмін даними в межах кластера здійснюється на рівні блоків;
- Використання спеціального протоколу власної розробки для виявлення пристроїв;
- Розгалужена структура серверів Discovery для виявлення нових вузлів на глобальному рівні;
- Наявність веб-інтерфейсу для керування програмою.
Практичне використання Syncthing
Для використання програми для своїх проектів достатньо завантажити потрібну версію для конкретної платформи на сайті розробника та завантажити її на робочий вузол. Після встановлення та розгортання стане доступним ідентифікатор пристрою, який слід передати користувачам або Адміністраторам віддалених машин, на яких планується розміщення загальних синхронізованих даних. Ті, у свою чергу, після встановлення програми також мають поділитись своїми ідентифікаторами з усіма учасниками кластера. Це умова функціонування кластера.
Відразу ж після розгортання програми на будь-якому з вузлів стає доступним веб-інтерфейс для її адміністрування, що знаходиться за адресою http://127.0.0.1:8384. За замовчанням пароль для доступу до Панелі керування відсутній, але пізніше його можна буде за потреби встановити.
Ми налаштуємо наш кластер на основі двох віддалених один від одного вузлів – на одному з яких встановлено ОС Ubuntu, на іншому – Windows. Вузол на Ubuntu був підготовлений нами заздалегідь, в результаті чого ми отримали ідентифікатор пристрою ID, який нам знадобиться надалі для підключення пристрою до кластера.
Тепер нам залишається розгорнути програму на локальному вузлі під керуванням Windows і зробити необхідні настройки.
Розгортання Syncthing на Windows
Для початку, скачуємо з сайту розробників 32-розрядну версію програми для платформи х86 і завантажуємо на свій вузол. Це файл архіву з ім'ям syncthing-windows-386-v0.14.30. За допомогою архіватора вилучаємо каталог з аналогічною назвою, в якому знаходимо всі системні файли та папки програми.
Запускаємо файл з ім'ям syncthing для початку процесу установки. В результаті генеруються ключі шифрування та конфігураційний файл програми. Протягом двох хвилин після ініціалізації процесу інсталяції здійснюється автоматичний запуск браузера з доступом до веб-інтерфейсу Панелі керування Syncthing за адресою http://127.0.0.1:8384, як показано нижче.
Вікно програми поділено на два блоки. У лівому блоці відображаються назви каталогів, які спільні для всіх доданих вузлів кластера. У цьому випадку відображається лише каталог, встановлений за замовчуванням (Default Folder), який поки не є загальнодоступним.
У правому блоці відображаються імена та характеристики всіх пристроїв кластера – у верхній частині для поточного пристрою, у нижній – лише для віддалених пристроїв.
Керування кластером за допомогою веб-інтерфейсу програми
Перше, що ми повинні зробити, це підключити каталог із даними, який надалі стане загальним ресурсом для всіх вузлів кластера. Для цього в лівому блоці інтерфейсу натискаємо кнопку Додати папку. Внаслідок цього з'являється вікно введення значень параметрів сховища, як показано нижче.
Найбільш важливими тут є перші три поля, в яких зазначаються назва сховища, його ідентифікатор та локальний шлях до місця його розміщення. Після їх заповнення натискаємо кнопку Зберегти, після чого програма повертає нас до головного вікна інтерфейсу (див. скріншот).
Після цього протягом якогось часу буде йти обробка даних (зазвичай кілька хвилин), після закінчення якої навпроти назви підключеного каталогу з'явиться напис зеленим кольором – «В актуальному стані».
Наступним етапом формування кластера буде його розширення шляхом послідовного додавання нових вузлів. Натисніть кнопку Додати дистанційний пристрій у правому блоці вікна інтерфейсу програми. В результаті з'явиться вікно введення значень параметрів нового пристрою, як показано нижче.
Введемо значення обов'язкових параметрів – ідентифікатор пристрою, його назву та адресу. Як уже говорилося, програма має вбудовані засоби пошуку нових пристроїв, тому для поля «Адреси» достатньо вказати спосіб динамічного визначення адреси, не вводячи реального IP.
Також необхідно дозволити доступ пристрою до всіх або деяких вже існуючих каталогів, поставивши прапорці навпроти назв потрібних нам.
Після закінчення введення даних натискаємо кнопку Зберегти і знову потрапляємо у головне вікно програми.
Тут ми бачимо в правому блоці появу інформації про новий вузл кластера, де видно його IP-адреси для різних портів, а також список доступних для нього каталогів в нижній частині блоку.
В результаті ми отримали готовий кластер, що складається з двох вузлів з різними платформами. Надалі можливе розширення кластера за рахунок додавання нових пристроїв, кількість яких обмежена лише технічними можливостями сервера з управління кластером великих розмірів.
Програма надає можливості динамічного керування всіма процесами за допомогою набору команд головного меню, які сконцентровані у пункті меню Дії, як показано нижче.
Тут можна виконати широкий спектр програмних налаштувань, перезапустити або вимкнути.
Наприклад, у вікні налаштувань можна встановити надійний пароль доступу до інтерфейсу управління програмою, а також увімкнути захищений протокол, що значно підвищить надійність роботи з даними.