#google-cloud-platform #google-cloud-storage
# #google-cloud-platform #google-облачное хранилище
Вопрос:
У меня немой вопрос.
Итак, у меня есть террабайты данных для rsync между двумя сегментами GCP.
Я не слишком уверен в том, как gsutil rsync
работает за кулисами.
Нужно ли загружать файлы локально, прежде чем загружать их в пункт назначения, или он просто волшебным образом перемещает вещи из исходного корзины в пункт назначения?
Ответ №1:
Ответ на ваш вопрос содержится в документации gsutil rsync:
Примечание 2. Если вы синхронизируете большой объем данных между облаками, вы можете рассмотреть возможность создания учетной записи Google Compute Engine и запуска gsutil там. Поскольку передача данных gsutil от одного поставщика к другому происходит через компьютер, на котором запущен gsutil, выполнение этого может значительно ускорить выполнение передачи, чем запуск gsutil на вашей локальной рабочей станции.
Итак, да, сначала он загружает содержимое локально, а затем отправляет его в пункт назначения.
Комментарии:
1. но это кросс-провайдер, верно? Итак, если его GCP -> GCP, то ему не нужно его загружать
2. Я полагаю, это зависит от того, считается ли каждое ведро своим собственным поставщиком. Вы можете измерить это самостоятельно, просмотрев статистику сети на своем компьютере при выполнении команды.
Ответ №2:
Я выполнил тест с RSYNC
флагами отладки и заметил это поведение
При перемещении объекта (с помощью cp или rsync) между сегментами он не загружается на ваш локальный компьютер, я использовал файл объемом ~ 4 ГБ и glances
для измерения использования сети во время операции rsync объекты были непосредственно перемещены в целевую корзину
Если вы запустите следующую команду, вы заметите, что SDK выполняет post-запрос, указывающий на перемещение между сегментами
gsutil -d rsync gs://sourcebucket gs://targetbucket
https://storage.googleapis.com/storage/v1/b/sourcebucket/o/bigfile.iso/rewriteTo/b/targetbucket/o/bigfile.iso
Rewriteto
поведение задокументировано здесь
Комментарии:
1. вы правы. Я был бы осторожен,
-d
хотя он удаляет все, чего нет в исходном коде2.
gsutil -d
является ли флаг отладки gsutil, если вы ставите-d
после того, как rsync работает, как вы упомянули