インフラ・DevOps
IBM i (OS/400) ザ・データベースオペレーティングシステム
IBM i (OS/400) the Database Operating System (osadmins.com)
要約
IBM i (旧OS/400) は、従来のUnixやWindowsとは一線を画す、ユニークなアーキテクチャを持つオペレーティングシステムです。ファイルという概念を持たず、全てをオブジェクトとして扱い、メモリとディスクを単一の広大なアドレス空間として管理します。データベース機能がOSカーネルに深く統合されており、データ構造をOSが直接理解することで、高いパフォーマンスとセキュリティを実現しています。また、TIMI (Technology Independent Machine Interface) という抽象化レイヤーにより、数十年前のプログラムでも最新のハードウェアで動作する高い互換性を誇ります。
全文翻訳
今日は、これまで作成された中で最も魅力的で驚くべきオペレーティングシステムの一つを紹介したいと思います。これは、他のUnix、Linux、またはWindowsではありません。それは独自の道を歩み、システムエンジニアリング設計が完全に異なるものになり得ることを証明したアーキテクチャです。私が話しているのは、IBMの子供であり、多くの人にとっては「退屈な銀行システム」と同義かもしれませんが、実際にはIT史上最も妥協のないプロジェクトの一つです。今日、私たちが抽象化と仮想化に興奮し、新しい領域を発見していると考えているとき、このシステムは何十年も前からそれを実行していました。
私たちが理解しているような「ファイル」という概念を持たないシステムを想像してみてください。すべてがオブジェクトであり、すべてのディスクとオペレーショナルメモリが、一つの広大でフラットな空間を形成するシステムです。真のエンジニアリングが、バズワードなしであなたを驚かせることができる証拠を探しているのであれば、ぜひ読み進めてください。
AS/400 (IBM i) の誕生
この現象を理解するためには、1980年代に戻り、ミネソタ州ロチェスターにあるIBM研究所に私たち自身を輸送する必要があります。ここで「Silver Lake」というコードネームのプロジェクトが誕生しました。エンジニアたちは、2つの異なる世界を融合させるという、目まぐるしいタスクに直面していました。一方には、統合されたリレーショナルデータベースと革新的なメモリ管理をすでに誇っていましたが、高価で使いにくいSystem/38がありました。もう一方には、そのシンプルさと直感的なインターフェースで高く評価されていた、建築的にははるかにシンプルな、信じられないほど人気のあるSystem/36がありました。Silver Lakeプロジェクトの目標は、System/38の技術的パワーを採用し、System/36の使いやすさでそれを包み込むプラットフォームを作成することでした。
この作業の結果、1988年6月にAS/400 (Application System/400) プラットフォームが初公開されました。AS/400はハードウェア/プラットフォームを指し、OS/400はその専用オペレーティングシステムであったことに注意する必要があります。フランク・ソルティス博士によって設計されたアーキテクチャは、単なる妥協ではなく、技術的な飛躍でした。重要な仮定は、クライアントのソフトウェアへの投資を保護することでした。TIMI (Technology Independent Machine Interface) 抽象化レイヤーのおかげで、企業はコードをゼロから書き直すことなく、古いシステムから新しいプラットフォームにアプリケーションを移行できました。このアプローチは、数十年にわたってシステムのアイデンティティを定義してきました。
マーケティング名はAS/400、iSeries、System i、そして現在のIBM iと何度も変更されましたが、ロチェスターでソルティスが築いた基盤はそのまま残っています。この継続性により、1990年に書かれたプログラムが、今年製造されたサーバー上でネイティブに実行できるのです。AS/400ハードウェアはもう存在しませんが、オペレーティングシステムは残り、IBM Powerプラットフォームで実行されています。
データベースオペレーティングシステム
ソフトウェアの世界では、明確な分割に慣れています。オペレーティングシステムがハードウェアを管理し、その上にアプリケーションが実行されます。典型的なWindowsまたはLinux環境では、OracleやSQL Serverのようなデータベースは、別途購入、インストール、保守する必要がある別のプログラムにすぎません。
IBM iの場合、状況は完全に異なり、この側面がこのプラットフォームの絶対的な独自性を構成しています。ここでは、Db2 for iというリレーショナルデータベースはオーバーレイではありません。それはマシンインターフェースレベルの下、システムカーネルに直接組み込まれています。このアーキテクチャにより、オペレーティングシステムとデータベースは不可分な統一体となります。OSは、データテーブルをディスク上の通常のバイトストリームとは異なり、内容がOSにとって無関心なものとして扱いません。オペレーティングシステムは、ビジネスデータの構造を完全に「理解」しており、SQLテーブルを他のネイティブシステムオブジェクトと同様に扱います。これにより、認証、スペース管理、レコードロックなどのメカニズムは、CPUリソースを奪い合う外部アプリケーションではなく、最も効率的なカーネルレベルで処理されます。このアプローチは、通信オーバーヘッドを排除し、数十年にわたってOLTP (Online Transaction Processing) でプラットフォームを支配的なものにしてきました。
システムのオブジェクト性質
このシステムの哲学は、すべてをファイルとして扱うUnixのアプローチとは対立します。IBM iでは、基本的な単位はオブジェクトです。プログラム (*PGM)、データファイル (*FILE)、またはユーザープロファイル (*USRPRF) のいずれであっても、すべてのリソースには、ヘッダーと機能部分を持つ厳密に定義された構造があります。このような構造は、カプセル化のメカニズムを通じてセキュリティレベルを劇的に向上させます。システムは、コンパイルされたプログラムをテキストエディタで編集したり、正しく処理されていないコードを実行したりすることを単純に許可しません。オブジェクトの内部へのアクセスは、システムによって定義されたインターフェースとコマンドを通じてのみ可能です。これにより、実行可能コードを上書きしようとするウイルスや悪意のあるスクリプトは、システムレベルで壁にぶつかります。
ハードウェア抽象化とコードの寿命
アーキテクチャのもう一つの柱は、TIMI (Technology Independent Machine Interface) レイヤーです。このシステムのために書かれたアプリケーションは、プロセッサと直接通信するのではなく、仮想レイヤーと通信します。さらに下で、SLICレイヤー(カーネルとドライバに相当)がこれらの命令を特定のハードウェアのマシンコードに変換します。このシンプルで優れたソリューションは、前例のない後方互換性を保証します。完全に異なるアーキテクチャのプロセッサで20年前にコンパイルされたプログラムは、最新のPOWER11プロセッサ上で再コンパイルなしで今日でも動作します。システムは命令を自動的に変換します。
シングルレベルストレージ
データベースに対するユニークなアプローチは、シングルレベルストレージ (SLS) として知られる革新的なメモリ管理と組み合わされています。フランク・ソルティス博士は、このアーキテクチャを、このプラットフォームの伝説的なパフォーマンスを決定する鍵となる要因として挙げています。これは単純なページングメカニズムではなく、このシステムを競合他社と区別する考え方の完全な変化です。この環境では、エンジニアはディスクパーティショニング、ドライブレター、マウントポイントについて心配する必要はありません。これらの概念はここでは存在しないからです。システムは、利用可能なすべてのRAMとすべてのハードドライブを、一つの巨大でフラットなアドレス空間として扱います。プロセッサにとって、ディスク上にあるオブジェクトは、RAM内のデータと同様に、仮想メモリ内の特定のアドレスで利用可能です。アクセス頻度に基づいて、ファイルの断片を物理的にどこに配置し、いつオペレーショナルメモリに移動するかを決定するのはオペレーティングシステムです。管理者はストレージプール (ASP) しか見えず、ディスクセクターのマイクロマネジメントは彼らの問題ではなくなります。これにより、従来のファイルシステムでは達成できないレベルでのI/O最適化が可能になり、揮発性メモリと永続性メモリの境界をぼかすというソルティスのビジョンが実現されます。
ディスクプール (ASP)
システムがすべてのディスクを一つの広大なアドレス空間として認識するシングルレベルストレージの概念は、プログラマーにとって素晴らしい簡略化です。しかし、インフラストラクチャ管理者は、パフォーマンスまたはセキュリティのために、特定のデータグループを物理的に分離する必要がある場合があります。統一されたアドレッシングの利点を維持しながら、これを可能にするメカニズムが、補助ストレージプール (ASP) です。すべてのIBM iサーバーには、少なくとも1つのプール、システムASPまたはASP 1と呼ばれるものがあります。これはマシンの絶対的な心臓部です。オペレーティングシステム、ライセンス内部コード、および意図的に他の場所に移動されていないすべてのユーザーデータは、ここに resideします。このプール内では、特定のディスクが特別な役割を果たします。いわゆるロードソースであり、マシンは起動中にマイクロコードをここから読み取ります。さらに、システム管理者は、2から32までの番号が付いたユーザーASPを作成できます。これにより、データの物理的な分離が可能になります。たとえば、管理者はASP #2を非常に高速なSSDから構築し、集中的なデータベースログをそこにリダイレクトして、システム全体の速度を低下させないようにすることができます。一方、めったに使用されないアーカイブは、別のプールにある安価なスピニングディスクに移動できます。システムは、IASP (Indep