HCI」タグアーカイブ

ProxmoxVEのHCIクラスタ全体の仮想マシンのバックアップを物理ディスク1台で試みるアイディア

はじめに

本番環境のProxmoxVEのHCIクラスタの運用において、一般的にはHCIクラスタノードマシンと別途に専用のバックアップサーバーマシンを用意します。専用のバックアップサーバーを用意するのは可用性や冗長性や機密性といったセキュリティの観点からも非常に重要です。

HCIクラスタノード群とバックアップサーバーマシンを同時に用意できれば理想なのですが、しかしながら様々な事情でHCIクラスタの後にバックアップサーバー用意される場面も考えられます。

手元にProxmoxVE HCIクラスタは有るけども、バックアップ用の物理マシンが用意できてない・・・、でもバックアップサーバーを用意してクラスタのバックアップ検証は実施したい・・・!という時に、もしかしたら役に立つ、ProxmoxVEのHCIクラスタ全体の仮想マシンのバックアップを物理ディスク1台で試みるアイディアをご紹介します。

この方法は本番運用には向きませんが、検証段階では様々な条件が試せますので場面に合わせてご活用いただければ幸いです。

先にこの方法の概要だけ説明すると、

  1. ProxmoxVE HCIクラスタ上のバックアップ用仮想マシンに物理ディスクをパススルーし、
  2. マウントしたパススルー物理ディスクを仮想マシンOS機能でNFSエクスポートして、
  3. ProxmoxVE HCIクラスタ全ノードからNFS越しに仮想マシンを通じて物理ディスクにバックアップを行う

    という方法です。

方法

1. 物理ディスク1台をHCIクラスタノードの1台に搭載

バックアップ用の仮想マシン分の空リソースがあるノードに物理ディスクを搭載します。

※ホットプラグ可能なスロットを備えたケースでProxmoxVEクラスタが運用されているとスムーズにディスクの追加やメンテナンスができるのでとても便利です。
※当社では拡張性やメンテナンス性も含めてHCIに適したハードウェア選定のご相談・ご提案を承っています。是非お問い合わせください。

2. 仮想マシンを作成

HDDを搭載したノード中に、下記の条件を満たした仮想マシンを作成します。

  • 仮想マシンのOSはUbuntuなどの一般的なLinuxもしくはPBS(Proxmox Backup Server)を選択します。
    ※今回はUbuntuで検証しました。
    過去にPBSでの検証も行いましたがバックアップ可能でした。
  • 仮想マシンのOS用の仮想ディスク領域を用意する。
  • 仮想マシンのネットワークはすべてのHCIクラスタノードからアクセスできるように設計します。(ネットワークセグメントやファイアーウォールなどは環境に合わせて適切なセキュリティ対策を行ってください。)
  • 仮想マシンに搭載した物理ディスクをパススルーします。

仮想マシンにディスクをパススルーする方法は下記のページに詳細が記載されています。

https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM)

当社での検証時には下記のような仮想マシンのハードウェア構成になりました。

3. 仮想マシンのOSにパススルーしたディスクをマウントし、NFSエクスポートする。

今回の検証ではNFSを使用します。

なお、実際にお試しの場合はProxmoxVEに適合する形式でのエクスポートであればどの形式でも構いません。ProxmoxVEがサポートしているストレージ形式は多岐にわたります

今回のディスクのマウント方法やNFSエクスポートの方法は一般的なLinuxの方法で問題ありません。

参考
https://documentation.ubuntu.com/server/how-to/networking/install-nfs

仮想マシンのIPアドレスとエクスポートするディレクトリの情報はこの後使用するのでメモしておいてください。

4. ProxmoxVEのweb画面からNFSストレージを登録する

ProxmoxVEのWEB管理画面からデータセンター→ストレージ→追加→NFSと進みます。


追加:NFSというウインドウが表示されたら下記の様に入力します。

ID: わかりやすいストレージの名前
サーバー: バックアップ用仮想マシンのIPアドレス
Export: バックアップ用仮想マシンでNFSエクスポートしてるディレクトリ
内容:バックアップ
ノード:全部(無制限)

最後に追加ボタンを押します。

IDに入力した名称でストレージが登録されます。

5. バックアップを取る

バックアップスケジュールを設定します。

データセンター→バックアップ→追加を選択します。

