第3章 キャパシティープランニング

3.1. 容量と使用率の収集

Red Hat CloudForms サーバーは、仮想インフラストラクチャーから容量および使用率のデータを収集して分析することができます。このデータを使用して、現在の環境の制限を理解して、拡張に向けプランニングを行います。

容量および使用率のデータによっては、Red Hat CloudForms がトレンドラインを割り出して、チャートに表示します。トレンドラインは、線形回帰を使用して算出されます。Red Hat CloudForms で収集した容量および使用率データを使用して、チャートに指定した間隔でこれらの計算が行われます。データの量が多いほど、より適切なトレンドラインの予測値を算出できます。

容量および使用率の収集とメトリックの作成に関連するサーバーロールが 3 つあります。

  • Capacity & Utilization Coordinator ロールは、スケジューラーなどのように、データの収集の時間かどうかを確認します。収集する時間であれば、C & U データコレクター (Capacity and Utilization Data Collector) のキューにジョブが送られます。コーディネーターロールは、容量および使用率データの収集を完了する必要があります。このロールが指定されているサーバーが特定のゾーンに複数ある場合には、1 度に 1 つのサーバーのみがアクティブになります。
  • C & U データコレクター (Capacity & Utilization Data Collector) は、容量および使用率データを実際に収集します。このロールには、専用のワーカーがあり、1 つのゾーン内でこのロールが指定されているサーバーが複数存在する可能性があります。
  • C & U データプロセッサー (Capacity and Utilization Data Processor) は、Red Hat CloudForms がチャートを作成できるように、収集したデータをすべて処理します。このロールには、専用のワーカーがあり、1 つのゾーン内でこのロールが指定されているサーバーが複数存在する可能性があります。

3.2. 容量と使用率のサーバーロールの割り当て

  1. 設定設定 (Configuration) に移動して、アプライアンスの左ペインの 設定ゾーン から設定するサーバーを選択します。
  2. サーバーサーバー制御 エリアに移動して、設定に合わせてリストから適切な容量 & 使用率ロールを選択します。
  3. 保存 をクリックします。

データの収集がすぐに開始されます。ただし、最初の収集は、サーバーが起動してから 5 分後に始まり、その後 10 分間隔で実行されます。そのため、C & U データコレクター (Capacity and Utilization Collector) のサーバーロールを有効にした後に収集にかかる最大時間は 10 分です。特定のプロバイダーから初めて収集する場合には、Red Hat CloudForms が過去 1 カ月のデータポイントを収集するため、所要時間が数分長くなる可能性があります。

注記

サーバーロールの設定に加え、どのクラスターおよびデータストアからデータを収集するのかを選択する必要があります。詳しい情報は、『一般設定』ガイドを参照してください。これらの設定を編集するには、super administrator の権限が必要です。

3.3. Red Hat Enterprise Virtualization 3.3 および 3.4 のデータ収集

Red Hat Enterprise Virtualization 3.3 および 3.4 の容量および使用率データを収集するには、RHEV-M データベースにユーザーとして Red Hat CloudForms を追加する必要があります。

履歴データベースのある PostgreSQL で以下の手順を実行します。通常、これは、RHEV-M サーバーです。

  1. SSH を使用して、RHEV-M データベースサーバーに root ユーザーとしてアクセスします。

    $ ssh root@example.postgres.server
  2. postgres ユーザーに切り替えます。

    # su - postgres
  3. データベースのプロンプトにアクセスします。

    -bash-4.1$ psql
  4. Red Hat CloudForms の新規ユーザーを作成します。

    postgres=# CREATE ROLE cfme LOGIN UNENCRYPTED PASSWORD 'smartvm' SUPERUSER VALID UNTIL 'infinity';
  5. RHEV-M データベースサーバーのプロンプトに戻ります。

    postgres=# \q
    -bash-4.1$ exit
  6. ポート 5432 で TCP 通信を許可するように、サーバーのファイアウォールを更新します。

    # iptables -I INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
    # service iptables save
  7. /var/lib/pgsql/data/pg_hba.conf に以下の行を追加して、外部の md5 認証を有効にします。

    host    all      all    0.0.0.0/0     md5
  8. /var/lib/pgsql/data/postgresql.conflisten_addresses の行を更新して、PostgreSQL がリモート接続をリッスンするように有効化します。

    listen_addresses  =  '*'
  9. PostgreSQL 設定を再度読み込みます。

    service postgresql reload

