Могу ли я использовать Cloud Shell с постоянным хранилищем более 5 ГБ?

Согласно документам:

Cloud Shell предоставляет 5 ГБ бесплатного постоянного дискового хранилища, подключенного как $HOME каталог на экземпляре виртуальной машины.

Мне понадобится дополнительное (платное) хранилище, к которому я могу получить доступ из среды Cloud Shell, и оно будет постоянным во всех моих сеансах. В основном он используется для хранения локальных клонов репозиториев и изображений git. Я был бы единственным, кто получил доступ к этим файлам.

Кажется, что 5 ГБ хранилища - это жесткий лимит, поэтому он не будет расширяться динамически и выставить мне счет за превышение суммы. Можно использовать режим ускорения, но это не влияет на размер хранилища. И я также не могу выделить дополнительное пространство для хранения с помощью настраиваемой среды Cloud Shell. Я не мог понять, смогу ли я смонтировать еще один постоянный диск GCE к моему $HOME. Я рассматривал gcs-fuse, как было предложено в этом ответе, но я не уверен, подходит ли он для репозиториев git.

Есть ли способ увеличить объем хранилища в Cloud Shell?


person Ani    schedule 06.10.2019    source источник
comment
Мысль ... как насчет использования Google Filestore ... cloud.google.com/filestore. .. который обеспечивает монтируемое хранилище NFS в GCP. Не могли бы вы настроить среду Filestore, а затем смонтировать хранилище по NFS в среде Cloud Shell?   -  person Kolban    schedule 06.10.2019
comment
То же решение с [Fuse} (cloud.google.com/storage/docs/gcs-fuse), где вы можете смонтировать Bucket в качестве хранилища файловой системы.   -  person guillaume blaquiere    schedule 06.10.2019
comment
Обратитесь к моему ответу ниже, чтобы сделать это с ведрами хранения.   -  person ahmedmzl    schedule 21.07.2021


Ответы (4)


Google Cloud Shell - это контейнер, который работает на скрытом экземпляре Compute Engine, управляемом Google. Вы можете загрузить, изменить и повторно развернуть этот контейнер в Cloud Shell или в своем собственном контейнере, работающем в облаке или на рабочем столе.

Базовый образ контейнера доступен по адресу gcr.io/cloudshell-images/cloudshell:latest на этой странице.

В вашем случае я бы использовал Compute Engine с контейнерной ОС и запустил контейнер Cloud Shell в рамках COS. Вы можете масштабировать ЦП, память и хранилище в соответствии с вашими требованиями.

Вы также можете настроить экземпляр Compute Engine, установить интерфейсы командной строки, SDK и инструменты и получить более мощную систему.

Примечания для будущих читателей, основанные на первом ответе:

  1. Filestore - отличный продукт, но обратите внимание на затраты. Минимальный размер развертывания составляет 1 ТБ за 200+ долларов в месяц. При каждом перезапуске Cloud Shell необходимо подключать общий ресурс NFS - это можно добавить в сценарии входа. Примечание. Я не уверен, что вы действительно можете подключить общий ресурс NFS из Filestore в Cloud Shell. Я никогда не тестировал это.
  2. У вас будет такая же проблема с перемонтированием с FUSE, плюс у вас будут затраты на полосу пропускания для доступа к облачному хранилищу.
  3. Cloud Shell - отличный продукт, который хорошо реализован, но когда вам нужно превзойти его возможности, лучше развернуть экземпляр GCE малого / среднего размера. это позволяет сохранять постоянные, моментальные снимки и т. д.
