Простое и дешевое резервное копирование на Google Cloud Storage
Jul 6, 2017 08:34 · 392 words · 2 minute read
Все знают, что хранить важные данные (резервные копии) для надежности лучше в нескольких географически распределенных местах — для этой цели хорошо подходят облачные хранилища (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
, которые также можно использовать при запуске синхронизации.
Первая из них позволяет синхронизировать все вложенные каталоги (-r
— recursive
) из каталога источника. В случае, если у вас в каталоге-источнике есть вложенные каталоги, но вы не используете опцию -r
, на Google Cloud Storage попадут только файлы (не директории) из источника.
Вторая опция позволяет удалять на Google Cloud Storage данные, которых больше нет в каталоге-источнике (-d
— delete
), но за ранее удаление данных из Google Storage (< 3 месяцев) снимается дополнительная плата - будьте аккуратны с этой опцией. Весь список команд и параметров утилиты gsutil
доступен здесь.