Linux KVM による 仮 想 化 環 境 の 構 築 早 川 正 人 A) 若 松 進 A) 大 下 弘 A) 野 崎 公 隆 A) 千 代 谷 一 幸 A) 雨 宮 尚 範 A) 松 岡 孝 B) A) 工 学 系 技 術 支 援 室 情 報 通 信 技 術 系 共 通 基 盤 技 術 支 援 室 情 報 通 信 技 術 系 B) 概 要 仮 想 化 技 術 の 1 つである KVM は Kernel-based Virtual Machine の 略 であり Linux カーネルに 仮 想 マシン の 管 理 機 能 を 統 合 したものである 完 全 仮 想 化 (フル バーチャライゼーション)による 仮 想 マシン 環 境 を 提 供 し 動 作 中 の 仮 想 マシンを 別 のホストに 無 停 止 で 移 動 させる ライブマイグレーション もサポートさ れていて 仮 想 マシンが 提 供 中 のサービスを 阻 害 することなく 物 理 マシンの 保 守 作 業 等 が 可 能 になる 今 回 は 工 学 研 究 科 技 術 部 研 修 において KVM ベースの 仮 想 化 サーバの 構 築 を 行 い ライブマイグレーショ ンの 動 作 確 認 を 実 行 したので 報 告 する 1 KVM について 一 般 的 に OS の 仮 想 化 は ほかの OS の 上 で 仮 想 マシンを 動 かすもの(ホスト OS 型 )と ハードウェアの 上 で 直 接 仮 想 マシンを 動 かすもの(ハイパーバイザ 型 )の 大 きく 2 種 類 に 分 かれる KVM は ハードウェア のエミュレーションやゲスト OS の 管 理 用 のフロントエンドとして QEMU を 使 い Linux の 上 でゲスト OS を 動 かすので 一 見 前 者 のホスト OS 型 に 見 えるが Linux 自 体 をハイパーバイザにしてしまうことを 考 慮 すると 後 者 のハイパーバイザ 型 といえる KVM は Linux Kernel にマージされ kernel 2.6.20 から 標 準 機 能 として 利 用 でき Red Hat Enterprise Linux 6 では 仮 想 化 技 術 の 中 心 に 据 えている なお CPU の 仮 想 化 支 援 技 術 を 利 用 しているので,Inte VT や AMD-V といった 仮 想 化 支 援 機 能 に 対 応 した CPU と,それらの 機 能 を 有 効 にできる BIOS が 必 要 となる 図 1. KVM のアーキテクチャ 図 2. 構 築 した 仮 想 化 サーバの 仕 様 2 実 験 環 境 の 構 築 仮 想 化 サーバ 構 築 用 には 表 1 に 示 すスペックの PC を 2 台 用 意 し NAS には Thecus N7700 Pro を 使 用 し た また.サーバ 用 の PC には オンボード NIC(eth1)の 他 に Intel NIC(eth0)を 追 加 ネットワークアド レスとして 10.10/16(NET2) 192.168.1/24(NET1)を 想 定 し ネットワークデバイスの 設 定 を 行 った
NIC 表 1. 仮 想 化 サーバ 用 PC の 部 品 構 成 ルータ パソコン PC パーツ CPU 詳 細 AMD PhenomII (4Core, 2.5GHz) ハブ Memory Transcend (PC3-10600, 8GB) 2 HDD Motherboard Seagate (7200rpm, 1TB) Biostar (Graphics, GbE, PCI-E) 仮 想 化 サーバ 1 ハブ 仮 想 化 サーバ 2 NAS 図 3. 実 験 環 境 の 構 成 2.1 ホスト OS のインストール ホスト OS となる Linux ディストリビューションは Red Hat Enterprise Linux をベースとして 高 い 互 換 性 を 持 ち 無 償 で 配 布 されている Scientific Linux(サイエンティフィック リナックス)を 選 択 し Scientific Linux の 公 式 ページ(http://www.scientificlinux.org/) 等 から Scientific Linux 6.1 の 64bit 版 の ISO イメージをダウンロ ードした ISO イメージからインストール 用 ディスク(DVD2 枚 )を 作 成 した 後 DVD から 起 動 して OS の インストール 作 業 を 行 った なお インストール 時 の 各 サーバの 設 定 内 容 を 表 2 に 示 す 表 2. 仮 想 化 サーバの 設 定 内 容 ホスト 名 SV1 SV2 IP アドレス NET1(eth0) 192.168.1.11 192.168.1.12 NET2(eth1) 10.10.1.11 10.10.1.12 /(ルート):100GB パーティション 構 成 swap:16gb /guest: 残 り 全 部 ( 最 大 容 量 まで 使 用 ) インストール パッケージの 選 択 Desktop を 選 択 し ソフトウェアのカスタマイズ で 仮 想 化 関 連 のパッケージを 選 択 する 2.2 ネットワークデバイスの 設 定 仮 想 化 サーバのネットワークデバイスとして Intel NIC を eth0 オンボード NIC を eth1 に 割 り 当 て IP ア ドレスを 設 定 し ホスト 名 でコンピューターを 同 定 できるように /etc/hosts ファイルに 記 載 した また ゲストマシンをサーバとして 利 用 するためには ネットワークブリッジでゲストマシンと 外 部 コンピュータ ーの 相 互 アクセスを 可 能 にする 必 要 があるため ブリッジインターフェース br0 を 作 成 し eth0 をブリッジ に 参 加 させた 設 定 はネットワークスクリプト ifcfg-br0 ifcfg-eth0 ifcfg-eth1 を 編 集 することで 行 った /etc/hosts への 追 記 iscsi1 10.10.1.10
sv1 192.168.1.11 sv2 192.168.1.12 sv10 10.10.1.11 sv20 10.10.1.12 /etc/sysconfig/network-scripts/ifcfg-br0 の 作 成 DEVICE=br0 ONBOOT=yes BOOTPROTO=none IPADDR=192.168.1.11 ( 仮 想 化 サーバ 2 は 192.168.1.12) NETMASK=255.255.255.0 GATEWAY=192.168.1.1 TYPE=Bridge /etc/sysconfig/network-scripts/ifcfg-eth0 への 追 記 BRIDGE=br0 /etc/sysconfig/network-scripts/ifcfg-eth1 への 追 記 ( 同 名 の 設 定 項 目 は 置 き 換 えた) BOOTPROTO=none IPADDR=10.10.1.11 ( 仮 想 化 サーバ 2 は 10.10.1.12) NETMASK=255.255.255.0 GATEWAY=192.168.1.1 2.3 NAS の 設 定 設 定 は NAS をネットワークに 接 続 した 後 NAS の 機 能 である Web 管 理 インターフェース( 図 4)を 用 い て 行 い iscsi ターゲットとして 5TB の 領 域 を 作 成 した なお 設 定 項 目 の 詳 細 を 表 3 に 示 す 表 3. NAS の 設 定 詳 細 Network 1 RAID iscsi Volume 設 定 項 目 設 定 値 IP 10.10.1.10 Netmask 255.255.0.0 RAID Level RAID 6 RAID ID RAID Data Percentage 50% Allocation 50% iscsi Target Volume Enable Target Name iscsi1 図 4. Web 管 理 インターフェース 2.4 iscsi デバイスのマウント iscsi デバイスを 利 用 できる 様 にするために 下 記 の 設 定 を 行 った 1) iscsi イニシエータ パッケージをインストールする # yum install iscsi-initiator-utils 2) サービスを 起 動 する # service iscsi start
3) 自 動 起 動 の 設 定 # chkconfig iscsid on # chkconfig iscsi on 4) iscsi ターゲットに 接 続 する(iSCSI ターゲットの IP は 10.10.1.10) # iscsiadm --mode discovery --type sendtargets --portal 10.10.1.10 10.10.1.10:3260,1 iqn.2006-01.com.openfiler:tsn.b5ffc134d692 5) iscsi ターゲットに 接 続 できているかを 確 認 する # iscsiadm -m node 10.10.1.10:3260,1 iqn.2006-01.com.openfiler:tsn.b5ffc134d692 6) ノードに 接 続 する # iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.b5ffc134d692 --login 7) fdisk でデバイスとしての 認 識 を 確 認 # fdisk -l 8) パーティションの 作 成 (/dev/sda を 使 用 ) # parted /dev/sda (parted) mklabel gpt (parted) mkpart パーティションの 名 前? [ ]? ファイルシステムの 種 類? [ext2]? ext3 (parted) mkpartfs パーティションの 名 前? [ ]? ファイルシステムの 種 類? [ext2]? ext3 (parted) quit 9) ファイルシステムの 作 成 (ファイルシステムの 容 量 により 相 当 な 時 間 を 要 する 場 合 がある) # mkfs.ext3 /dev/sda1 10) マウントと 確 認 # mkdir /iscsi1 # mount -t ext3 /dev/sda1 /iscsi1 # df h /dev/sda1 Filesystem サイズ 使 用 残 り 使 用 % マウント 位 置 /dev/sda1 88G 184M 83G 1% /iscsi1 11) 再 起 動 後 に 自 動 的 にマウントされるよう fstab を 編 集 する( 末 尾 に 一 行 追 加 ) # tail -1 /etc/fstab /dev/sda1 /iscsi1 ext3 _netdev 0 0 2.5 仮 想 化 サーバの 設 定 仮 想 化 サーバ 用 の OS(ゲスト OS)は CentOS5.6 の 32bit 版 を 使 用 し ホストとなるマシンのローカルディ スク 上 にインストールし 動 作 確 認 を 実 行 した 後 ライブマイグレーションの 動 作 テストのために iscsi 機 能 を 有 する NAS のディスク 領 域 にインストールした まず 仮 想 マシンの 管 理 ツールである 仮 想 マシンマネージャーを 起 動 する( 図 5) この 仮 想 マシンマネー ジャーには 現 在 インストールされている 仮 想 マシンが 表 示 されており 稼 働 状 況 を 確 認 することができる
また 仮 想 マシンの 起 動 停 止 もここで 行 うことができる 新 たに 仮 想 マシンを 追 加 する 場 合 は 新 しい 仮 想 マシンの 作 成 ボタンを 押 して 新 しい 仮 想 マシン ウインドウを 表 示 し 必 要 事 項 を 入 力 していく 図 5. 仮 想 マシンマネージャー 図 6. 新 しい 仮 想 マシンの 作 成 図 7. ローカルディスクへ 作 成 ステップ 1 で 新 規 に 作 成 する 仮 想 マシンの 名 前 を 入 力 したあとインストール 方 法 を 選 択 する 今 回 は 予 め ダウンロードしておいた ISO イメージを 使 用 するため ローカルのインストールメディアを 選 択 した ステップ 2( 図 6)では インストールメディアの 場 所 として ISO イメージを 使 用 を 選 び 参 照 ボタン を 押 して ISO メディアの 検 索 画 面 からイメージファイルを 指 定 する 次 に OS の 種 類 を Linux バージョ ンを Red Hat Enterprise Linux 5.4 or later と 選 択 した ステップ 3 で 仮 想 マシンに 割 り 当 てるメモリ 容 量 (512MB)と CPU の 数 (1)を 指 定 する ステップ 4( 図 7)ではインストールするストレージを 指 定 するが ホストマシンのディスク 上 にインスト ールするには コンピューターのハードディスク 上 にディスクイメージを 作 成 を 選 択 して 必 要 なディス ク 容 量 を 指 定 する また NAS へインストールするには 管 理 しているストレージか 他 の 既 存 のストレー ジを 選 択 する を 選 択 し 参 照 ボタンを 押 してストレージボリュームを 指 定 する ストレージボリュームの 検 索 または 作 成 画 面 ( 図 8)で iscsi に 対 して 新 規 ボリュームボタンを 押 して 図 9 の 作 成 画 面 に 移 り ボリ ュームの 名 前 と 使 用 容 量 (20GB)を 指 定 した 新 しく 作 成 したボリュームを 選 択 して 元 の 画 面 に 戻 る( 図 10) 図 8. ストレージボリューム 選 択 図 9. ストレージボリューム 作 成 図 10. NAS へインストール 図 11. ネットワーク 設 定 図 12. 仮 想 マシンマネージャー 図 13. ホスト OS のデスクトップ
ステップ 5( 図 11)では 接 続 するネットワークなどを 指 定 する ネットワークにはブリッジ 接 続 を 利 用 す るため ホストデバイス eth0 (Bridge 'br0') を 選 択 した そして 仮 想 化 の 種 類 として kvm アーキテクチ ャとして i686 を 選 択 した ここで 完 了 ボタンを 押 すとゲスト OS のインストールが 始 まる インストールが 終 わると 仮 想 マシンマネージャー( 図 12)に 新 たに 仮 想 マシンが 追 加 され ホストマシ ン 上 で 実 行 中 であることが 確 認 できる ( 図 13) 3 ライブマイグレーション ライブマイグレーションとは 稼 働 中 の 仮 想 マシンを 停 止 させずに 別 のホストマシンに 移 動 する 技 術 のこと であり ホストマシンを 停 止 させる 計 画 メンテナンス 時 に あらかじめ 仮 想 マシンを 別 のホストマシンに 移 行 させておけば 仮 想 マシンで 提 供 するサービスの 無 停 止 でのメンテナンス 実 施 が 可 能 になる ライブマイグレーションを 行 なうと あるホス ト 上 で 動 作 している 仮 想 マシン 上 のメモリイメ ージが 丸 ごと 別 のホスト 上 の 仮 想 マシンに 移 し 替 えられ 稼 働 中 の OS やアプリケーションソフ ト ネットワーク 接 続 などを 一 切 停 止 切 断 させ ることなく 新 しいホスト 上 で 動 作 を 継 続 するこ とができる 厳 密 には 切 り 替 えの 瞬 間 にミリ 秒 単 位 の 瞬 断 が 生 じるが ネットワークのセッション などが 切 断 されることは 無 く ユーザからは 移 動 が 行 われたことは 分 からない 図 14. ライブマイグレーションとシステム 構 成 3.1 ライブマイグレーションの 実 行 方 法 ライブマイグレーションを 実 行 するためには ホスト 1(sv1)でゲスト OS を 動 作 させ 仮 想 マシンマネ ージャーでゲストにカーソルを 合 わせ 右 クリックするとマイグレーションを 選 択 ( 図 15)することができ る その 後 でマイグレーション 先 のホスト(SV2)を 選 択 ( 図 16)して 実 行 する マイグレーションに 要 す る 時 間 は アプリケーションが 動 作 している 状 態 で 約 50 秒 程 度 誰 もログインしていない 場 合 は 36 秒 程 度 であった 図 15. ライブマイグレーションの 実 行 1 図 16. ライブマイグレーションの 実 行 2
図 17. ライブマイグレーションの 実 行 3 図 18. ライブマイグレーションの 実 行 4 3.2 ライブマイグレーションの 動 作 確 認 ライブマイグレーションの 動 作 確 認 を 次 の 方 法 で 行 った ゲスト OS 上 に DVDiso ファイル( 約 4GB)を 置 き それを Windows 端 末 上 の ftp クライアントで 取 得 するのに 6 分 程 度 を 要 する このデータ 転 送 中 にラ イブマイグレーションを 実 行 して 正 常 にファイルが 受 け 取 れるかどうかを 確 認 した その 結 果 受 信 ファ イルは 元 のものと 一 致 した したがって ライブマイグレーション 中 もとぎれることなくサービスが 行 える ことが 証 明 された ただ ライブマイグレーション 中 の 転 送 速 度 は 数 % 程 度 に 減 少 して( 図 20) 応 答 が 極 端 に 悪 くなった 次 に ゲスト OS のメモリ 使 用 量 を 変 更 した 場 合 とメモリ 割 り 当 て 量 を 変 更 した 場 合 で 測 定 を 実 行 した 図 19. ファイルサーバの 動 作 確 認 図 20. クライアント PC のネットワーク 使 用 率 4 まとめ 今 回 の 実 験 では 無 償 版 のソフトを 利 用 して 仮 想 化 サーバを 構 築 し 実 際 に 運 用 して 動 作 確 認 できた ま た ライブマイグレーションを 実 行 して その 動 作 を 確 認 した その 結 果 ライブマイグレーションの 実 行 時 間 はメモリの 最 大 使 用 量 に 依 存 する 事 がわかり なるべくサーバ 負 荷 が 少 ない 時 に 実 行 するのが 最 善 であ るとわかった また ゲスト OS に 割 り 当 てるメモリ 量 を 調 節 する 事 で ライブマイグレーションの 実 行 時 間 を 最 適 化 できる 事 がわかった
参 考 文 献 [1] 野 崎 ほか: プライベートクラウド 用 サーバの 構 築, 名 古 屋 大 学 工 学 研 究 科 工 学 部 技 報 Vol.14, 2012 年 3 月, PP. (2012 年 2 月 現 時 点 で 不 明 ) [2] クラウド Watch Linux のカーネルに 入 った 仮 想 化 技 術 KVM, http://cloud.watch.impress.co.jp/docs/column/virtual/20110523_447267.html, Impress Group, 2012 年 2 月 [3] クラウド Watch Linux 標 準 のサーバー 仮 想 化 機 能 KVM を 試 す, http://cloud.watch.impress.co.jp/docs/column/virtual/20110606_450502.html, Impress Group, 2012 年 2 月 [4] COMPUTERWORLD KVM Linux 標 準 の 仮 想 化 機 能 の 得 意 領 域 を 知 る, http://www.computerworld.jp/contents/111429/, IDG Interactive, 2012 年 2 月 [5] @IT Linux 標 準 の 仮 想 化 技 術 KVM の 仕 組 み, http://www.atmarkit.co.jp/flinux/rensai/kvm01/kvm01a.html, アイティメディア 株 式 会 社, 2012 年 2 月 [6] IT 用 語 辞 典, http://e-words.jp/, 株 式 会 社 インセプト, 2012 年 2 月