作成: バックアップJobのウインドウが表示されます。

この画面にてすべてのノード上の仮想マシンがバックアップ対象として選択できることが確認できます。

この後、バックアップ設定を適切に設定したところ、スケジュール通りにバックアップが取れました。
手順としては以上です。

物理ディスク1台あればすべてのノード上の仮想マシンをバックアップ対象にできることが確認できました。

この方法は物理ディスクをパススルーしているため物理ディスクは物理ホストおよび仮想マシンに紐づいています。そのためバックアップ用の仮想マシンはライブマイグレーションには対応しておらず、可用性が通常のHCI上の仮想マシンに比べて劣りますが、OSの選定やスペックなど自由度が高いバックアップ検証ができます。

注意

この方法には重要な注意点があります。

バックアップ用の仮想マシンに自身のバックアップをしない様ご注意ください。

当社での検証中にすべての仮想マシンを対象にバックアップを行う設定をスケジュールしたところ、バックアップ用の仮想マシン自身をバックアップ対象とするバックアップが実行されてしまいました。結果としてバックアップ用の仮想マシンがハングしてしまいました。

バックアップ用の仮想マシンを除いた、全仮想マシンをバックアップしたい場合は下記の画面の様に選択モードを「選択したVMを除外」と設定した上で、バックアップ用仮想マシンにチェックを入れてスケジュールを設定するとバックアップ用の仮想マシンを除いた全仮想マシンのバックアップが設定できます。

上記のような対策を取ったうえでぜひ色々なバックアップ検証をお試しください。

最後に

当社ではハードウェアをご購入の際にProxmoxVEのインストールサービスを承っております。
ProxmoxVEのバックアップ用のハードウェアのご相談も受け付けております。

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

Windows10仮想マシンをWindows11仮想マシンにアップグレード (6)

はじめに

前回の第5回から続き、第6回目は手順6をご紹介します。

前回は既存ディスクから新規ターゲットディスクにWindowsのプライマリ領域をクローンしました。
今回の手順では新規ターゲットディスクのEFIシステムパーティションにWindowsのブートローダーをインストールしUEFIブートが可能な状態にします。

手順1:仮想マシンに Windowsの移行先の新規ターゲットディスク追加、パーティション作成
手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック
手順3: 仮想マシンにTPMデバイスの追加
手順4: 仮想マシンにEFIディスクの追加
手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン
手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成
手順7: ターゲットディスクからWindows10をUEFIブートで起動しディスクの管理からプライマリ領域の拡張を実行
手順8: Windows 11 インストール アシスタントを使用してアップグレード

手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成

一旦、元々の既存ディスクからWindowsを起動して、diskpartおよびコマンドプロンプトで新規ターゲットディスクのブートローダーの設定を行います。

仮想マシンのブート順を編集します。既存ディスクのscsi0 100GBディスクが一番になるように設定します。

仮想マシンを起動します。仮想マシンを起動するとscsi0のWindows10が起動します。
なお、この時点ではもともとの既存ディスクから起動しただけなのでまだlegacy bootでMBRパーティションのWindows10が起動します。

Windows10上のmsinfo32の画面

ディスクの管理を確認します。

ディスク0が新規ターゲットディスクでその中のDドライブがクローンしたWindowsのプライマリパーティションという形になります。

このDドライブのWindowsプライマリパーティションを起動させるためのブートローダーをディスク0先頭のEFIシステムパーティションにインストール/構成する必要があります。

Windows10上のディスクの管理の画面

ここからEFIシステムパーティションにブートローダを設定する作業に入ります。

まずはコマンドプロンプトを開きます。

diskpartを実行しlist diskでディスクのインデックスを確認します。

新規ターゲットディスク(ディスク0)を選択してlist partitionでパーティション構成を確認します。

EFIシステムパーティションであるpartition 1を選択してドライブレターTをアサインします。(ドライブレターは重複していなければなんでも良いです。今回は重複しにくくターゲットのTと意味があるようなレターとしました。)
アサインされたらdiskpartを終了します。

引き続きコマンドプロンプトで下記のコマンドを実行します。

bcdboot D:\Windows /s T: /f UEFI

これでディスク0の先頭のEFIシステムパーティションにディスク0のWindows10のプライマリパーティションのブート情報が作成されました。

