Amazon Web Services ブログ
Oracle データベースでの Amazon EBS エラスティックボリュームの使用 (パート2): LVMを 使ったデータベース
このブログシリーズのパート 1 では、エラスティックボリュームの機能について検討します。また、データベースストレージとして LVM なしの単一の Amazon EBS ボリュームを使用するシンプルなデータベースである Oracle データベースストレージレイアウトについても検討します。この記事のパート 2 では、ストレージ管理に LVM を使用する Oracle データベースである Amazon EC2 のストレージレイアウトについて検討します。さらに、可用性に影響を与えることなくデータベースストレージを拡張する方法を示します。
LVM を使用したデータベースのストレージ操作
このセクションでは、ストレージ管理に LVM を使用する Oracle データベース向けの Amazon EC2 のストレージレイアウトについて簡潔に検討します。次に、プロビジョニングされたストレージを増やしたり、またプロビジョニングされた IOPS を変更するなど、 Oracle データベースストレージの変更が、エラスティックボリュームの導入前にどのように行われたかについて検討します。また、関連する課題についても取り扱います。最後に、エラスティックボリュームでこれら課題のうちのいくつかを解決する方法について例を挙げて示します。
LVM を使用するデータベースのストレージレイアウト
データベースストレージ用に複数の EBS ボリュームが必要な大規模なデータベースの場合、LVM を使用してストレージを管理できます。このシナリオでは、ボリュームグループを作成し、ボリュームグループに EBS ボリュームを追加します。そして、ボリュームグループから論理ボリュームを作成し、論理ボリュームの上にファイルシステムを作成します。次の図は、LVM を使ったデータベースストレージレイアウトを示しています。
エラスティックボリュームのない Oracle データベースのストレージ操作
複数の EBS ボリュームとストレージ管理用の LVM を使用するシステム用にプロビジョニングされたストレージまたは IOPS を増やすために、新しい EBS ボリュームを作成します。そして、次の手順で新しい EBS ボリュームをボリュームグループに追加します。
- 新しい EBS ボリュームを作成し、EC2 インスタンスに添付する。
pvcreate
コマンドを使用して物理ボリュームを作成する。vgextend
コマンドを使用して、新しい物理ボリュームをボリュームグループに追加する。lvextend
コマンドを使用して、論理ボリュームを拡張する。- ファイルシステムのサイズを変更する。
新しい EBS ボリュームを追加した結果、総ストレージ容量と使用できる IOPS が増加しますが、データは EBS ボリューム全体へ均等に分散されません。この不均一さはホットスポットを生じさせる可能性があります。データ (Oracle データファイル) を EBS ボリューム全体に手動で再度バランスの調整または分散する必要があります。
エラスティックボリュームを使用した Oracle データベースのストレージ操作
EBS ボリュームを変更するには、AWS CLI の modify-volume
コマンドまたは AWS Management Console の Modify Volume オプションを使用します。新しいボリュームサイズと IOPS を指定します。ボリュームサイズを変更せずにプロビジョニングされた IOPS だけを変更した場合、オペレーティングシステムまたは LVM レベルでの変更は必要はありません。EBS のボリュームサイズを変更する場合は、次の追加的な手順を実行します。
pvresize
コマンドを使用して、物理ボリュームのサイズを変更する。lvresize
コマンドを使用して、論理ボリュームのサイズを変更する。- ファイルシステムのサイズを変更する。
EBS ボリュームのサイズまたは IOPS を変更すると、データは複数のバックエンドデバイスへ自動的に拡張されます。このアプローチは、ホットスポットを回避を助け、プロビジョニングされた IOPS の確保を保証します。
例 : LVM を使用するデータベースのストレージを増やす
このセクションでは、ダウンタイムなしに、ストレージ管理に LVM を使用する Oracle データベース用のプロビジョニングされたストレージを増やす方法を示します。このデモンストレーションで、ストレージ管理に LVM を使用する Amazon Linux 上で動作する Oracle 12c データベースを使用します。それぞれ 100 GiB のストレージを持つ 2 つの EBS ボリュームが、物理ボリュームとして LVM に提示されます。これらのボリュームから、論理ボリューム 200 GiB が Oracle データベースストレージ用に作成されます。このデモンストレーションでは、ダウンタイムなしで 200 GiB から 400 GiB にデータベースへプロビジョニングされたストレージを増やしています。
リサイズがデータベースのダウンタイムなしに実行されることを提示するために、evtestproc
というデータベースストアドプロシージャを作成しました。このプロシージャは、レコードを 10 秒間隔で evtesttab
という表に挿入します。サイズ変更操作の実行中にこのプロシージャを実行します。レコードが 10 秒間隔で evtesttab
の表に挿入されていることを検証することで、データベースのダウンタイムなしにリサイズが完了したことを確認できます。evtestproc
ストアドプロシージャの定義については、このブログシリーズのパート 1 を参照してください。
ステップ 1 : 現在の設定を確認する
AWS 管理コンソールから、EBS ボリュームのサイズを検証する。次のスクリーンショットに示すように、現在のサイズは 100 GiB です。
lsblk
コマンドを使用したインスタンスに、ボリュームが接続されていることを確認する。