| « PreviousNext » | |
![]() ![]() ![]() | Did this page help you? Yes | No | Tell us about it... |
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.
Topics
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.
| Type | Description |
|---|---|
|
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.
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.
| Metric | Description |
|---|---|
|
|
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 |
|
|
The total number of operations in the period. Units: Count |
|
|
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 |
|
|
The total number of seconds in the period when no read or write operations were submitted. Units: Seconds |
|
|
The number of read and write operation requests waiting to be completed in the period. Units: Count |
|
|
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 |
|
|
Used with Provisioned IOPS volumes only. The total amount of read and write operations consumed in the period. Units: Count |
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 Name | Description 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.
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 Status | I/O Enabled Status | I/O Performance Status (Provisioned IOPS volumes only) |
|---|---|---|
|
|
Enabled (I/O Enabled or I/O Auto-Enabled) |
Normal (Volume performance is as expected) |
|
|
Enabled (I/O Enabled or I/O Auto-Enabled) |
Degraded (Volume performance is below expectations) Severely Degraded (Volume performance is well below expectations) |
|
|
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) |
|
|
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.
To view status checks
Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.
On the EBS Volumes page, the Status Checks column lists the operational status of each volume.
To view an individual volume's status, select the volume, and then click the Status Checks tab.

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.
The following examples show how to use the ec2-describe-volume-status
command to describe the status of your volumes.
| To do this | Run this command |
|---|---|
|
Get the status of all volumes |
|
|
Get the status of all volumes with a volume status of 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.
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.
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:
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.
I/O operations were explicitly enabled for this volume.
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.
For provisioned IOPS volumes only. Volume performance is as expected.
For provisioned IOPS volumes only. Volume performance is below expectations.
For provisioned IOPS volumes only. Volume performance is well below expectations.
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.
To view events for your volumes
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
In the navigation pane, click Events. You see a list of all instances and volumes and any associated events.
On the Events page, in Viewing, select Volumes to view only volume status. You can also filter on specific status types.
To view the event details of a specific volume, select the volume in the Events page.

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.).
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.
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.
This section discusses your options if a volume is impaired because the volume's data is potentially inconsistent.
Topics
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
Stop any applications from using the volume.
Enable I/O on the volume.
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.
Select the volume on which you want to enable I/O operations.
On the Details tab, click Enable Volume IO.

In Enable Volume IO, click Yes, Enable.
Check the data on the volume.
(Optional) Run the fsck (Linux) or chkdsk (Windows) command.
Review the application logs.
(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.
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
Stop any applications from using the volume.
Detach the volume from the instance.
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.
Select the volume that you want to detach.
Click More, and then click Force Detach.
In the Force Detach Volume dialog box, click Yes, Force.
Enable I/O on the volume.
In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.
Select the volume that you detached in the previous step.
On the Details tab, click Enable Volume IO.

In the Enable Volume IO dialog box, click Yes, Enable.
Attach the volume to another instance. For information, see Launching EC2 Instances and Attaching a Volume to an Instance.
Check the data on the volume.
(Optional) Run the fsck (Linux) or chkdsk (Windows) command.
Review the application logs.
(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.
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.
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.
To view the AutoEnableIO attribute of a volume
Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.
Select the volume.
In the lower pane, click the Status Checks tab.
In the Status Checks tab, Auto-Enable Volume IO
displays the current setting for your volume, either
Enabled or Disabled.

To modify the AutoEnableIO attribute of a volume
Sign in to the AWS Management Console and open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
In the navigation pane, under ELASTIC BLOCK STORE, click Volumes.
Select the volume.
At the top of the Volumes page, click More.
Click Change Auto-Enable IO Setting.

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.

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.
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.
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.