Help us understand the problem. What is going on with this article?

Hyper-V Server 2019で仮想マシンのホットバックアップとリストアをする

はじめに

宅サバの仮想マシンをどうやってバックアップしようか悩んでいました。
以下の方法を使えば簡単にできます。

環境

  • Samsung Chromebox Series 3
    • 8gbのメモリ
    • システムストレージ:USB SSD 120GBにHyper-V Server 2019をインストール
    • バックアップストレージ:USBメモリが差し込んである1

本体のバックアップ

Filezillaで定期的にCloneするしかなさそう。と思ったが同様の方法でできそう。

wbadmin

この方法では、復元先はバックアップしたハードディスクとまったく同一のものにしかリストアできません。ストレージが壊れたから別のものに復元、とはなりえません。
少なくとも、バックアップはできました。
リモートのネットワークディスクに保存するなら、
cmdkey /add 192.168.1.xx /user:ユーザー名 /pass:パスワード でログオン資格情報を保存しよう。

その他

それ以外なら、Microsoft Hyper-V Server 2016でEaseUS Todo Backup Serverを使ってみたをどうぞ。

仮想マシンの作成

isoを落とす

wget的な感じでダウンロードします。2

Invoke-WebRequest -Uri http://releases.ubuntu.com/18.04/ubuntu-18.04.3-live-server-amd64.iso -OutFile C:\dl\ubuntu-18.04.3-live-server-amd64.iso

作成

ネットワーク等を作っておいて以下の画像のように(必須かは不明)
image.png

image.png

OSのインストール

インストールしておきます。
/bootをext4、そのほかをxfsとしました。
ここでは、ユーザー名をhani、パスワードはpasswd2020です。

また、dockerをインストールしておき3、nginxのコンテナを置いておきます。

sudo su
apt update
apt install curl
curl -fsSL https://get.docker.com/ | sh
docker create -P --name nginx bitnami/nginx:latest
docker start nginx 

hyperv-daemonのインストール

ホットバックアップには、ゲストにデーモンがないといけません。

wget http://ftp.jp.debian.org/debian/pool/main/l/linux/hyperv-daemons_5.3.15-1_amd64.deb
dpkg -i hyperv-daemons_5.3.15-1_amd64.deb
reboot

前準備はこれで完了。起動したままにしておきます。

バックアップ

バックアップする仮想マシンを探す

ServerManagerからリモートデスクトップでログイン後、cmd.exeでVM一覧を見ます。4

wbadmin get virtualmachines
C:\Users\Administrator>wbadmin get virtualmachines
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

VM 名: ubutest1
VM キャプション: Online\ubutest1
VM 識別子: 01CC1042-D20F-4F6B-BA4A-4A821F010709

VM 名: Host Component
VM キャプション: Host Component
VM 識別子: Host Component

バックアップ先のストレージを探す

C:\Users\Administrator>wbadmin get disks
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

ディスク名: SUNEAST SSD SE800 mSATA 128GB
ディスク番号: 0
ディスク ID: {16bd9aaaafbb}
総領域: 119.24 GB
使用領域: 44.51 GB
ボリューム: EFI システム パーティション[(ボリューム ラベルなし)],D:[]

ディスク名: JMicron Tech SCSI Disk Device
ディスク番号: 1
ディスク ID: {8cfa6aaaa00}
総領域: 111.79 GB
使用領域: 14.11 GB
ボリューム: E:[boot],C:[os]

ディスク名: EVTRAN E 26S SCSI Disk Device
ディスク番号: 2
ディスク ID: {8cfaaaaaaa}
総領域: 118.00 GB
使用領域: 3.98 GB
ボリューム: F:[ボリューム]

バックアップ!

cmd.exeで以下のように実行します(f: はバックアップ先のSSDです。ubutest1はバックアップ対象の仮想サーバー。)

wbadmin start backup -backupTarget:f: -hyperv:ubutest1

image.png

image.png

こんな感じでバックアップできます。

リストア

USBストレージをPCに差し込みます。

バックアップ一覧を表示

バックアップ内容を確認します。(2回バックアップをやってみていました。)

C:\Users\Administrator>wbadmin get versions
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

