- Oracle Cloud
- Oracle Database
OCIでGPUインスタンスを構築してみた
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
|
「OCI CLI」を利用すると、管理コンソールを利用せずにOracle Cloud上にサービス・インスタンスを作成することも可能です。
今回は「OCI CLI」を利用して、RAC構成のDatabase Systemのサービス・インスタンスを作成する方法をご紹介します。
オンプレミスでRAC構成のOracleDBを構築するには、サーバ間の疎通設定や共有ストレージ設定などのHW設定、Oracle Databaseに加えてOracle Grid Infrastructure の構成検討など準備だけでも1ヵ月程度はかかります。
Oracle Cloudであれば、RAC構成のデータベース環境を数時間で利用開始できます。
また、シングル構成のコマンドはRAC構成独自のオプションを削除するだけです。
RAC構成のコマンドを理解することで、2つの構成のDB作成コマンドをマスターすることができます。
※前回までの記事※
OCI CLIを利用してコマンドラインからOCIを操作する方法
OCI CLIでCompute VMとDatabase VMを操作する方法
Database Systemのサービス・インスタンスをOCL CLIで作成します。
作成から状況確認まで全てOCI CLIで実施可能です。
作成コマンドを実行するために、以下の情報を確認・検討します。
項目 | 詳細、設定値 |
---|---|
パスワード | ADMIN(DBのSYSやSYSTEMユーザ)のパスワードを指定します。 |
アベイラビリティ・ドメイン名 | 「oci iam availability-domain list」でインスタンスを作成する対象のアベイラビリティ・ドメイン名を確認できます。 ※OCI CLI設定時に選択したリージョンの情報が出力されます。 |
コンパートメントのOCID | 「oci iam compartment list」でインスタンスを作成する対象のコンパートメントのOCIDが確認できます。 |
サブネットのOCID | 「oci network subnet list --compartment-id <コンパートメントのOCID> --vcn-id <VCNのOCID>」でインスタンスを作成する対象のサブネットのOCIDが確認できます。 |
CPU数 | CPU数を指定します。 |
DBエディション | RAC構成の場合は”ENTERPRISE_EDITION_EXTREME_PERFORMANCE”を指定します。 |
DB名 | データベース名を指定します。 |
DBバージョン | バージョンを指定します。 |
ホスト名 | ホスト名を入力します。 |
シェイプ | RAC構成の場合は、2 OCPU以上のシェイプを選択します。 |
公開鍵名 | コマンド実行環境のカレントディレクトリにに配置しておく必要があります。 |
ノード数 | 2と入力します。 |
上述の項目以外も指定することは可能です。詳細はOCI CLIコマンドリファレンス(DB SYSTEM作成) をご確認ください。
確認・検討した値を用いてサービス・インスタンスを作成します。
サービス・インスタンスの作成を開始します。
※プロンプトはすぐに戻ってきますが、起動処理は実行中です。
(プロンプトが戻ってくる=作成済ではありません。)
※コマンド構文では最低限必要な構文を記載しています。
実行例では、PDB名やライセンス情報も指定してコマンドを実行する例を記載しています。
oci db system launch --availability-domain "<アベイラビリティ・ドメイン名>" --compartment-id <コンパートメントのOCID> --subnet-id <サブネットのOCID> --shape "<シェイプ>" --database-edition "<DBエディション>" --admin-password "<ADMINパスワード>" --db-version <DBバージョン> --hostname "<ホスト名>" --cpu-core-count <CPU数> --node-count <ノード数> --db-name "<DB名>" --ssh-authorized-keys-file <ファイル名>
■実行例
$ oci db system launch --availability-domain "lihX:AP-TOKYO-1-AD-1" --compartment-id ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a --subnet-id ocid1.subnet.oc1.ap-tokyo-1.aaaaaaaaqcht3ojmzrj333ezhdky3xxxxxxxxx7777777777777777yyygqa --shape "VM.Standard2.2" --initial-data-storage-size-in-gb 256 --database-edition "ENTERPRISE_EDITION_EXTREME_PERFORMANCE" --admin-password "PPassw0d--2020" --db-version 19.7.0.0 --hostname "cli-instance-rac" --cpu-core-count 2 --db-name "ORCL" --pdb-name "PDB1" --node-count 2 --ssh-authorized-keys-file id_rsa_cli.pub --license-model "BRING_YOUR_OWN_LICENSE" { "data": { "availability-domain": "lihX:AP-TOKYO-1-AD-1", -- アベイラビリティ・ドメイン名 "backup-network-nsg-ids": null, "backup-subnet-id": null, "cluster-name": null, "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a", --コンパートメントのOCID "cpu-core-count": 4, -- CPU数 "data-storage-percentage": 80, "data-storage-size-in-gbs": 256, "database-edition": "ENTERPRISE_EDITION_EXTREME_PERFORMANCE", -- DBエディション "db-system-options": { "storage-management": "ASM" }, "defined-tags": { "Oracle-Tags": { "CreatedBy": "oracleidentitycloudservice/sample@test.co.jp", "CreatedOn": "2020-05-17T05:51:56.454Z" } }, "disk-redundancy": "HIGH", "display-name": "dbsystem20200517055156", -- コンソールで表示されるサービス・インスタンス名 "domain": "clisub1.clivcn.oraclevcn.com", "fault-domains": [ "FAULT-DOMAIN-1", "FAULT-DOMAIN-3" ], "freeform-tags": {}, "hostname": "cli-instance-rac", -- ホスト名 "id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq", "iorm-config-cache": null, "last-maintenance-run-id": null, "last-patch-history-entry-id": null, "license-model": "BRING_YOUR_OWN_LICENSE", "lifecycle-details": null, "lifecycle-state": "PROVISIONING", "listener-port": 1521, "maintenance-window": null, "next-maintenance-run-id": null, "node-count": 2, "nsg-ids": null, "reco-storage-size-in-gb": 256, "scan-dns-record-id": null, "scan-ip-ids": null, "shape": "VM.Standard2.2", -- シェイプ "sparse-diskgroup": null, "ssh-public-keys": [ "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuGqG9b+IlOpZ88pJ4LlpTpn6eHAE9m4uaYoeQEjrSTG6YOc0o9L3O10Nt/VqdTwb2ZmK5DCXDPGF/nEyoLbVg14oeSeiQ/uk3s7V1XhFdCLXuimkZ/K6ylPQ2/knuc2bDyHXCpU9b1UU0rj7B6ZTOhBBawMhwfj54MSDJmfRTOsRlmTGY7ujste0LXzxbn7t1oYsNDRITETQOGpfsuGebWs90i/80L53qIG45CzH74adym41ttoXvbSkow0LKQd/R8Uhe+QpWarwPvKUJSrzgWNi371stGBDLpw90QpUSRt/dXEmo6EhK5wTg3WdArN1Ptc2w4dUO3+j4BU3U8C/Gw==" ], "subnet-id": "ocid1.subnet.oc1.ap-tokyo-1.aaaaaaaaqcht3ojmzrj333ezhdky3xxxxxxxxx7777777777777777yyygqa", "time-created": "2020-05-17T05:51:56.977000+00:00", "time-zone": "UTC", "version": null, "vip-ids": null }, "etag": "9dd7c9ed", "opc-work-request-id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq" -- 進捗状況確認コマンドで利用するリクエストID }
サービス・インスタンス作成の進捗状態は、作成コマンド実行時に出力される” opc-work-request-id ”の情報を利用して利用してコマンドで確認します。
oci work-requests work-request get --work-request-id "<opc-work-request-id>"
■実行例:処理中
$ oci work-requests work-request get --work-request-id "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq" { "data": { "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a", "id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq", "operation-type": "Create DB System", "percent-complete": 42.0, -- 進捗状況のパーセンテージ "resources": [ { "action-type": "IN_PROGRESS", "entity-type": "database", "entity-uri": "/20160918/databases/ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba", "identifier": "ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba" }, { "action-type": "IN_PROGRESS", "entity-type": "dbHome", "entity-uri": "/20160918/dbHomes/ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua", "identifier": "ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua" }, { "action-type": "IN_PROGRESS", "entity-type": "node", "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq", "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq" }, { "action-type": "IN_PROGRESS", "entity-type": "dbSystem", "entity-uri": "/20160918/dbSystems/ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq", "identifier": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq" }, { "action-type": "IN_PROGRESS", "entity-type": "node", "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla", "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla" } ], "status": "IN_PROGRESS", -- 進捗状況:実行中 "time-accepted": "2020-05-17T05:51:57.136000+00:00", "time-finished": null, "time-started": "2020-05-17T05:52:09.614000+00:00" } }
■実行例:完了
$ oci work-requests work-request get --work-request-id "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq" { "data": { "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a", "id": "ocid1.coreservicesworkrequest.oc1.ap-tokyo-1.abxhiljroa2nqga7jnw7uwooaxmxxxie45zhpflxaocgjgjqnjgzjomd6jrq", "operation-type": "Create DB System", "percent-complete": 100.0, -- 進捗状況のパーセンテージ "resources": [ { "action-type": "CREATED", "entity-type": "database", "entity-uri": "/20160918/databases/ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba", "identifier": "ocid1.database.oc1.ap-tokyo-1.abxhiljroev2mhiulqkfzu7kjyysysyhhhhhhhhhh11111ylcxu7shqxbaba" }, { "action-type": "CREATED", "entity-type": "dbHome", "entity-uri": "/20160918/dbHomes/ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua", "identifier": "ocid1.dbhome.oc1.ap-tokyo-1.abxhiljro4nrv42cjwopm2ze4u7ko2puwqnex6ke5555555ffffffffxs6ua" }, { "action-type": "CREATED", "entity-type": "node", "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq", "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljr6vdaqwom3dqshuvvprqwt6nkwq73aqs3ywck6toa626yxwk7xyxq" }, { "action-type": "CREATED", "entity-type": "dbSystem", "entity-uri": "/20160918/dbSystems/ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq", "identifier": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq" }, { "action-type": "CREATED", "entity-type": "node", "entity-uri": "/20160918/dbNodes/ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla", "identifier": "ocid1.dbnode.oc1.ap-tokyo-1.abxhiljrpdpjkz3rl6ukhskdyetbnxgs872hs64bhjaoi0sjrybshjdsohla" } ], "status": "SUCCEEDED", -- 進捗状況:完了 "time-accepted": "2020-05-17T05:51:57.136000+00:00", "time-finished": "2020-05-17T07:13:48.032000+00:00", -- 完了時間 "time-started": "2020-05-17T05:52:09.614000+00:00" } }
管理コンソールより確認したい場合は、以下の手順となります。
管理コンソールの「メニュー >> ベア・メタル、VMおよびExadata >> DBシステム >> 」より「サービス・インスタンス名」を選択します。処理実行中は”プロビジョニング中”と表示されます。
DBシステムの詳細画面の左側にあるリソースメニューより”作業リクエスト”を選択します。
処理中はステータスが”In Progress”に変わります。
|
処理が完了すると管理コンソールの状態は”使用可能”となり、ステータスが”Succeeded”に変わります。
|
作成が完了したら、以下のコマンドで作成した対象のコンパートメント内に作成されたデータベースの情報が確認できます。
oci db system list -- compartment-id <コンパートメントのOCID>
■実行例:処理中
$ oci db system list --compartment-id ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a { "data": [ { "availability-domain": "lihX:AP-TOKYO-1-AD-1", "backup-network-nsg-ids": null, "backup-subnet-id": null, "cluster-name": null, "compartment-id": "ocid1.compartment.oc1..aaaaaaaakaqsxx2qtsdba26usi290jkkslairn4yk52nexkjpgn73f72t62a", "cpu-core-count": 4, "data-storage-percentage": 80, "data-storage-size-in-gbs": 256, "database-edition": "ENTERPRISE_EDITION_EXTREME_PERFORMANCE", "db-system-options": { "storage-management": "ASM" }, "defined-tags": { "Oracle-Tags": { "CreatedBy": "oracleidentitycloudservice/sample@test.co.jp", "CreatedOn": "2020-05-17T05:51:56.454Z" } }, "disk-redundancy": "HIGH", "display-name": "dbsystem20200517055156", "domain": "clisub1.clivcn.oraclevcn.com", "fault-domains": [ "FAULT-DOMAIN-1", "FAULT-DOMAIN-3" ], "freeform-tags": {}, "hostname": "cli-instance-rac", "id": "ocid1.dbsystem.oc1.ap-tokyo-1.abxhiljrwmm5uhj33jl56jvwh7c4iabcdefghi6666dddd99998888prunyq", "last-maintenance-run-id": null, "last-patch-history-entry-id": null, "license-model": "BRING_YOUR_OWN_LICENSE", "lifecycle-details": null, "lifecycle-state": "AVAILABLE", "listener-port": 1521, "maintenance-window": null, "next-maintenance-run-id": null, "node-count": 2, "nsg-ids": null, "reco-storage-size-in-gb": 256, "scan-dns-record-id": "ocid1.vcndnsrecord.oc1.ap-tokyo-1.abxhiljrsxou3ssychok3w643xudxpoamqx7uhwdpeqgvmr7emazsbjltxdq", "scan-ip-ids": [ "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaa35nmx7frv37lg64qs42ikw46ct6mf2osxjw3v64pl5azwjzogzfq", "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaasdqb2hoqypmambxypu47huvtrnawacmdnhz3437xk2c56rnb3dvq", "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaaflfco7wfc7w6hyv6vvwbzadconhlv6zav6x3bw75gnjgb5253gxq" ], "shape": "VM.Standard2.2", "sparse-diskgroup": null, "ssh-public-keys": [ "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuGqG9b+IlOpZ88pJ4LlpTpn6eHAE9m4uaYoeQEjrSTG6YOc0o9L3O10Nt/VqdTwb2ZmK5DCXDPGF/nEyoLbVg14oeSeiQ/uk3s7V1XhFdCLXuimkZ/K6ylPQ2/knuc2bDyHXCpU9b1UU0rj7B6ZTOhBBawMhwfj54MSDJmfRTOsRlmTGY7ujste0LXzxbn7t1oYsNDRITETQOGpfsuGebWs90i/80L53qIG45CzH74adym41ttoXvbSkow0LKQd/R8Uhe+QpWarwPvKUJSrzgWNi371stGBDLpw90QpUSRt/dXEmo6EhK5wTg3WdArN1Ptc2w4dUO3+j4BU3U8C/Gw==" ], "subnet-id": "ocid1.subnet.oc1.ap-tokyo-1.aaaaaaaaqcht3ojmzrj333ezhdky3xxxxxxxxx7777777777777777yyygqa", "time-created": "2020-05-17T05:51:56.977000+00:00", "time-zone": "UTC", "version": "19.7.0.0.0", "vip-ids": [ "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaabvl43xec3wfmv7dcm3hzezmv4lvkhtkdcw7loynj2uvhztmgp55q", "ocid1.privateip.oc1.ap-tokyo-1.aaaaaaaavnpepptoovjpmoqt4bs3lvcenqjed2fv2rfqmxs6yuetryf2c6yq" ] } ] }
OCI CLIコマンドを利用すると、サービス・インスタンスの操作だけでなく作成することもできます。
コマンドのパターンを用意しておくことで、必要な時にコマンド一つで対応可能です。
サービス・インスタンスの命名規則が決まっている場合など、1つ1つ管理コンソールに項目を選択・入力すると誤ってしまうかもしれません。
事前にコマンドベースでパターンを用意しておくことで誤りを減らすことができるのではないでしょうか。
今後も引き続き、「OCI CLIコマンドの整形方法」や「コマンドでサービスを作成する方法」をお伝えしたいと思います。
※参考情報:OCI CLIコマンドリファレンス(DB SYSTEM作成)
2012年アシスト入社後、Oracle Databaseフィールドエンジニアに従事。2017年からはOracle Cloudを中心としたプリセールスおよびフィールド技術を担当。 ...show more
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・Oracle®、Java、MySQL及びNetSuiteは、Oracle、その子会社及び関連会社の米国及びその他の国における登録商標です。
・Amazon Web Services、AWS、Powered by AWS ロゴ、[およびかかる資料で使用されるその他の AWS 商標] は、Amazon.com, Inc. またはその関連会社の商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
前回の記事でお伝えしたとおり、OCVSを構築するとVMwareの複数の機能が利用可能です。 それらの機能の中で、今回はHCXの概要や具体的な機能、OCVSでHCXを利用するメリットなどをお伝えします!
2024年5月にOracle Cloud環境にて、先行してOracle DB 23aiがリリースされました。 Oracle Base Database ServiceにおけるOracle Database 23aiの検証結果を報告します。 今回は「統合メモリー管理」をテーマにお伝えします。