ここまでくれば後は新規ターゲットディスクのGPTパーティション中のWindows10をSecure boot有効状態でUEFIブートする事が可能です。

次回はついに新規ターゲットディスクからWindowsを起動します。


最後に

当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

ProxmoxVEではVMwareESXiからもWindows10の移行を簡単に行う事が可能です。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

Windows10仮想マシンをWindows11仮想マシンにアップグレード (5)

はじめに

前回の第4回から続き、手順5をご紹介します。
手順5では既存の100GBソースディスクから手順1で用意した200GBのターゲットディスクの空き領域にWindowsのプライマリ領域のみをクローンします。

手順1:仮想マシンに Windowsの移行先の新規ターゲットディスク追加、パーティション作成
手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック
手順3: 仮想マシンにTPMデバイスの追加
手順4: 仮想マシンにEFIディスクの追加
手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン
手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成
手順7: ターゲットディスクからWindows10をUEFIブートで起動しディスクの管理からプライマリ領域の拡張を実行
手順8: Windows 11 インストール アシスタントを使用してアップグレード

パーティションのクローンにはGparted LiveというLinuxディストリビューションのツールを用います。グラフィカルユーザーインターフェイスを備えていますのでマウス操作でパーティションのクローンが完結できますのでLinuxになじみがない方でも操作がしやすいです。(後程詳細に説明があります。)

Gparted Liveイメージ図

手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン

準備1:GParted LiveのISOファイルをダウンロード

Windowsのプライマリ領域のクローンには先述のGParted Liveという、x86ベースのコンピュータ向けの小型の起動可能なGNU/Linuxディストリビューションを使用します。Gparted liveはGNU General Public License version 2の下で配布されているオープンソースソフトウェアです。

普段ProxmoxVEの管理WEBページにアクセスするPCにて下記の公式ページからGParted Liveのisoファイルをダウンロードします。
https://gparted.org/livecd.php
※当社での検証時にはgparted-live-1.7.0-1-amd64.isoをダウンロードして使用しました。

準備2:ProxmoxVEにGparted Live ISOファイルをアップロード

ProxmoxVEのweb管理画面を開いて、左カラムにて「ストレージ名(画像ではcephfs(pve03))」を選択し、隣のカラムの「ISOイメージ」を選択し、アップロードボタンを押します。

アップロードウィンドウが表示されたら、ファイルを選択ボタンを押し、先ほどダウンロードしたISOファイルを選択します。ファイル名が合っていることを確認して、アップロードボタンを押します。

アップロードが完了したらISOイメージの中にGParted Liveのファイルがあるか確認します。

準備3:仮想マシンにGparted Live ISOファイルをマウント

仮想マシンを選択し、ハードウェア→追加→CD/DVDドライブと選択します。

追加: CD/DVD Driveウィンドウが表示されたら、バス/デバイス とストレージとISOイメージを選択して追加ボタンを押します。バス番号とデバイス番号(IDE 2)を覚えておいてください。

準備4:仮想マシンのブート順を編集

CDドライブのGparted Liveが起動するように仮想マシンのブート順を編集。

ide2を1番にして有効にチェックを入れる。

ブート対象デバイスがide2のみになりました。これで次の仮想マシンの起動時にはマウントされているGparted Liveが起動してきます。

準備5:仮想マシン Gpartedを起動

Gpartedのbootメニューが表示されたらDefault Settingsで起動します。お好みで起動いただいて構いませんが本検証では日本語環境のグラフィカルユーザーインターフェイス設定で起動しました。

ここまでの準備を経て、クローン作業を始められます。

作業1:ディスクの確認

GpartedはLinuxディストリビューションですのでブロックデバイスは/dev/sdaや/dev/sdbという形で表示されます。今回の検証ではディスクのサイズが異なるのでどちらがソースディスクでどちらがターゲットディスクか見分けがつきますが、同じディスクサイズの場合、見分けがつきにくいです。ディスクの中のパーティション構成を見極めて/dev/sdaや/dev/sdbがそれぞれがどの仮想ディスクを示しているかを慎重に確認して取り間違いに注意して作業を進めます。

当社の環境では下記のように認識されていました。

/dev/sda(既存ディスク、ソースディスク)

赤枠で囲った部分が99.40GBのWindowsプライマリパーティションです。このパーティションがクローンのソース元(コピペ元)となります。