3.4. データ収集用のデータベース認証情報の追加

新規ユーザーの作成後には、プロバイダー用の設定にユーザーの認証情報を追加します。

  1. コンピュートインフラストラクチャープロバイダー から、設定を更新するインフラストラクチャープロバイダーを選択します。
  2. 1847 Configuration をクリックしてから、 1851 Edit Selected Infrastructure Provider をクリックします。
  3. 認証情報 のエリアで、 C & U データベース をクリックします。
  4. 作成済みの新規データベースの認証情報を入力します。
  5. 保存 をクリックします。
  6. C & U データコレクター (Capacity and Utilization Data Collector) を再起動します。

3.5. Red Hat Enterprise Linux OpenStack Platform のデータ収集

Ceilometer をインストールして、外部システムからのクエリーを受信するように設定してからでないと、Red Hat Enterprise Linux OpenStack Platform (RHEL-OSP) プロバイダーからデータを収集することができません。

以下の手順では、Red Hat Enterprise Linux 6.4 @ をベースにインストールした RHEL OpenStack と、RHEL OpenStackRHEL Server Opetinal チャンネルの両方を利用できるように Satellite への登録が必要です。すべての手順は、RHEL OpenStack システムで実行してください。

  1. 必須チャンネルを追加してシステムを更新します。

    # rhn-channel --add -c rhel-x86_64-server-6-ost-3 -c rhel-x86_64-server-optional-6
    # yum update -y
    # reboot
  2. Ceilometer をインストールします。

    # yum install *ceilometer*
  3. MongoDB ストアをインストールして、起動します。

    # yum install mongodb-server
    # sed -i '/--smallfiles/!s/OPTIONS=\"/OPTIONS=\"--smallfiles /' /etc/sysconfig/mongod
    # service mongod start
  4. 以下のユーザーとロールを作成します。

    # SERVICE_TENANT=$(keystone tenant-list | grep services | awk '{print $2}')
    # ADMIN_ROLE=$(keystone role-list | grep ' admin ' | awk '{print $2}')
    # SERVICE_PASSWORD=servicepass
    # CEILOMETER_USER=$(keystone user-create --name=ceilometer \
    --pass="$SERVICE_PASSWORD" \
    --tenant_id $SERVICE_TENANT \
    --email=ceilometer@example.com | awk '/ id / {print $4}')
    # RESELLER_ROLE=$(keystone role-create --name=ResellerAdmin | awk '/ id / {print $4}')
    # ADMIN_ROLE=$(keystone role-list | awk '/ admin / {print $2}')
    # for role in $RESELLER_ROLE $ADMIN_ROLE ; do
    keystone user-role-add --tenant_id $SERVICE_TENANT \
    --user_id $CEILOMETER_USER --role_id $role
    done
  5. ceilometer.conf で authtoken を設定します。

    # openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_host 127.0.0.1
    # openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_port 35357
    # openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_protocol http
    # openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken admin_tenant_name services
    # openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken admin_user ceilometer
    # openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken admin_password $SERVICE_PASSWORD
  6. ceilometer.conf でユーザー認証を設定します。

    # openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT os_auth_url http://127.0.0.1:35357/v2.0
    # openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT os_tenant_name services
    # openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT os_password $SERVICE_PASSWORD
    # openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT os_username ceilometer
  7. ceilometer サービスを起動します。

    # for svc in compute central collector api ; do
      service openstack-ceilometer-$svc start
      done
  8. サービスカタログにエンドポイントを登録します。$EXTERNALIFACE は、外部インターフェースの IP アドレスに置き換えます。

    # keystone service-create --name=ceilometer \
    --type=metering --description="Ceilometer Service"
    # CEILOMETER_SERVICE=$(keystone service-list | awk '/ceilometer/ {print $2}')
    # keystone endpoint-create \
    --region RegionOne \
    --service_id $CEILOMETER_SERVICE \
    --publicurl "http://$EXTERNALIFACE:8777/" \
    --adminurl "http://$EXTERNALIFACE:8777/" \
    --internalurl "http://localhost:8777/"
  9. 外部システムから ceilometer へのアクセスを有効化します。

    # iptables -I INPUT -p tcp -m multiport --dports 8777 -m comment --comment "001 ceilometer incoming" -j ACCEPT
    # iptables save
  10. OpenStack および Ceilometer サービスのステータスを確認します。

    # openstack-status
    # for svc in compute central collector api ; do
      service openstack-ceilometer-$svc status
      done
  11. 実行中のインスタンスで admin などのユーザーの認証を行い、ceilometer が正しく機能していることを確認します。CPU の計測サンプルから行数を取得するようにパイプして、/etc/ceilometer/pipeline.yaml に指定した間隔に応じて、値が変化することを確認します。デフォルトの間隔は、600 秒です。

    # . ~/keystonerc_admin
    # ceilometer sample-list -m cpu |wc -l
  12. 設定済みの OpenStack プロバイダーを Red Hat CloudForms に追加します。『プロバイダーの管理』の「OpenStack プロバイダーの追加」セクションを参照してください。プロバイダーを追加して数分以内に、お使いのインスタンスの容量および使用率データが生成されます。

