Простое и дешевое резервное копирование на Google Cloud Storage

Jul 6, 2017 08:34 · 392 words · 2 minute read gcs backup

Все знают, что хранить важные данные (резервные копии) для надежности лучше в нескольких географически распределенных местах — для этой цели хорошо подходят облачные хранилища (GCS, S3, Dropbox, Яндекс.Диск и пр.).

Ранее мы уже рассматривали утилиту s3cmd и хранение данных в Amazon Simple Storage Service (S3), теперь давайте разберемся с резервным копированием на Google Cloud Storage!

Считаем, у вас есть Google-аккаунт и вы можете залогиниться в консоль управления Google Cloud Platform.

После логина нужно создать проект (или использовать существующий, если он у вас есть), далее в выпадающем меню слева найти пункт Storage.

В выбранной секции Storage нужно создать новое «ведро» (bucket) — ввести имя (например, test-backup) и выбрать тип хранилища (в нашем примере используется тип Nearline). После создания хранилища вы уже можете заливать в него нужные данные через браузер, но мы планируем работать с Google Cloud Storage в консоли Linux с помощью утилиты gsutil.

Рекомендуемый способ установки gsutil — ее установка вместе с Google Cloud SDK. Для операционной системы Debian/Ubuntu процесс установки будет выглядеть так:

export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"
echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
apt-get update && sudo apt-get install google-cloud-sdk

После успешной установки запускаем команду:

gcloud init

и следуем инструкциям — потребуется ввести ваши учетные данные для доступа к проекту на Google Cloud, перейти по предложенной ссылке (открыть в браузере) для подтверждения действий и ввести verification code (появится в браузере после перехода по ссылке).

Для синхронизации каталога /home/e.lebed/google-storage локального хранилища в хранилище test-backup на Google Storage нужно использовать команду:

gsutil rsync /home/e.lebed/google-storage gs://test-backup

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

gsutil rsync /home/e.lebed/smart_stats.sh gs://test-backup
 
CommandException: arg (/home/e.lebed/smart_stats.sh) does not name a directory, bucket, or bucket subdir.
gsutil rsync /home/e.lebed/smart_stats.sh gs://test-backup/

Отдельно следует сказать об опциях -r и -d, которые также можно использовать при запуске синхронизации.

Первая из них позволяет синхронизировать все вложенные каталоги (-rrecursive) из каталога источника. В случае, если у вас в каталоге-источнике есть вложенные каталоги, но вы не используете опцию -r, на Google Cloud Storage попадут только файлы (не директории) из источника.

Вторая опция позволяет удалять на Google Cloud Storage данные, которых больше нет в каталоге-источнике (-ddelete), но за ранее удаление данных из Google Storage (< 3 месяцев) снимается дополнительная плата - будьте аккуратны с этой опцией. Весь список команд и параметров утилиты gsutil доступен здесь.

tweet Share