Vultr Block Storage
Introduction
Vultr's Cloud Block Storage technology lets you mount high-performance, scalable storage to your instance to provide flexible space management. Block storage is highly available, redundant, and available as either high-performance NVMe or affordable HDD. Use this guide to manage your Big Data storage needs with Vultr Block Storage.
Block Storage Technology
Vultr offers two block storage technologies: HDD and NVMe.
HDD Block Storage is an affordable option that uses traditional rotating hard drives and supports volumes larger than 10 TB.
- Minimum volume size: 40 GB
- Maximum volume size: 40 TB
- Technology: Rotating hard disk drive
- Availability: Most Vultr locations
- Key Feature: Affordable storage and largest volumes
NVMe Block Storage is a higher-performance option for workloads that require rapid I/O.
- Minimum volume size: 1 GB
- Maximum volume size: 10 TB
- Technology: Solid-state NVMe
- Availability: Many Vultr locations
- Key Feature: Highest performance I/O
How to Create a Block Storage Volume
Navigate to the Add Block Storage page in the customer portal.
- Select your technology, either HDD or NVMe.
- Select the desired location. Your server and the attached block storage volume must be in the same location.
- Select the block storage size.
- Enter a descriptive label.
- Click Add Block Storage.
In a short time, your volume will be available for use. Wait until you see Active in the status column before proceeding.
Attach to a Server Instance
You can attach block storage to one server at a time. However, the server and block storage volumes must be in the same location.
- Go to https://my.vultr.com/blockstorage/
- Click on the pencil icon next to the volume to attach.
- Select the server instance from the drop-down.
- Click Attach.
The block storage will be available as a new device.
Mount Block Storage on Linux
Warning: The commands below may destroy data on existing volumes. These instructions are for newly deployed block storage volumes without data. Before proceeding, back up your files. Vultr does not have any backups of your block storage. Verify your backups and store them separately from the server instance.
Vultr snapshots and backups of server instances do not include block storage.
By default, Vultr does not create any filesystems on block storage volumes. Use these steps to initialize, delete all data, and mount the block storage volume.
Verify the new device name. The first block storage device connected to your server is /dev/vdb. Additional devices increment the device name as /dev/vdc, /dev/vdd, and so forth. Use the
lsblk
command to verify your device name. This example shows a 10 GB volume available as /dev/vdb.console# lsblk
outputNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 55G 0 disk └─vda1 252:1 0 55G 0 part / vdb 252:16 0 10G 0 disk
Create a new disk label using
parted
.console# parted -s /dev/vdb mklabel gpt
Make a primary partition to fill the entire disk.
console# parted -s /dev/vdb unit mib mkpart primary 0% 100%
Create an EXT4 filesystem on the primary partition and format it.
console# mkfs.ext4 /dev/vdb1
Make a mount point.
console# mkdir /mnt/blockstorage
Retrieve information for the created partition.
consoleblkid /dev/vdb1
Copy the value of
UUID
from the output.Add a blank line and a mount entry to /etc/fstab, which automatically mounts the block storage at
/mnt/blockstorage
at each reboot.console# echo >> /etc/fstab # echo "UUID=<ACTUAL UUID> /mnt/blockstorage ext4 defaults,noatime,nofail 0 0" >> /etc/fstab
You can also manually mount the block storage without rebooting.
console# mount /mnt/blockstorage
Mount Block Storage on Windows
Warning: The commands below may destroy data on existing volumes. These instructions are for newly deployed block storage volumes without data. Before proceeding, back up your files. Vultr does not have any backups of your block storage. Verify your backups and store them separately from the server instance.
Vultr snapshots and backups of server instances do not include block storage.
By default, Vultr does not create any filesystems on block storage volumes. Use these steps to initialize, delete all data, and mount the block storage volume. The following steps are based on Windows Server 2016; however, the basic process is very similar on all current versions of Windows.
Click Start, search for Computer Management, and launch it.
Select Storage -> Disk Management on the left side menu.
The right pane displays the current disk configuration. The first block storage device connected to your server is usually Disk 1. Additional devices will be Disk 2, Disk 3, and so forth. This example shows a 10 GB volume as Disk 1.
If the disk is offline, right-click on the new disk volume and select Online.
Right-click on the new disk volume and select Initialize.
Select MBR or GPT partition style and click OK.
Right-click Unallocated Space and select New Simple Volume.
Follow the wizard to format and attach the volume.
Mount Block Storage on OpenBSD
Please see the OpenBSD FAQ for detailed instructions.
Mount Block Storage on FreeBSD
Warning: The commands below may destroy data on existing volumes. These instructions are for newly deployed block storage volumes without data. Before proceeding, back up your files. Vultr does not have any backups of your block storage. Verify your backups and store them separately from the server instance.
Vultr snapshots and backups of server instances do not include block storage.
Identify the Block Storage devices
Vultr block storage shows up as /dev/vtbd*
devices (VirtIO Block Device)
You can view current /dev/vtbd entries with ls -al /dev/vtbd*
# ls -al /dev/vtbd*
crw-r----- 1 root operator 0x43 Mar 25 09:55 /dev/vtbd0
crw-r----- 1 root operator 0x45 Mar 25 09:55 /dev/vtbd0p1
crw-r----- 1 root operator 0x46 Mar 25 05:55 /dev/vtbd0p2
crw-r----- 1 root operator 0x44 Mar 25 09:55 /dev/vtbd1
vtbd0
and vtbd1
are individual devices. vtbd0p1
and vtbd0p2
are two partitions on the vtbd0
device.
Determine which is the new Vultr Block Storage device
Because the newly added block storage hasn't been partitioned yet, it's probably vtbd1, but you can verify by viewing the current GPT partitions with gpart show
(or gpart list
for more details) to show all GPT partitions on all devices.
# gpart show
=> 34 335544253 vtbd0 GPT (160G)
34 94 1 freebsd-boot (47K)
128 335544159 2 freebsd-ufs (160G)
There are two existing partitions and their filesystems on vtbd0
, the existing boot device and root filesystem. You can also verify this by running mount
to see what partition is mounted as /
.
# mount
/dev/vtbd0p2 on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
This confirms that vtbd0
contains the root filesystem.
Partition and Mount the Block Storage
To use a new Vultr block storage device, it must be partitioned, a filesystem initialized, and then mounted.
You already determined the name of your new block storage device in the previous step is vtbd1
. Follow these steps to create one partition with a GPT partition scheme for the entire block storage (50GB).
Create the partition table for
vtbd1
.console# gpart create -s GPT vtbd1 vtbd1 created
Add one partition with the label
vultr_block_storage
and set it to freebsd-ufs.console# gpart add -t freebsd-ufs -l vultr\\_block\\_storage vtbd1 vtbd1p1 added
This should have created a new device called
/dev/vtbd1p1
and you can verify that by runninggpart list vtbd1p1
.Initialize the UFS2 filesystem on the new partition. If you use an alternate filesystem such as ZFS, please see the official documentation for initialization instructions.
console# newfs -U vtbd1p1 /dev/vtbd1p1: 51200.0MB (104857528 sectors) block size 32768, fragment size 4096 using 82 cylinder groups of 626.09MB, 20035 blks, 80256 inodes. with soft updates super-block backups (for fsck_ffs -b #) at: 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632, 8975872, 10258112, 11540352, 12822592, 14104832, 15387072, 16669312, 17951552, 19233792, 20516032, 21798272, 23080512, 24362752, 25644992, 26927232, 28209472, 29491712, 30773952, 32056192, 33338432, 34620672, 35902912, 37185152, 38467392, 39749632, 41031872, 42314112, 43596352, 44878592, 46160832, 47443072, 48725312, 50007552, 51289792, 52572032, 53854272, 55136512, 56418752, 57700992, 58983232, 60265472, 61547712, 62829952, 64112192, 65394432, 66676672, 67958912, 69241152, 70523392, 71805632, 73087872, 74370112, 75652352, 76934592, 78216832, 79499072, 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752, 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432, 98732672, 100014912, 101297152, 102579392, 103861632
Now you're ready to mount the new device for use.
Create a mount point.
console# mkdir /mnt/blockstorage
Retrieve information for the created partition.
consoleblkid /dev/vtbd1p1
Copy the value of
UUID
from the output.Add a blank line and a mount entry to /etc/fstab, which automatically mounts the block storage at
/mnt/blockstorage
at each reboot.console# echo >> /etc/fstab # echo "UUID=<ACTUAL UUID> /mnt/blockstorage ext4 defaults,noatime,nofail 0 0" >> /etc/fstab
Mount the new block storage device.
console# mount /mnt/blockstorage
The storage is now available and ready for use at
/mnt/blockstorage
.console# df -h /mnt/blockstorage/ Filesystem Size Used Avail Capacity Mounted on /dev/vtbd1p1 48G 8.0K 45G 0% /mnt/blockstorage
Detach a Block Storage
Note: Linux instances need to remove any references to the block storage volume from the
/etc/fstab
file before detaching to prevent system boot failure due to the OS waiting on a drive that no longer exists.
- Go to https://my.vultr.com/blockstorage/
- Click on the pencil icon next to the volume you wish to detach.
- Click Detach.
Move Block Storage to a New Server
You can move block storage between servers, but take care to properly dismount the volume and remount it on the new server.
Attention: If you need to preserve data, do not re-partition, create a new filesystem, or perform the initialization steps that delete data.
How to Upgrade Block Storage
Expanding block storage requires two steps:
- Upgrade block storage size in the customer portal
- Resize your filesystem in the instance OS
Upgrade block storage size
Don't skip the final step! After you expand the block storage you must restart the server from the server control panel. Rebooting the operating system from the web console or an SSH session will not apply the changes.
Navigate to your Vultr customer portal.
Select Products.
Click Block Storage.
Click the Manage icon on the desired Block Storage instance.
Click the Size link to adjust the size.
Enter the new size, type YES in the confirmation field, then click Continue.
You must restart the server from the server control panel for the new size to be recognized by the server. Rebooting the operating system from the web console or an SSH session will not apply the changes.
Resize the filesystem - Linux
You can resize your block storage to reflect the changes made in your panel with the growpart
utility, which is provided by cloud-init and is available for all major Linux distributions and *BSD.
Unmount the block storage.
console# umount /mnt/blockstorage
Use the
lsblk
command to verify the partition name. This example shows a 10 GB partition as /dev/vdb1. The mount point is blank because it was dismounted in step 1.console# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 55G 0 disk └─vda1 252:1 0 55G 0 part / vdb 252:16 0 10G 0 disk └─vdb1 252:17 0 10G 0 part
Grow the partition to fill all available block storage space.
console# growpart /dev/vdb 1
Force a filesystem check before resizing.
console# e2fsck -fp /dev/vdb1
Remount the block storage.
console# mount /mnt/blockstorage
Resize the filesystem to fill the entire partition.
console# resize2fs /dev/vdb1
Resize the filesystem - Windows
Click Start, search for Computer Management, and launch it.
Select Storage -> Disk Management on the left side menu.
The right pane displays the current disk configuration. The block storage device will have new unallocated space available. Right-click on the volume and select Extend Volume... as shown.
Follow the wizard to extend the volume.
How to Shrink Block Storage
It's not possible to shrink block storage. If you'd like to move your files to a smaller block storage subscription, perform these steps:
- Make a backup of your block storage volume.
- Inventory your files to determine the space needed. Windows users can use Windows Explorer, while Linux users may want to use
df
. - Create a new subscription of the correct size.
- Attach the new volume on your instance, then mount it.
- Copy your files from the larger block storage volume to the new, smaller volume. Use the tools appropriate for your platform.
- Detach the old block storage subscription.
- Reboot your server instance and verify your new volume is correct.
- When satisfied with the new volume, destroy the old block storage subscription.
Manage Block Storage via API
The Vultr API offers several endpoints to manage block storage.
- Create a block storage volume.
- Get information for a block storage volume.
- List the block storage volumes in your account.
- Update information about a block storage volume.
- Attach a block storage volume to a server instance.
- Detach block storage from a server instance.
- Delete a block storage volume.
Use the /v2/regions
API endpoint to discover which storage classes are available at your location.
block_storage_storage_opt
indicates HDD storage is available.block_storage_high_perf
indicates NVMe storage is available.
Frequently Asked Questions
Can I upgrade or downgrade block storage?
You can upgrade block storage by using the steps described here. You must resize your file system manually, which does pose the risk of possible data loss if performed incorrectly. You cannot perform an in-place downgrade of block storage, but you can use these steps to migrate your files to a smaller block storage subscription.
Can I mount block storage to different locations?
No. Block storage may only be attached to instances in the same location.
Is there a minimum size for Block Storage volumes?
Yes, the minimum size for NVMe Block Storage volume is 10 GB. The minimum size for HDD block storage is 40 GB.
Can I make snapshots or restore a snapshot of a block storage device?
No, this is not currently supported. Vultr's automated server backup does not back up any attached block storage volumes. Instead, you should back up your block storage volumes using OS-level tools.
Can I mount block storage to multiple servers at the same time?
No, this is not possible.
Can I mount multiple block storage volumes to the same Vultr instance?
Yes, you can mount up to 16 volumes to the same instance.
Can I mount a block storage volume on a Vultr Bare Metal server?
No, Block Storage does not support Bare Metal.
Are there any limits on the size or number of volumes I can deploy?
We have generous limits on the total number of volumes and the aggregate storage allocated per account. If you have questions about your account limits, please open a support ticket.
Where is block storage data physically located?
You choose the location when you deploy block storage, and the data remains in that location unless you move it. Because data residency is important to many of our customers, Vultr does not copy or back up your data outside that location.
Is Block Storage encrypted at rest?
Vultr encrypts your data at rest with Advanced Encryption Standard, using 256-bit keys (AES-256). This level of encryption is approved by many regulatory compliance standards such as PCI-DSS, GDPR, FedRAMP, FIPS 140-2, ISO/IEC 18033-3, and SOC 1, 2, and 3. AES is the only publicly accessible cipher approved by the U.S. National Security Agency.