Amazon Elastic Compute Cloud
User Guide (API Version 2013-02-01)
« PreviousNext »
View the PDF for this guide.Go to the AWS Discussion Forum for this product.Go to the Kindle Store to download this guide in Kindle format.Did this page help you?  Yes | No |  Tell us about it...

Monitoring the Status of Your Volumes

Amazon Web Services (AWS) automatically provides data, such as Amazon CloudWatch metrics and volume status checks, that you can use to monitor your Amazon Elastic Block Store (Amazon EBS) volumes.

Monitoring Volumes with CloudWatch

CloudWatch metrics are statistical data that you can use to view, analyze, and set alarms on the operational behavior of your volumes.

The following table describes the types of monitoring data available for your Amazon EBS volumes.

TypeDescription

Basic

Data is available automatically in 5-minute periods at no charge. This includes data for the root device volumes for Amazon EBS-backed instances.

Detailed

Provisioned IOPS volumes automatically send one-minute metrics to Amazon CloudWatch.

When you get data from Amazon CloudWatch, you can include a Period request parameter to specify the granularity of the returned data. This is different than the period that we use when we collect the data (5-minute periods). We recommend that you specify a period in your request that is equal to or larger than the collection period to ensure that the returned data is valid.

You can get the data using either the Amazon CloudWatch API or the AWS Management Console. The console takes the raw data from the Amazon CloudWatch API and displays a series of graphs based on the data. Depending on your needs, you might prefer to use either the data from the API or the graphs in the console.

Amazon EBS Metrics

You can use the Amazon CloudWatch GetMetricStatistics API to get any of the Amazon EBS volume metrics listed in the following table. Similar metrics are grouped together in the table, and the metrics in the first two rows are also available for the local stores on Amazon EC2 instances.

MetricDescription

VolumeReadBytes

VolumeWriteBytes

The total number of bytes transferred in the period. Data is only reported to Amazon CloudWatch when the volume is active. If the volume is idle, no data is reported to Amazon CloudWatch.

Units: Bytes

VolumeReadOps

VolumeWriteOps

The total number of operations in the period.

Units: Count

VolumeTotalReadTime

VolumeTotalWriteTime

The total number of seconds spent by all operations that completed in the period. If multiple requests are submitted at the same time, this total could be greater than the length of the period. For example, say the period is 5 minutes (300 seconds); if 700 operations completed during that period, and each operation took 1 second, the value would be 700 seconds.

Units: Seconds

VolumeIdleTime

The total number of seconds in the period when no read or write operations were submitted.

Units: Seconds

VolumeQueueLength

The number of read and write operation requests waiting to be completed in the period.

Units: Count

VolumeThroughputPercentage

Used with Provisioned IOPS volumes only. The percentage of I/O operations per second (IOPS) delivered out of the IOPS provisioned for an EBS volume. Provisioned IOPS volumes deliver within 10 percent of the provisioned IOPS performance 99.9 percent of the time over a given year.

Note

During a write, if there are no other pending I/O requests in a minute, the metric value will be 100 percent. Also, a volume's I/O performance may become degraded temporarily due to an action you have taken (e.g., creating a snapshot of a volume during peak usage, running the volume on a non-EBS-optimized instance, accessing data on the volume for the first time).

Units: Percent

VolumeConsumedReadWriteOps

Used with Provisioned IOPS volumes only. The total amount of read and write operations consumed in the period.

Units: Count

Graphs in the AWS Management Console

After you create a volume, you can go to the Amazon EC2 console and view the volume's monitoring graphs. They're displayed when you select the volume on the Volumes page in the EC2 console. A Monitoring tab is displayed next to the volume's Description tab. The following table lists the graphs that are displayed. The column on the right describes how the raw data metrics from the Amazon CloudWatch API are used to produce each graph. The period for all the graphs is 5 minutes.

Graph NameDescription Using Raw Metrics

Read Bandwidth (KiB/s)

Sum(VolumeReadBytes) / Period / 1024

Write Bandwidth (KiB/s)

Sum(VolumeWriteBytes) / Period / 1024

Read Throughput (Ops/s)

Sum(VolumeReadOps) / Period

Write Throughput (Ops/s)

Sum(VolumeWriteOps) / Period

Avg Queue Length (ops)

Avg(VolumeQueueLength)

% Time Spent Idle

Sum(VolumeIdleTime) / Period * 100

Avg Read Size (KiB/op)

Avg(VolumeReadBytes) / 1024

Avg Write Size (KiB/op)

Avg(VolumeWriteBytes) / 1024

Avg Read Latency (ms/op)

Avg(VolumeTotalReadTime) * 1000

