GMOインターネット株式会社 システム本部 樋口 勝一が担当するGMO最新ネット業界レポート-ソリューション編。
今回はHyper-Vとともに進化を続けている仮想ハードディスクについてご紹介いたします。
目次
大容量仮想ハードディスクからのブート
新しいHyper-Vとともに、仮想ハードディスクの機能やパフォーマンスもあわせて向上しています。仮想ハードディスク自体の読み取り、書き込み速度は、物理ハードディスクの性能とほぼ変わらないものとなっています。新しい仮想ハードディスク形式の「.vhdx」ファイルでは最大64TBまで作成することが可能になりました。

前回のレポートに登場した「UEFI」との組み合わせで、最大64TBのハードディスクからブートが可能になりました。このほかにもvhd(以降vhdxファイルを含む)ファイルを利用した様々な機能をご紹介します。
VHDファイルのマウント・アンマウント
Windows Server 2008 R2から、vhdファイルをWindowsの一つのドライブとしてマウントして利用することはできたのですが、PowerShellやdiskpartコマンド、スクリプトなどを利用するか、「コンピューターの管理」ツール – 「ディスクの管理」から「VHDの接続」を選択するなど、なかなか操作が面倒でした。

Windows Server 2012 からは、vhdファイルのマウント、アンマウントが簡単にできるようになりました。マウントをしたいvhdファイルをマウスで右クリックして「マウント」を選択するか、vhdファイル自体をダブルクリックするだけです。

事前にフォーマット済みのvhdファイルであれば、一瞬でマウントが完了し追加ドライブとして利用できます。

反対にマウントを解除する場合は、エクスプローラーから該当ドライブを右クリックで選択して「取り出し」を選択すればOKです。

事前にフォーマットをしていないvhdファイルをマウントしようとした場合は、フォーマットを促すメッセージが表示されますので、「コンピューターの管理」ツール – 「ディスクの管理」からフォーマットを実行してください。一度フォーマットしておけば、以後アラートは表示されません。

参考までにPowerShellのコマンドは以下となります。(管理者権限で実行)
Mount-VHD "D:\MyDisk.vhdx"
Dismount-VHD "D:\MyDisk.vhdx"
仮想マシン実行時でもディスク領域の拡張・縮小が可能に
仮想マシンに割り当てたvhdファイルをHyper-V上で仮想マシンが実行中であっても、vhdファイルのディスク領域の拡張、縮小が可能になりました。仮想マシンの設定メニューから、ハードディスクを選択して「編集」ボタンをクリックします。

「縮小」については、vhdファイルに縮小可能な領域があるときのみ、選択可能です。vhdファイルをHyper-Vマネージャーの「拡張」メニューを使って行った場合は、仮想マシンにログインした後、「コンピューターの管理」ツール – 「ディスクの管理」から「ボリュームの拡張」を選択することで、すぐに仮想マシンから拡張領域を利用することが可能になります。

VHDブートのすすめ
仮想ハードディスクのパフォーマンスの向上は、仮想マシンだけではなく、物理マシンのvhdブートでも顕著にあらわれています。VHDブートは、物理マシンを物理ディスク内のvhdファイルから起動する機能です。サーバーやPCの検証用などのマルチブート環境を簡単に構築できるといったメリットだけではなく、複数のクローンサーバーの展開や、バックアップ、リストアの簡略化にも有効な手段です。また、いくつか制限があるものの、Hyper-V上で作成した仮想マシンのvhdファイルを利用して、物理サーバーやノートPCへのV2P(仮想マシンから物理マシンへのシステム移行)にも利用できます。以下に具体的なvhdブートの設定方法を紹介します。
一番簡単だと思われる方法は、現在起動中のWindowsからvhdファイルを作成して、OSのインストールディスクから物理マシンを起動しvhdブート用のOSをインストールする方法です。まずは、vhdブート用のvhdファイルを作成します。「コンピューターの管理」ツール – 「ディスクの管理」から「vhdの作成」を選択します。

今回作成したvhdファイルは以下の通りです。

次にWindowsのインストールメディアを用意します。今回はWindows Server 2012R2のものを用意しました。物理マシンをインストールメディアから起動して、インストールメニューを表示させ「コンピューターを修復する」を選択します。

次に、「オプションの選択」から「トラブルシューティング」を選択します。

続いて「コマンドプロンプト」を選択して、表示させます。

コマンドは次の通り。

diskpart
list vol
select vdisk file=C:\VHDBoot.vhdx
attach vdisk
exit
setup
最後の「setup」コマンドでインストールが再開します。

インストール場所として、「割り当てられていない領域」と表示されている、アタッチしたvhdファイルにOSをインストールします。

インストールが完了すると、Windows Server の場合はこちらのWindows ブートマネージャーが起動します。

