Skip to main content

Linode Block Storage

Increase your Linode’s storage capacity by attaching additional high-speed volume sizes up to 10TB. Volumes are managed independently of Linodes, so your data persists even if you delete your Linode.


linode-splash-dedicated-cpu-any-instance

Scalable

Resize a Block Storage Volume at any time, giving you the flexibility to update your storage capacity with a few easy steps whenever your needs change.

linode-splash-block-storage-add-storage

Independent and Hot Swappable

Volumes are managed independently from a Compute Instance’s local storage and can be attached or detached to any Instance without needing to reboot, allowing you to move Volumes between systems within seconds.

linode-splash-block-storage-fault-tolerant

Resilient and Fault Tolerant

Volumes are configured with built-in data replication, ensuring that your data is highly-available and protected from loss.

linode-splash-block-storage-manage-data

Store Any Type of Data

Block Storage can be used to store any data, including website files, databases, media files, backups, or even bootable operating systems.

Specifications

Video Thumbnail

Introduction to NVMe Block Storage

Cloud Block Storage Benchmark Report

Independent benchmarking firm, Cloud Spectator, found that Linode’s NVMe Block Storage outperforms AWS, Azure, GCP, and DigitalOcean in both overall IOPS performance and IOPS per dollar.

Dedicated VMs (4 CPUs) & 500GB Block Storage - 4K Storage AVG Write IOPS

NVMeReport_StaticGraph_Website_4A-1 (1)

FIO 4KB Random Write IOPS (Higher is Better)

Carefully crafted for peak performance at the best price.

$0.10/GB per month. Hourly Billing. No usage fees.

$ /mo

Full-featured API

Programmatically control and manage your Linode infrastructure.

STEP 1: Create and attach a Volume
Leverage the Linode API to dynamically create Volumes and attach them to Linode instances. You can use cURL to access the API from your command line, or take advantage of our API's Python bindings.

If you use Terraform to provision your infrastructure, you can use the `linode_volume` resource to entirely manage your Volumes from within your Terraform plan. Manage Block Storage Volumes with the Linode API Linode API Reference Using the Linode CLI linode_api4-python on GitHub A Beginner's Guide to Terraform
curl -H "Content-Type: application/jsonType" 
  -H "Authorization: Bearer $token" 
  -X POST -d '{ 
    "label": "my-volume", 
    "size": 100, 
    "region": "us-east", 
    "linode_id": 1234567 
  }' 
  https://api.linode.com/v4/volumes
linode-cli volumes create 
  --label "my-volume" 
  --size "100" 
  --region "us-east" 
  --linode_id "1234567"
from linode_api4 import LinodeClient
client = LinodeClient(token)
client.volume_create('my-volume',
  linode=1234567,
  size=100)
resource "linode_volume" "my-volume" {
  label = "my-volume"
  size = "100"
  region = "${linode_instance.my-linode.region}"
  linode_id = "${linode_instance.my-linode.id}"
}
STEP 2: Mount an attached Volume
After you attach a Volume to a Linode instance, format it and mount it from inside the instance. This makes the Volume's filesystem available to you.

You can issue a few commands from your SSH connection to mount your Volume. If you use a configuration management tool like Salt, Ansible, or Puppet for your instances, you can also manage this mount from your formulas, playbooks, and modules. How to Use Block Storage A Beginner's Guide to Salt Automatically Configure Servers with Ansible Getting Started with Puppet
mkfs.ext4 "/dev/disk/by-id/scsi-0Linode_Volume_my-volume"
​​​​​​​mkdir "/mnt/my-volume"
echo "/dev/disk/by-id/scsi-0Linode_Volume_my-volume /mnt/my-volume ext4 defaults,noatime,nofail 0 2" \
  | tee -a /etc/fstab
mount /mnt/my-volume
bsvolume:
  blockdev.formatted:
    - name: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
    - fs_type: ext4

  mount.mounted:
    - name: /mnt/my-volume
    - device: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
    - fstype: ext4
    - opts: defaults,noatime,nofail
    - pass_num: 2
    - mkmnt: True
    - require:
      - blockdev: bsvolume
- name: format the volume
  filesystem:
    fstype: ext4
    dev: /dev/disk/by-id/scsi-0Linode_Volume_my-volume

- name: mount the volume
  mount:
    path: /mnt/my-volume
    src: /dev/disk/by-id/scsi-0Linode_Volume_my-volume
    fstype: ext4
    opts: defaults,noatime,nofail
    passno: 2
    state: mounted
include lvm

filesystem { "/dev/disk/by-id/scsi-0Linode_Volume_my-volume":
  ensure  => present,
  fs_type => "ext4",
}

file { "/mnt/my-volume":
  ensure  => "directory",
}

mount { "/mnt/my-volume":
  ensure  => mounted,
  device  => "/dev/disk/by-id/scsi-0Linode_Volume_my-volume",
  fstype  => "ext4",
  options => "defaults,noatime,nofail",
  pass    => 2,
  require => [
    Filesystem["/dev/disk/by-id/scsi-0Linode_Volume_my-volume"],
    File["/mnt/my-volume"],
  ],
}

NVME Block Storage

NVMe Block Storage is now available in many of our global data centers across the US, Canada, Europe, and Asia Pac. Sign up to find out when NVMe Block Storage is available in your data center.

With Linode NVMe Block Storage, you will see:

  • Improved performance over traditional spinning hard disk drives.
  • Increased throughput and IOPS metrics.S
  • Support database storage and critical tasks reliant on high speeds and consistency.

The form is loading

Error .

Please reload the page and try again.

Which data centers are you interested in?

Thank you for your interest! We'll send you updates on NVMe Block Storage as they become available.

Related Content

Content Resources

Ready to get started or have questions?

Set up your free account today or contact a Linode sales consultant to learn more.

Looking for pricing and comparisons? Explore our interactive pricing tools