Як перенести файли з однієї хмари на іншу, минаючи свій ПК

Як перенести файли з однієї хмари на іншу, минаючи свій ПК
Смерть, розлучення, переїзд — три найбільш стресові ситуації в житті будь-якої людини.
"Американська історія жахів".

— Андрюху, я з дому йду, допоможи з переїздом, до мене все не влізе: (
— Добре, а чи багато там?
- Тонн 7-8 ...
*Тонна (жарг.) - Терабайт.

Нещодавно, в процесі інтернет-серфінгу, я звернув увагу на те, що незважаючи на доступність на Хабре і на аналогічних йому ресурсах безлічі матеріалів про способи та моделі міграції різних типів даних, у мережі все ще постають питання з цієї теми. Які чомусь не завжди удостоюються ґрунтовних відповідей. Цей факт і сподвиг мене одного разу зібрати нотатки про реалізацію схожого рішення та оформити їх у вигляді окремого посту.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

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

Проектування

Як виявилося в результаті проектно-вишукувальних робіт, якість та оперативність процесу міграції залежить не тільки від технічних характеристик «майданчиків», де знаходяться або будуть дані, а й від їх фізичного розташування.

Міграційний менеджер — обчислювальний вузол, у якому функціонує «логіка» процесу — ПЗ управління міграцією.

Тобто всього існують дві моделі розміщення «міграційного менеджера»

  • Модель А. Якщо хоча б до одного з майданчиків є доступ лише зсередини локальної мережі, то в цій мережі варто розміщувати і «міграційного менеджера». Бо продуктивність і час міграції все одно обмежені швидкістю та аптаймом каналу, які зв'язують майданчики.
  • Модель B. Якщо і до джерела, і до приймача даних є доступ за межами локальної мережі, то «міграційного менеджера» варто селити там, де швидкість і аптайм каналу між ними буде краще.

Щоб якось декомпозувати сказане вище, пропоную повернутися до завдань з основного питання статті, і формалізувати їх у технічне завдання.

Для початку необхідно з'ясувати, чи підтримує використовуване мною програмне забезпечення «хмари»: Mail.ru, Yandex, Google Drive, Mega, Nextloud?

Коротка відповідь: «ТАК!»

Я використовую Rclone.

Rclone – rsync для хмарних сховищ. Open Source ПЗ призначене для синхронізації файлів та папок більш ніж з 45 типами та видами сховищ.

Ось лише деякі з них:
- Alibaba Cloud (Aliyun) Object Storage System (OSS)
- Amazon S3
- Ceph
- DigitalOcean Spaces
- Dropbox
- Google Cloud Storage
- Google Drive
- Google Photos
- HTTP
- IBM COS S3
- Mail.ru Cloud
- Mega
- Microsoft Azure Blob Storage
- Microsoft OneDrive
- Minio
- Nextcloud
- Openstack Swift
- Oracle Cloud Storage
- ownCloud
- Rackspace Cloud Files
- rsync.net
- SFTP
- WebDAV
- Yandex Disk

Основний функціонал:
— Перевірка цілісності файлів за хешами MD5/SHA1.
— Збереження тимчасових позначок створення/зміни файлів.
- Підтримка часткової синхронізації.
— Копіювання лише нових файлів.
- Синхронізація (одностороння).
- Перевірка файлів (за хешами).
— Можливість синхронізації з одного хмарного облікового запису в інший.
- Підтримка шифрування.
- Підтримка локального кешування файлів.
- Можливість монтування хмарних сервісів через FUSE.

Від себе додам, що Rclone також допомагає мені вирішувати левову частку завдань, пов'язаних з автоматизацією резервування даних у проекті «Väinämöinen».

Наступне завдання - вибір моделі розміщення "міграційного менеджера".

До всіх джерел даних - якими є різні публічні хмарні послуги, є доступ через інтернет. У тому числі через API. У двох із трьох приймачів теж. Незрозуміло лише де розгорнуть сам Nextcloud і який доступ до нього є?

Можливих варіантів я нарахував п'ять:

  1. На власному сервері у домашній/корпоративній мережі.
  2. На своєму сервері в орендованій стійці дата-центру сервіс-провайдера.
  3. На сервері, що орендується у сервіс-провайдера.
  4. На віртуальному сервері (VDS/VPS) у сервіс/хостинг-провайдера 
  5. У сервіс-провайдера за моделлю SaaS

Враховуючи те, що Nextcloud це все-таки програмне забезпечення для створення та використання хмарного сховища, можна сміливо стверджувати, що доступ до нього через інтернет доступний у всіх п'яти варіантах. І оптимальним у цьому випадку моделлю розміщення «міграційного менеджера» стане модель B.

Відповідно до обраної як майданчик для «міграційного менеджера» моделі, я виберу один з оптимальних, на мій погляд, варіантів — віртуальний сервер в дата-центрі М9 найбільшої в Росії точки обміну інтернет-трафіком MSK-IX.

Третє рішення, яке необхідно прийняти, — це визначитися з конфігурацією віртуального сервера. 

При виборі параметрів конфігурації VDS потрібно керуватися необхідною продуктивністю, яка залежить від ширини каналів між майданчиками, кількістю та розміром файлів, що переміщуються, кількістю потоків міграції та налаштуваннями. Що стосується ОС, то Rclone - кросплатформне ПЗ, що працює під різними операційними системами, включаючи Windows та Linux.

Якщо планується запускати кілька процесів міграції та ще й певної періодичністю, то варто розглянути варіант оренди VDS з оплатою за ресурси.

Створення

Згідно з вищевикладеним, під час створення прототипу для цієї статті я вибрав VDS у наступній конфігурації.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

вартістю 560 руб./міс. з урахуванням 15% знижки по купону БЕЗ СТРЕСУ.

Такий вибір обумовлений тим, що вузол під ОС Windows для відповідності умовам нашого ТЗ налаштовується легше, ніж під інші ОС, доступні до замовлення.

Оффтопік: До речі, для більшої безпеки цей віртуальний сервер призначений одним з вузлів. захищеної віртуальної мережі. і доступ до нього по RDP дозволено лише звідти.

Після створення VDS і отримання доступу до робочого столу RDP, перше що необхідно зробити - підготувати оточення для Rclone і Web-GUI. Тобто. встановити новий браузер за замовчуванням, наприклад Chrome, оскільки встановлений спочатку IE 11, на жаль, не завжди коректно працює з ПЗ, що використовується. 

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

Після підготовки оточення завантажуємо архів із програмним пакетом Rclone для Windows і розпаковуємо його. 

Далі — у режимі командного рядка Windows виконуємо команду переходу до папки з вилученими файлами. У мене вона знаходиться в домашній папці адміністратора:

C:UsersAdministrator>cd rclone

Після переходу виконуємо команду запуску Rclone c Web-GUI:

C:UsersAdministratorrclone>rclone rcd --rc-web-gui --rc-user=”login” --rc-pass=”password” -L

де “login” та “password”, задані вами логін та пароль, природно, без лапок.

За фактом виконання команди у терміналі виводиться

2020/05/17 22:34:10 NOTICE: Web GUI exists. Update skipped.
2020/05/17 22:34:10 NOTICE: Serving Web GUI
2020/05/17 22:34:10 NOTICE: Serving remote control on http://127.0.0.1:5572/

а у браузері автоматично відкривається графічний веб-інтерфейс Rclone.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

Незважаючи на те, що Web-GUI ще знаходиться в стадії тестової версії і не має поки всі можливості управління Rclone, які є в інтерфейсу командного рядка, його можливостей цілком достатньо для здійснення міграції даних. І навіть трохи більше.

Налаштування

Наступним етапом ми налаштуємо підключення до майданчиків, де знаходяться або будуть дані. І першим у черзі буде основний приймач даних – Nextcloud.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

1. Для цього переходимо до розділу Налаштування Web-GUI. 

2. Ініціюємо створення нової конфігурації - кнопка Нова конфігурація.

3. Задаємо ім'я майданчику - поле Name of this drive (For your reference): Nextcloud.

4. Вибираємо тип або вид сховища Select: Для Nextcloud та Owncloud основний інтерфейс обміну даними - WebDAV.

5. Далі кліком на Крок 2: Налаштування drive розкриваємо список параметрів з'єднання та заповнюємо. 

- 5.1. URL of http host to connect to URL - Гіпертекстове посилання інтерфейсу WebDAV. У Nextcloud знаходяться в налаштуваннях - нижній лівий кут інтерфейсу.
- 5.2. Name of the Webdav site/service/software ви використовуєте - Ім'я інтерфейсу WebDAV. Поле необов'язкове, для себе, щоб не заплутатися, якщо таких підключень багато.
- 5.3 ім'я користувача - Ім'я користувача при авторизації
- 5.4. Пароль - Пароль для авторизації
- 5.5. Bearer token instead of user/pass (eg Macaroon) і Command to run to get a bearer token у розширених опціях додаткові параємтри та команди авторизації. У моєму Nextcloud вони не задіяні.

6. Далі тиснемо Create config і щоб переконатися у створенні конфігурації, переходимо у розділ Сонфіг веб-інтерфейсу… Через цю ж сторінку новостворену конфігурацію можна видалити або відредагувати.

Для того, щоб перевірити працездатність підключення до майданчика - переходимо в розділ дослідник. В полі Пульти дистанційного керування вводимо назву налаштованого майданчика та натискаємо відкритий. Якщо ви побачили список файлів та каталогів – з'єднання з майданчиком працює.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

Для більшої переконливості можна через веб-інтерфейс створити/видалити папку або завантажити/видалити будь-який файл.

Другий по порядку майданчиком, що підключається, буде Яндекс диск.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

  • Перші чотири кроки аналогічні до процесу підключення Nextcloud.
  • Далі все залишаємо як є, тобто поля в Step 2: Setup drive залишаємо порожніми, у розширених опціях нічого не міняємо.
  • Тиснемо Створити Config.
  • У браузері відкривається сторінка авторизації на Яндексі, після проходження якої, повідомлення про успішне підключення та пропозицію повернутися до Rclone.
  • Що ми робимо, перевіряючи розділ конфиг.

міграція

Коли у нас підключено два майданчики, ми можемо здійснити міграцію даних між ними. Власне, процес схожий на перевірку працездатності підключення до Nextcloud, що ми проводили раніше.

  • Переходимо в дослідник.
  • вибираємо шаблон 2-side by side.
  • У кожному з Пульти дистанційного керування вказуємо ім'я свого майданчика.
  • Тиснемо відкритий.
  • Бачимо каталог файлів та папок кожної з них.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

Спочатку процесу міграції залишається лише вибрати потрібну папку з файлами в каталозі джерела даних і перетягнути її мишкою в каталог приймача.

Механізм додавання майданчиків і дій з міграції даних між ними аналогічний операціям, виконаним вище. Якщо під час роботи ви стикаєтеся з помилками, то подробиці про них можна вивчити в терміналі, де запущено Rclone з Web-GUI.

Взагалі, документація щодо Rclone обширна та доступна на сайті та в інтернеті, і не повинна викликати якихось складнощів у використанні. На цьому перший пост про те, як перенести файли з однієї хмари на іншу, минаючи свій ПК, вважаю завершеним.

PS Якщо ви не погоджуєтесь з останнім твердженням — пишіть у коментарях: яка «тема не розкрита» і в якому ключі варто продовжувати.

Як перенести файли з однієї хмари на іншу, минаючи свій ПК

Джерело: habr.com

Додати коментар або відгук