🐋

サーバーの仮想化について

に公開

サーバーの仮想化について勉強する機会がありました。この記事はその備忘録です。

サーバーとは?

一言で言えば「何らかのサービスを提供しているコンピュータ」のこと。
1)何らかのデータを受け取り、
2)受け取ったデータを元に何らかの処理を行い、
3)処理を行った結果を返す
という役割を持っています。

例えばWebサイトを閲覧するときのWebサーバーでは、
1)閲覧者がアクセスしたURLを受け取り、
2)それに該当する、表示すべきWebサイトのデータを用意し、
3)閲覧者の元に返す
みたいな感じです。

サーバーの「1台1役」の限界

昔は1つのサーバーに1つの役割を持たせる運用でした。
Webサーバー専用、メールサーバー専用のサーバーをそれぞれ持つといった具合です。
しかし、それではサーバー台数が増えてコストがかかり、場所も取る割には各サーバーを使いきれていないという状態が発生します。加えて、サーバー台数が多いと障害対応やバックアップ対応、アップデートが大変です。

そこで登場したのが、「1つのサーバーの中に複数の仮想的なサーバーを動かせば、リソースを無駄なく使えそう」という発想です。

サーバーの仮想化

サーバーの仮想化とは?

サーバーの仮想化とは、「物理サーバー上に複数の仮想的なサーバー環境を構築し、1台のサーバーが複数のサーバーのように振る舞うことができるようにする技術」です。
仮想サーバーは、独自のOSやリソースを持ち、あたかも独立したサーバーのように動きます。

例えば、Mac上でWindowsOSを動かす場合を考えてみます。Macに仮想化ソフトウェアを使ってWindowsを動かすことで、1台のMacだけでMacOSとWindowsの両方を操作できます。ユーザーはMacしか持っていなくても、まるでMacとWindowsの2台のパソコンを使っているかのように操作できます。

参考:VDI

仮想マシン上で動作するデスクトップ環境を、ネットワーク越しにユーザーが利用する仕組みをVDIといいます。(Virtual Desktop Infrastructure:仮想デスクトップインフラ)
企業などで、社用の貸与PCなどで使われたりします。
仕組みとしては、

  • データセンターに大量の仮想マシンが用意されている
  • 各仮想マシンにWindowsやLinuxなどのデスクトップOSが入っている
  • ユーザーは自分のPCから、その仮想デスクトップに接続して利用する

VDIにより、PCにデータを残さないためセキュリティが高くなる、ソフトの一元管理が可能で運用が楽になるといったメリットがあります。

サーバーの仮想化技術

仮想化技術については「ホスト型」と「ハイパーバイザー型」に分類できます。

ホスト型

OSに土台となるソフトウェアをインストールし、そのソフトウェア上で仮想環境を稼働させる方式です。仮想環境はアプリケーションとして実行されます。

引用:https://thinkit.co.jp/story/2012/10/17/3722

ハイパーバイザー型

サーバーに仮想環境を直接構築・稼働させる方式で、このとき仮想環境を構築するための専用のアプリケーションを「ハイパーバイザー」と呼びます。ホストOSを必要としないため、ハードウェアを直接制御することができます。

引用:https://thinkit.co.jp/story/2012/10/17/3722

仮装スイッチ

仮想サーバーは、ただ作るだけではなく、通信ができる必要があります。物理的サーバーであればLANケーブルを繋げばいいのですが、仮想サーバーはケーブルに繋げません。そこで、物理的なケーブルやスイッチの代わりに「仮想スイッチ」を使います。仮想スイッチはハイパーバイザー上に構築されます。

仮想スイッチの役割は、仮想サーバー同士の内部通信を可能にしたり、仮想サーバーと外部を接続したりすることです。
外部と直接通信するのが「外部接続」、仮想マシン間の接続が「プライベート接続」です。

仮想サーバーは、物理的サーバー内に作られた、いわば「仮想世界」。
その仮想世界とリアルな世界(物理的サーバー)をつなぐ扉・橋のようなものが外部接続で、仮想世界Aと仮想世界Bをつなぐ扉がプライベート接続というイメージです。

終わりに

まだ「なんとなくわかっている」という状態なので、今後実際に手を動かして体験する機会があればいいなと思っています。

参考

https://updx.co.jp/member-blog/what-is-server/
https://it-trend.jp/server-virtualization/article/beginners_course
https://cloud.sakura.ad.jp/column/virtual-server/
https://thinkit.co.jp/story/2012/10/17/3722
https://www.skygroup.jp/tech-blog/article/967/

ChatGPTにもお世話になりました。

Discussion