バックアップ時間: 2019/12/31 20:59
バックアップ対象: 1394/USB ディスク ラベル付き ボリューム(F:)
バージョン識別子: 12/31/2019-11:59
回復可能: ボリューム, ファイル, アプリケーション, 仮想マシン
スナップショット ID: {ea92ce78-9d8c-4461-a292-d63cd2013e82}

バックアップ時間: 2019/12/31 22:59
バックアップ対象: 1394/USB ディスク ラベル付き ボリューム(F:)
バージョン識別子: 12/31/2019-13:59
回復可能: ボリューム, ファイル, アプリケーション, 仮想マシン
スナップショット ID: {3c5521e7-eab2-4604-8417-ba86337b4fe1}

使うバックアップの詳細を確認。

wbadmin get items -version:「バージョン識別子」
 PS C:\Users\Administrator\Documents> wbadmin get items -version:12/31/2019-13:59
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

ボリューム ID = {8cfa60d6-0000-0000-0000-107d00000000}
ボリューム 'os'、C: にマウント
ボリューム サイズ = 109.83 GB
回復可能 = 選択されたファイル

アプリケーション = HyperV
VM 名: ubutest1
VM キャプション: Online\ubutest1
VM 識別子: 01CC1042-D20F-4F6B-BA4A-4A821F010709
合計サイズ: 3.20 GB

 PS C:\Users\Administrator\Documents>

(実験のために)サーバーを消す

サーバーを消しておきます。リストアのテストなので。

(powershellで)

Stop-VM ubutest1 -Force
Remove-VM ubutest1

リストア!

復元してみます。

PS C:\Users\Administrator> wbadmin start recovery -version:12/31/2019-13:59 -itemtype:hyperv -items:ubutest1
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

警告: 別の場所に回復しようとしている仮想マシンが、このホストからバックアップ
されたものである場合、この操作により、元の仮想マシン (まだ存在する場合)
は削除され上書きされます。

アプリケーション HyperV の回復を選択しました。
次のコンポーネントが回復されます:

警告: 回復後にネットワークの設定が異なっていると、仮想マシンが起動しない
場合があります。回復が完了したら、起動する前に、Hyper-V マネージャー
を使用して仮想マシンのネットワーク設定を確認してください。

VM 名: ubutest1
VM キャプション: Online\ubutest1
VM 識別子: 01CC1042-D20F-4F6B-BA4A-4A821F010709

アプリケーション HyperV を回復しますか?
[Y] はい [N] いいえ y

