---
title: "Создать сетевой диск через Terraform"
sidebar_label: "Создать сетевой диск"
sidebar_position: 10
description: "Как создать сетевой диск из образа или пустой сетевой диск"
toc_max_heading_level: 2
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from 'docs-kit/components'
import CreateResourcesAlert from '@site/terraform/_partials/common/create-resources-alert.mdx'
import ConfigureProvidersConfig from '@site/terraform/_partials/common/configure-providers-config.mdx'
import ConfigureProviders from '@site/terraform/_partials/common/configure-providers.mdx'
import GetImage from '@site/terraform/_partials/cloud-servers/get-image.mdx'
import CreateBootVolume from '@site/terraform/_partials/cloud-servers/create-boot-volume.mdx'
import CreateAdditionalVolume from '@site/terraform/_partials/cloud-servers/create-additional-volume.mdx'

# Создать сетевой диск через Terraform

<CreateResourcesAlert />

<br />

1. Опционально: [настройте провайдеры](#configure-providers).
2. [Создайте сетевой диск](#create-volume).

   Для всех [типов сетевого диска](/cloud-servers/volumes/about-network-volumes/#network-volume-types), кроме типа Универсальный v2, количество IOPS фиксированное и зависит от типа диска. Для сетевых дисков типа Универсальный v2 вы можете изменять суммарное количество IOPS диска — увеличивать и уменьшать. Количество изменений IOPS не ограничено. Доступное количество IOPS в разных типах диска можно посмотреть в подразделе [Лимиты сетевых дисков](/cloud-servers/volumes/about-network-volumes/#network-volume-limits).

   Вы можете создать диск:

   * из образа — можно использовать как загрузочный диск облачного сервера;
   * или пустой — можно использовать как дополнительный диск.

## Конфигурационные файлы \{#config}

<details>
  <summary>Пример файла для настройки провайдеров</summary>

  <ConfigureProvidersConfig />
</details>

<details>
  <summary>Пример файла для создания сетевого диска из образа</summary>

  ```hcl
  data "openstack_images_image_v2" "image_1" {
    name        = "Ubuntu 20.04 LTS 64-bit"
    most_recent = true
    visibility  = "public"
  }

  resource "openstack_blockstorage_volume_v3" "volume_1" {
    name                 = "boot-volume-for-server"
    size                 = "5"
    image_id             = data.openstack_images_image_v2.image_1.id
    volume_type          = "fast.ru-9a"
    availability_zone    = "ru-9a"
    enable_online_resize = true

    lifecycle {
      ignore_changes = [image_id]
    }

  }
  ```
</details>

<details>
  <summary>Пример файла для создания пустого сетевого диска</summary>

  ```hcl
  resource "openstack_blockstorage_volume_v3" "volume_2" {
    name                 = "additional-volume-for-server"
    size                 = "7"
    volume_type          = "universal.ru-9a"
    availability_zone    = "ru-9a"
    enable_online_resize = true
  }
  ```
</details>

## 1. Опционально: настроить провайдеры \{#configure-providers}

Если вы [настроили провайдеры](/terraform/configure-terraform-environment/#configure-providers) Selectel и OpenStack, пропустите этот шаг.

<ConfigureProviders />

## 2. Создать сетевой диск \{#create-volume}

<Tabs queryString="create-volume">
  <TabItem value="Сетевой диск с неизменяемыми IOPS" default>
    <TabItemLabel>
      Сетевой диск с неизменяемыми IOPS
    </TabItemLabel>

    Для всех [типов сетевого диска](/cloud-servers/volumes/about-network-volumes/#network-volume-types), кроме типа Универсальный v2, количество IOPS фиксированное и зависит от типа диска. Доступное количество IOPS в разных типах диска можно посмотреть в подразделе [Лимиты сетевых дисков](/cloud-servers/volumes/about-network-volumes/#network-volume-limits).

    <Tabs queryString="crete-volume-with-unchangeable-iops">
      <TabItem value="from-image" default>
        <TabItemLabel>
          Сетевой диск из образа
        </TabItemLabel>

        1. [Получите образ](#get-image).
        2. [Создайте сетевой диск](#create-volume-from-image).

        ### 1. Получить образ \{#get-image}

        <GetImage />

        ### 2. Создать сетевой диск из образа \{#create-volume-from-image}

        <CreateBootVolume />
      </TabItem>

      <TabItem value="empty">
        <TabItemLabel>
          Пустой сетевой диск
        </TabItemLabel>

        <CreateAdditionalVolume />
      </TabItem>
    </Tabs>
  </TabItem>

  <TabItem value="Сетевой диск с изменяемыми IOPS" default>
    <TabItemLabel>
      Сетевой диск с изменяемыми IOPS
    </TabItemLabel>

    Для [сетевых дисков типа](/cloud-servers/volumes/about-network-volumes/#network-volume-types) Универсальный v2 вы можете изменять общее количество IOPS — уменьшить или увеличить. Доступные значения — от 2 000 до 16 000 IOPS. Количество изменений IOPS не ограничено.

    <Tabs queryString="crete-volume-with-changeable-iops">
      <TabItem value="from-image" default>
        <TabItemLabel>
          Сетевой диск из образа
        </TabItemLabel>

        1. [Получите образ](#get-image).
        2. [Создайте сетевой диск](#create-volume-from-image).

        ### 1. Получить образ \{#get-image}

        <GetImage />

        ### 2. Создать сетевой диск из образа \{#create-volume-from-image}

        ```hcl
        resource "openstack_blockstorage_volume_v3" "volume_1" {
          name                 = "boot-volume-for-server"
          size                 = "5"
          image_id             = data.openstack_images_image_v2.image_1.id
          volume_type          = "universal2.ru-9a"
          availability_zone    = "ru-9a"
          enable_online_resize = true
          metadata             = {"total_iops_sec": "4500"}

          lifecycle {
            ignore_changes = [image_id]
          }

        }
        ```

        Здесь:

        * `size` — размер диска в ГБ. Учитывайте [лимиты сетевых дисков](/cloud-servers/volumes/about-network-volumes/#network-volume-limits) на максимальный размер;
        * `volume_type` — ID или имя [типа сетевого диска](/cloud-servers/volumes/about-network-volumes/#network-volume-types). Например, `universal2.ru-9a` — имя для создания сетевого диска с типом SSD Универсальный v2 в [сегменте пула](/infrastructure/availability-matrix/#network-volumes) ru-9a. Список типов можно посмотреть в таблице [Список типов сетевого диска во всех сегментах пула](/cloud-servers/volumes/about-network-volumes/#network-volume-types-full-list);
        * `availability_zone` — [сегмент пула](/infrastructure/locations/#pool), в котором будет создан сетевой диск, например `ru-9a`. Список доступных сегментов пула можно посмотреть в инструкции [Матрицы доступности](/infrastructure/availability-matrix/#network-volumes);
        * `metadata` — пары ключ/значения для хранения дополнительной информации о диске:

          * `total_iops_sec` — общее количество операций чтения и записи в IOPS. Доступные значения — от 2 000 до 16 000 IOPS. Если не указать значение, то будет использовано значение по умолчанию – 2 000 IOPS.

        Посмотрите подробное описание ресурса [openstack\_blockstorage\_volume\_v3](/terraform/openstack-provider-reference/block-storage-cinder/resources/openstack_blockstorage_volume_v3/).
      </TabItem>

      <TabItem value="empty">
        <TabItemLabel>
          Пустой сетевой диск
        </TabItemLabel>

        ```hcl
        resource "openstack_blockstorage_volume_v3" "volume_3" {
          name                 = "volume-with-custom-iops"
          size                 = "7"
          volume_type          = "universal2.ru-9a"
          availability_zone    = "ru-9a"
          enable_online_resize = true
          metadata             = {"total_iops_sec": "4500"}
        }
        ```

        Здесь:

        * `size` — размер диска в ГБ. Учитывайте [лимиты сетевых дисков](/cloud-servers/volumes/about-network-volumes/#network-volume-limits) на максимальный размер;
        * `volume_type` — ID или имя [типа сетевого диска](/cloud-servers/volumes/about-network-volumes/#network-volume-types) Универсальный v2. Например, `universal2.ru-9a` — имя для создания сетевого диска с типом SSD Универсальный v2 в [сегменте пула](/infrastructure/availability-matrix/#network-volumes) ru-9a. Список типов можно посмотреть в таблице [Список типов сетевого диска во всех сегментах пула](/cloud-servers/volumes/about-network-volumes/#network-volume-types-full-list);
        * `availability_zone` — [сегмент пула](/infrastructure/locations/#pool), в котором будет создан сетевой диск, например `ru-9a`. Список доступных сегментов пула можно посмотреть в инструкции [Матрицы доступности](/infrastructure/availability-matrix/#network-volumes);
        * `metadata` — пары ключ/значения для хранения дополнительной информации о диске:

          * `total_iops_sec` — общее количество операций чтения и записи в IOPS. Доступные значения — от 2 000 до 16 000 IOPS. Если не указать значение, то будет использовано значение по умолчанию – 2 000 IOPS.

        Посмотрите подробное описание ресурса [openstack\_blockstorage\_volume\_v3](/terraform/openstack-provider-reference/block-storage-cinder/resources/openstack_blockstorage_volume_v3/).
      </TabItem>
    </Tabs>
  </TabItem>
</Tabs>

<Formbricks />
