Hyper-Vで利用できるOSはWindows OSだけではなく、Linuxも正式サポートされている。Hyper-V上で利用できるLinuxやLinux環境の構築方法、Hyper-Vと連携させるために必要なLinux Integration Services(LIS)の機能などを解説。
現在のITシステムでは、純粋にWindows OSだけという状態は少なく、クライアントではiPhoneやAndroidなどのスマートフォン、サーバでもLinuxやUNIXなどのシステムも多数導入されている。システム管理者としては、Windows以外のシステムにも精通していることが望ましいだろう。幸いなことに現在ではHyper-Vなどの仮想環境も整備され、たとえクライアントPCであっても、さまざまなOSやソフトウェアなどを無償で簡単に導入して、試用できる状況になっている。本稿ではこれからLinuxを学んでみたいWindows管理者を対象に、その第一歩としてHyper-V上にLinux環境を構築する方法について解説する。
Hyper-VではゲストOSとしてWindows OS以外にもLinuxをサポートしている。サポートしているとは具体的には、ゲストOSとしてインストールして利用可能というだけではなく、「Linux Integration Services(以下LIS)」というサービスを使って、Hyper-Vの機能を最大限引き出すことが可能、という意味である。LISの詳細は後述するが、Hyper-V上でWindows OSを使う場合に使用する「統合サービス」のLinux版がこのLISである。
Linuxにはさまざまなディストリビューションがあるが、現在Hyper-V上での動作がサポートされているLinuxとそのバージョンとしては次のようなものがある(詳細は上のリンク参照)。
ディストリビューションとバージョン | LISのバージョン |
---|---|
CentOS/Red Hat Enterprise Linux 5.5〜5.8 | LIS 3.5をインストールする |
CentOS/Red Hat Enterprise Linux 5.9〜5.10 | LISを組み込み済み |
CentOS/Red Hat Enterprise Linux 6.0〜6.3 | LIS 3.5をインストールする |
CentOS/Red Hat Enterprise Linux 6.4以降 | LISを組み込み済み |
Oracle Linux(Red Hat互換Kernel)6.4以降 | LISを組み込み済み |
Oracle Linux UEK(Unbreakable Enterprise Kernel)R3 QU1以降 | LISを組み込み済み |
Debian 7.0以降 | LISを組み込み済み |
SUSE Linux Enterprise Server 11 SP2以降 | LISを組み込み済み |
Open SUSE 12.3以降 | LISを組み込み済み |
Ubuntu 12.04以降 | LISを組み込み済み |
LISは、Windows OS向けのHyper-Vサポートパッケージ(「統合サービス」パッケージ)と同様の機能をLinux向けに提供するものである。これがインストールされていると、統合サービスを組み込んだWindows OSと同様に、動的なメモリ管理や時刻同期、システムのシャットダウンやライブマイグレーションなど、さまざまな機能が有効になる。LISをインストールしなくてもLinuxを実行することは可能だが(LISがサポートされていない古いLinuxなどは、LISなしで運用するしかない)、可能な限りインストールしておきたいところだ。LIS機能の概要については以下のページや、後述する「LIS 3.5のダウンロードページ」から入手できる「Linux Integration Services v35.pdf」ファイルを参照していただきたい。
LISの主要な機能は次の通りである。
機能 | 概要 | |
---|---|---|
■コア機能 | ||
統合シャットダウン | Hyper-Vの管理ツールからのシャットダウン | |
時刻同期 | ホストシステムとの自動的な時刻同期 | |
ハートビート | Linux仮想マシンの動作状況のチェックと報告 | |
統合マウスサポート | Linux仮想マシンとホストOSでのシームレスなマウス移動 | |
統合ビデオデバイス | Hyper-Vの統合ビデオデバイスサポート(デフォルト解像度は1152×854) | |
KVPデータ交換 | KVP(Key-Value pair)機能を使って仮想マシンとホストでデータ交換が可能 | |
■ストレージ関連機能 | ||
VHDXリサイズ | 仮想マシンに割り当てたSCSI仮想ディスクをオンラインのままサイズ変更可能 | |
ライブ仮想マシンバックアップ | VSS(Volume Snap Shot)を用いて、オンラインのまま仮想マシンのバックアップが可能 | |
TRIMサポート | TRIMとは、不要になったデータブロックをディスクデバイスに通知する機能。SSDでよく使われ、SSDの寿命延伸やパフォーマンス向上に寄与する(「SSDでWindows 8システムを高速化する」も参照) | |
■メモリ関連機能 | ||
動的ホットアドメモリ | オンラインのままで仮想マシンいメモリを追加可能 | |
動的メモリ | 仮想マシン側の需要に応じて割り当てメモリサイズを増減可能 | |
■第2世代仮想マシンサポート | ||
UEFIブート | 第2世代仮想マシン(Windows Server 2012 R2およびWindows 8.1のHyper-Vで利用可能)における、UEFIブート機能 | |
セキュアブート | 第2世代仮想マシンのUEFIブート環境において、ブートコードのセキュリティなどを維持するセキュアブートをサポート(「UEFIサポートとセキュアブート」も参照) | |
LISでサポートされている主要な機能(抜粋) |
LISのソースコードはLinuxのカーネル開発コミュニティ向けに2009年7月から提供されており、現在ではLinuxのカーネルに標準で組み込まれている(Linux以外にも、例えばFreeBSD 10.0以降にも標準で組み込まれている)。そのため、基本的にはユーザーが手動でLISをインストールする必要はない。だが古いカーネルをベースにしているディストリビューションではLIS機能は組み込まれておらず、必要なら以下のサイトからダウンロードしてインストールする必要がある。提供されているLISの最新バージョンは原稿執筆時点ではVer.3.5である。
ここからダウンロードできるLIS 3.5のパッケージ(LinuxICv35.isoファイル)の内容は次のようになっている。これを見ると分かるように、Red Hat Enterprise Linux(RHEL)/CentOS 5.5〜6.3向けのLISのみが用意されている。これ以外の(比較的最近の)ディストリビューションでは、Linuxカーネルに含まれているLIS機能をそのまま利用すればよい。LISが含まれていないような古いディストリビューションやバージョンのLinuxでも、LISの機能(Hyper-VのSynthetic deviceなど)が使えないだけで、Hyper-V上で利用することは可能である(Hyper-Vのエミュレーション機能のみを利用することになる)。
※LIS 3.5のサポートリスト
E:\>dir /ad
ドライブ E のボリューム ラベルは CDROM です
ボリューム シリアル番号は 0289-B69B です
E:\ のディレクトリ
2013/12/13 03:42 <DIR> RHEL55 ……RHEL/CentOS 5.5向け
2013/12/13 03:43 <DIR> RHEL56 ……RHEL/CentOS 5.6向け
2013/12/13 03:43 <DIR> RHEL57 ……RHEL/CentOS 5.7向け
2013/12/13 04:15 <DIR> RHEL58 ……RHEL/CentOS 5.8向け
2013/12/14 06:14 <DIR> RHEL6012 ……RHEL/CentOS 6.0/6.1/6.2向け
2013/12/14 00:08 <DIR> RHEL63 ……RHEL/CentOS 6.3向け
2013/09/06 05:37 <DIR> _SVN
0 個のファイル 0 バイト
7 個のディレクトリ 0 バイトの空き領域
※RHEL/CentOS 6.4〜はデフォルトで組み込み済み。
これらのバージョンに該当するLinuxの場合は、そのインストール後に上記のDVDイメージをマウントし、各ディレクトリに移動してからinstall.shスクリプトを起動してLISをインストール後、システムを再起動する。
ちなみに、LISのソースコードは以下のサイトで参照できる。
さてそれではHyper-V上にLinuxをインストールしてみよう。Linuxをインストール可能なHyper-V環境としては、次のWindows OSがある(Hyper-V役割をインストールするため、いずれも64bit版Windows OSが必要)。
※Windows 7でもWindows Virtual PCを使えば32bit版のLinuxをインストールすることができるが、ここでは触れない。
Linuxをインストールするには、まずLinux向けの仮想マシンを作る必要がある。Windows OS向けと同じようにすれば用意すればよいが、以下の点には注意する。
■仮想マシンの世代は「第1世代」にする
Windows Server 2012 R2やWindows 8.1のHyper-Vでは仮想マシンの世代を選択できるが、Linuxを第2世代の仮想マシン上で動作させることはできないので、基本的には第1世代を選択する(Ubuntu 14.04以降など、ごく一部では第2世代仮想マシンをサポート)。なお起動用のディスクはSCSI接続ではなく、IDE接続タイプにすること(が望ましい)。
■ext3ファイルシステムを使う場合は注意
仮想マシンの作成ウィザードで仮想ディスクを作成させると、デフォルトではサイズ128Gbytes、内部ブロックサイズ32Mbytes、容量可変タイプの.vhdxファイルが作成されるが、この仮想ディスクとlinuxのext3ファイルシステムの組み合わせでは問題が発生することがある(.vhdxファイルのサイズが必要以上に大きくなることがある)。Linuxではext3を使わずext4のみを使うようにするか(これが推奨)、ブロックサイズを1Mbytes以下にした仮想ディスクを用意する。内部ブロックサイズが小さい仮想ディスクを作成するには、PowerShellで例えば「New-VHD "linuxdisk1.vhdx" -Dynamic -SizeBytes 127gb -BlockSizeBytes 1mb」のようにする。
※PowerShellで以下のコマンドレットを実行して.vhdxファイルを作成する
PS D:\LINUXVM1> new-vhd "linuxdisk01.vhdx" -sizebytes 128gb -dynamic -blocksizebytes 1mb | fl *size*
FileSize : 5242880
Size : 137438953472 …仮想ディスクサイズ
MinimumSize :
LogicalSectorSize : 512
PhysicalSectorSize : 4096
BlockSize : 1048576 …内部ブロックサイズ
Linuxのインストーラーがext3とext4のどちらのファイルシステムを使うかはディストリビューションやバージョン、インストール時の指定によっても変わるので、どちらか分からない場合は、ここで示した方法であらかじめ仮想ディスクを作成しておくとよいだろう。
■CPUコア数について
Linuxで利用するCPUコア数には特に制限はなく、ホストのHyper-Vによってのみ制限される。Windows Server 2008/R2のHyper-Vでは仮想マシンごとに最大4コア、それ以降のHyper-Vでは最大64コアまでとなっている(ただしホストCPUの物理コア数以下に制限される)。最初は2コアとか4コア程度割り当て、必要に応じて増やしていけばよいだろう。
■メモリサイズについて
仮想マシンに必要なメモリはLinuxの構成に大きく左右される。LinuxやUNIXと言えば、少ないメモリでも動作する軽量OSというイメージが強いし、実際CUIのみなら512Mbytes程度のメモリでも十分利用可能である。だが最近ではGUI(X Window System)を利用したデスクトップ環境やアプリケーションなどが一般的に使われているため、必要なメモリサイズも多くなっている。固定サイズメモリ割り当てを使うつもりなら、まずは最低でも1Gbyte、可能なら2Gbytes以上のメモリを割り当てておこう。Hyper-Vの仮想マシンの作成ウィザードはデフォルトのメモリサイズを512Mytesに設定するが、これだとメモリが大幅に不足して、例えば以下で紹介するUbuntu日本語Remixではまともにデスクトップ操作すらできなかった。最終的には、インストール構成に応じて必要なメモリサイズを算出し、設定していただきたい。使用メモリサイズは、「システムモニター」ツールやfree、topコマンドなどで確認できる。
なお動的メモリ機能を使う場合は128Mbytes単位にしないと正しく動作しない場合があるので注意する。
以上の他にも幾つか制約などがある。詳細については、以下の各ディストリビューションごとのインストール情報を参照していただきたい。ディストリビューションのバージョンアップなどに合わせて、これらの情報ページも随時更新されているので、常にチェックしておこう。
さてそれでは実際にLinuxをインストールして使ってみよう。どのディストリビューションでもよいので、適当なディストリビューションの配布サイトからISOファイルをダウンロードしておく。
なお特別な理由がない限り、最新のバージョンを入手しておくべきである。上のTechNetのディストリビューション別の解説ページや、LISと共にダウンロードできる「Linux Integration Services v35.pdf」ドキュメントなどを見ると分かるように、古いバージョンではインストール後にLISを手動でインストールしたり、追加の作業が必要なものがある。またLISがあらかじめ組み込まれている場合でも、一部機能が不足していて、やはり手作業が必要になるものもあるからだ。
今回はとりあえず、一番簡単にLinuxを試してみることができそうな、Ubuntuの日本語Remix版を起動してみよう。これは、ハードディスクにインストールする必要がなく、DVDイメージでブートさせてそのまま実行できるようになっているディストリビューションの1つである。
このページにある「Ubuntuのダウンロード」のリンクをクリックしてダウンロードページを開き、「日本語Remixイメージのダウンロード」のリンクをクリックする。
リンクをクリックすると幾つかのイメージファイルがダウンロードできるが、ここではUbuntu 14.04の64bit版(ファイル名「ubuntu-ja-14.04-desktop-amd64.iso」)を入手する。
これをHyper-V上で利用するために、次のような仕様の第1世代仮想マシンを作成する。
仮想マシンを作成したら、ダウンロードしたISOファイルをマウントして仮想マシンを起動する。DVDイメージから起動すると、最初に「Ubuntuを試す」と「Ubuntuをインストール」を選択できるので、前者を選ぶとLinuxが起動し、デスクトップ画面が表示される。
Linuxの操作方法についてはここでは触れないので、必要ならLinuxフォーラムの記事を参考にしたり、インターネットで検索したりしていただきたい。実際Linuxを使い始めるとインターネット検索での情報収集は必須となるので、その練習だと思えばよいだろう。
Hyper-V関連の機能(モジュール)が稼働しているかどうかは、lsmodコマンドで確認できる。Ubuntuのデスクトップの左上にあるツールバー(ラウンチャー)からインストール済みのアプリケーションの一覧を検索し、「端末」ツール(LinuxのCUIコンソール)を起動して確認する。
ディストリビューションによっては、手動で追加作業が必要なものがある。Ubuntuの場合は、先のTechNetページ の情報の通り、「sudo apt-get update」と「sudo apt-get install hv-kvp-daemon-init」コマンドを実行して、デフォルトで組み込まれているLISでは不足しているモジュールを追加しておく(ハードディスク上にインストールした場合。DVDのみで試用している状態では特に必要はない)。
動的メモリを有効にして、LISをインストールした実行中のLinux仮想マシンのメモリの状態をHyper-Vの管理ツールで見ると次のようになっている。Linuxでも動的なメモリの割り当て(追加割り当てや不要なメモリの解放)が行われていることが分かる。
ところでHyper-V上でLinuxを動作させていると、仮想マシンのネットワークアダプターの「状態」表示に「低下(統合サービスのアップグレードが必要です)」と出ていることがある。だがこれは気にしなくてもよい。
本稿では、Hyper-V上でLinuxをインストールして使う方法を簡単に紹介した。Linuxには多くのディストリビューションがあり、どれを使うか迷うかもしれない。だがすべてが同じカーネルコードをべースにしているし、どのディストリビューションでもほぼ同じツールやアプリケーションが使える、ユーザーが戸惑うほどユーザーインターフェースが大きく変わることはほとんどない(特にCUIは。例えば2001年の「Windowsユーザーに教えるLinuxの常識」という記事は今でもほぼそのまま有効だ)、などの理由により、一度操作方法を覚えてしまえば、どのディストリビューションでも、どのバージョンでも、長く、ずっと同じように使えるのが利点だろう。特に、スクリプトなどを駆使したバッチ的な処理だと、やはりWindows OS上のコマンドプロンプトやスクリプトなどよりも、便利なツールや環境が多く利用できる。そのため分野によっては、Windows OSよりLinuxの方が簡単に実現できる処理や機能も珍しくない。まずは仮想マシン上でよいので、Linuxの実行環境も用意しておき、普段からLinuxに触れられるようにしてだんだんと慣れていくことをお勧めしたい。
Copyright© Digital Advantage Corp. All Rights Reserved.