Avg Write Latency (ms/op)

Avg(VolumeTotalWriteTime) * 1000

For the average latency graphs and average size graphs, the average is calculated over the total number of operations (read or write, whichever is applicable to the graph) that completed during the period.

The AWS Management Console contains a console for Amazon CloudWatch. In the Amazon CloudWatch console you can search and browse all your AWS resource metrics, view graphs to troubleshoot issues and discover trends, create and edit alarms to be notified of problems, and see at-a-glance overviews of your alarms and AWS resources. For more information, see AWS Management Console in the Amazon CloudWatch Developer Guide.

Monitoring Volumes with Status Checks

Volume status checks enable you to better understand, track, and manage potential inconsistencies in the data on an Amazon EBS volume. They are designed to provide you with the information that you need to determine whether your EBS volumes are impaired, and to help you control how a potentially inconsistent volume is handled.

Volume status checks are automated tests that return a pass or fail status. If all checks pass, the status of the volume is ok. If a check fails, the status of the volume is impaired. If the status is insufficient-data, the checks may still be in progress on the volume. You can view the results of volume status checks to identify any impaired volumes and take any necessary actions.

When EBS determines that a volume's data is potentially inconsistent, the default is that it disables I/O to the volume from any attached EC2 instances, which helps to prevent data corruption. After I/O is disabled, the next volume status check fails, and the volume status is impaired. In addition, you'll see an event that lets you know that I/O is disabled, and that you can resolve the impaired status of the volume by enabling I/O to the volume. We wait until you enable I/O to give you the opportunity to decide whether to continue to let your instances use the volume, or to run a consistency check using a command such as fsck (Linux/UNIX) or chkdsk (Windows) before doing so.

Note

Volume status is based on the volume status checks, and does not reflect the volume state. Therefore, volume status does not indicate volumes in the error state (for example, when a volume is incapable of accepting I/O.)

If the consistency of a particular volume is not a concern for you, and you'd prefer that the volume be made available immediately if it's impaired, you can override the default behavior by configuring the volume to automatically enable I/O. If you enable the AutoEnableIO volume attribute, the volume status check continues to pass. In addition, you'll see an event that lets you know that the volume was determined to be potentially inconsistent, but that its I/O was automatically enabled. This enables you to check the volume's consistency or replace it at a later time.

The following table lists statuses for standard and provisioned IOPS volumes.

Overall Volume StatusI/O Enabled StatusI/O Performance Status (Provisioned IOPS volumes only)

ok

Enabled (I/O Enabled or I/O Auto-Enabled)

Normal (Volume performance is as expected)

warning

Enabled (I/O Enabled or I/O Auto-Enabled)

Degraded (Volume performance is below expectations)

Severely Degraded (Volume performance is well below expectations)

impaired

Enabled (I/O Enabled or I/O Auto-Enabled)

Disabled (Volume is offline and pending recovery, or is waiting for the user to enable I/O)

Stalled (Volume performance is severely impacted)

Not Available (Unable to determine I/O performance because I/O is disabled)

insufficient-data

Enabled (I/O Enabled or I/O Auto-Enabled)

Insufficient Data

Insufficient Data

To view and work with status checks, you can use the AWS Management Console, the API, or the command line interface.

AWS Management Console

To view status checks

  1. Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.

  3. On the EBS Volumes page, the Status Checks column lists the operational status of each volume.

  4. To view an individual volume's status, select the volume, and then click the Status Checks tab.

    Viewing EBS volume status
  5. If you have a volume with a failed status check (status is impaired), see Working with an Impaired Volume.

Alternatively, you can use the Events pane to view all events for your instances and volumes in a single pane. For more information, see Monitoring Volume Events.

Command Line Tools

The following examples show how to use the ec2-describe-volume-status command to describe the status of your volumes.

To do thisRun this command

Get the status of all volumes

ec2-describe-volume-status

Get the status of all volumes with a volume status of impaired

ec2-describe-volume-status --filter "volume-status.status=impaired"

The following is an example of the output for two volumes, including one that is impaired.

Type          VolumeId     AvailabilityZone VolumeStatus
VOLUME        vol-0452396b us-east-1a       ok
VOLUME        vol-2670f74a us-east-1b       impaired
Type          Name       Status
VOLUMESTATUS  io-enabled failed
Type  EventType                    NotBefore                NotAfter EventId        EventDescription
EVENT potential-data-inconsistency 2011-12-01T14:00:00.000Z          evol-61a54008  This is an example
Type   ActionCode                  EventId        EventType                     EventDescription
ACTION enable-volume-io            evol-61a54008  potential-data-inconsistency  This is an example

