サーバー仮想化入門 研修コースに参加してみた

今回参加した研修コースは サーバー仮想化入門 です。
もうXenなどの本が登場するようになってから10年は経とうとしているでしょうか。はじめて聞いたときは「そんな危なっかしいこと、何を言っているのだ」と思いましたが、今や当たり前です。(その当時から老害発言ですね)
参加してみると、仮想化がそもそもなぜ出来るのか、また実際、仮想マシンと物理的なネットワークやストレージとどのように繋ぐのか、かなり広い範囲をカバーした解説だったので、入門らしいコースでした。
最後には学んだことだけで、プライベートクラウドの中の構成が説明できたので、「なるほど」体験もできました。
では、どんな内容だったのか、レポートします !!
もくじ
想定している受講者
- PCおよびサーバー、ネットワークに関する基礎知識があること
受講目標
- サーバー仮想化の仕組みを理解する
- サーバー仮想化で用いられる主要な技術について理解する
講師紹介
今回登壇されたのは、この「参加してみた」レポートでは初登場の 新谷 泰英さん です。
通常4月から9月までは他の新人研修に登壇されていて、SEカレッジではいつも10月以降から登壇されています。実は、SEカレッジのインフラ系全般のコース企画からテキスト作成、実機演習の設計・構築まで幅広く携わって頂いています。
最近では、研修コースが終わった後も、受講者が自宅PCで仮想のLAN環境を簡単に構築できるようシミュレータの準備を進めておられ、受講者の満足度だけでなくスキルアップにとてもこだわってらっしゃいます。
仮想化とは
まずは仮想化について、全体をざっくり解説です。
- ハードウェアをプログラムで提供する
- 見た目や振る舞いは本物
- ハードウェアは1台しかないけど、2台~3台以上の役割を果たすことが出来る
- コストや設備 (電源など) が1台分で済む
- なぜ出来るのか?
- 通常ハードウェアの使用率は多く見積もっても 20%~30%
- この70%~80%の空いている資産を使う
- 実際PCのタスクマネージャで見ると空いている
- とはいえ、空いている資産は使用ピークに合わせているはず
- 例えば、月末の給与計算など
- 仮想化ソフトウェアには自動で負荷分散する機能が備わっている
- 処理負担を他の空いているハードウェアに移している
- 例えばAmazonやGoogleなどは地球規模でバランスしている
- 仮想化の頻出用語
- VM: 仮想マシン (Virtual Machine)
- ホスト: 実機、物理マシン
- ゲスト: ホストで動くマシンやOS // 仮想マシン
- 物理に対して論理
- 仮想化メリット
- 「安くて」
- ハードウェア資源を効率的に使える
- 「便利」
- ライブマイグレーションでVMを他のマシンに移動できる
- 無停止でメンテナンスしやすい
- ライブマイグレーションでVMを他のマシンに移動できる
- 「安くて」
頻出用語は地味に必要ですね。会話やドキュメントなどを書く中で、実機とかサーバーとか本物とか言っていると、いちいち理解するのに時間がかかってしまいます。
仮想化を支える技術
全体を掴んだところで、どのように仮想化を実現しているのか、その仕組みや技術のお話です。
仕組み
- 完全仮想化
- 今の標準
- ハードウェアを仮想化している
- 準仮想化に比べ、ゲストOSやドライバに手を加えない
- 準仮想化に比べ、仮想ハードウェアの層が増えるため、I/Oが発生する
- 今はCPUが仮想化に最適化して早くなっている
- デフォルトで無効化されていることが多い
- BIOSのセキュリティ設定にある
- 準仮想化
- 昔の技術
- ハードウェアを仮想化している
- OSが稼働するハードウェアを再現している
- 詳しく言うと、OSのドライバがハードウェアと認識すればよい
- さらにゲストOSのドライバにも手を加える
- なのでWindowsOSでは出来ない。。UNIX、Linux系OSで出来る
- なぜ、こんなことをやるのか?
- 動作が早くなる
- とはいえOSのアップデートの追従が手間
実装パターン
では、いまの標準となっている完全仮想化をどういう技術で実現しているのか、というお話です。
- ホストOS型
- 簡易なもので今日使うのもこれ
- ホストのメモリを使うので、それによってVMも制限される
- ホストOS上で動く1つのアプリケーションとして仮想化がある
- 結果遅くなるので、動作検証などで使うことが多い
- ハイパーバイザー型
- 業務で使うもの
- ホスト上のOSの代わりにVMを動かすだけの軽量のエンジンが入る
- VMの中にそのVMを動かすOSがある
- VMware vSphere(ESXi):ESXiも含めて管理サーバーとして使う
- なお Xen と Hyper-V はもとが一緒で共同開発チームを組んでいた
- コンテナ型
- 新しくて、今とても普及しようとしている
- 上の2つの仮想化に対して、仮想化ライクなもの
- Dockerというソフトウェアでコンテナ技術を使っている
- OSは1つでコンテナが分離独立した1つのアプリケーションとして動く
- ハイパーバイザー型との違いはコンテナにOSが無いので速い
とにかくホストからみてオーバーヘッドが無いようにVMを動かせるように進化してきているんですね。
VM作成実習
ここで実際に Virtual Box で VM を作ってみます。
通常の構築と違うのは、空のハードウェアを作るところと、OS越しに処理を高速化する補助ツールを入れることです。
演習手順
- Virtual Box を使って、仮想ハードディスク (HDD) を作成
- この仮想HDDは本物のHDDからは1つのファイルとして扱われる
- Linux (今回はTinyCoreというディストリビューションを使用) をインストールして起動
- VMの設定ファイルを確認
- VMとリアルなネットワークを設定
- ブリッジ接続: VMと直接NWを繋ぐ -> 外部に公開して他PCなどからアクセスできる
- VM毎にIPアドレスを割り当てるので数に制限があると厳しい
- ホストオンリー: VMと繋がるのはホストのみ -> VMから外部ネットワークには出られない
- NAT: ホストとNATを繋ぎ、NATに仮想ルーターを構築 -> 仮想ルーターとVMを接続
- VM -> 仮想ルーター -> ホスト -> 外部ネットワーク // 外部ネットワークからはVMにアクセスできない
- 内部ネットワーク: L2スイッチを使ってVMとVMを繋ぐ
- ブリッジ接続: VMと直接NWを繋ぐ -> 外部に公開して他PCなどからアクセスできる
仮想化の他の設定
- 通常、SANのような外部ストレージを使って、ネットワークを経由して外部にファイルを保存
- CPUやメモリ、レジスタ などと ディスク が分離される
- クラウドのように追加したり消したりが柔軟にできるようになる (!!)
- ディスクの領域も予め確保するのか、サイズに合わせて確保するのか選択可能
- 予め確保すると、連続してディスクが取れるので動作が速くなる <-> その分容量が必要
- バラバラにディスクに保存されるので動作が遅い <-> 初期の容量は少ない
- 手元で検証するだけなら後者のほうが良い
小並感ながらこのディスクを分けてしまうやり方はめちゃ 頭いい!! ですね。。
プライベートクラウド
最後にこの仮想化技術を使って、プライベートクラウドを実現できるので、それをどうやるのか解説いただきました。
- 新谷さんがホワイトボードに書いていたイメージ
新谷さんから最後に、「大規模なクラウドベンダーではホストの管理は富豪的とも言われるぐらい雑に増減を管理する。どれぐらいかというと、月間5万台とか8万台とかそんな単位でサーバーを入れたりする。そうしないとコンピューター制御できない」とのことでした。
なるほど、確かに人間業ではできませんし、となると、クラウドのDC内では今までの温かみのあるシステム管理者は何をしているのだろう、という気持ちになりました。
という、プライベートクラウドの説明をもって、コースは修了しました。
まとめ
仮想化について、なぜやるのか、どのようにやっているのか、やってみる、応用例という順番で学ぶ、まさしく王道の入門コースでした。
いまはGUIなど画面でポチポチするだけで、仮想化できるようになりましたが、なぜその設定が必要なのか、ということが理解できるものでした。
また、仮想化が進むことで、コンピュータそのものも CPU as a Service, Disk as a Service のように役割を分担できて、頭いいなぁ、という体験ができました。
仮想化だけでなく、プライベートクラウドってどのようにに実現しているの、という方にもオススメです!
label SE カレッジの無料見学、資料請求などお問い合わせはこちらから!!
label SEカレッジを詳しく知りたいという方はこちらから !!