3.6. 収集したデータ

Red Hat CloudForms は、収集したデータからチャートを生成して、ハードウェアや仮想マシンのニーズに関するプランニングに使用できるようにします。データのタイプにより、これらのチャートには平均、最大、最小、傾向などの折れ線チャートなどが含まれる場合があります。

注記

日次の容量および使用率データのレポートにおいて、要求した期間の開始時と終了時などデータが 1 日分とならない場合 (午前 0 時から午前 0 時までの 24 時間に達しない日) にはそのデータは除外されます。24 時間未満の日次データは正確ではなく、そのようなデータを含めるとトレンドラインをにずれが生じる可能性があります。そのため、コンピュートインフラストラクチャー タブに容量および使用率のチャートを表示させるには、午前 0 時から午前 0 時までの 1 時間単位のデータが最低でも丸 1 日分必要です。

3.6.1. ホスト、クラスター、仮想マシンの容量および使用率のチャート

表3.1 ホスト、クラスター、仮想マシンの容量および使用率のチャート

リソースタイプCPU 使用量CPU の状態ディスク I/Oメモリー使用量ネットワーク I/O現在実行中の仮想マシン実行中のホスト

ホスト

Y

Y

Y

Y

Y

Y

NA

クラスター

Y

Y

Y

Y

Y

Y

Y

仮想マシン

Y

Y

Y

Y

Y

NA

NA

ホスト、クラスター、仮想マシンの容量および使用率のチャートを表示する手順は、Managing Infrastructure and Inventory ガイドの以下のセクションを参照してください。

3.6.2. データストアの容量および使用率のチャート

作成されたチャートには以下が含まれます。

表3.2 データストアの容量および使用率のチャート

仮想マシンタイプ別の領域仮想マシンおよびホスト

使用済みの領域

タイプ別の仮想マシン数

ディスクファイルの領域

ホスト

スナップショットファイルの領域

仮想マシン

メモリーファイルの領域

 

仮想マシン以外のファイル

 

使用済みのディスク領域

 

データストアの容量および使用率のチャートを表示する手順については、Managing Infrastructure and Inventory ガイドの「Viewing Capacity and Utilization Charts for a Datastore」のセクションを参照してください。

3.7. チャートの機能

各チャートには、チャートの拡大やショートカットメニューなどの特別な機能セットが含まれています。

