仮想化とクラウド・コンピューティングの用語
エグゼクティブサマリー
本文書は,仮想化技術とクラウド・コンピューティングに関する用語集・技術解説である。物理サーバーの基本概念から,仮想化基盤,3種類の隔離技術(仮想マシン,コンテナ,chroot),クラウドサービスモデルに至るまでの概念を体系的に整理している。
全体は9章で構成される。第1章では物理サーバーとその資源を定義し,第2章では仮想化を実現するハイパーバイザーとVirtualBoxを解説する。第3章から第5章では,隔離の粒度が異なる3つの技術を,ハードウェアレベル(仮想マシン),OSレベル(コンテナ),ファイルシステムレベル(chroot)の順に配置している。第6章では仮想化技術の応用,第7章ではクラウド・コンピューティングの基盤と運用,第8章ではSaaS・PaaS・IaaSのサービスモデル,第9章では関連ソフトウェアを扱う。
各項目にはUbuntu 24.04上で概念を実際に確認できるコマンド例を付記しており,読者が手元の環境で技術を体験できる構成としている。仮想マシンの操作にはVirtualBoxのコマンドラインツールであるVBoxManageを使用し,コンテナの概念にはunshareコマンド,chrootの概念にはdebootstrapとchrootコマンドを使用する。
目次
- 第1章 物理基盤
- 第2章 仮想化基盤
- 第3章 仮想マシンによる隔離
- 第4章 コンテナによる隔離
- 第5章 chrootによる隔離
- 第6章 仮想化技術の応用
- 第7章 クラウド・コンピューティングの基盤と運用
- 第8章 クラウド・サービスモデル
- 第9章 関連ソフトウェアと技術
第1章 物理基盤
-
デスクトップ・コンピューター
デスクトップ・コンピューター(desktop computer)は,机上に設置して使用する据え置き型のコンピューターである。一般に,1台のコンピューターを1人の利用者が占有して使用する。CPU,メモリ,2次記憶装置,入出力装置を備え,オペレーティング・システム(OS)とアプリケーション・プログラムをローカルで実行する。
-
物理サーバー
物理サーバー(physical server)は,ネットワークを介して複数の利用者やシステムにサービスを提供するコンピューターである。データセンターやサーバー室に設置され,高い可用性と処理性能を備える。1台の物理サーバー上で,ハイパーバイザーを用いて複数の仮想マシンを動作させることができる。
-
物理サーバーの資源
物理サーバーの資源(physical server resources)は,物理サーバーが持つハードウェア資源の総称である。主な資源として,CPU(コア数,クロック速度など),メモリ(容量,速度など),2次記憶装置(容量,種類,速度など),I/O(帯域など)がある。仮想化環境では,これらの物理的な資源をハイパーバイザーが管理し,各仮想マシンに分配する。
Ubuntu 24.04 での確認方法
以下のコマンドはいずれも Ubuntu 24.04 に標準でインストールされており,追加パッケージは不要である。
lscpu # CPU の情報(コア数,クロック速度など) free -h # メモリの情報(容量など) lsblk # 2次記憶装置の情報(デバイス名,容量,種類など) cat /proc/net/dev # ネットワーク I/O の情報(受信・送信バイト数など) -
物理サーバーの構成変化
物理サーバーの構成変化とは,仮想化技術の導入に伴う物理サーバーの役割の変化を指す。従来は1台の物理サーバーが1つのサービスを担当していたが,仮想化技術の導入により,1台の物理サーバー上で複数の仮想マシンを動作させることが可能となった。これにより,物理サーバーの資源の利用効率が向上し,管理コストの削減が実現された。
第2章 仮想化基盤
-
ホストOS
ホストOS(host operating system)は,物理サーバー上で直接動作するオペレーティング・システムである。タイプ2ハイパーバイザーを使用する場合,ホストOS上で仮想化ソフトウェアがアプリケーションとして動作する。一方,タイプ1ハイパーバイザーを使用する場合は,ホストOSを介さずにハイパーバイザーが物理ハードウェア上で直接動作する。
-
ハイパーバイザー
ハイパーバイザー(hypervisor)は,物理サーバーの資源を仮想化し,複数の仮想マシンを同時に動作させるためのソフトウェアである。仮想マシン・モニター(VMM: Virtual Machine Monitor)とも呼ばれる。ハイパーバイザーには以下の2種類がある。
タイプ1ハイパーバイザー(ベアメタル型)は,物理ハードウェア上で直接動作する。ホストOSを必要とせず,物理資源を直接管理する。Xen,VMware ESXi,Microsoft Hyper-Vがこれに該当する。
タイプ2ハイパーバイザー(ホスト型)は,ホストOS上でアプリケーションとして動作する。Oracle VirtualBox,VMware Workstationがこれに該当する。
-
仮想マシン・モニター
仮想マシン・モニター(VMM: Virtual Machine Monitor)は,ハイパーバイザーの別称である。物理ハードウェアの資源を抽象化し,各仮想マシンに対して独立した仮想ハードウェア環境を提供する。各仮想マシンは他の仮想マシンから隔離されており,それぞれ独立したOSとアプリケーション・プログラムを実行できる。
なお,「Virtual Machine Manager」は仮想マシンの管理ツール(例: virt-manager)を指す場合があり,Virtual Machine Monitor とは異なる概念である。
-
VirtualBox
VirtualBox(Oracle VM VirtualBox)は,Oracle社が開発するタイプ2の仮想化ソフトウェアである。GPLv3のもとでオープンソースとして公開されている。Windows,macOS,Linux,SolarisのホストOS上で動作し,多様なゲストOSをサポートする。GUIに加え,VBoxManageコマンドによるCLI操作を提供する。
Ubuntu 24.04 へのインストール
Oracle公式リポジトリからインストールする手順を以下に示す。
# Oracle 公開鍵の取得と登録 wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg --dearmor # リポジトリの追加 echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian noble contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list # インストール sudo apt update sudo apt install virtualbox-7.2
第3章 仮想マシンによる隔離
仮想マシンによる隔離は,ハードウェアレベルの隔離を実現する技術である。各仮想マシンは独立した仮想ハードウェア(CPU,メモリ,ディスク,ネットワーク・インタフェース)を持ち,ゲストOSとアプリケーション・プログラムを他の仮想マシンから完全に隔離した状態で実行する。
-
仮想マシン
仮想マシン(virtual machine, VM)は,物理サーバー上のハイパーバイザーまたは仮想マシン・モニターによって作成される,ソフトウェアで実現された仮想的なコンピューターである。物理サーバーの資源(CPU,メモリ,ディスク,ネットワーク・インタフェース)の一部が割り当てられ,独立したコンピューターとして動作する。各仮想マシンは他の仮想マシンから隔離されており,1つの仮想マシンの障害が他の仮想マシンに影響を与えることはない。
Ubuntu 24.04 での操作(VBoxManage)
# 仮想マシンの作成と登録 VBoxManage createvm --name "TestVM" --ostype Ubuntu_64 --register # 仮想マシンの情報を表示 VBoxManage showvminfo "TestVM" # 仮想マシンをヘッドレスモードで起動 VBoxManage startvm "TestVM" --type headless # 仮想マシンの電源を切る VBoxManage controlvm "TestVM" poweroff # 登録されている仮想マシンの一覧を表示 VBoxManage list vms # 稼働中の仮想マシンの一覧を表示 VBoxManage list runningvms -
仮想マシンのテンプレート
仮想マシンのテンプレート(virtual machine template)は,仮想マシンの構成情報(CPU数,メモリ容量,ディスク容量,ネットワーク設定など)を定義したひな型である。テンプレートを使用することで,同一構成の仮想マシンを繰り返し作成できる。
Ubuntu 24.04 での操作(VBoxManage)
# メモリを 2048 MB に設定 VBoxManage modifyvm "TestVM" --memory 2048 # CPU を 2 コアに設定 VBoxManage modifyvm "TestVM" --cpus 2 # ネットワーク・アダプター 1 を NAT モードに設定 VBoxManage modifyvm "TestVM" --nic1 nat # 設定内容を確認 VBoxManage showvminfo "TestVM" -
ゲストOS
ゲストOS(guest operating system)は,仮想マシンの内部で動作するオペレーティング・システムである。ゲストOSは仮想マシンが提供する仮想ハードウェア上で動作し,物理ハードウェアに直接アクセスすることはない。1台の物理サーバー上で,異なる種類のゲストOS(Linux,Windowsなど)を同時に動作させることができる。
Ubuntu 24.04 での操作(VBoxManage)
# VirtualBox が対応する OS タイプの一覧を表示 VBoxManage list ostypes # Ubuntu に関連する OS タイプを検索 VBoxManage list ostypes | grep -i ubuntu -
アプリケーション・プログラム
アプリケーション・プログラム(application program)は,ゲストOS上で動作するソフトウェアである。仮想マシン内のゲストOSにインストールされ,物理マシン上のアプリケーション・プログラムと同様に動作する。Webサーバー,データベースサーバー,メールサーバーなどが代表的な例である。
-
仮想マシン・ブートイメージ・ファイル
仮想マシン・ブートイメージ・ファイル(virtual machine boot image file)は,仮想マシンの起動に必要なゲストOSとアプリケーション・プログラムの組み合わせを格納したディスクイメージ・ファイルである。VDI(VirtualBox Disk Image),VMDK(Virtual Machine Disk),VHD(Virtual Hard Disk),qcow2(QEMU Copy On Write 2)などの形式がある。
Ubuntu 24.04 での操作(VBoxManage)
# VDI 形式で 10240 MB(10 GB)の仮想ディスクを作成 VBoxManage createmedium disk --filename ~/TestVM_disk.vdi --size 10240 # 作成した仮想ディスクの情報を表示 VBoxManage showmediuminfo disk ~/TestVM_disk.vdi -
仮想マシン・ブートイメージ・ファイルの作成
仮想マシン・ブートイメージ・ファイルの作成とは,仮想ディスクを作成し,ストレージ・コントローラーに接続した上で,ISOイメージからゲストOSをインストールする一連の工程を指す。作成されたブートイメージ・ファイルには,ゲストOSとアプリケーション・プログラムが格納される。
Ubuntu 24.04 での操作(VBoxManage)
# 仮想ディスクの作成 VBoxManage createmedium disk --filename ~/TestVM_disk.vdi --size 10240 # SATA ストレージ・コントローラーの作成 VBoxManage storagectl "TestVM" --name "SATA Controller" --add sata --controller IntelAHCI # 仮想ディスクを SATA コントローラーに接続 VBoxManage storageattach "TestVM" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium ~/TestVM_disk.vdi # IDE ストレージ・コントローラーの作成 VBoxManage storagectl "TestVM" --name "IDE Controller" --add ide # Ubuntu の ISO イメージを IDE コントローラーに接続 VBoxManage storageattach "TestVM" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium /path/to/ubuntu-24.04.3-live-server-amd64.iso上記の
/path/to/ubuntu-24.04.3-live-server-amd64.isoは,Ubuntu 24.04.3 LTS のサーバー用ISOイメージのパスに置き換える。ISOイメージはhttps://releases.ubuntu.com/noble/から取得できる。 -
仮想マシン・ブートイメージ・ファイルの展開
仮想マシン・ブートイメージ・ファイルの展開(deployment)とは,作成済みのブートイメージ・ファイルを使用して,新しい仮想マシンを配備する操作を指す。テンプレートとなる仮想マシンを複製(クローン)することで,同一構成の仮想マシンを短時間で複数台配備できる。
Ubuntu 24.04 での操作(VBoxManage)
# 既存の仮想マシンを複製して新しい仮想マシンを作成 VBoxManage clonevm "TestVM" --name "TestVM_Clone" --register -
実マシンのディスクイメージ配信
実マシンのディスクイメージ配信とは,物理マシンのディスク内容をディスクイメージ・ファイルとして取得し,ネットワークを介して複数の物理マシンに配信・復元する技術を指す。OSとアプリケーション・プログラムが設定済みのディスクイメージを配信することで,多数の物理マシンを短時間で同一構成にできる。
-
仮想マシンの追加
仮想マシンの追加とは,物理サーバー上に新たな仮想マシンを作成し,利用可能な状態にする操作を指す。ハイパーバイザーまたは仮想マシン管理ソフトウェアを通じて,仮想マシンの構成(CPU数,メモリ容量,ディスク容量など)を指定し,仮想マシンを登録する。
Ubuntu 24.04 での操作(VBoxManage)
# 新しい仮想マシンを作成して登録 VBoxManage createvm --name "WebServer01" --ostype Ubuntu_64 --register # 登録されている仮想マシンの一覧を表示 VBoxManage list vms -
仮想マシンの稼働
仮想マシンの稼働とは,登録済みの仮想マシンを起動し,ゲストOSとアプリケーション・プログラムが動作している状態を指す。仮想マシンの起動,停止,一時停止,再開などの操作は,ハイパーバイザーまたは仮想マシン管理ソフトウェアを通じて行う。
Ubuntu 24.04 での操作(VBoxManage)
# 仮想マシンをヘッドレスモードで起動 VBoxManage startvm "TestVM" --type headless # 稼働中の仮想マシンの一覧を表示 VBoxManage list runningvms # 仮想マシンの電源を切る VBoxManage controlvm "TestVM" poweroff -
仮想マシンの資源割り当て
仮想マシンの資源割り当て(resource allocation)とは,物理サーバーの資源(CPU,メモリ,ディスク,ネットワーク帯域など)を各仮想マシンに配分する操作を指す。ハイパーバイザーは,各仮想マシンの構成に従って資源を動的に割り当てる。仮想マシンの停止中に構成を変更することも,稼働中に一部の資源を変更することも可能である。
Ubuntu 24.04 での操作(VBoxManage)
# メモリを 4096 MB に変更(仮想マシン停止中に実行) VBoxManage modifyvm "TestVM" --memory 4096 # CPU を 4 コアに変更(仮想マシン停止中に実行) VBoxManage modifyvm "TestVM" --cpus 4 # CPU 使用率の上限を 50% に制限(稼働中でも実行可能) VBoxManage controlvm "TestVM" cpuexecutioncap 50 # 現在の資源割り当て状況を確認 VBoxManage showvminfo "TestVM" -
仮想マシンの活線移動
仮想マシンの活線移動(live migration)とは,稼働中の仮想マシンを,サービスを停止することなく別の物理サーバーへ移動する技術を指す。移動元の物理サーバーから移動先の物理サーバーへ,仮想マシンのメモリ内容と実行状態が転送される。ハイパーバイザーがこの機能を提供し,物理サーバーの保守やリソースの再配分を,利用者に影響を与えずに実施できる。活線移動の代表的な方式には,事前コピー方式(pre-copy)と事後コピー方式(post-copy)がある。
-
仮想マシン管理ソフトウェア
仮想マシン管理ソフトウェア(virtual machine management software)は,複数の仮想マシンの作成,起動,停止,削除,構成変更,監視などの管理操作を一元的に行うためのソフトウェアである。仮想マシン管理者は,このソフトウェアを通じて物理サーバー上の全仮想マシンを管理する。
Ubuntu 24.04 での操作(VBoxManage)
# 全仮想マシンの一覧を表示 VBoxManage list vms # 稼働中の仮想マシンの一覧を表示 VBoxManage list runningvms # 特定の仮想マシンの詳細情報を表示 VBoxManage showvminfo "TestVM" # 仮想マシンの登録を解除し,関連ファイルを削除 VBoxManage unregistervm "TestVM" --delete -
仮想マシン管理者
仮想マシン管理者(virtual machine administrator)は,仮想マシンの作成,構成,起動,停止,監視などの管理業務を担当する人物または役割を指す。仮想マシン管理者は,仮想マシン管理ソフトウェアを使用してこれらの業務を遂行する。クラウド環境では,エンドユーザーが自身の仮想マシンの管理者を兼ねる場合もある。
第4章 コンテナによる隔離
コンテナによる隔離は,OSレベルの隔離を実現する技術である。仮想マシンがハードウェアレベルで隔離を行うのに対し,コンテナはホストOSのカーネルを共有しながら,プロセス空間,ファイルシステム,ネットワークなどを隔離する。
-
コンテナ
コンテナ(container)は,ホストOSのカーネルを共有し,プロセス単位で隔離された実行環境である。Linuxカーネルの名前空間(namespace)機能によりプロセス空間,ファイルシステム,ネットワークなどを隔離し,cgroup(control group)機能によりCPU,メモリなどの資源使用量を制限する。仮想マシンと比較して,ゲストOSを必要としないため起動が高速で,資源消費も少ない。
Ubuntu 24.04 での操作(PID名前空間の隔離を体験する)
# 新しい PID 名前空間を作成し,隔離されたシェルを起動 sudo unshare --pid --fork --mount-proc /bin/bash # 隔離された環境内のプロセスを確認(bash の PID が 1 になる) ps aux # 隔離された環境から抜ける exitunshareコマンドは util-linux パッケージに含まれ,Ubuntu 24.04 に標準でインストールされている。--pidは新しいPID名前空間の作成,--forkは新しいプロセスの生成,--mount-procは隔離された /proc ファイルシステムのマウントを指定する。 -
コンテナイメージ
コンテナイメージ(container image)は,コンテナの実行に必要なファイルシステム,ライブラリ,アプリケーション・プログラム,設定ファイルなどを含む読み取り専用のテンプレートである。仮想マシンにおけるブートイメージ・ファイルに相当するが,ゲストOSのカーネルを含まないため,サイズが小さい。
-
コンテナランタイム
コンテナランタイム(container runtime)は,コンテナイメージからコンテナを生成し,実行するソフトウェアである。Linuxカーネルの名前空間やcgroupを操作して隔離環境を構築する。Docker Engine,containerd,CRI-Oなどが代表的なコンテナランタイムである。
-
コンテナオーケストレーション
コンテナオーケストレーション(container orchestration)は,多数のコンテナの配備,スケーリング(自動的な増減),負荷分散,障害復旧などを自動化する技術を指す。Kubernetesが代表的なコンテナオーケストレーション・ソフトウェアである。
第5章 chrootによる隔離
chrootによる隔離は,ファイルシステムレベルの隔離を実現する技術である。仮想マシンがハードウェアレベル,コンテナがOSレベルの隔離を行うのに対し,chrootはファイルシステムのルートディレクトリのみを変更する。プロセス空間やネットワークは隔離されない。
-
chroot環境
chroot環境(chroot environment)は,UNIX系OSにおいて,特定のプロセスのルートディレクトリを変更することで,ファイルシステムの一部を隔離した環境である。chroot(change root)システムコールにより,指定したディレクトリを新しいルートディレクトリとして設定する。chroot環境内のプロセスは,指定されたディレクトリより上位のファイルシステムにアクセスできない。
ただし,chrootはファイルシステムの分離のみを行い,プロセス空間,ネットワーク,ユーザーIDなどは隔離されない。そのため,セキュリティ上の隔離としては限定的であり,より強固な隔離が必要な場合はコンテナ技術や仮想マシンの利用が推奨される。
Ubuntu 24.04 での操作(debootstrapとchrootによる隔離を体験する)
# debootstrap のインストール(標準ではインストールされていないため追加する) sudo apt install debootstrap # Ubuntu Noble の最小環境を /srv/chroot-test に構築 sudo debootstrap noble /srv/chroot-test http://archive.ubuntu.com/ubuntu # chroot で隔離された環境に入る sudo chroot /srv/chroot-test /bin/bash # 隔離された環境のルートディレクトリの内容を確認 ls / # OS のリリース情報を確認 cat /etc/os-release # ホスト側の /home が見えないことを確認 ls /home # /proc をマウントしてプロセス一覧を確認(プロセス空間はホストと共有されている) mount -t proc proc /proc ps aux # chroot 環境から抜ける exit # 作成した環境を削除 sudo rm -rf /srv/chroot-testchrootコマンドは coreutils パッケージに含まれ,Ubuntu 24.04 に標準でインストールされている。debootstrapは Debian系ディストリビューションの最小環境を構築するツールであり,sudo apt install debootstrapで追加する。chroot環境内でps auxを実行するとホスト側のプロセスが表示されることから,chrootがプロセス空間を隔離しないことが確認できる。
第6章 仮想化技術の応用
-
ゲストOSへのリモートログイン
ゲストOSへのリモートログインとは,ネットワークを介して仮想マシン内のゲストOSに接続し,操作する方法を指す。SSH(Secure Shell)によるコマンドライン接続や,リモートデスクトップ・プロトコル(RDP,VNC)によるグラフィカル接続がある。利用者は物理サーバーの前にいなくても,遠隔から仮想マシンを操作できる。
-
アプリケーション・プログラムの仮想化
アプリケーション・プログラムの仮想化(application virtualization)とは,アプリケーション・プログラムをOS環境から分離し,異なる環境でも動作可能にする技術を指す。アプリケーション・プログラムとその依存ライブラリをパッケージ化し,ホストOSやゲストOSの違いに影響されず実行できるようにする。コンテナ技術も,この目的に利用される場合がある。
-
デスクトップの仮想化
デスクトップの仮想化(desktop virtualization)とは,デスクトップ環境をサーバー上の仮想マシンまたはコンテナで実行し,利用者はネットワークを介して画面表示・操作入力の転送のみで利用する技術を指す。VDI(Virtual Desktop Infrastructure)とも呼ばれる。利用者の端末にはデータが保存されないため,情報漏洩対策として有効である。リモートデスクトップ接続とは異なり,利用者ごとに独立した仮想マシンまたはコンテナが割り当てられる。
第7章 クラウド・コンピューティングの基盤と運用
-
クラウド・コンピューティング・センター
クラウド・コンピューティング・センター(cloud computing center)は,多数の物理サーバーとネットワーク機器を収容し,仮想化技術を用いてクラウドサービスを提供する施設である。データセンターとも呼ばれる。電力供給,冷却設備,物理的なセキュリティ,ネットワーク接続の冗長化などを備え,高い可用性を維持する。
-
プロビジョニング
プロビジョニング(provisioning)とは,利用者の要求に応じて,仮想マシンやコンテナなどのコンピューティング資源を準備し,利用可能な状態にする一連の操作を指す。仮想マシンの作成,ゲストOSのインストール,ネットワークの設定,ストレージの割り当てなどを含む。自動プロビジョニングにより,利用者の要求から数分以内に資源を提供できるようになる。
-
エンドユーザー
エンドユーザー(end user)は,クラウドサービスを最終的に利用する人物を指す。エンドユーザーは,クラウドサービスの内部構造(仮想化技術,物理サーバー構成など)を意識することなく,Webブラウザやクライアント・アプリケーションを通じてサービスを利用する。
-
クラウド・センター管理者
クラウド・センター管理者(cloud center administrator)は,クラウド・コンピューティング・センター全体の運用・管理を担当する人物または役割を指す。物理サーバーの設置・保守,ネットワーク構成の管理,ハイパーバイザーの運用,セキュリティ対策,障害対応などの業務を担当する。
第8章 クラウド・サービスモデル
-
SaaS
SaaS(Software as a Service,サービスとしてのソフトウェア)は,アプリケーション・プログラムをネットワーク経由でサービスとして提供するモデルである。利用者はWebブラウザなどを通じてアプリケーション・プログラムを使用し,ソフトウェアのインストールやインフラの管理を行う必要がない。電子メール,文書作成,顧客管理などの業務アプリケーションが代表的な例である。提供者は,アプリケーション・プログラム,ミドルウェア,OS,仮想化基盤,物理基盤の全階層を管理する。
-
PaaS
PaaS(Platform as a Service,サービスとしてのプラットフォーム)は,アプリケーション・プログラムの開発,実行,管理に必要なプラットフォーム環境をネットワーク経由でサービスとして提供するモデルである。利用者はプログラミング言語,ライブラリ,データベース,Webサーバーなどの開発・実行環境を使用してアプリケーション・プログラムを構築・配備する。OS,ミドルウェア,ランタイム環境の管理は提供者が行い,利用者はアプリケーション・プログラムの開発と設定に集中できる。
-
IaaS
IaaS(Infrastructure as a Service,サービスとしてのインフラストラクチャ)は,仮想マシン,ストレージ,ネットワークなどのコンピューティング基盤をネットワーク経由でサービスとして提供するモデルである。利用者は仮想マシンの構成(CPU数,メモリ容量,ディスク容量など)を指定して資源を確保し,OSのインストール,ミドルウェアの構築,アプリケーション・プログラムの配備を自ら行う。提供者は,仮想化基盤と物理基盤を管理する。
第9章 関連ソフトウェアと技術
-
Xen
Xen(ゼン)は,Linux Foundation傘下のXen Projectが開発するオープンソースのタイプ1ハイパーバイザーである。物理ハードウェア上で直接動作し,ホストOSを必要としない。Xenは特権ドメイン(Dom0)と呼ばれる管理用仮想マシンを通じてハードウェアの入出力を管理し,非特権ドメイン(DomU)と呼ばれるゲスト仮想マシンを複数動作させる。準仮想化(paravirtualization)と完全仮想化(full virtualization)の両方をサポートする。Amazon Web Services(AWS)のEC2は,当初Xenを基盤として構築された。
-
Apache Hadoop
Apache Hadoop(アパッチ・ハドゥープ)は,Apache Software Foundationが開発するオープンソースの分散処理フレームワークである。大規模データを複数のコンピューターに分散して格納・処理するための基盤を提供する。主要コンポーネントとして,分散ファイルシステムであるHDFS(Hadoop Distributed File System),分散処理モデルであるMapReduce,クラスタの資源管理とジョブスケジューリングを行うYARN(Yet Another Resource Negotiator)がある。クラウド・コンピューティング環境では,仮想マシンやコンテナ上にHadoopクラスタを構築して運用する形態が広く採用されている。