/dev/sdb(新ディスク、ターゲットディスク)

赤枠で囲った部分が199.62GiB分の未割り当て領域です。ここがクローンのターゲット先(コピペ先)となります。

作業2:ソースディスクのWindowsのプライマリ領域(/dev/sda2)をターゲットディスクにクローン

ソースディスクのWindowsのプライマリ領域(/dev/sda2)の上で右クリックをしてメニューを開きCopyを選択します。

ターゲットディスクの未割り当て領域の上で右クリックしてPasteを選択します。(普通のコピペと同等の操作です。)

サイズは後程調整するのでこの時点では特に変更せずにPasteボタンを押してOKです。

コピー&ペースト操作で/dev/sdbに「Copy of /dev/sda2」が作成されることを確認したら緑のレ点ボタンを押してすべての操作を適用します。

ここまでの操作にてコピー元の対象やペースト先の対象を間違えているとデータを失う場合があります。今一度、慎重に確認してください。

確認出来たらApplyを押します。

パーティションのコピーが開始されます。しばらく待ちます。100GBで8分程度でした。

完了したらこのように画面表示されます。

クローン後は200GBのターゲットディスクはこのようなパーティション構成となります。

– 先頭からEFIシステムパーティション
– 2番目がMSRパーティション
– 3番目がプライマリパーティション
– 残りが未割り当て

このパーティションの並びはMicrosoftが説明しているUEFIレイアウトパーティションとはまだ若干異なりますがこの後に続く各操作によって最終的にはMicrosoftの説明と同じパーティションの並びとなります。

Gpartedでの操作はこれで終了します。

右上ボタンを押してウインドウを終了します。

EXITアイコンをダブルクリックします。

shutdownを選んでOKボタンを押します。

手順5は以上です。次回に続きます。


最後に

当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

ProxmoxVEではVMwareESXiからもWindows10の移行を簡単に行う事が可能です。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

Windows10仮想マシンをWindows11仮想マシンにアップグレード (4)

はじめに

今回は第3回に引き続き具体的な手順のご紹介となります。今回は手順3~4の仮想マシンのハードウェア構成変更をご紹介します。

手順1:仮想マシンに Windowsの移行先の新規ターゲットディスク追加、パーティション作成
手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック
手順3: 仮想マシンにTPMデバイスの追加
手順4: 仮想マシンにEFIディスクの追加
手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン
手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成
手順7: ターゲットディスクからWindows10をUEFIブートで起動しディスクの管理からプライマリ領域の拡張を実行
手順8: Windows 11 インストール アシスタントを使用してアップグレード

手順3: 仮想マシンにTPMデバイスの追加

設定前

仮想マシンWindows10上のTPMの認識状況です。Powershell上でGet-TPMと実行すると確認できます。
TPM PresentがFalseとなっています。

設定

ProxmoxVEのWeb管理画面から対象のVMのハードウェア設定に進み、追加から「TPMの状態」を選択します。

追加:TPMの状態というウインドウが表示されるのでTPMストレージバージョンを選択して追加ボタンを押します。
ストレージは仮想マシンのディスクイメージを配置しているストレージと同じ場所が良いと思います。(当社の検証環境ではpool01がディスクイメージのストレージでした)

設定後

仮想マシンを一旦シャットダウンします。(シャットダウンしないとハードウェア構成の変更が反映されません。)
再び仮想マシンを起動させた後にPowershellで確認すると仮想マシンにTPMデバイスが認識されました。

手順2: 仮想マシンにEFIディスクの追加

設定

ProxmoxVEのWeb管理画面から対象のVMのハードウェア設定に進み、追加から「EFIディスク」を選択します。

EFIストレージを選択します。EFIストレージは仮想マシンのディスクイメージを配置しているストレージを選択しOKを押します。

仮想マシンを一旦シャットダウンします。(シャットダウンしないとハードウェア構成の変更が反映されません。)

手順3~4は以上です。次回に続きます。


当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

ProxmoxVEではVMwareESXiからもWindows10の移行を簡単に行う事が可能です。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php

Windows10仮想マシンをWindows11仮想マシンにアップグレード (3)

今回で3回目の「Windows10仮想マシンをWinsows11仮想マシンにアップグレード」というテーマの記事となります。
前回2回目は大まかな作業の順番をご紹介しましたが、今回から複数回に分けて詳細な手順をご紹介します。
今回は手順1から2の紹介です。