3.7.1. チャートの拡大

  1. 拡大するチャートに移動します。チャートの上にマウスをかざすと、チャートの座標に焦点を当てるため、破線が 2 つ表示されます。
  2. 拡大するチャートの左端の下にある 2251 (クリックして拡大) をクリックします。
  3. 通常のビューに戻すには、拡大されたチャートで 2252 (クリックして縮小) をクリックします。

3.7.2. チャートデータへのドリルイン

  1. 詳細を確認するためにチャートに移動します。
  2. 座標を表示するには、データポイントにマウスをかざします。
  3. データポイントをクリックして、チャートのショートカットメニューを開きます。以下の例では、ショートカットメニューを使用して、時間別のチャートに移動するか、またはデータを取得した時間に実行されていた仮想マシンを表示します。

    • CPUディスクメモリー または ネットワーク のチャートを表示している場合には、チャート のオプションを選択すると、ページ内のチャートがすべて、選択した新しい間隔のチャートに変わります。
    • CPUディスクメモリー または ネットワーク のチャートを表示している場合には、表示 のオプションを選択すると、その時点に実行されていた仮想マシンまたは ホスト にドリルインすることができます。
    • 仮想マシン または ホスト のチャートを表示している場合は、表示 メニューにより実行中の仮想マシンや停止された仮想マシンを表示することができます。データポイントの時間だけでなく、該当する仮想マシンも表示されます。ここから、仮想マシンをクリックしてその詳細を表示できます。

3.8. 最適化

Red Hat CloudForms の最適化機能では、使用率トレンドの表示や、環境内のボトルネックの特定や予測を行うことができます。さらに、仮想マシンを追加できる容量がある場所を予測することも可能です。

注記

日次の最適化データのレポートにおいて、要求した期間の開始時と終了時などデータが 1 日分とならない場合 (午前 0 時から午前 0 時までの 24 時間に達しない日) にはそのデータは除外されます。24 時間未満の日次データは正確ではなく、そのようなデータを含めるとトレンドラインをにずれが生じる可能性があります。そのため、最適化 のページでは、チャートに表示された値はすべてトレンドの計算から取得されており、データポイントが少なくとも 2 つ必要であるため、少なくとも丸 2 日分の日次データが必要です。

3.10. プランニング

VMDB で収集されたデータを使用して、仮想マシンを追加する場所をプランニングします。Red Hat CloudForms により、参照仮想マシンをサンプルとして使用し、新規仮想マシンの配置先のホストやクラスターについてプランニングすることができます。

3.10.1. 新規仮想マシンの配置先についてのプランニング

Red Hat CloudForms のプランニング機能を使用することで、仮想マシンの配置のプランニングが容易になります。

  1. 最適化計画 に移動します。
  2. 参照する仮想マシンの選択 のドロップダウンを使用して、追加する可能性の高い仮想マシンを選択します。

    2254

  3. 計算のベースに必要な 仮想マシンのオプション を選択します。

    2255

    ソース のリストから、予測に使用するソースのデータのタイプを選択します。たとえば、Allocation を選択して、参照する仮想マシン用に現在割り当てられている各リソース (CPU、メモリー、またはディスク領域) の値をベースに算出します。Reservation は、特定のリソース (CPU 速度、CPU 数、メモリー、またはディスク領域) で現在確保されている値をベースに予測する際に使用します (ただし、その特定の時点でこの量が仮想マシンに割り当てられていない可能性があります)。参照する仮想マシンの使用率の履歴をベースに算出する場合には、Usage を使用します。また、Manual Input は各リソースに独自のパラメーターセットを入力する際に使用します。

  4. ターゲットオプション/上限値 から、クラスターまたはホストをターゲットとして使用する場合に選択します。

    2256

    また、CPU、メモリー、データストアの領域で予測可能な上限を選択します。ホストをターゲットにする場合には、どのホストをターゲットにするかのフィルターを選択することができます。

  5. タイムプロファイル および タイムゾーン (該当する場合) のトレンドデータをどの程度さかのぼって使用するのかについて、トレンドオプション から選択します。タイムプロファイル は、ログイン中のユーザーが タイムプロファイル を使用できる場合のみ表示されます。
  6. 送信 をクリックします。