規定値ではブート名が既存のOS名と同じなので、OS起動完了後、ログインして、コマンドプロンプトを管理者権限で開き、「bcdedit」コマンドで設定変更することができます。今回は以下の設定にします。
bcdedit /set description "Windows Server 2012 R2 VHDBoot"

これでvhdブートの設定が完了です。
vhdブートの設定を削除する場合は、ブートマネージャーから削除するブートOS以外を選択して、OSを起動します。起動完了後、コマンドプロンプトを管理者権限で開き「msconfig」コマンドで、「システム構成」を起動します。「ブート」タブから、通常のブートOSを選択して、「既定値に設定する」を選択します。ブートの既定値が変更された状態で、vhdブートのOSを削除することができます。vhdファイルも不要でれば、ファイル自体を削除すれば完全にvhdブート環境を削除することが可能です。

VHDブートでV2P
上記のvhdブートの仕組みを利用し、既存の仮想マシンのvhdファイルを使って、物理マシンへシステム移行してみます。第2世代の仮想マシンのvhdファイルを利用する場合は、物理マシンが「UEFI」と「SCSIブート」をサポートしている必要があります。今回は一般的な「BIOS」と「IDEブート」をサポートしている第1世代の仮想マシンのvhdファイルを利用してV2Pを行ってみます。まずはvhdブートの設定を行う物理マシンに仮想マシンのvhdファイルをコピーします。続けて管理者権限でコマンドプロンプトを開き、以下のコマンドを実行します。

takeown /F "C:\VM01.vhdx"
bcdedit /copy {current} /d "VM01"
(注)”VM01″は起動時に表示される名前なので任意で指定可能
実行後、「エントリは{*****-*****-*****}に正しくコピーされました。」と実行結果が表示されるので、カッコも含めて {*****-*****-*****} をコピーする。
今回は {1b645280-3955-11e3-b9d1-b8f35ef6360f} となります。
bcdedit /set {1b645280-3955-11e3-b9d1-b8f35ef6360f} device vhd=[C:]\VM01.vhdx
(注)C:\ VM01.vhdx のパス指定が [C:]\VM01.vhdx となる。
bcdedit /set {1b645280-3955-11e3-b9d1-b8f35ef6360f} device vhd=[C:]\VM01.vhdx
コマンド実行後再起動すると、ブートOSの選択画面となるので、vhdブートしたいOSを選択します。

物理マシンの構成によっては、起動後にドライバの再設定などが必要になる場合がありますので、不足しているディスプレイドライバやネットワークドライバをダウンロードしてインストールする必要があります。これでV2Pの完了となります。
共有仮想ハードディスク
「共有仮想ハードディスク」は、Hyper-V上の仮想マシンでWindows Server の機能の一つ、「フェールオーバークラスタ」を構築する場合に利用することができます。これまでは、仮想マシンごとに「iSCSIイニシエーター」の設定を行い、iSCSI仮想ディスクを作成し、接続するといった、面倒な設定作業が必要でした。この作業を「共有仮想ハードディスク」を利用することで簡単に構築設定することができるようになりました。
大まかな接続設定は、スケールアウトファイルサーバー(SOFS)と呼ばれる高可用性ストレージ上の共有領域に、「共有仮想ハードディスク」としてvhdファイルを保存するだけです。各クラスタノードとなる仮想マシンは、このvhdファイルにUNCパスで接続します。

「高度な機能」で「仮想ハードディスクの共有を有効にする」にチェックを入れます。これだけでクラスタ用の共有ディスク領域として利用することができるようになります。

仮想マシンで構築する「フェールオーバークラスタ」については、別の回で構築方法から詳しく紹介したいと思います。
以上、今回はHyper-Vの進化とともに、仮想ハードディスクも進化し、利用方法が拡大しているポイントをご紹介しました。仮想マシンのハードディスクとしてだけで使うには、有り余る機能があるVHDです。是非ご利用ください。
*本文中に記載されている会社名および商品名・サービス名は、各社の商標 または登録商標です。
著書の紹介欄
Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!
できるPRO Windows Server 2016 Hyper-V
◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売
Windows Azure Pack プライベートクラウド構築ガイド
本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(458)
-
イベント(164)
-
カルチャー(38)
-
デザイン(21)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudflare
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- Desiner
- DeveloperExpert
- DevSecOpsThon
- DNS
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOソリューションパートナー
- GMOデジキッズ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- perplexity
- PHP
- PHPcon
- PHPerKaigi
- PHPカンファレンス
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- Spectrum Tokyo Meetup
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- アドベントカレンダー
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- マルチプレイ
- ミドルウェア
- モバイル
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- 京大ミートアップ
- 協賛レポート
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP