yandex_compute_disk (Resource)
Written by
Updated at February 9, 2026
Persistent disks are used for data storage and function similarly to physical hard and solid state drives.
A disk can be attached or detached from the virtual machine and can be located locally. A disk can be moved between virtual machines within the same availability zone. Each disk can be attached to only one virtual machine at a time.
For more information about disks in Yandex Cloud, see:
- Documentation
- How-to Guides:
Warning
Only one of image_id or snapshot_id can be specified.
Example usage
//
// Create a new Compute Disk.
//
resource "yandex_compute_disk" "my_disk" {
name = "disk-name"
type = "network-ssd"
zone = "ru-central1-a"
image_id = "ubuntu-16.04-v20180727"
labels = {
environment = "test"
}
}
//
// Create a new Compute Disk and put it to the specific Placement Group.
//
resource "yandex_compute_disk" "my_vm" {
name = "non-replicated-disk-name"
size = 93 // Non-replicated SSD disk size must be divisible by 93G
type = "network-ssd-nonreplicated"
zone = "ru-central1-b"
disk_placement_policy {
disk_placement_group_id = yandex_compute_disk_placement_group.my_pg.id
}
}
resource "yandex_compute_disk_placement_group" "my_pg" {
zone = "ru-central1-b"
}
Arguments & Attributes Reference
allow_recreate(Bool).block_size(Number). Block size of the disk, specified in bytes.created_at(Read-Only) (String). The creation timestamp of the resource.description(String). The resource description.folder_id(String). The folder identifier that resource belongs to. If it is not provided, the default providerfolder-idis used.id(String).image_id(String). The source image to use for disk creation.kms_key_id(String). ID of KMS symmetric key used to encrypt disk.labels(Map Of String). A set of key/value label pairs which assigned to resource.name(String). The resource name.product_ids(Read-Only) (List Of String).size(Number). Size of the persistent disk, specified in GB. You can specify this field when creating a persistent disk using theimage_idorsnapshot_idparameter, or specify it alone to create an empty persistent disk. If you specify this field along withimage_idorsnapshot_id, the size value must not be less than the size of the source image or the size of the snapshot.snapshot_id(String). The source snapshot to use for disk creation.status(Read-Only) (String). The status of the disk.type(String). Type of disk to create. Provide this when creating a disk.zone(String). The availability zone where resource is located. If it is not provided, the default provider zone will be used.disk_placement_policy[Block]. Disk placement policy configuration.disk_placement_group_id(Required)(String). Specifies Disk Placement Group id.
hardware_generation[Block]. Hardware generation and its features, which will be applied to the instance when this disk is used as a boot disk. Provide this property if you wish to override this value, which otherwise is inherited from the source.generation2_features[Block]. A newer hardware generation, which always usesPCI_TOPOLOGY_V2and UEFI boot.legacy_features[Block]. Defines the first known hardware generation and its features.pci_topology(String). A variant of PCI topology, one ofPCI_TOPOLOGY_V1orPCI_TOPOLOGY_V2.
Import
The resource can be imported by using their resource ID. For getting it you can use Yandex Cloud Web Console
# terraform import yandex_compute_disk.<resource Name> <resource Id>
terraform import yandex_compute_disk.my_disk fhmrm**********90r5f