Hyper-Vで始めるLinux環境構築これからLinuxを学ぶ人のために

Hyper-Vで利用できるOSはWindows OSだけではなく、Linuxも正式サポートされている。Hyper-V上で利用できるLinuxやLinux環境の構築方法、Hyper-Vと連携させるために必要なLinux Integration Services(LIS)の機能などを解説。

» 2014年05月29日 17時56分 公開
[打越浩幸,デジタルアドバンテージ]
これからLinuxを学ぶ人のために
Windows Server Insider

 

「これからLinuxを学ぶ人のために」のインデックス

連載目次

はじめに

 現在のITシステムでは、純粋にWindows OSだけという状態は少なく、クライアントではiPhoneやAndroidなどのスマートフォン、サーバでもLinuxやUNIXなどのシステムも多数導入されている。システム管理者としては、Windows以外のシステムにも精通していることが望ましいだろう。幸いなことに現在ではHyper-Vなどの仮想環境も整備され、たとえクライアントPCであっても、さまざまなOSやソフトウェアなどを無償で簡単に導入して、試用できる状況になっている。本稿ではこれからLinuxを学んでみたいWindows管理者を対象に、その第一歩としてHyper-V上にLinux環境を構築する方法について解説する。

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を組み込み済み
サポートされているLinuxディストリビューションとLISのバージョン
Linuxのディストリビューションやバージョンによっては、あらかじめLIS機能が組み込まれていることがある。ただしLISのどの機能がサポートされているかはそれぞれ違いがある。詳細は本文中に示したリンク先の情報を参照のこと。

Linux向けIntegration Services、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でサポートされている主要な機能(抜粋)

最近のLinuxディストリビューションには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をインストールしてみる

 さてそれではHyper-V上にLinuxをインストールしてみよう。Linuxをインストール可能なHyper-V環境としては、次のWindows OSがある(Hyper-V役割をインストールするため、いずれも64bit版Windows OSが必要)。

  • Windows Server 2008 R2
  • Microsoft Hyper-V Server 2008 R2
  • Windows 8 Pro
  • Windows 8.1 Pro
  • Windows Server 2012
  • Windows Server 2012 R2
  • Microsoft Hyper-V Server 2012
  • Microsoft Hyper-V Server 2012 R2

 ※Windows 7でもWindows Virtual PCを使えば32bit版のLinuxをインストールすることができるが、ここでは触れない。

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単位にしないと正しく動作しない場合があるので注意する。

 以上の他にも幾つか制約などがある。詳細については、以下の各ディストリビューションごとのインストール情報を参照していただきたい。ディストリビューションのバージョンアップなどに合わせて、これらの情報ページも随時更新されているので、常にチェックしておこう。

Ubuntuをインストールしてみる

 さてそれでは実際に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世代仮想マシンを作成する。

Linux用の仮想マシンの作成例 Linux用の仮想マシンの作成例
これはWindows Server 2012 R2のHyper-V上で新規仮想マシンを作成しようとしているところ。仮想マシンの作成後、CPUを2コア、DVDイメージをマウント、などの設定変更を行うこと。
  (1)第1世代の仮想マシンを選択。
  (2)メモリは512Mbytesの動的メモリを選択。
  (3)このディストリビューションではext4が使われるので、ウィザードで自動作成させた.vhdxファイルを使用してもよい。

 仮想マシンを作成したら、ダウンロードしたISOファイルをマウントして仮想マシンを起動する。DVDイメージから起動すると、最初に「Ubuntuを試す」と「Ubuntuをインストール」を選択できるので、前者を選ぶとLinuxが起動し、デスクトップ画面が表示される。

Ubuntu 日本語Remixの起動画面例 Ubuntu 日本語Remixの起動画面例
DVDイメージで起動すると、そのまま試用するか、仮想ハードディスクにインストールするかを選択できる。
  (1)機能をざっと試すだけなら、こちらを選択する。ただし書き込めるディスク領域がほとんどないので、アプリケーションによっては使えないものがあるので注意。
  (2)ディスクにインストールするにはこれを選択する。ウィザードに従って進めていけば、特に悩むことなくインストールを完了できる。インストールの途中で表示される「リリースノート」もよく読むこと。

 Linuxの操作方法についてはここでは触れないので、必要ならLinuxフォーラムの記事を参考にしたり、インターネットで検索したりしていただきたい。実際Linuxを使い始めるとインターネット検索での情報収集は必須となるので、その練習だと思えばよいだろう。

 Hyper-V関連の機能(モジュール)が稼働しているかどうかは、lsmodコマンドで確認できる。Ubuntuのデスクトップの左上にあるツールバー(ラウンチャー)からインストール済みのアプリケーションの一覧を検索し、「端末」ツール(LinuxのCUIコンソール)を起動して確認する。

