Как работать с блочным хранилищем DigitalOcean с помощью Doctl

Вступление

Блочное хранилище позволяет вам управлять дополнительным хранилищем для ваших капель DigitalOcean аналогично использованию жестких дисков. Добавление блочного хранилища к нашим каплям может быть сделано несколькими щелчками мыши из упрощенного графического интерфейса DigitalOcean или графического интерфейса пользователя. Однако это не практичный способ работы в больших и более сложных средах, поэтому DigitalOcean предлагает API для работы в масштабе. Мы можем напрямую взаимодействовать с API через + doctl +, официальный инструмент DigitalOcean для командной строки.

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

Предпосылки

Перед началом этого урока вы должны ознакомиться с + doctl + и блочным хранилищем DigitalOcean. Следующие статьи будут полезны:

Прежде чем продолжить, убедитесь, что у вас установлена ​​и аутентифицирована последняя версия + doctl + (на момент написания этой статьи - 1.7.1). Проверьте версию + doctl +, запустив + doctl version +. Вам также понадобится добавить SSH ключ к вашей учетной записи DigitalOcean.

И последнее, но не менее важное: чтобы следовать этому руководству, вам понадобится дроплет, созданный в одной из областей, которая позволяет использовать хранилище блоков (на момент написания этой статьи следующие регионы предлагали хранилище блоков: * BLR1 *, * FRA1 *, * LON1 *, * NYC1 *, * NYC3 *, * SFO2 *, * SGP1 * и * TOR1 *).

Создание томов

Чтобы создать том с помощью + doctl +, вам необходимо предоставить команде следующие параметры:

  • * имя тома *: в нашем примере это будет * firstvolume *

  • * регион *: для нашего урока мы создадим том в * NYC3 *

  • * размер * (по умолчанию 4 ТБ): в этом примере мы установим его на * 100 ГиБ *

Вы также можете предоставить описание с флагом * desc *, но это совершенно необязательно. Полная команда будет выглядеть так:

doctl compute volume create  --region  --size

Вы должны увидеть вывод, похожий на этот:

OutputID                                      Name           Size      Region    Droplet IDs
           firstvolume    100 GiB    nyc3

На данный момент вы знаете команду + doctl + и какую информацию требуется для создания нового тома. Далее вы узнаете, как распечатать полный список существующих томов.

Объемы листинга

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

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

doctl compute volume list

Это результат выполнения команды + list + в нашем примере .:

OutputID                                      Name              Size        Region    Droplet IDs
            firstvolume       100 GiB     nyc3
            secondvolume      4096 GiB    nyc3
           thirdvolume       100 GiB      nyc3      []

В этом разделе вы изучили команду + doctl +, чтобы увидеть список созданных вами томов. В следующем разделе мы рассмотрим, как прикрепить том к капле.

Присоединение томов

Иногда вашему Droplet может потребоваться дополнительное пространство для обработки ресурсов, таких как данные приложения и файлы конфигурации. Добавление тома - отличный способ добавить это пространство, не нарушая работу сервиса.

Для прикрепления томов вам понадобятся две части информации:

  • идентификатор тома

  • идентификатор капли

В предыдущем разделе мы видели, как получить * идентификатор тома * с помощью команды + doctl compute volume list +.

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

doctl compute droplet list

Как только у нас есть и том, и идентификаторы капель, мы можем приступить к следующей команде, чтобы присоединить том к капле:

doctl compute volume-action attach

Это произведет вывод, подобный этому:

OutputID           Status         Type             Started At                       Completed At    Resource ID    Resource Type    Region
346253669    in-progress    attach_volume    2017-12-28 19:53:28 +0000 UTC    <nil>           0              backend          nyc3

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

OutputError: POST https://api.digitalocean.com/v2/volumes//actions: 422 Droplet can't attach volumes due to a region restriction

Если вы столкнетесь с этой ошибкой, вы не сможете присоединить том к указанной капле и вам нужно будет повторить попытку.

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

Отсоединение томов

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

Отключение тома похоже на присоединение тома и использует те же фрагменты информации. Команда и вывод немного различаются.

doctl compute volume-action detach
OutputID           Status         Type             Started At                       Completed At    Resource ID    Resource Type    Region
346254931    in-progress    detach_volume    2017-12-28 19:57:51 +0000 UTC    <nil>           0              backend          nyc3

На этом этапе вы знаете, как отсоединить том с помощью + doctl +. В следующем разделе вы узнаете, как удалить том, который вам больше не нужен.

Удаление томов

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

doctl compute volume delete

Выполнение этой команды запросит подтверждение:

OutputWarning: Are you sure you want to delete volume (y/N) ?

Если вы уверены, что хотите удалить том, нажмите + y + для подтверждения.

После удаления тома вы вернетесь в командную строку. Вы можете убедиться, что том был удален с помощью команды + list +.

Получение информации о томе

Если вам нужна информация о конкретном томе, вы можете запросить ее, вызвав следующую команду

doctl compute volume get

Вы найдете вывод этой команды знакомым, потому что она автоматически запускается при создании тома.

OutputID                                      Name           Size      Region    Droplet IDs
     firstvolume    100 GiB    nyc3

В этом разделе вы узнали, как удалить том, который больше не нужен.

Теперь у вас есть вся информация, необходимая для успешного использования + doctl + для работы с блочными томами хранения DigitalOcean.

Заключение

В этом уроке мы узнали, как использовать + doctl + для добавления, присоединения, отсоединения, составления списка и удаления томов из наших капель.

Теперь, когда вы знаете, как это сделать, вы, возможно, захотите изучить создание сценариев и добавление этих сценариев в ваш любимый инструмент автоматизации, например https://www.digitalocean.com/community/tutorials/how-to-set-up- jenkins-for-непрерывное развитие-интеграция-на-centos-7 [Jenkins] или https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-drone-on-ubuntu-16 -04 [Дрон].

Related