Elastic Cloud Gate

AWS Blog

EBS Pre-Warmer

EBS Volume Pre-Warming

When you create a new EBS volume or restore a volume from a snapshot, the back-end storage blocks are allocated to you immediately. However, the first time you access a block of storage, it must be either wiped clean (for new volumes) or instantiated from its snapshot (for restored volumes) before you can access the block. This preliminary action takes time and can cause a 5 to 50 percent loss of IOPS for your volume the first time each block is accessed. For most applications, amortizing this cost over the lifetime of the volume is acceptable. Performance is restored after the data is accessed once.

However, you can avoid this performance hit in a production environment by writing to or reading from all of the blocks on your volume before you use it; this process is called pre-warming. Writing to all of the blocks on a volume is preferred, but that is not an option for volumes that were restored from a snapshot, because that would overwrite the restored data. For a completely new volume that was created from scratch, you should write to all blocks before using the volume. For a new volume created from a snapshot, you should read all the blocks that have data before using the volume.

Elastic Cloud Gate offer feature allows you pre-warm EBS volumes.

How it works:

After selecting EBS volumes to be run by pre-warming process, we will launch t1.micro Linux instance and attach selected volumes. You might be charged for this instance by Amazon AWS $0.02 /h.

The launched instance will execute a script that will pre-warm all attached volumes. This process can take from few minutes to several hours depending on size and amount of attached volumes. For example, to pre-warm 1TB volume can take 30h.

The warmer instance will be launched per region and per availability zone as well as either per new volumes or volumes restored from snapshot. You will not be able to mix different types of EBS (new or restore from snapshot) under the same warmer server.
You will be able to attach maximum of 10 volumes per warmer.

When pre-warming process is finished, you will receive a notification email and the warmer instance will be terminated.

How to setup warmer:

  • 1. From Dashboard click “Pre-Warmer”
  • 2. Click “Create New Warmer”
    EBS Pre-Wariming
  • 3. Select Availability Zone and Volume Type. Volume has not to be attached to any instance.
    EBS Pre-Wariming
  • 4. Select volumes (only up to 10 volumes can be attached to the same warmer)
  • 5. Click “Create Warmer”
    EBS Pre-Wariming

If you have more volumes or the volumes are spread across different availability zones, you can create another warmer fallowing step 2 through 5.

Leave a Reply