Ubuntuのデストップ画面とHyper-V関連のモジュールの確認 Ubuntuのデストップ画面とHyper-V関連のモジュールの確認
LISのHyper-V関連のモジュールが組み込まれているかどうかは、lsmodコマンドなどで確認できる。
  (1)Linuxでは、「端末(GNOME Terminal)」アプリケーションを起動して操作することが多い。「端末」の起動は、(6)の方法を使うか、単に[Ctrl]+[Alt]+[T]キーを押せば起動できる。
  (2)lsmodコマンドで組み込まれているモジュールを確認する。egrepでLIS機能のみを抜き出している。
  (3)メモリの使用量を確認するfreeコマンド。
  (4)システムモニターツール。Windows OSのタスクマネージャーのようなもの。
  (5)DVD起動した場合でも、これをクリックするとUbuntuをハードディスクにインストールできる。
  (6)このUbuntuロゴをクリックして、検索窓に「terminal」と入力するか、ウィンドウ下部にある「A」のようなアイコンをクリックするとアプリケーションの一覧が表示されるので、「インストールされたすべてのアプリケーション」から「端末」を選んで起動する。
  (7)システムのシャットダウンはこのメニューから実行できる。Hyper-Vのツールバーにある「シャットダウン」ボタンを押してもよい。

 ディストリビューションによっては、手動で追加作業が必要なものがある。Ubuntuの場合は、先のTechNetページ の情報の通り、「sudo apt-get update」と「sudo apt-get install hv-kvp-daemon-init」コマンドを実行して、デフォルトで組み込まれているLISでは不足しているモジュールを追加しておく(ハードディスク上にインストールした場合。DVDのみで試用している状態では特に必要はない)。

Linux仮想マシン実行中の状態

 動的メモリを有効にして、LISをインストールした実行中のLinux仮想マシンのメモリの状態をHyper-Vの管理ツールで見ると次のようになっている。Linuxでも動的なメモリの割り当て(追加割り当てや不要なメモリの解放)が行われていることが分かる。

Linuxでの動的メモリサポート Linuxでの動的メモリサポート
これはHyper-V管理ツールの画面。LISを組み込むと、Linuxでも動的なメモリ管理が有効になる。
  (1)Linuxをインストールした仮想マシンを選択し、[メモリ]タブを開く。
  (2)初期メモリ。GUI版の64bit Ubuntuでは、最低でも1Gbyteのメモリが必要。
  (3)動的メモリを有効にしている。
  (4)現在仮想マシンに実際に割り当てられているメモリ。Hyper-Vのバルーンドライバが一部のメモリをハイパーバイザーに返却するとこの値が減り、Linuxから見たシステムメモリサイズよりも小さくなる。
  (5)システムに要求しているメモリサイズ。

 ところでHyper-V上でLinuxを動作させていると、仮想マシンのネットワークアダプターの「状態」表示に「低下(統合サービスのアップグレードが必要です)」と出ていることがある。だがこれは気にしなくてもよい。

仮想マシンのネットワーク状態表示 仮想マシンのネットワーク状態表示
Hyper-V上でLinuxを動作させていると、ネットワークアダプターに関してこのような表示が出ていることがあるが、これは特に気にしなくてもよい。
  (1)Hyper-Vの管理ツールで、実行中の仮想マシンの[ネットワーク]タブを選択する。
  (2)このような表示が出ているが、気にしなくてもよい。


 本稿では、Hyper-V上でLinuxをインストールして使う方法を簡単に紹介した。Linuxには多くのディストリビューションがあり、どれを使うか迷うかもしれない。だがすべてが同じカーネルコードをべースにしているし、どのディストリビューションでもほぼ同じツールやアプリケーションが使える、ユーザーが戸惑うほどユーザーインターフェースが大きく変わることはほとんどない(特にCUIは。例えば2001年の「Windowsユーザーに教えるLinuxの常識」という記事は今でもほぼそのまま有効だ)、などの理由により、一度操作方法を覚えてしまえば、どのディストリビューションでも、どのバージョンでも、長く、ずっと同じように使えるのが利点だろう。特に、スクリプトなどを駆使したバッチ的な処理だと、やはりWindows OS上のコマンドプロンプトやスクリプトなどよりも、便利なツールや環境が多く利用できる。そのため分野によっては、Windows OSよりLinuxの方が簡単に実現できる処理や機能も珍しくない。まずは仮想マシン上でよいので、Linuxの実行環境も用意しておき、普段からLinuxに触れられるようにしてだんだんと慣れていくことをお勧めしたい。

「これからLinuxを学ぶ人のために」のインデックス

これからLinuxを学ぶ人のために

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。