概要 タブでは、仮想マシンの配置先としてベストなクラスターまたはホストが表示されます。レポート タブでは、参照する仮想マシンに最適なクラスター/ホストおよび仮想マシンに関する統計が表形式で表示されます。レポート タブから、レポートの PDF を作成したり、txt または csv 形式でデータをダウンロードしたりすることができます。

3.11. ボトルネック

Red Hat CloudForms は、仮想インフラストラクチャーのどこでボトルネックが発生しているかを表示することができます。タイムラインとして表示するか、今後の分析用にダウンロード可能なレポートとして表示することができます。

3.11.1. 前提条件

  • ボトルネックレポートは、容量および使用率レポートの場合と同様のデータ収集の仕組みを使用します。Red Hat CloudForms でデータ収集を有効にするには、以下のセクションを参照してください。

  • さらにクラスターおよびデータストアの容量および使用率レポートを収集するために Red Hat CloudForms を設定するには、以下の手順に従います。

    1. 設定設定 (Configuration) に移動します。
    2. アプライアンスの左ペインにある 設定 タブから リージョン を選択します。
    3. 右ペインの C & U 収集タブにある クラスター 下の すべてのクラスターを収集データストア 下の すべてのデータストアの収集 のボックスにチェックを付けるか、または必要なクラスター/データストアのボックスにチェックを付けます。

      注記

      すべてのデータストアの収集 にチェックを付けないと、Red Hat OpenStack または Amazon EC2 などのクラウドプロバイダーから容量および使用率データを収集することができません。

    4. 保存 をクリックします。
  • ボトルネックレポートを予想通りに機能させるには、関連するバックエンドプロバイダーについての容量および使用率レポートのデータ収集も有効にしておく必要があります。Red Hat Enterprise Virtualization および Red Hat Enterprise Linux OpenStack Platform プロバイダーについてのデータ収集を有効にするには、以下のドキュメントを参照してください。

注記

日次のボトルネックデータのレポートにおいて、要求した期間の開始時と終了時などデータが 1 日分とならない場合 (午前 0 時から午前 0 時までの 24 時間に達しない日) にはそのデータは除外されます。24 時間未満の日次データは正確ではなく、そのようなデータを含めるとトレンドラインをにずれが生じる可能性があります。そのため、最適化 タブに容量および使用率のチャートを表示させるには、午前 0 時から午前 0 時までの 1 時間単位のデータが最低でも丸 1 日分必要です。

3.11.2. ボトルネックの概要の表示

ボトルネックの容量または使用率に関する詳細を確認するには、ボトルネックの概要を表示します。

  1. 最適化ボトルネック に移動します。
  2. 概要 が選択されていない場合には、クリックしてください。
  3. 希望のプロバイダー、クラスター、またはデータセンターが表示されるまで、左側のツリーを展開します。
  4. 該当するアイテムをクリックします。
  5. データの特性を変更するには、オプション セクションを使用します。 2257

    • 容量、使用率または両方をベースにボトルネックを表示する場合には、イベントグループ を使用します。
    • タイムゾーン を選択します。

      データが処理され、タイムラインが表示されます。タイムラインのアイコンをクリックして、ボトルネックの特定の情報を表示します。

3.11.3. ボトルネックトレンドのレポート表示

  1. 最適化ボトルネック に移動します。
  2. レポート をクリックします。
  3. 希望のプロバイダー、クラスター、またはデータセンターが表示されるまで、左側のツリーを展開します。
  4. 該当するアイテムをクリックします。
  5. データの特性を変更するには、オプション セクションを使用します。 2258

    • 容量、使用率または両方をベースにボトルネックを表示する場合には、イベントグループ を使用します。
    • タイムゾーン を選択します。
  6. トレンドを表示するエンタープライズ、プロバイダー、またはデータセンターが表示されるまで、左側のツリーを展開します。