Windows Server Backup 複数のディスクにバックアップ

2022-03-02 | コメント(0)

新しい Windows Server を作成したので、この機会に Windows Server Backup の設定方法をエントリーします。

この説明でのサーバーは Windows Server 2022 ですが、少なくとも Windows Server 2008 以降、設定方法や設定画面は、ほとんど同じです。

バックアップ先のディスクは複数台として2台とします。3台以上でも設定方法は同じです。

複数のディスクそれぞれに、日々バックアップを取ります。片側のディスクに偏ることにはなりません。

直接的な wbadmin start コマンドは使わず、バックアップ スケジュールはGUI操作で作ります。

ディスクのオンライン/オフラインを切り替えるために、タスク スケジューラーは使います。

Hyper-V上の仮想マシンで設定しますが、実機オンプレミスでも考え方は同じです。

※当方、Windows Server は、Windows Server 2012 の頃から、この方法でバックアップしています。

バックアップ&リストアは、バックアップした時の状態に復元することが目的です。通常はディスク破損の備えとして、壊れた時に、昨日の状態に復元するということが多いと思います。

リアルな状態(顧客サービスや、株, 為替の売買データなど)を保全するのは、バックアップ&リストアでは無く RAID1 や RAID5以上、もしくはデータ冗長化に対応しているクラウドサービスを検討してください。

リアル状態を保全する際、ハードウェア RAID カード(パリティ計算器)の場合は、ディスク破損以外にも、RAID カード自体が壊れることも想定して、同一型番の RAID カードのストックが必要です。用意できない場合は ハードウェア RAID 5 は検討しないほうが良いです。

Windows Server Backup は、直接的には wbadmin.exe start backup ... というコマンドで実行されるのですが、GUIでバックアップ スケジュールのオプションを設定していると、同等のコマンドオプションを調べるのがどうしても面倒になってきてしまうので、GUIでバックアップスケジュールを設定しています。

バックアップ先には、バックアップ専用のハードディスクで複数のディスクを設定します。が、複数のディスクを設定したからとしても、領域一杯になるまで同じディスクにバックアップが取られます。

これはつまり、バックアップ先のディスクが壊れたら、いままで取り貯めたバックアップも壊れることになるので、複数のディスクを設定している意味も薄れます。

なんだそれ!?と思うところですが、この動作は Windows Server 2008 / 2012 / 2016 / 2019 から 2022 になっても同じです。

そこで結局、wbadmin.exe のコマンドをタスクスケジュラーで組むことになったりするのですが、コマンドを組むのがやはり面倒なので、バックアップ スケジュールはGUIで設定します。

Windows Server Backup の動作は、接続されているディスクにバックアップを取ります。ということは、ディスクを接続しなければ良いので、ディスクをオフラインにして、バックアップ先のディスクだけオンラインにすれば良いのです。

バックアップ先ディスクとして、Disk 1, Disk 2 があるとしましょう。

PowerShellで、ディスクのオンライン/オフラインを設定するコードを下記のように組めば、Disk 1 をオンラインに、Disk 2 をオフラインにできます。

Set-Disk -Number 1 -IsOffline $false
Set-Disk -Number 2 -IsOffline $true

逆に、Disk 1 をオフラインにして、Disk 2 オンラインにする場合は次の様になります。

Set-Disk -Number 1 -IsOffline $true
Set-Disk -Number 2 -IsOffline $false

バックアップ先ディスクが3台ある場合は、次のようになります。

Set-Disk -Number 1 -IsOffline $false
Set-Disk -Number 2 -IsOffline $true
Set-Disk -Number 3 -IsOffline $true

このPowerShellのコードが、バックアップが実行される10分前などに実行させるように、タスク スケジュールを組むことで、それぞれのディスクに分散させてバックアップを取ります。

例えばスケジュールが、1:00 と 3:00 の1日2回としたら、

0:50 に、ディスク 1 をオンラインに、ディスク 2 をオフラインに

2:50 に、ディスク 1 をオフラインに、ディスク 2 をオンラインに

という具合です。

1日何回バックアップを取るかは、バックアップ先ディスクの台数に比例します。

例えば、バックアップ先ディスクが3台であれば、時間平均で8時間毎ですが、日中は避けて夜間に寄せるなど工夫します。アクセスが少ないサーバーなら日中でも良いとは思います。

PCも複数あるとすると、バックアップが同時に重ならないよう、時間をそれぞれずらします。

結局のところ、タスク スケジュールを組むことにはなるので、wbadmin.exe コマンドを仕込むか、ディスクのオンライン/オフラインのものを仕込むかの違いになります。

当方、Windows Server 2012 の頃から、オンライン/オフラインの切り替え方法でバックアップを取っています。

バックアップに頼る機会はそうそう無いので、保険的なものですが、実際に昨年ディスクが1台壊れたこともあり、バックアップを取っていたので、この時は本当に助かった。もしバックアップを取っていなかったら、SQLサーバーのデータが飛んでいたところで、TFS/Azure DevOpsのデータがロストするところでした。

カテゴリ:

コメントする

※HTMLタグは使えません

Author

あきちゃん

主に、.NETでWebシステムの設計と開発をしています。
(茨城県在住, 都内勤務)
プロフィール