- Oracle Cloud
- Oracle Database
OCIでGPUインスタンスを構築してみた
OCIで提供されている生成AIサービスとGPUインスタンスを前回の記事「生成AIにGPUが適している理由」で紹介しました。本記事では、GPUインスタンスをデプロイして、インスタンス上でLLM(大規模言語モデル)の動作環境を構築する方法をご紹介します。
|
2013年7月17日、およそ5年半振りのメジャー・バージョンアップとなるOracle Database 12cの国内提供が開始されました。本連載では、500を超える新機能の中から、代表的なものをピックアップしてわかりやすく解説していきます。第1回目となる今回は、12c最大の目玉であるマルチテナント機能について解説します。
Oracle Open World 2012での発表から10ヵ月、ついにOracle Database 12c(以下、12c)の国内提供が開始されました。クラウドの『c』を製品名に掲げ、コンテナ、プラガブル、マルチテナントなど、これまでのOracle Databaseにはなかった多くのコンセプトを引っさげて登場した12cには、実に500を超える新機能が実装されています。
新機能を理解しやすくするために、まずはこれまでのバージョンについて少しだけ振り返ってみましょう。Oracle Databaseは、その時代のトレンドにフィットするための機能を実装しながら進化を続けています。8iと9iではインターネット環境の大量トランザクション、大量データに対応するためにOracle Real Application Clusters(RAC)やPartitioningを実装し、10gと11gではグリッド・コンピューティングに対応するためにGrid InfrastructureやAutomatic Storage Management(ASM)を実装してきました。この流れで考えると、12cにはクラウド対応を考慮した機能が実装されているというのがイメージできるのではないでしょうか。
|
12cの主要な新機能を見てみると、データベースのマルチテナントを実現するOracle Multitenant以外にも、データ運用を自動化するAutomatic Data Optimizationや、動的なデータマスキングを行うData Redactionなど、運用を自動的かつシンプルに行える機能が実装されています。また、データロスのない災害対策構成を採るためのData Guard Far Syncや複数サイトをまとめてサービス化できるGlobal Data Servicesなど、可用性をさらに高める機能もあります。これらすべてが、Oracle Databaseがクラウド対応となるのに必要な機能なのです。
|
とは言え、急にクラウド対応と言われてピンと来ない方もいるかもしれません。ここで言うクラウドとは、パブリック・クラウドだけを指すのではなく、プライベート・クラウドや企業内における複数システムの統合なども含まれます。オンプレミスで稼働させる場合でも、マルチテナントによってデータベースの集約率を高めるといった使い方ができますので、多くのユーザが新機能のメリットを得られるようになっています。
12cにおける最大の特徴は、データベースのマルチテナントを実現する機能が実装された点にあります。マルチテナントとは、1つのシステム上に複数のサービス(ユーザ)が同居している環境のことで、1つの建物内に複数の店舗や企業が同居している雑居ビルによく似ています。集約率が高まるので、運営側にとっては必要な資源や運用コストを削減できるというメリットがあります。利用者側にとっても、自社ビルを建築するよりはワンフロアを借りたほうが安価でビジネスを始められます。
データベースをマルチテナント化するための手法はこれまでいくつか登場しており、代表的なものとして『仮想マシンを複数作成する』、『データベースを複数作成する』、『スキーマを複数作成する』などがあります。これらのメリット、デメリットを整理すると、12cのマルチテナントが理解しやすくなります。以下は1つのサーバ上に3つのサービスを同居させた場合のイメージ図です。
|
サーバ仮想化は、サービスの数だけ仮想マシンを起動し、その上でさらにデータベースを起動するという手法です。OSやデータベースのバージョンが異なっていてもマルチテナント化できるというメリットはありますが、サーバの台数は減っても管理しなければならないOSやデータベースの数は変わらないため、運用管理コストを抑える効果はありません。また、仮想化によるオーバーヘッドがあるため、他の手法と比べて集約率があまり高くならないというデメリットもあります。
データベースを複数作成してマルチテナント化した場合、サーバ仮想化と比べて管理するOSの数は減りますが、データベースの数は変わりません。データベースを起動するにはインスタンスに一定のメモリを割り当てる必要があるため、集約率には限界があります。
スキーマを複数作成した場合は集約率を高めることができますが、スキーマ名が競合している場合はスキーマ統合を検討したり、アプリケーションの改修をしたりといった作業が必要になります。また、仮想化や複数データベースの場合に確保されていた分離性がなくなるため、メモリやCPUといったリソースの割り当て方法やセキュリティ対策を十分に検討しなければなりません。
このように、従来のマルチテナント手法にはメリット、デメリットがあるため、一概に正解を導き出せないという課題がありました。この状況を打破するために登場したのが、12cのOracle Multitenantと呼ばれる機能です。Oracle Multitenantは、Enterprise Editionのオプションとして提供されます。
|
Oracle Multitenantを一言で表現すると、「データベースの中にデータベースを作成する機能」です。11g以前と比較すると、アーキテクチャが大きく変更されていることがわかります。
|
メモリ領域とバックグラウンド・プロセス群から構成されるOracleインスタンスは特に変更されていませんが、データベースがコンテナ・データベース(CDB)という名前になり、その中にあるデータ・ファイルがプラガブル・データベース(PDB)として独立しています。アプリケーションから見ると、PDBの数だけデータベースがあるように見えるという仕組みです。
1番のポイントは、PDBがいくつあってもインスタンスは1つだけというところです。PDBごとにメモリやプロセスを割り当てていたのでは、従来型のデータベースを複数作成する場合と同じで無駄なリソースを多く使用してしまいます。インスタンスを各PDBが共同利用することで、リソースを節約しようというのがOracle Multitenantの考え方なのです。こうして集約率を高め、さらにPDBとして独立性を持たせることで、スキーマ名の競合やセキュリティの見直しといった統合にありがちな課題まで、まとめて解決することができます。
Oracle Multitenantでは11g以前と比べてアーキテクチャが大きく変更されましたが、パッチ適用やアップグレード、バックアップといった運用手順はこれまでと変わりません。それどころか、むしろ簡単になる場合もあります。例えばパッチ適用やアップグレードを行う場合、PDBがいくつ作成されていたとしても、作業は1回で済みます。PDB1つひとつにパッチを適用するといった面倒な作業は必要ありません。
|
マルチテナントのバックアップにはRecovery Manager(RMAN)やEnterprise Manager Cloud Controlを使用します。RMANでは『BACKUP DATABASE』コマンドを実行するだけで、1度にすべてのPDBのバックアップを取得することができます。また、『PDBごとにバックアップ開始時間を変えたい』、『PDBごとにバックアップ頻度を変えたい』といった運用に対応するため、RMANに『BACKUP PLUGGABLE DATABASE』コマンドが追加されています。PDB単位でリカバリを行うこともできます。
|
さらに、プラガブル(着脱可能)という発想を活かしたユニークな機能も備わっています。作成したPDBは取り外しが可能で、別のCDBに簡単に移動させることができます。PDBは1つひとつが独立してデータを保持しているため、USBメモリのように抜き差しするだけで移動が完了します。PDBを取り外すことを『Unplug』、取り付けることを『Plug』と呼びます。
|
このUnplugとPlugは移行やバージョンアップ、パッチ適用において効果を発揮します。例えば、ハードウェアの入替えによってデータ移行が必要になる場合、これまではExport/ImportユーティリティやData Pumpなどを利用していましたが、それがUnplugとPlugだけで済むようになります。なお、バージョンアップやパッチ適用はPDBではなくCDBに対して1度行うだけで良いため、あらかじめバージョンアップ済のCDBを別の場所に用意しておけば、UnplugとPlugでバージョンが違う環境にPDBを移動させることができます。「このPDBだけは暫く旧バージョンで稼働させておきたい」という場合や、「バージョンアップした環境で問題が起きたらすぐ切り戻しをしたい」という場合にも対応できます。
また、PDBにはコピー(クローニング)機能もあり、開発やテストのために同じデータを持ったPDBを複数作成することができます。
|
同一のCDB内にコピーを作成できるのはもちろんのこと、ネットワーク上にある別のCDBにコピーを作成することもできます。コピーはPDBのサイズが大きいほど時間が掛かりますが、ストレージのスナップショット(Oracle ASM Cluster File System、ZFS、NetApp)に対応したコマンドも用意されているため、それらを組み合わせると短時間でコピーを作成できます。
今回はマルチテナント機能の概要についてお伝えしました。次回はマルチテナントの環境を実際に構築し、Unplug/Plugなどの操作を行いながら内部動作を解説します。
・徹底解説!Oracle Database 12cのすべて Vol.2
・徹底解説!Oracle Database 12cのすべて Vol.3
・徹底解説!Oracle Database 12cのすべて Vol.4
・徹底解説!Oracle Database 12cのすべて Vol.5
|
岸和田 隆
|
|
関 俊洋
|
最後までご覧いただきありがとうございました。
本記事でご紹介した製品・サービスに関するコンテンツをご用意しています。また、この記事の他にも、IT技術情報に関する執筆記事を多数公開しておりますのでぜひご覧ください。
■本記事の内容について
本記事に示した定義及び条件は変更される場合があります。あらかじめご了承ください。
■商標に関して
・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の検証結果を報告します。 今回は「統合メモリー管理」をテーマにお伝えします。