[Документация Yandex Cloud](../../../index.md) > [Yandex Compute Cloud](../../index.md) > [Пошаговые инструкции](../index.md) > Диски > Создание > Создать пустой диск с блоком большого размера

# Создать пустой диск с блоком большого размера

{% note info %}

В [регионе Казахстан](../../../overview/concepts/region.md) доступны только [платформы](../../concepts/vm-platforms.md#standard-platforms) `standard-v3` (Intel Ice Lake) и `standard-v3-t4i` (Intel Ice Lake with T4i). Другие типы платформ, кластеры GPU и выделенные хосты недоступны.

{% endnote %}

Диски состоят из блоков. По умолчанию размер блоков всех создаваемых дисков равен 4 КБ. При создании диска вы можете задать размер блоков в диапазоне от 4 КБ до 128 КБ.

Для сетевых дисков максимальный размер диска зависит от размера блока. Размер создаваемого диска должен быть кратен 4 МБ. Возможные размеры дисков и блоков:

Размер блока | Максимальный размер диска
--- | ---
4 КБ | 8 ТБ
8 КБ | 16 ТБ
16 КБ | 32 ТБ
32 КБ | 64 ТБ
64 КБ | 128 ТБ
128 КБ | 256 ТБ

Для нереплицируемых SSD-дисков и сверхбыстрых сетевых хранилищ с тремя репликами (SSD) вы можете выбрать любой размер блока для любого размера диска. Размер диска должен быть кратен 93 ГБ.

Изменить размеры блока после создания диска нельзя.

{% note alert %}

Выбранный физический размер блока может влиять на производительность.

{% endnote %}

Как правило, логический размер блока равен 512 байтам. Несмотря на то, что гостевая ОС старается выравнивать ввод-вывод на физический размер блока, это возможно не всегда. В случае, когда программное обеспечение выполняет много операций чтения и записи размером меньше физического блока, эти маленькие операции могут достичь дисковой подсистемы. При чтении в этом случае приходится читать больше, чем запрошено — минимум один физический блок. В случае записи ситуация сложнее — чтобы записать объем данных, меньший, чем физический размер блока, сначала нужно прочитать весь физический блок, обновить в нем нужные байты, затем записать весь физический блок (операция read-modify-write). Если при этом запись не выровнена на физический размер блока, то может понадобиться прочитать и перезаписать 2 физических блока. Таким образом, одна логическая запись может превратиться в 2 операции чтения и 2 операции записи на уровне дисковой подсистемы. Эта избыточная нагрузка не будет видна в метриках на уровне гостевой ОС, но будет учитываться при оценке близости нагрузки к лимитам диска и будет влиять на производительность.

Выбирайте большой размер блока только тогда, когда вы уверены, что ваше программное обеспечение работает с файловой системой или диском большими запросами — не менее физического размера блока.

{% list tabs group=instructions %}

- Консоль управления {#console}

  Смотрите раздел [Создать пустой диск](empty.md).

- CLI {#cli}

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    1. Посмотрите описание команд CLI для создания дисков:

        ```bash
        yc compute disk create --help
        ```

    1. Создайте диск в каталоге по умолчанию:

        ```bash
        yc compute disk create \
          --name big-disk \
          --zone <зона_доступности> \
          --block-size 8K \
          --size 40G \
          --description "my 8k blocksize disk via yc"
        ```

       Где:
       * `--name` — имя диска. Требования к имени диска:

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

       * `--zone` — [зона доступности](../../../overview/concepts/geo-scope.md), в которой создается диск. Если зона доступности не задана в [профиле CLI](../../../cli/concepts/core-properties.md) по умолчанию, параметр является обязательным.
       * `--block-size` — размером блока диска.
       * `--size` — размер диска.
       * `--description` — описание диска.

       Команда создаст диск размером 40 ГБ и размером блока 8 КБ, с именем `big-disk` и описанием `my 8k blocksize disk via yc`.


    1. Получите список дисков в каталоге по умолчанию:

       ```bash
       yc compute disk list
       ```
       
       Результат:
       
       ```text
       +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
       |          ID          |     NAME     |    SIZE     |       ZONE        | STATUS |     INSTANCE IDS     | PLACEMENT GROUP | DESCRIPTION |
       +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
       | a7lqgbt0bb9s******** | first-disk   | 20401094656 |   kz1-a   | READY  | a7lcvu28njbh******** |                 |             |
       | a7lv5j5hm1p1******** | second-disk  | 21474836480 |   kz1-a   | READY  |                      |                 |             |
       +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
       ```

       Получите тот же список с большим количеством деталей в формате YAML:

        ```bash
        yc compute disk list --format yaml
        ```

        Результат:
        ```text
        - id: fhmm0br99mig********
           folder_id: b1gb9jeqoior********
           created_at: "2021-01-11T09:35:05Z"
           name: big-disk
           description: 8k blocksize disk
           type_id: network-hdd
           zone_id: kz1-a
           size: "42949672960"
           block_size: "8192"
           status: READY
           disk_placement_policy: {}
        ```

- Terraform {#tf}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  Чтобы создать пустой диск:
  
  1. Опишите в конфигурационном файле параметры ресурса `yandex_compute_disk`.
  
     Пример структуры конфигурационного файла:
  
     ```hcl
     resource "yandex_compute_disk" "empty-disk" {
       name       = "empty-disk"
       type       = "network-hdd"
       zone       = "<зона_доступности>"
       size       = <размер_диска>
       block_size = <размер_блока>
       kms_key_id = "<идентификатор_KMS_ключа>"
     }
     ```
  
     Где:
     * `name` — имя диска. Формат имени:
  
          * длина — от 3 до 63 символов;
          * может содержать строчные буквы латинского алфавита, цифры и дефисы;
          * первый символ — буква, последний — не дефис.
  
     * `type` — тип создаваемого диска.
     * `zone` — [зона доступности](../../../overview/concepts/geo-scope.md). Зона доступности для диска должна соответствовать зоне группы размещения, в которой вы хотите создать диск.
     * `size` — размер диска в ГБ. Максимальный размер диска зависит от заданного размера блока.
     * `block_size` — размер блока в байтах (минимальный объем хранения информации на диске). По умолчанию размер блоков всех создаваемых дисков равен 4 КБ, однако для дисков больше 8 ТБ этого недостаточно. Подробнее в разделе [Создать пустой диск с блоком большого размера](empty-disk-blocksize.md).
     * `kms_key_id` — идентификатор [симметричного ключа KMS](../../../kms/concepts/key.md) для создания [зашифрованного](../../concepts/encryption.md) диска. Необязательный параметр.
  
          Для создания зашифрованного диска нужна [роль](../../../kms/security/index.md#kms-keys-user) `kms.keys.user` или выше.
  
          {% note warning %}
          
          Задать настройки шифрования можно только при создании диска. Шифрование диска нельзя будет отключить или изменить. Также нельзя будет включить шифрование для уже созданного диска.
          
          {% endnote %}
  
          Если деактивировать ключ, которым были зашифрованы диск, снимок или образ, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
          
          {% note alert %}
          
          Если удалить ключ или его [версию](../../../kms/concepts/version.md), которыми были зашифрованы диск, снимок или образ, то доступ к данным будет безвозвратно потерян. Подробнее смотрите [Удаление версии ключа](../../../kms/concepts/version.md#version-distruct).
          
          {% endnote %}
  
     Более подробную информацию о ресурсе `yandex_compute_disk` читайте в [документации провайдера](../../../terraform/resources/compute_disk.md).
  
  1. Проверьте корректность конфигурационных файлов.
  
     1. В командной строке перейдите в папку, где вы создали конфигурационный файл.
     1. Выполните проверку с помощью команды:
  
        ```bash
        terraform plan
        ```
  
     Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет. 
  
  1. Разверните облачные ресурсы.
  
     1. Если в конфигурации нет ошибок, выполните команду:
  
        ```bash
        terraform apply
        ```
  
     1. Подтвердите создание ресурсов.
  
     После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления](https://kz.console.yandex.cloud) или с помощью команды [CLI](../../../cli/quickstart.md):
  
        ```bash
        yc compute disk list
        ```

- API {#api}

  Воспользуйтесь методом REST API [create](../../api-ref/Disk/create.md) для ресурса [Disk](../../api-ref/Disk/index.md) или вызовом gRPC API [DiskService/Create](../../api-ref/grpc/Disk/create.md).

{% endlist %}


#### Полезные ссылки {#see-also}

* [Создать расписание, по которому будут создаваться снимки дисков](../snapshot-control/create-schedule.md)