If you have a volume with a failed status check (status is impaired), see Working with an Impaired Volume.

For more information, see ec2-describe-volume-status in the Amazon Elastic Compute Cloud Command Reference Guide.

API

You can use the DescribeVolumeStatus action to retrieve the status of your volumes. For usage information, see DescribeVolumeStatus in the Amazon Elastic Compute Cloud API Reference.

Monitoring Volume Events

When EBS determines that a volume's data is potentially inconsistent, it disables I/O to the volume from any attached EC2 instances by default. This causes the volume status check to fail, and creates a volume status event that indicates the cause of the failure.

To automatically enable I/O on a volume with potential data inconsistencies, change the setting of the AutoEnableIO volume attribute. For more information about changing this attribute, see Working with an Impaired Volume.

Each event includes a start time that indicates the time at which the event occurred, and a duration that indicates how long I/O for the volume was disabled. The end time is added to the event when I/O for the volume is enabled.

Volume status events include one of the following descriptions:

Awaiting Action: Enable IO

Volume data is potentially inconsistent. I/O is disabled for the volume until you explicitly enable it. The event description changes to IO Enabled after you explicitly enable I/O.

IO Enabled

I/O operations were explicitly enabled for this volume.

IO Auto-Enabled

I/O operations were automatically enabled on this volume after an event occurred. We recommend that you check for data inconsistencies before continuing to use the data.

Normal

For provisioned IOPS volumes only. Volume performance is as expected.

Degraded

For provisioned IOPS volumes only. Volume performance is below expectations.

Severely Degraded

For provisioned IOPS volumes only. Volume performance is well below expectations.

Stalled

For provisioned IOPS volumes only. Volume performance is severely impacted.

You can view events for your volumes using the AWS Management Console, the API, or the command line interface.

AWS Management Console

To view events for your volumes

  1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, click Events. You see a list of all instances and volumes and any associated events.

  3. On the Events page, in Viewing, select Volumes to view only volume status. You can also filter on specific status types.

  4. To view the event details of a specific volume, select the volume in the Events page.

    Viewing volume events

If you have a volume where I/O is disabled, see Working with an Impaired Volume. If you have a volume where I/O performance is below normal, this might be a temporary condition due to an action you have taken (e.g., creating a snapshot of a volume during peak usage, running the volume on a non-EBS-optimized instance, accessing data on the volume for the first time, etc.).

Command Line Tools

To view events for your volumes, use the ec2-describe-volume-status command as follows.

ec2-describe-volume-status

Amazon EC2 returns output similar to the following:

ec2-describe-volume-status  vol-11111111, vol-22222222
Type          VolumeId     AvailabilityZone VolumeStatus
VOLUME        vol-11111111 us-east-1a       ok
VOLUME        vol-22222222 us-east-1b       impaired
Type          Name       Status
VOLUMESTATUS  io-enabled failed
Type  EventType        NotBefore                NotAfter EventId   EventDescription
EVENT potential-data-inconsistency 2011-12-01T14:00:00.000Z          848721011  This is an example
Type   ActionCode                   EventId    EventType                        EventDescription
ACTION enable-volume-io             848721011  potential-data-inconsistency  This is an example

For more information, see ec2-describe-volume-status in the Amazon Elastic Compute Cloud Command Line Reference.

If you have a volume with a failed status check, see Working with an Impaired Volume.

API

You can use the DescribeVolumeStatus action to retrieve the status of your volumes and any associated events. For usage information, see DescribeVolumeStatus in the Amazon Elastic Compute Cloud API Reference.

Working with an Impaired Volume

This section discusses your options if a volume is impaired because the volume's data is potentially inconsistent.

Option 1: Perform a Consistency Check on the Volume Attached to its Instance

The simplest option is to enable I/O and then perform a data consistency check on the volume while the volume is still attached to its Amazon EC2 instance.

To perform a consistency check on an attached volume

  1. Stop any applications from using the volume.

  2. Enable I/O on the volume.

    1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

    2. In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.

    3. Select the volume on which you want to enable I/O operations.

    4. On the Details tab, click Enable Volume IO.

      Enable IO
    5. In Enable Volume IO, click Yes, Enable.

  3. Check the data on the volume.

    1. (Optional) Run the fsck (Linux) or chkdsk (Windows) command.

    2. Review the application logs.

    3. (Optional) If the volume has been impaired for more than 20 minutes you can contact support. Click Troubleshoot Now, and then on the Troubleshoot Status Checks dialog box, click Contact Support to submit a support case.

For information about using the command line interface to enable I/O for a volume, see ec2-enable-volume-io in the Amazon Elastic Compute Cloud Command Line Reference. For information about using the API to enable I/O for a volume, see EnableVolumeIO in the Amazon Elastic Compute Cloud API Reference.