回復するコンポーネント ubutest1 (Online) を準備しています...
コンポーネント ubutest1 (Online) のファイルを回復中に、(3%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(17%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(26%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(37%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(47%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(57%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(68%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(78%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(91%) をコピーしました。
コンポーネント ubutest1 (Online) のファイルを回復中に、(100%) をコピーしました。
コンポーネント ubutest1 (Online) を回復しています。
コンポーネント ubutest1 (Online) が正常に回復されました。
回復操作が完了しました。
正常に回復されたファイルのログ:
C:\Windows\Logs\WindowsServerBackup\ApplicationRestore-31-12-2019_14-09-18.log

回復操作の概要:
---------------

コンポーネント ubutest1 (Online) が正常に回復されました。
PS C:\Users\Administrator>

バックアップを消す

その他

「ユーザー資格情報の委任を有効化しますか?」のダイアログを消すには、このコマンドを実行します。5

image.png

このダイアログはアカウントが間違っているのでしょう。

!「Hyper-V マネージャーで資格情報を指定して Hyper-V に接続する」image.png

「この機能は、ポータブルなワークステーション環境では使用できません。」になった場合

[192.168.~~~~]: PS C:\dl> wbadmin start backup -backupTarget:C:\bpdir -hyperv:ubutest1
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

エラー - この機能は、ポータブルなワークステーション環境では使用できません。

これはなんでしょう、当環境ではUsbにosをいれてるせいかもしれない。6

原因としては、Windows To Go 環境への誤認が起きていると考えられます。
(中略)
以下のレジストリ値を削除するか、データを 0 に設定して Windows を再起動することで回避できると思います。
キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
名前 : PortableOperatingSystem

リモートデスクトップで上記のレジストリを変えて shutdown /r 。

regedit

0にしてみた。
image.png

バックアップに失敗する

同一ストレージへのバックアップはできません。7
あくまでも、別ストレージのrootフォルダにしか保存できません。

C:\Users\Administrator>wbadmin start backup -backupTarget:C: -hyperv:ubutest1
wbadmin 1.0 - バックアップ コマンドライン ツール
(C) Copyright Microsoft Corporation. All rights reserved.

ボリューム情報を取得しています...
バックアップの実行時に、バックアップに含まれている仮想マシンは
一時的に保存済みの状態になる場合があります。
これにより HyperV\ubutest1 が C: にバックアップされます。
バックアップ操作を開始しますか?
[Y] はい [N] いいえ y

C: へのバックアップ操作を開始しています。
バックアップに指定されたボリュームのシャドウ コピーを作成しています...
バックアップ操作の概要:
-----------------------

バックアップ操作が完了する前に停止しました。
バックアップ操作が完了する前に停止しました。
エラーの詳細: コンポーネントの重要なボリュームのスナップショットに失敗しました。
正常にバックアップされたファイルのログ:
C:\Windows\Logs\WindowsServerBackup\Backup-31-12-2019_11-39-57.log

バックアップに失敗したファイルのログ:
C:\Windows\Logs\WindowsServerBackup\Backup_Error-31-12-2019_11-39-57.log

エラー - 共有復元ポイントの操作でエラーが発生しました (0x8100010c)
スナップショットを作成するための有効なコンポーネントまたはボリュームがありません。


コンポーネントの重要なボリュームのスナップショットに失敗しました。

C:\Users\Administrator>
\Windows\Logs\WindowsServerBackup\Backup_Error-31-12-2019_11-39-57.log
ライターのエラー
ライター Id: {66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}
インスタンス ID: {44EAD40E-A64B-49AE-A808-7BCDF3B91B45}
ライター名: Microsoft Hyper-V VSS Writer
ライターの状態: 0
エラー結果: 81000112
アプリケーション結果: 0
アプリケーション メッセージ: (null)
   コンポーネント: 01CC1042-D20F-4F6B-BA4A-4A821F010709
   論理パス: 
   コンポーネント結果: 8100010F
   コンポーネント メッセージ: コンポーネントで、除外されているボリュームのパスが報告されています。 (0x8100010F)
*-----------------------------*
アプリケーションのバックアップ
ライター Id: {66841CD4-6DED-4F4B-8F17-FD23F8DDC3DE}
   コンポーネント: 01CC1042-D20F-4F6B-BA4A-4A821F010709
   字幕     : Online\ubutest1
   論理パス: 
   エラー           : 8078001D
   エラー メッセージ   : 操作が完了する前に終了しました。
*-----------------------------*
\Windows\Logs\WindowsServerBackup\Backup-31-12-2019_11-39-57.log
アプリケーションのバックアップ
*-----------------------------*

仮想マシンを立ち上げて確認

いけました。
image.png

参考

これに沿ってやった。
https://yun-craft.com/software-crafts/hyper-v-server-2016-6#4

関連


  1. 使っているUSB: https://qiita.com/haniokasai/items/d617299f824791c489ab 

  2. 「PowerShell で wget のようにファイルダウンロードをしたい」https://tech.guitarrapc.com/entry/2013/07/09/220710 

  3. 「Docker のインストール」 http://docs.docker.jp/linux/step_one.html 

  4. 「Hyper-V と Windows PowerShell の使用」https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/try-hyper-v-powershell 

  5. 「Hyper-V マネージャーで資格情報を指定して Hyper-V に接続する」https://www.vwnet.jp/Windows/WS16TP2/HVMan/Credential.htm 

  6. 「「この機能は、ポータブルなワークステーション環境では使用できません」と出て、バックアップ機能が使えない。 」 https://answers.microsoft.com/ja-jp/windows/forum/windows_10-update-winpc/%e3%81%93%e3%81%ae%e6%a9%9f%e8%83%bd%e3%81%af/65800e93-03de-42df-81d0-4990c44a1136 

  7. 「Backing up Hyper-V VMs using “wbadmin” failing on Windows Server 2012」https://serverfault.com/questions/604442/backing-up-hyper-v-vms-using-wbadmin-failing-on-windows-server-2012 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away