Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[ExaCS/ExaC@C] Autoscaling 概要

[ExaCS/ExaC@C] Autoscaling 概要

oracle4engineer

May 06, 2021
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Autoscaling 概要 Scale-up and Scale-down automation utility for OCI DB

    System (ExaCS/ExaCC) (Doc ID 2719916.1) ⽇本オラクル株式会社 2021 年 5 ⽉ 6 ⽇
  2. 1. 概要およびインストール 2. getocpu と setocpu 3. CPU 負荷による⾃動スケーリング 4.

    スケジュール設定による⾃動スケーリング 5. システム・サービス設定 6. 構成およびまとめ 付録 アジェンダ Copyright © 2021, Oracle and/or its affiliates | 3 • 本資料に表⽰した実⾏例は、特に記載が無い限り、すべて Autoscaling バージョン 2.0.1-15 を⽤いて ExaC@C X8M Quarter Rack の VM クラスタ・ノードにおいて OCI CLI がインストールされていない環境で実 ⾏されたものです。
  3. 概要 • ExaCS や ExaC@C ではオンラインでの OCPU スケーリングが可能ではあるが、ス ケーリングの実⾏⾃体はユーザによって UI

    や API 等を通じて実施する必要がある。 • MOS Doc ID 2719916.1 Autoscaling - Scale-up and Scale-down automation utility for OCI DB System (ExaCS/ExaCC) で提供される Autoscaling ツールを ExaCS や ExaC@C の VM クラスタ・ノードに導⼊※すること で、CPU 負荷やスケジュールに応じた OCPU スケーリングの⾃動実⾏が可能となる。 • CPU 負荷による OCPU スケーリングの⾃動実⾏が可能 • CPU 負荷に対する上限および下限の閾値、インターバルをユーザーによって定義 • 設定する最⼩または最⼤ OCPU 数まで負荷に応じて⾃動的に増減 • ACFS に各ノードの負荷状況が書き込まれることで、すべての VM クラスタ・ノードを 考慮した OCPU スケーリングが可能 • スケジュールによる OCPU スケーリングの⾃動実⾏が可能 • 曜⽇と時間帯を指定 • 指定しない時間帯は CPU 負荷による OCPU スケーリングの⾃動実⾏になる Autoscaling Copyright © 2021, Oracle and/or its affiliates | 5 Autoscaling は上記 MOS ドキュメントの Disclaimer (本資料の付録にも記載) をご確認の上、お客様の判断にてご使⽤ください。 ※リモート・ホストに導⼊して OCPU スケーリングを実⾏する ExaCS や ExaC@C と連動させることも可能 (構成については本資料の「6. 構成お よびまとめ」に記載)
  4. 事前準備 • Autoscaling を実⾏するノードからは OCI Control Plane に対して API をコールできること、つまり、インターネット

    接続できる必要がある (プロキシ・サーバー経由でも良い) • Autoscaling の実⾏には、 OCI CLI を利⽤しない⽅法か、OCI CLI を利⽤する⽅法を選択できる • OCI CLI を利⽤しない⽅法: 次⾴以降の API キーの追加⼿順を事前に実施して Autoscaling 実⾏ノード から API キーのプライベート(秘密)・キーを適切なディレクトリに配置しておく • OCI CLI を利⽤する場合: Autoscaling を実⾏するノードで OCI CLI を事前にインストールおよび構成する (OCI CLI 構成時には、API キーの追加⼿順は実施することにはなる) Autoscaling Copyright © 2021, Oracle and/or its affiliates | 6
  5. 事前準備 (OCI CLI を利⽤しない場合※): API キーの追加 (1/3) Autoscaling Copyright ©

    2021, Oracle and/or its affiliates | 7 表⽰されるユーザー名をクリック コンソールの右上の⼈型アイコンをクリック 「API キー」をクリック 「API キーの追加」をクリック ※ OCI CLI を利⽤する場合は、OCI CLI 構成時に この API キーの追加は実施済みという前提
  6. 事前準備 (OCI CLI を利⽤しない場合): API キーの追加 (2/3) • API キー・ペアを新規に準備する

    場合、ここで⽣成することが可能 • 秘密キーおよび公開キーをそれぞ れダウンロードする • 公開キーのファイルをここでアップ ロードする • 公開キーのファイルをアップロード するのではなく、直接貼り付ける 場合にはこの画⾯で実施する Autoscaling Copyright © 2021, Oracle and/or its affiliates | 8
  7. 事前準備 (OCI CLI を利⽤しない場合): API キーの追加 (3/3) Autoscaling Copyright ©

    2021, Oracle and/or its affiliates | 9 • 公開キーを登録すると、「構成ファ イルのプレビュー」が表⽰される • 「閉じる」をクリックして完了 • 秘密キーは Autoscaling を実 ⾏するノードに適切な場所に配 置する 追加された API キーがリストされる
  8. • OCI CLI を利⽤する場合は OCI CLI がインストール済であり、Autoscaling の --ociprofile オプションに対する

    デフォルトは $HOME/.oci/config ファイルが利⽤される • $HOME/.oci/config ファイルには、前⾴の「構成ファイルのプレビュー」の表⽰内容が含まれる 【参考】OCI CLI を利⽤する場合 Copyright © 2021, Oracle and/or its affiliates | 10 # cat ~/.oci/config [DEFAULT] user= <ユーザーの OCID> Fingerprint= <16オクテットのキー・フィンガー・プリント> key_file= <プライベート(秘密)・キーのパス> tenancy= <テナンシーの OCID> region=<ExaCS または ExaC@C が配置されているOCI リージョンの指定、東京の場合 ap-tokyo-1、⼤阪の場合 ap-osaka-1 >
  9. インストール • MOS ドキュメント 「Autoscaling - Scale-up and Scale-down automation

    utility for OCI DB System (ExaCS/ExaCC) (Doc ID 2719916.1)」 に添付されている autoscaling-2.0.1-X.el7.x86_x64.rpm を ExaCS または ExaC@C の VM の OS 上にダウンロード。 • rpm コマンドでインストール。 • 実⾏ツール autoscaling.bin ファイルは /opt/autoscaling 下に配置される。 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 11 # rpm -i autoscaling-2.0.1-15.el7.x86_64.rpm warning: autoscaling-2.0.1-15.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 939112d6: NOKEY autoscaling-2.0.1.15 binary has been installed on /opt/autoscaling succesfully! # ls -l /opt/autoscaling total 20528 -rwxr-xr-x 1 root root 21020560 Feb 2 22:46 autoscaling.bin (X: バージョン番号)
  10. 【参考】 autoscaling.bin help Copyright © 2021, Oracle and/or its affiliates

    | 12 # /opt/autoscaling/autoscaling.bin help │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Autoscaling for OCI DB Systems - Version: 2.0.1-22 Copyright (c) 2017-2021 Oracle and/or its affiliates. ---------------------------------------------------------- Author: Ruggero Citton <[email protected]> RAC Pack, Cloud Innovation and Solution Engineering Team │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Following additional operations are possible: getocpu - to get current OCPU setocpu - to set current OCPU status - to get autoscalling status stop|shutdown|alt|kill - to stop autoscalling Version 2.0.1-22
  11. Version 2.0.1-22: OCI CLI を利⽤しない場合 【参考】 autoscaling.bin --help (1/2) Copyright

    © 2021, Oracle and/or its affiliates | 13 # /opt/autoscaling/autoscaling.bin --help Usage: autoscaling.bin --db-system-id <DB system OCID> | --cloud-vm-cluster-id <cloud VM cluster OCID> | --vm-cluster-id <VM cluster OCID> --ociregion <DB System region> --tenancy-id <tenancy OCID> --user-id <user OCID> --keyfingerprint <key finger print> --privatekey <private key path> [--proxyhost <host> -proxyport <port> [--proxyid <user ID> --proxypass <password>]] [--maxocpu <Maximum OCPU Number>] [--minocpu <Minimum OCPU Number>] [--ocpu <Number of OCPU scale factor>] [--interval <Number of seconds>] [--maxthreshold <maximum Load threshold>] [--minthreshold <minimum Load threshold>] [--acfs <writtable cluster filesystem path>] [--shape <system shape>] [--nolog] [--nodaemon] [--plugin <plugin path>] [--scheduling <Dayname:hrmin-hrmax:cpu;>] [--dryrun]
  12. Version 2.0.1-22: OCI CLI を利⽤しない場合 【参考】 autoscaling.bin --help (2/2) Copyright

    © 2021, Oracle and/or its affiliates | 14 autoscaling.bin OPTIONS --db-system-id Database system OCID --cloud-vm-cluster-id Cloud VM cluster OCID (ExaCS systems) --vm-cluster-id VM cluster OCID (ExaCC systems) --tenancy-id Tenancy OCID --user-id User OCID --keyfingerprint User key Finger Print --privatekey User private key path --proxyHost HTTP proxy server --proxyPort HTTP proxy server port (Default: 80) --proxyId HTTP proxy server username --proxyPass HTTP proxy server password --ociregion OCI System Region --maxocpu Maximum OCPU number (Default: DBSystem max OCPU) --minocpu Minimum OCPU number (Default: 4) --ocpu Number of OCPU scale factor (Default: DBSystem Number of Compute Nodes) --interval Number of seconds (Default: 180) --maxthreshold Maximum Load threshold 0-100 (Default: 80) --minthreshold Minimum Load threshold 0-100 (Default: 60) --acfs Writtable cluster filesystem path for autoscaling cluster aware execution --shape System Shape --nolog It will not make the log '/tmp/autoscaling.log' --nodaemon It will run as standlone --plugin Plugin path, must return integer values 0-100 --scheduling Scheduling in the format : 'Dayname:hrmin-hrmax:cpu;Dayname:hrmin-hrmax:cpu;' --dryrun The scaling is not executed
  13. Version 2.0.1-22: OCI CLI を利⽤する場合 【参考】 autoscaling.bin –oclicli --help (1/2)

    Copyright © 2021, Oracle and/or its affiliates | 15 # /opt/autoscaling/autoscaling.bin --ocicli --help Usage: autoscaling.bin --ocicli [--auth <instance_principal|resource_principal>] --db-system-id <DB system OCID> |--cloud-vm-cluster-id <cloud VM cluster OCID> |--vm-cluster-id <VM cluster OCID> [--ociprofile <oci profile name>] [--maxocpu <Maximum OCPU Number>] [--minocpu <Minimum OCPU Number>] [--ocpu <Number of OCPU scale factor>] [--interval <Number of seconds>] [--maxthreshold <maximum Load threshold>] [--minthreshold <minimum Load threshold>] [--acfs <writtable cluster filesystem path>] [--shape <system shape>] [--nolog] [--nodaemon] [--plugin <plugin path>] [--scheduling <Dayname:hrmin-hrmax:cpu;>] [--dryrun]
  14. Version 2.0.1-22: OCI CLI を利⽤する場合 【参考】 autoscaling.bin –oclicli --help (2/2)

    Copyright © 2021, Oracle and/or its affiliates | 16 autoscaling.bin OPTIONS --ocicli OCI client usage --auth OCI client instance/resource principal authentication --db-system-id Database system OCID --cloud-vm-cluster-id Cloud VM cluster OCID (ExaCS systems) --vm-cluster-id VM cluster OCID (ExaCC systems) --ociprofile OCI profile name from '$HOME/.oci/config' (Default: 'DEFAULT') --maxocpu Max OCPU number (Default: DBSystem max OCPU) --minocpu Min OCPU number (Default: 4) --ocpu Number of OCPU scale factor (Default: DBSystem Number of Compute Nodes) --interval Number of seconds (Default: 180) --maxthreshold Maximum Load threshold 0-100 (Default: 80) --minthreshold Minimum Load threshold 0-100 (Default: 60) --acfs Writtable cluster filesystem path for autoscaling cluster aware execution --shape System Shape --nolog It will not make the log '/tmp/autoscaling.log' --plugin Plugin path, must return integer values 0-100 --nodaemon It will run as standlone --scheduling Scheduling in the format : 'Dayname:hrmin-hrmax:cpu;Dayname:hrmin-hrmax:cpu;' --dryrun The scaling is not executed
  15. 注意事項 • --dryrun オプション: Version 2.0.1-22 よりデーモン・モードで動作させるときでも dryrun オプションが有効に できるように改善

    • --shape オプション: ExaCS/ExaC@C 以外から実⾏する場合には、このオプションを指定する • --ocicli --auth オプション: OCI CLI を利⽤する場合で、インスタンス/リソース・プリンシパルを⽤いる場合に は auth オプションを指定する • Version 2.0.1-22 時点では ExaCS でのみ利⽤可能 • 詳細は下記 MOS ドキュメント HowTo configure oci-cli with Instance/Resource Principals (Doc ID 2763990.1) 【参考】 autoscaling.bin Copyright © 2021, Oracle and/or its affiliates | 17
  16. getocpu : VM クラスタに割り当てられている OCPU 数の確認 – 実⾏コマンド • 実⾏コマンド

    (API キーは UI より事前に準備/登録をしておく) /opt/autoscaling/autoscaling.bin getocpu ¥ --cloud-vm-cluster-id <ExaCS の場合: VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --ociregion <東京の場合 ap-tokyo-1、⼤阪の場合 ap-osaka-1 > ¥ --tenancy-id <テナンシーの OCID> ¥ --user-id <ユーザーの OCID> ¥ --keyfingerprint <16オクテットのキー・フィンガー・プリント>¥ --privatekey <プライベート・キーのパス> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> Autoscaling Copyright © 2021, Oracle and/or its affiliates | 19
  17. getocpu : VM クラスタに割り当てられている OCPU 数の確認 – 実⾏コマンド (OCI CLI

    を利⽤する場合) • 実⾏コマンド /opt/autoscaling/autoscaling.bin getocpu ¥ --ocicli ¥ --cloud-vm-cluster-id <ExaCS の場合: VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> Autoscaling Copyright © 2021, Oracle and/or its affiliates | 20
  18. getocpu : VM クラスタに割り当てられている OCPU 数の確認 – 実⾏例 • 実⾏例

    • VM クラスタには 4 OCPU が割り当てられており、VM クラスタ・ノードには 2 OCPU が割り当てられている場合 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 21 │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Autoscaling for OCI DB Systems - Version: 2.0.1-15 Copyright (c) 2017-2021 Oracle and/or its affiliates. ---------------------------------------------------------- Author: Ruggero Citton <[email protected]> RAC Pack, Cloud Innovation and Solution Engineering Team │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ INFO: 2021-03-10 14:37:14: Checking DB System status SUCCESS: 2021-03-10 14:37:15: Current DB System status=AVAILABLE SUCCESS: 2021-03-10 14:37:16: Current OCPU=4 SUCCESS: 2021-03-10 14:37:16: Current physical CPUs=2 on local node
  19. setocpu : VM クラスタ への OCPU 設定 – 実⾏コマンド •

    実⾏コマンド /opt/autoscaling/autoscaling.bin setocpu ¥ --cloud-vm-cluster-id <ExaCS の場合: VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --ociregion <東京の場合 ap-tokyo-1、⼤阪の場合 ap-osaka-1 > ¥ --tenancy-id <テナンシーの OCID> ¥ --user-id <ユーザーの OCID> ¥ --keyfingerprint <16オクテットのキー・フィンガー・プリント>¥ --privatekey <プライベート・キーのパス> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> --ocpu <VMクラスタにセットする OCPU 数> Autoscaling Copyright © 2021, Oracle and/or its affiliates | 22
  20. setocpu : VM クラスタ への OCPU 設定 – 実⾏コマンド (OCI

    CLI を利⽤する場合) • 実⾏コマンド /opt/autoscaling/autoscaling.bin setocpu ¥ --ocicli ¥ --cloud-vm-cluster-id <ExaCS の場合: VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> --ocpu <VMクラスタにセットする OCPU 数> Autoscaling Copyright © 2021, Oracle and/or its affiliates | 23
  21. setocpu : VM クラスタ への OCPU 設定 – 実⾏例 •

    実⾏例 • 現在のVM クラスタには 6 OCPU が割り当てられており、4 OCPU へスケール・ダウンさせた場合 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 24 │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Autoscaling for OCI DB Systems - Version: 2.0.1-15 Copyright (c) 2017-2021 Oracle and/or its affiliates. ---------------------------------------------------------- Author: Ruggero Citton <[email protected]> RAC Pack, Cloud Innovation and Solution Engineering Team │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ INFO: 2021-03-16 01:51:25: Checking DB System status INFO: 2021-03-16 01:51:26: Current DB System status=AVAILABLE INFO: 2021-03-16 01:51:26: Checking current core count INFO: 2021-03-16 01:51:28: Current OCPU=6 SUCCESS: 2021-03-16 01:51:30: Scaling-down to OCPU=4 in progress, please wait...
  22. setocpu : VM クラスタ への OCPU 設定 – 実⾏後の UI

    画⾯ • Autoscaling からのコマンド発 ⾏後の 16:51:29 UTC に作 業リクエストとして受⼊れ済みとな り、スケーリングは 1 分 40 秒後 の 16:53:09 UTC に完了と なっている。 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 25 OCPU 数は 4 へ更新
  23. Copyright © 2021, Oracle and/or its affiliates | 26 Autoscaling

    3. CPU 負荷による⾃動スケーリング
  24. CPU 負荷による⾃動スケーリング: 実⾏コマンド • 実⾏コマンド /opt/autoscaling/autoscaling.bin ¥ --cloud-vm-cluster-id <ExaCS の場合:

    VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --ociregion <東京の場合 ap-tokyo-1、⼤阪の場合 ap-osaka-1 > ¥ --tenancy-id <テナンシーの OCID> ¥ --user-id <ユーザーの OCID> ¥ --keyfingerprint <16オクテットのキー・フィンガー・プリント>¥ --privatekey <プライベート・キーのパス> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> --maxocpu <スケーリング時最⼤の OCPU 数> --acfs <クラスタ・ファイル・システムへの書込み先のパスを指定> --nodaemon Autoscaling Copyright © 2021, Oracle and/or its affiliates | 27 この例では、下記のデフォルト値を利⽤しているためコマンドに おいては省略されている。 --minocpu 4 (最低 OCPU 数) --ocpu N (スケーリングする際に増やす OCPU 数、デフォ ルトは N = 1 x DB Server 数 で設定 --interval 180 (負荷を確認する間隔(秒)) --maxthreshold 80 (上限の閾値) --minthreshold 60 (下限の閾値) スタンドアローンでの実⾏: 実際に動作させてエラーが出⼒されないのかなどをチェックする場合に選択。 特に問題が無いようであれば、デーモンとして --nodaemon オプションを付けずに実⾏する。 CPU 負荷に応じて OCPU 数を⾃動的に増減させたい場合
  25. CPU 負荷による⾃動スケーリング: スタンドアローンでの実⾏時 • スタンドアローン実⾏時の出⼒例 (ヘッダの出⼒は省いています) Autoscaling Copyright © 2021,

    Oracle and/or its affiliates | 28 --------------------------------------------------------- - Autoscaling is running with pid '201494' - ------------------------------------------------------- VM Cluster OCID : ocid1.vmcluster.oc1.ap-tokyo-1.XXX Tenancy OCID : ocid1.tenancy.oc1..XXX User OCID : ocid1.user.oc1..XXX Key finger print : XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX Private key path : /XXX/XXX/oci_api_key.pem - ------------------------------------------------------- OCI Region name : ap-tokyo-1 DB System shape : ExadataCC.QuarterX8M.100 - ------------------------------------------------------- Maximum OCPU Number : 8 Minimum OCPU Number : 4 OCPU scale factor : 2 Measure interval : 180 Maximum Load threshold : 80 Minimum Load threshold : 60 Scale-Down wait time : 120 minutes Cluster-aware : ENABLE --------------------------------------------------------- Autoscaling Log file : '/tmp/autoscaling.log' --------------------------------------------------------- ExaC@C X8M Quarter Rack VM クラスタに対して⾃動でスケーリングする最⼤ OCPU 数 VM クラスタに対して⾃動でスケーリングする最⼩ OCPU 数 閾値を超えたときに VM クラスタに対して増減させる OCPU 数
  26. CPU 負荷による⾃動スケーリング: デーモンでの実⾏時 • デーモンでの実⾏ • この場合はコマンド発⾏後、ヘッダーのみ出⼒。発⾏したコマンドは status オプションをつけて実⾏することで確認可能 •

    autoscaling.bin status 実⾏例 (ヘッダの出⼒は省いています) Autoscaling Copyright © 2021, Oracle and/or its affiliates | 29 # /opt/autoscaling/autoscaling.bin status --------------------------------------------------------- - Autoscaling is running Process ID : 256355 Start Date : Wed Mar 17 01:08:19 2021 Running command: autoscaling.bin ¥ --vm-cluster-id ocid1.vmcluster.oc1.ap-tokyo-1.xxx ¥ --ociregion ap-tokyo-1 ¥ --tenancy-id ocid1.tenancy.oc1..xxx ¥ --user-id ocid1.user.oc1..xxx ¥ --keyfingerprint XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ¥ --privatekey /XXX/XXX/oci_api_key.pem ¥ --proxyhost XXX.XXX.XXX.XXX ¥ --proxyport XX ¥ --maxocpu 8 ¥ --acfs /acfs01 --------------------------------------------------------- Autoscaling Log file: '/tmp/autoscaling.log' ---------------------------------------------------------
  27. CPU 負荷による⾃動スケーリング: スケール・アップ動作時のログ (1/2) • 実⾏ログ … ログファイルは /tmp/autoscaling.log に出⼒、下記はスタンドアローン実⾏で標準出⼒された内容を表⽰。

    • CPU への⾼負荷により、4OCPU から 6 OCPU へ、6 OCPU から 8 OCPU へスケーリングが実⾏される例 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 30 INFO: 2021-03-12 02:07:13: Checking current core count INFO: 2021-03-12 02:07:15: Current OCPU=4 INFO: 2021-03-12 02:07:17: Local host load ......: 99.1 INFO: 2021-03-12 02:07:17: Cluster (1 node) Load : 99.1 INFO: 2021-03-12 02:07:17: Next measure in 180 secs... INFO: 2021-03-12 02:10:17: Current load is over maximun threshold '80' for '180' secs INFO: 2021-03-12 02:10:17: Checking DB System status INFO: 2021-03-12 02:10:18: Requesting OCPU scale-Up by a factor of '2' SUCCESS: 2021-03-12 02:10:22: Scaling-up in progress, sleeping 180 secs... INFO: 2021-03-12 02:13:22: Checking current core count INFO: 2021-03-12 02:13:24: Current OCPU=6 INFO: 2021-03-12 02:13:26: Local host load ......: 98.4 INFO: 2021-03-12 02:13:26: Cluster (1 node) Load : 98.4 INFO: 2021-03-12 02:13:26: Next measure in 180 secs... INFO: 2021-03-12 02:16:26: Current load is over maximun threshold '80' for '180' secs INFO: 2021-03-12 02:16:26: Checking DB System status INFO: 2021-03-12 02:16:27: Requesting OCPU scale-Up by a factor of '2' SUCCESS: 2021-03-12 02:16:30: Scaling-up in progress, sleeping 180 secs...
  28. CPU 負荷による⾃動スケーリング:スケール・アップ動作後のログ (2/2) • 実⾏ログ … ログファイルは /tmp/autoscaling.log に出⼒、下記はスタンドアローン実⾏で標準出⼒された内容を表⽰。 •

    8 OCPU へスケール・アップしているが、CPU が低負荷になっても 2 時間はスケール・ダウンしない旨のメッセージ例 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 31 INFO: 2021-03-12 02:19:30: Checking current core count INFO: 2021-03-12 02:19:31: Current OCPU=8 INFO: 2021-03-12 02:19:33: Local host load ......: 3.2 INFO: 2021-03-12 02:19:33: Cluster (1 node) Load : 3.2 INFO: 2021-03-12 02:19:33: Next measure in 180 secs... INFO: 2021-03-12 02:22:33: Current load is under the minimum threshold '60' for '180' secs INFO: 2021-03-12 02:22:33: Checking DB System status WARNING: 2021-03-12 02:22:35: Scaling-Down currently not possible, waiting '2021-03-12 04:16:27', WARNING: 2021-03-12 02:22:35: 120 minutes after latest scale-Up time done by host 'ecc2c8n1' INFO: 2021-03-12 02:22:35: Checking current core count INFO: 2021-03-12 02:22:37: Current OCPU=8 INFO: 2021-03-12 02:22:39: Local host load ......: 6.1 INFO: 2021-03-12 02:22:39: Cluster (1 node) Load : 6.1 INFO: 2021-03-12 02:22:39: Next measure in 180 secs... • この際、/acfs01/.as-scalingtime.json ファイルに下記のように最後のスケール・アップが記録される。 {"operation": "scale-up", "host_name": “XXX", "time": "2021-03-12 02:16:27", "wait": "120"}
  29. CPU 負荷による⾃動スケーリング: 実⾏例における、そのときの ワークロードとCPU 使⽤率の状況 Autoscaling Copyright © 2021, Oracle

    and/or its affiliates | 32 VM あたり 2 OCPU で実⾏中 02:11:08 : ノード#1 2→3 OCPU 02:11:15 : ノード#2 2→3 OCPU 02:17:22 : ノード#1 3→4 OCPU 02:17:29 : ノード#2 3→4 OCPU VM あたり 3 OCPU で実⾏中 VM あたり 4 OCPU で実⾏中 4 から 6 OCPU へスケール・アップした タイミングで処理量(TPM)も増加 8 OCPU へのスケール・アップとほぼ同 時にワークロードを停⽌したため、CPU 使⽤率はいっきに低下 Autoscaling ツールは OCPU のスケール・アップ後 2 時間はスケール・ダウン しないようになっている。 HammerDB TPC-C ワークロードに よる負荷がけを開始
  30. CPU 負荷による⾃動スケーリング: スケールダウン動作時のログ (1/2) • 実⾏ログ … ログファイルは /tmp/autoscaling.log に出⼒、下記はログから該当部分を表⽰

    • 2 時間後、 8 OCPU から 6 OCPU へスケール・ダウンしている例 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 33 2021-03-12 04:16:37: Current load is under the minimum threshold '60' for '180' secs 2021-03-12 04:16:37: Checking DB System status 2021-03-12 04:16:37: Getting lifecycle-state 2021-03-12 04:16:38: DB System status......: AVAILABLE 2021-03-12 04:16:38: Requesting OCPU scale-Down by a factor of '2' 2021-03-12 04:16:38: Scaling-down the core-count... 2021-03-12 04:16:40: Scaling-down in progress, sleeping 180 secs... 2021-03-12 04:19:40: zzzzzz 2021-03-12 04:19:40: Checking current core count 2021-03-12 04:19:40: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-12 04:19:42: Current OCPU=6 2021-03-12 04:19:44: Local host load ......: 3.0 2021-03-12 04:19:44: Cluster (1 node) Load : 3.0 2021-03-12 04:19:44: Next measure in 180 secs...
  31. CPU 負荷による⾃動スケーリング: スケールダウン動作時のログ (2/2) • 実⾏ログ … ログファイルは /tmp/autoscaling.log に出⼒、下記はログから該当部分を表⽰

    • さらに 6 OCPU から 4 OCPU へスケール・ダウンしている例 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 34 2021-03-12 04:22:44: Current load is under the minimum threshold '60' for '180' secs 2021-03-12 04:22:44: Checking DB System status 2021-03-12 04:22:44: Getting lifecycle-state 2021-03-12 04:22:46: DB System status......: AVAILABLE 2021-03-12 04:22:46: Requesting OCPU scale-Down by a factor of '2' 2021-03-12 04:22:46: Scaling-down the core-count... 2021-03-12 04:22:48: Scaling-down in progress, sleeping 180 secs... 2021-03-12 04:25:48: zzzzzz 2021-03-12 04:25:48: Checking current core count 2021-03-12 04:25:48: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-12 04:25:49: Current OCPU=4 2021-03-12 04:25:51: Local host load ......: 11.8 2021-03-12 04:25:51: Cluster (1 node) Load : 11.8 2021-03-12 04:25:51: Next measure in 180 secs...
  32. CPU 負荷による⾃動スケーリング: プラグイン • ⾃動スケーリングの実⾏に対してデフォルトの CPU 負荷による判定基準以外に、ユーザによってプログラムされた判定 基準(返り値は 0 –

    100 とする)をプラグインとして導⼊することが可能 • Autoscaling の MOS ドキュメントには、プラグインとして、top コマンドから取得される CPU 使⽤率を⽤いる サンプル・コードおよび /proc/loadavg から取得されるロード・アベレージを⽤いたサンプル・コードが例⽰されている • 実⾏コマンド /opt/autoscaling/autoscaling.bin ¥ --cloud-vm-cluster-id <ExaCS の場合: VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --ociregion <東京の場合 ap-tokyo-1、⼤阪の場合 ap-osaka-1 > ¥ --tenancy-id <テナンシーの OCID> ¥ --user-id <ユーザーの OCID> ¥ --keyfingerprint <16オクテットのキー・フィンガー・プリント>¥ --privatekey <プライベート・キーのパス> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> --maxocpu <スケーリング時最⼤の OCPU 数> --acfs <クラスタ・ファイル・システムへの書込み先のパスを指定> --plugin <プラグイン・ファイルの配置先のパスを指定> 【参考】 autoscaling.bin --plugin Copyright © 2021, Oracle and/or its affiliates | 35
  33. CPU 負荷による⾃動スケーリング: サンプル・プラグイン - autoscaling_CPU_USAGE_plugin.sh 【参考】 autoscaling.bin --plugin Copyright ©

    2021, Oracle and/or its affiliates | 36 #!/bin/bash # ---------------------------------------------------------------------------# # Autoscaling 'CPU_USAGE' plugin example # File_name: autoscaling_CPU_USAGE_plugin.sh # # Author: Ruggero Citton - # RAC Pack, Cloud Innovation and Solution Engineering Team # --------------------------------------------------------------------------- # The 1st iteration of top in batch mode (-b) returns the percentages since boot, then we need # at least two iterations (-n 2) to get the current percentage. To speed up the measure # we set the delay (-d 0.01). # Top return CPU usage as user, system processes and nice processes, we sum all three. CPU_USAGE=$(top -bn 2 -d 0.01 | grep '^%Cpu' | tail -n 1 | gawk '{print $2+$4+$6}'| cut -d. -f1) echo $CPU_USAGE # ------------------------------------------------ # EndOfFile # ------------------------------------------------
  34. CPU 負荷による⾃動スケーリング: サンプル・プラグイン - autoscaling_LoadAverage_plugin.sh 【参考】 autoscaling.bin --plugin Copyright ©

    2021, Oracle and/or its affiliates | 37 #!/bin/bash # --------------------------------------------------------------------------- # Copyright (c) 2020, 2021 Oracle and/or its affiliates. All rights reserved. # # Autoscaling 'Load Average' plugin example # File_name: autoscaling_LoadAverage_plugin.sh # # Author: Ruggero Citton - # RAC Pack, Cloud Innovation and Solution Engineering Team # --------------------------------------------------------------------------- # Load average time to consider LOAD_AVG_TIME=1M usage() { echo echo "Usage: 'basename $0' 1M|5M|15M" } main() { if [ $# -eq 0 ]; then usage exit fi for cmd_operation in $* do case $1 in 1M) LOAD_AVERAGE=$(awk '{avg_1m=($1)} END {printf "%3.2f", avg_1m}' /proc/loadavg) ;; 5M) LOAD_AVERAGE=$(awk '{avg_5m=($2)} END {printf "%3.2f", avg_5m}' /proc/loadavg) ;; 15M) LOAD_AVERAGE=$(awk '{avg_15m=($3)} END {printf "%3.2f", avg_15m}' /proc/loadavg) ;; *) if [ "$1" != "" ]; then usage echo "Invalid argument: $1" exit fi ;; esac done local MAX=$(nproc --all) if [ "$MAX" -eq 0 ]; then local PERCENT=100 else local PERCENT=$(bc <<< "$LOAD_AVERAGE*100/$MAX") fi echo $PERCENT } main $LOAD_AVG_TIME # ------------------------------------------------ # EndOfFile # ------------------------------------------------
  35. Copyright © 2021, Oracle and/or its affiliates | 38 Autoscaling

    4. スケジュール設定による⾃動スケーリング
  36. スケジュール設定による⾃動スケーリング: 実⾏コマンド Autoscaling Copyright © 2021, Oracle and/or its affiliates

    | 39 • 実⾏コマンド /opt/autoscaling/autoscaling.bin ¥ --cloud-vm-cluster-id <ExaCS の場合: VM クラスタの OCID> ¥ または --vm-cluster-id <ExaC@C の場合: VM クラスタの OCID> ¥ --ociregion <東京の場合 ap-tokyo-1、⼤阪の場合 ap-osaka-1 > ¥ --tenancy-id <テナンシーの OCID> ¥ --user-id <ユーザーの OCID> ¥ --keyfingerprint <16オクテットのキー・フィンガー・プリント>¥ --privatekey <プライベート・キーのパス> ¥ --proxyhost <プロキシ・ホスト名または IP アドレス> ¥ --proxyport <プロキシのポート番号> --maxocpu <スケーリング時最⼤の OCPU 数 (スケジューリングされていない曜⽇・時間帯は CPU 負荷による⾃動スケーリング)> --acfs <クラスタ・ファイル・システムへの書込み先のパスを指定> --scheduling < ʻ曜⽇:時間指定:OCPU数;曜⽇:時間指定:OCPU数;…曜⽇:時間指定:OCPU数ʼ > Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday を指定。 24時間 (0 〜 23) 表記で、例えば 0-9 のように指定。この場合は 0時00分 から 9時59分までの間、を意味する。 その時間に設定する OCPU 数を指定。 特定の曜⽇と時間帯で OCPU 数を固定化したい場合
  37. スケジュール設定による⾃動スケーリング: スタンドアローンでの実⾏時 Autoscaling Copyright © 2021, Oracle and/or its affiliates

    | 40 • スタンドアローン実⾏時の出⼒例 (ヘッダの出⼒は省いています) --------------------------------------------------------- - Autoscaling is running with pid '76018' - ------------------------------------------------------- VM Cluster OCID : ocid1.vmcluster.oc1.ap-tokyo-1.XXX Tenancy OCID : ocid1.tenancy.oc1..XXX User OCID : ocid1.user.oc1..XXX Key finger print : XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX Private key path : /XXX/XXX/oci_api_key.pem - ------------------------------------------------------- OCI Region name : ap-tokyo-1 DB System shape : ExadataCC.QuarterX8M.100 - ------------------------------------------------------- Maximum OCPU Number : 8 Minimum OCPU Number : 4 OCPU scale factor : 2 Measure interval : 180 Maximum Load threshold : 80 Minimum Load threshold : 60 Scale-Down wait time : 120 minutes OCPU Scheduling : Tuesday:0-21:4;Tuesday:22-23:6 Cluster-aware : ENABLE --------------------------------------------------------- Autoscaling Log file : '/tmp/autoscaling.log' --------------------------------------------------------- ⽕曜⽇の 0:00 〜 21:59 は 4 OCPU で設定 ⽕曜⽇の 22:00 〜 23:59 は 6 OCPU で設定
  38. スケジュール設定による⾃動スケーリング: スケーリング動作時のログ (1/2) • 実⾏ログ … ログファイルは /tmp/autoscaling.log に出⼒、下記はログから該当部分を表⽰ •

    21:59 までは 4 OCPU、22:00 からは 6 OCPU とスケジュールされていた例 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 41 2021-03-16 21:58:48: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-16 21:58:50: zzzzzz 2021-03-16 21:58:50: Checking current core count 2021-03-16 21:58:50: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-16 21:58:51: Current OCPU=4 2021-03-16 21:58:51: OCPU=4 is defined by scheduling 2021-03-16 21:58:51: Current OCPU=4 is equal to scheduled OCPU, no action taken 2021-03-16 21:58:51: Next measure in 180 secs... 2021-03-16 22:01:51: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-16 22:01:52: zzzzzz 2021-03-16 22:01:52: Checking current core count 2021-03-16 22:01:52: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-16 22:01:54: Current OCPU=4 2021-03-16 22:01:54: OCPU=6 is defined by scheduling 2021-03-16 22:01:54: Checking DB System status 2021-03-16 22:01:54: Getting lifecycle-state 2021-03-16 22:01:55: DB System status......: AVAILABLE 2021-03-16 22:01:55: Current OCPU=4 < scheduled OCPU=6, requesting a scale-Up by factor=2 2021-03-16 22:01:58: Scaling-up in progress, sleeping 180 secs...
  39. スケジュール設定による⾃動スケーリング:スケーリング動作時のログ (2/2) • 実⾏ログ … ログファイルは /tmp/autoscaling.log に出⼒、下記はログから該当部分を表⽰ • スケール・アップを実⾏後の最初のインターバルは

    OCPU 数の確認などはスキップして、次のインターバルから通常の 確認動作が⾏われている。 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 42 2021-03-16 22:04:58: Next measure in 180 secs... 2021-03-16 22:07:58: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-16 22:07:59: zzzzzz 2021-03-16 22:07:59: Checking current core count 2021-03-16 22:07:59: Getting cpu core count for 'ocid1.vmcluster.oc1.ap-tokyo-1.XXX' 2021-03-16 22:08:00: Current OCPU=6 2021-03-16 22:08:00: OCPU=6 is defined by scheduling 2021-03-16 22:08:00: Current OCPU=6 is equal to scheduled OCPU, no action taken 2021-03-16 22:08:00: Next measure in 180 secs...
  40. スケジュール設定による⾃動スケーリング: Tips • スケジューリングにおける 1 時間単位での OCPU 数の指定は Autoscaling Version

    2.0.1-16 より可能に • 例) --scheduling ʻFriday:19-19:6ʼ は ⾦曜⽇の 19:00 から 19:59 の間は 6 OCPU に設定される • スケジューリングをしない曜⽇・時間帯は CPU 負荷による⾃動スケーリングで動作する • 上記の例では⾦曜⽇の 20:00 時点では 6 OCPU で設定されているが、 その後のインターバルでの確認からは CPU の負荷判定に切り替わり、その後は設定された閾値に応じて OCPUのスケーリングが⾃動実⾏される • スケジュール設定による⾃動スケーリングが、CPU 負荷による⾃動スケーリングよりも優先される • スケジュール設定による⾃動スケーリングは、たとえ CPU 負荷によるスケール・アップ後 2 時間以内であっても、 スケジュールされた曜⽇・時間になれば、指定した OCPU 数に設定されるようにスケール・ダウンは⾏われる Autoscaling Copyright © 2021, Oracle and/or its affiliates | 43
  41. システム・サービス設定 • Autoscaling を OS 起動時からデーモンとして動作させることができるようにサービス・ユニットを作成して構成可能 • /etc/systemd/system/autoscaling.service として下記ファイルを作成 (この例では

    root ユーザによる実⾏となる) Autoscaling Copyright © 2021, Oracle and/or its affiliates | 45 [Unit] Description=Autoscaling Wants=network-online.target local-fs.target After=network-online.target local-fs.target [Service] User=root Type=simple Environment="PATH=/sbin:/bin:/usr/sbin:/usr/bin" ExecStart=/bin/sh -c "/opt/autoscaling/autoscaling.bin --vm-cluster-id ocid1.vmcluster.oc1.ap-tokyo-1.xxx -- ociregion ap-tokyo-1 --tenancy-id ocid1.tenancy.oc1..xxx --user-id ocid1.user.oc1..xxx --keyfingerprint XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX --privatekey /XXX/XXX/oci_api_key.pem --proxyhost XXX.XXX.XXX.XXX --maxocpu 8 --acfs /acfs01“ TimeoutStartSec=300 PIDFile=/tmp/.autoscaling.pid Restart=on-failure RestartSec=5s ExecStop=/bin/kill -s SIGINT $MAINPID [Install] WantedBy=multi-user.target (注意) --nodaemon は設定できない
  42. システム・サービス設定: 起動と停⽌ • システム・サービスとしての起動/停⽌例 Autoscaling Copyright © 2021, Oracle and/or

    its affiliates | 46 # systemctl daemon-reload # systemctl enable autoscaling.service Created symlink from /etc/systemd/system/multi-user.target.wants/autoscaling.service to /etc/systemd/system/autoscaling.service. # systemctl start autoscaling.service # systemctl status autoscaling.service • autoscaling.service - Autoscaling Loaded: loaded (/etc/systemd/system/autoscaling.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-03-17 03:15:48 JST; 7s ago Main PID: 246010 (/opt/autoscalin) CGroup: /system.slice/autoscaling.service └─246010 /opt/autoscaling/autoscaling.bin --vm-cluster-id ocid1.vmcluster.oc1.ap-tokyo-1.XXX... Mar 17 03:15:48 ecc2c8n2 systemd[1]: Started Autoscaling. Mar 17 03:15:48 ecc2c8n2 sh[245985]: │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Mar 17 03:15:48 ecc2c8n2 sh[245985]: Autoscaling for OCI DB Systems - Version: 2.0.1-15 Mar 17 03:15:48 ecc2c8n2 sh[245985]: Copyright (c) 2017-2021 Oracle and/or its affiliates. Mar 17 03:15:48 ecc2c8n2 sh[245985]: ---------------------------------------------------------- Mar 17 03:15:48 ecc2c8n2 sh[245985]: Author: Ruggero Citton <[email protected]> Mar 17 03:15:48 ecc2c8n2 sh[245985]: RAC Pack, Cloud Innovation and Solution Engineering Team Mar 17 03:15:48 ecc2c8n2 sh[245985]: │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│ Hint: Some lines were ellipsized, use -l to show in full. # systemctl stop autoscaling.service 停⽌ 起動
  43. 構成パターン (1/2) Autoscaling Copyright © 2021, Oracle and/or its affiliates

    | 48 VM Autoscaling ① すべてのノードがマスターの構成 VM Autoscaling • 対象の VM クラスタ・ノードすべてに Autoscaling をインストール • ノードごとの負荷が ACFS 上にそれぞれ .as-node_<ホスト名 >.json ファイルとして書き込まれ、すべてのノードの負荷の平均値を 判断基準として、閾値を超える場合には、それぞれのノードからスケーリ ングの実⾏リクエストを発⾏することが可能 VM Autoscaling ② ある 1 ノードがマスターの構成 VM • 対象の VM クラスタ・ノードすべてに Autoscaling をインストール • マスター以外は --dryrun オプションを付けて実⾏することで、ノードご との負荷が ACFS 上にそれぞれ .as-node_<ホスト名>.json ファ イルとして書き込まれ、すべてのノードの負荷の平均値を判断基準とし て、閾値を超える場合には、マスター・ノードがスケーリングの実⾏リクエ ストを発⾏ Autoscaling “--dryrun” • 対象の VM クラスタ・ノードの、ある 1 ノードに Autoscaling をインス トール • すべてのノードに均等に負荷がかかることが想定されるようなシステムや、 スケジュール機能のみを利⽤するような場合に構成 VM Autoscaling ③ ある 1 ノードがマスターの構成 .as-node_<ホスト名>.json ファイルの内容例 # cat .as-node_xxxx.json {"host_name": “xxxx", "load": 80.0} 図はそれぞれ 2 x DB Server で構成される ExaCS または ExaC@C の VM クラスタ概念図 VM
  44. 構成パターン (2/2) Autoscaling Copyright © 2021, Oracle and/or its affiliates

    | 49 ④ リモート・ホストがマスターの構成 ⑤ リモート・ホストがマスターの構成 Autoscaling VM Autoscaling “--dryrun” VM Autoscaling “--dryrun” Autoscaling VM VM • リモートホストおよび対象のすべての VM クラスタ・ノードに Autoscaling をインストール • それぞれの VM クラスタ・ノードで、--dryrun オプションをつ けて実⾏することで、ノードごとの負荷が ACFS 上にそれぞ れ.as-node_<ホスト名>.json ファイルとして書き込まれ るので、リモート・ホスト上に構成したマスターの Autoscaling において何らかのプラグインを作成して、その 負荷情報を取得し、スケーリングの実⾏リクエストを発⾏する • リモートホストにのみ Autoscaling をインストール • リモート・ホスト上に構成したマスターの Autoscaling におい て何らかのプラグインを作成して、 VM クラスタの負荷情報を 取得し、スケーリングの実⾏リクエストを発⾏する • スケジュール機能のみを利⽤するような場合にもあてはまる構 成 (その場合にはプラグインは不要) プラグイン プラグイン 図はそれぞれ、リモートホストおよび 2 x DB Server で構成される ExaCS または ExaC@C の概念図
  45. まとめ • MOS ドキュメント (Doc ID 2719916.1) より Autoscaling をダウンロードして、

    ExaCS や ExaC@C の VM クラスタ・ノード、またはリモート・ノードへ導⼊することで、CPU 負荷による、もしくはスケジュールによる OCPU スケーリ ングの⾃動実⾏が可能となった。 • 個々のユーザで同様なスクリプト等を作成するような負担は低減 • CPU 負荷による⾃動スケーリングに対して、ユーザによる OCPU 数(上限および下限値)、⾃動スケーリングを実⾏を判定する ための負荷の閾値(上限および下限)、インターバル(負荷確認の間隔) の定義が可能 • すべての VM クラスタ・ノードの負荷を考慮した判定が可能 • 必要に応じてユーザはデフォルトの CPU 負荷での判定ではなく、それ以外の負荷を判定するプログラムを作成してプラグインと して導⼊するカスタマイズも可能 • スケールダウンの⾃動実⾏については、最後のスケールアップから 2 時間はスケールダウンしない仕様 • スケジュールによる⾃動スケーリングに対して、ユーザによる曜⽇および時間帯で割り当てる OCPU 数の指定が可能 • スケジュール指定していない曜⽇および時間帯は CPU 負荷による⾃動スケーリングとして動作 (スケジュールによる⾃動ス ケーリングの⽅が優先度が⾼く実⾏される) • Autoscaling はデーモンとして動作させることができ、サービス・ユニットを作成すれば OS 起動時から動作させることが可能 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 50
  46. • MOS ドキュメント - Doc ID 2719916.1 Autoscaling - Scale-up

    and Scale-down automation utility for OCI DB System (ExaCS/ExaCC) • Oracle Blogs – Oracle Database Insider Automatically Scaling Exadata Cloud Service Based on Workload (Part 1) https://blogs.oracle.com/database/automatically-scaling-exadata-cloud-service-based-on-workload-part-1 参考情報 Copyright © 2021, Oracle and/or its affiliates | 51
  47. 利⽤について (1/2) Autoscaling は MOS ドキュメントに記載の下記 Disclaimer をご確認の上、お客様ご判断にてご使⽤ください。 EXCEPT WHERE

    EXPRESSLY PROVIDED OTHERWISE, THE INFORMATION, SOFTWARE,PROVIDED ON AN “AS IS” AND “AS AVAILABLE” BASIS. ORACLE EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. ORACLE MAKES NO WARRANTY THAT: (A) THE RESULTS THAT MAY BE OBTAINED FROM THE USE OF THE SOFTWARE WILL BE ACCURATE OR RELIABLE; OR (B) THE INFORMATION, OR OTHER MATERIAL OBTAINED WILL MEET YOUR EXPECTATIONS. ANY CONTENT, MATERIALS, INFORMATION OR SOFTWARE DOWNLOADED OR OTHERWISE OBTAINED IS DONE AT YOUR OWN DISCRETION AND RISK. ORACLE SHALL HAVE NO RESPONSIBILITY FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA THAT RESULTS FROM THE DOWNLOAD OF ANY CONTENT, MATERIALS, INFORMATION OR SOFTWARE. (機械翻訳) 特に明⽰的に提供されている場合を除き、情報、ソフトウェアは「現状有姿」および「利⽤可能な範囲」で提供されます。オラクルは、明⽰的か黙⽰的かを 問わず、いかなる種類の保証も明⽰的に否認します。商品性、特定⽬的への適合性、および⾮侵害の黙⽰の保証に限定されます。オラクルは、次のことを 保証しません。(A)本ソフトウェアの使⽤から得られる可能性のある結果が正確または信頼できるものであること。または(B)情報、または取得したその 他の資料がお客様の期待に応えます。ダウンロードされた、またはその他の⽅法で取得されたコンテンツ、資料、情報、またはソフトウェアは、ユーザー⾃⾝の 裁量とリスクで実⾏されます。オラクルは、コンテンツ、資料、情報、またはソフトウェアのダウンロードに起因するコンピュータシステムの損傷またはデータの損失 について責任を負わないものとします。 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 54
  48. 利⽤について (2/2) ORACLE RESERVES THE RIGHT TO MAKE CHANGES OR

    UPDATES TO THE SOFTWARE AT ANYTIME WITHOUT NOTICE. Limitation of Liability: IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, ARISING FROM YOUR ACCESS TO, OR USE OF, THE SOFTWARE. (機械翻訳) オラクルは、予告なしにいつでもソフトウェアを変更または更新する権利を留保します。 責任の制限︓ いかなる場合も、オラクルは、ソフトウェアへのアクセスまたはソフトウェアの使⽤に起因する契約または不法⾏為にかかわらず、直接的、間接的、偶発的、特 別または結果的な損害、またはお客様または第三者が被った利益、収益、データ、または使⽤の損失に対する損害について責任を負わないものとします。 Autoscaling Copyright © 2021, Oracle and/or its affiliates | 55