person John Hanley    schedule 06.10.2019
comment
Спасибо, что указали на минимальное развертывание Filestore. Это была причина, по которой я не учел это в первую очередь. Я забыл упомянуть, что я использую не только командную строку, но и редактор (все на Chromebook), и я искал замену своей локальной IDE. Хотя опыт еще не идеален, он достаточно хорош для моих нужд. Я не знаю, смогу ли я воспроизвести то же самое в экземпляре GCE, но я просто разверну машину и посмотрю. - person Ani; 07.10.2019
comment
@Ani с использованием образа контейнера, упомянутого выше, предоставит вам точно такие же инструменты, которые доступны в облачной оболочке (конечно, вам нужно будет иметь дело с тем фактом, что вы работаете внутри контейнера - например, вам нужно сохранить хранение вне этого контейнера). - person robsiemb; 08.10.2019
comment
Еще одно замечание по Cloud Shell. Доступ по SSH настроен для порта 6000, а не 22. Вы, вероятно, захотите изменить внутренний SSH-сервер, чтобы использовать стандартный порт 22 или, возможно, не в целях безопасности. - person John Hanley; 08.10.2019

Невозможно добавить дополнительное хранилище в Cloud Shell. Вы можете создать виртуальную машину и установите Cloud SDK и получите столько места для хранения, сколько хотите, но в настоящее время невозможно добавить место для хранения в Cloud Shell.

В зависимости от того, как вы планируете использовать сохраненные репозитории, облачное хранилище может быть идеальным, поскольку в нем есть хранилище категория просто идеальное архивирование.

Filestore будет вашим лучшим вариантом, поскольку он отлично подходит для файловых систем и масштабируется. Он соответствует вашим потребностям, как вы описали.

Вы можете использовать облачное хранилище с FUSE. Имейте в виду, что этот метод, хотя и отличный, зависит от того, как он будет использоваться в качестве Стоимость зависит от категории хранилища.

Вы можете увидеть краткое сравнение решений для хранения, предлагаемых Cloud Platform, здесь.

person Community    schedule 06.10.2019
comment
Спасибо. У меня были проблемы с ценами на Filestore (мин. 1 ТБ), поэтому я не рассматривал его (или другие серверы SMB / NFS). Я попробую облачное хранилище с FUSE и посмотрю, будут ли проблемы с целостностью или пропускной способностью в моих сценариях использования. В качестве альтернативы я разверну машину с изображением Cloud Shell, как это было предложено в ответе Джона Хэнли, но я сомневаюсь, что получу тот же самый опыт работы в браузере. - person Ani; 07.10.2019
comment
можно ли использовать Filestore как подключенный к FUSE диск? это быстрее? Ведра GCS действительно больше подходят для архивирования / резервного копирования и т. Д. - person dcsan; 16.05.2021

Я использую gcsfuse и отлично работает. Вам не нужно перемонтировать каждый раз, если вы поместите команду монтирования в .customize_environment (запускать при загрузке).

#!/bin/sh
#.customize_environmnet run in background as root, wait for your user to initialize
sleep 20
sudo -u [USER] gcsfuse -o nonempty -file-mode=777 -dir-mode=777 --uid=1000 --debug_gcs [BUCKET_NAME] /home/[USER]/[FOLDER_NAME]

Дополнительную информацию можно найти на странице Неограниченный постоянный диск в облачной оболочке Google

person nDakota    schedule 06.03.2020
comment
Спасибо за новый ответ и ссылку на статью. - person John Hanley; 03.02.2021
comment
Я пробовал это и получаю различные ошибки, такие как too many file handles open, когда я пытаюсь сделать что-нибудь вроде git checkout или скопировать каталог. и его верррый медлитель на базовых вещах. в сочетании с привычкой облачной оболочки отключаться каждые 5 минут, я не нашел это работоспособным вариантом - person dcsan; 16.05.2021

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

  1. Перейдите в облачное хранилище и создайте новую корзину хранилища

  2. Скопируйте имя корзины хранилища, например. my_storage_bucket

  3. Перейдите в облачную оболочку и создайте папку в своей домашней папке

    mkdir ~ / my_bucket_folder

  4. Подключите ведро хранилища к этой папке

    gcsfuse my_storage_bucket ~ / my_bucket_folder

  5. Измените каталог на свою my_bucket_folder

    cd ~ / my_bucket_folder

  6. Вуаля! у вас неограниченное пространство!

  7. Чтобы размонтировать, запустите следующее

    fusermount -u ~ / my_bucket_folder

person ahmedmzl    schedule 21.07.2021