Option 2: Perform a Consistency Check on the Volume Using Another Instance

Use the following procedure to check the volume outside your production environment.

Important

This procedure may cause the loss of write I/Os that were suspended when volume I/O was disabled.

To perform a consistency check on a volume in isolation

  1. Stop any applications from using the volume.

  2. Detach the volume from the instance.

    1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

    2. In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.

    3. Select the volume that you want to detach.

    4. Click More, and then click Force Detach.

    5. In the Force Detach Volume dialog box, click Yes, Force.

  3. Enable I/O on the volume.

    1. In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.

    2. Select the volume that you detached in the previous step.

    3. On the Details tab, click Enable Volume IO.

      Enable IO
    4. In the Enable Volume IO dialog box, click Yes, Enable.

  4. Attach the volume to another instance. For information, see Launching EC2 Instances and Attaching a Volume to an Instance.

  5. Check the data on the volume.

    1. (Optional) Run the fsck (Linux) or chkdsk (Windows) command.

    2. Review the application logs.

    3. (Optional) If the volume has been impaired for more than 20 minutes, you can contact support. Click Troubleshoot Now, and then on the Troubleshoot Status Checks dialog box, click Contact Support to submit a support case.

For information about using the command line interface to enable I/O for a volume, see ec2-enable-volume-io in the Amazon Elastic Compute Cloud Command Line Reference. For information about using the API to enable I/O for a volume, see EnableVolumeIO in the Amazon Elastic Compute Cloud API Reference.

Option 3: Delete the Volume If You No Longer Need It

If you want to remove the volume from your environment, simply delete it. For information about deleting a volume, see Deleting an Amazon EBS Volume.

If you have a recent snapshot that backs up the data on the volume, you can create a new volume from the snapshot. For information about creating a volume from a snapshot, see Creating or Restoring an Amazon EBS Volume.

Working with the AutoEnableIO Volume Attribute

When EBS determines that a volume's data is potentially inconsistent, it disables I/O to the volume from any attached EC2 instances by default. This causes the volume status check to fail, and creates a volume status event that indicates the cause of the failure. If the consistency of a particular volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can override the default behavior by configuring the volume to automatically enable I/O. If you enable the AutoEnableIO volume attribute, I/O between the volume and the instance is automatically reenabled and the volume's status check will pass. In addition, you'll see an event that lets you know that the volume was in a potentially inconsistent state, but that its I/O was automatically enabled. When this event occurs, you should check the volume's consistency and replace it if necessary. For more information, see Monitoring Volume Events.

This section explains how to view and modify the AutoEnableIO attribute of a volume using the AWS Management Console, the command line interface, or the API.

AWS Management Console

To view the AutoEnableIO attribute of a volume

  1. Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.

  3. Select the volume.

  4. In the lower pane, click the Status Checks tab.

  5. In the Status Checks tab, Auto-Enable Volume IO displays the current setting for your volume, either Enabled or Disabled.

    View Auto-Enable IO

To modify the AutoEnableIO attribute of a volume

  1. Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.

  2. In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.

  3. Select the volume.

  4. At the top of the Volumes page, click More.

  5. Click Change Auto-Enable IO Setting.

    Change Auto-Enable IO setting
  6. In the Modify Auto-Enable Volume IO dialog box, set the Auto-Enable Volume IO option to automatically enable I/O for an impaired volume. To disable the feature, clear the option.

    Modify Auto-Enable IO setting
  7. Click Save.

Alternatively, instead of completing steps 4-6 in the previous procedure, go to the Status Checks tab and click Auto-Enable IO Setting.

Command Line Tools

Use the ec2-describe-volume-attribute command as follows to view the AutoEnableIO attribute of a volume.

ec2-describe-volume-attribute vol-12345678 -–auto-enable-io

For more information, see ec2-describe-volume-attribute in the Amazon Elastic Compute Cloud Command Line Reference.

Use the ec2-modify-volume-attribute command as follows to modify the AutoEnableIO attribute of a volume:

ec2-modify-volume-attribute vol-12345678 -–auto-enable-io true

For more information, see ec2-modify-volume-attribute in the Amazon Elastic Compute Cloud Command Line Reference.

API

To view the AutoEnableIO attribute of a volume, use the DescribeVolumeAttribute action. For usage information, see DescribeVolumeAttribute in the Amazon Elastic Compute Cloud API Reference.

To modify the AutoEnableIO attribute of a volume, use the ModifyVolumeAttribute action. For usage information, see ModifyVolumeAttribute in the Amazon Elastic Compute Cloud API Reference.