手順1:仮想マシンに Windowsの移行先の新規ターゲットディスク追加、パーティション作成
手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック
手順3: 仮想マシンにTPMデバイスの追加
手順4: 仮想マシンにEFIディスクの追加
手順5: gpartedによる既存ディスクのプライマリパーティションをターゲットディスクにクローン
手順6: ターゲットディスクのプライマリパーティションのブート構成をEFIシステムパーティションに作成
手順7: ターゲットディスクからWindows10をUEFIブートで起動しディスクの管理からプライマリ領域の拡張を実行
手順8: Windows 11 インストール アシスタントを使用してアップグレード


手順1:仮想マシンに Windowsの移行先の新規ターゲットディスクを追加

ディスク追加設定前

仮想マシンに仮想ディスクは1台のみ存在しています。SCSI0に100GBのディスクがpool01ストレージに配置されています。現在このSCSI0はMBRパーティションテーブルが作成されておりWindowsがインストールされています。

ディスク追加設定

ProxmoxVEのWeb管理画面から対象のVMのハードウェア設定に進み、追加から「ハードディスク」を選択します。

バス/デバイスを「SCSI」「1」に、ストレージを本検証では「pool01」(適宜環境のストレージ名に合わせて変更してください)、ディスクサイズを「200」GBに設定し追加ボタンを押します。

※注意:事前に仮想マシンWindows10側にvirtioのSCSIドライバをインストールしておかないと仮想マシンWindowsで仮想SCSIディスクを認識しません。もしSCSIドライバをインストールしておらず、SCSIが認識されない場合はSATAなどの別のバスタイプに設定するか、Windows10にSCSI用のドライバをインストールしてください。

ディスク追加設定後

200GBのSCSI1ディスクが追加されました。この200GBのディスクをプライマリ領域のクローン先(ターゲットディスク)として扱っていきます。

パーティションテーブル、パーティションの作成

一旦、既存のWindows10を起動してdiskpart機能を使用して追加したターゲットディスクに対してパーティションテーブル、パーティションの作成をしておきます。
プライマリ領域のクローンする前に作成しておかないと、パーティションの並びがきれいになりません。

仮想マシンWindows10を起動してdiskpartを管理者として実行し起動します。

list diskでディスクのインデックスを確認します。追加した200GBのターゲットディスクがディスク1である事が確認できます。

diskpartでは下記のコマンドを順次実行していきます。

select Disk 1 
clean
convert gpt
select partition 1
delete partition override
create partition EFI size=260
format quick fs=fat32 label="System"
create partition msr size=128

各行の実行内容としては下記の通りです。

ディスク1を選択(以後すべてディスク1に対する操作)
すべてのパーティションを削除
新たにGPTパーティションテーブルを作成
ディスク先頭のパーティションを選択(MBRパーティションが自動で作成されるため)
ディスク先頭のMBRパーティションを削除
EFIパーティションを260MBで作成
EFIパーティションをfat32でフォーマットしSystemというラベルを付与
MBRパーティションを128MBで作成

最終的にlist partitionで下記のようなパーティションが作成されていれば成功です。

手順2: ソースディスク(既存のディスク)のプライマリパーティションのNTFS整合性チェック

この後の手順では既存ディスクのプライマリパーティションをクローンしますがその前にプライマリパーティションのファイルシステムの整合性をchkdskコマンドでチェック・修復します。通常はプライマリパーティションのドライブレターはCが割り当たっていると思いますが、もし異なるレターが割り当たっている場合は環境に合わせて変更してください。

chkdsk C: /F

その後、仮想マシンを再起動してください。
再起動すると下記の通りCドライブのチェックが始まり、必要に応じて修復されます。

手順1-2は以上です。次回に続きます。


当社製のハードウェアをご購入の際にWindows10、Windows11を仮想マシンとして動作可能なProxmoxVEのインストールサービスを承っております。

ProxmoxVEではVMwareESXiからもWindows10の移行を簡単に行う事が可能です。
https://blog.systemworks.co.jp/?p=2080

ProxmoxVEのHCIの環境構築サービスも始めました。
是非お気軽にお問い合わせください。
https://www.systemworks.co.jp/hci.php