第8章: ストレージ管理とバックアップの自動化
1. この章で解説する主要な技術・概念(箇条書き)
- ストレージの構成と管理方法
- ベーシックディスク/ダイナミックディスク、MBR/GPTの選択基準
- PowerShellでのディスク初期化・パーティション作成・フォーマット
- ディスクの初期化、パーティション作成、ボリューム管理
Get-Disk
,Initialize-Disk
,New-Partition
,Format-Volume
の詳細- Server Core環境でのディスク増設・交換フロー
- Storage Spaces(ストレージプールと仮想ディスク)の運用
New-StoragePool
,New-VirtualDisk
, 冗長化の設定(Simple, Mirror, Parity)- 再構成やディスク拡張時の注意点
- バックアップおよびリストアの自動化スクリプト
- Windows Server Backup(WSB)との連携、
wbadmin
コマンドの活用 - スクリプトでスケジュール実行し、レポートをメール送信する方法
- Windows Server Backup(WSB)との連携、
- ストレージのパフォーマンス最適化
- Trim/Defragの自動化、ディスクI/O監視、ストレージプール再同期
- ReFSのメリット・制限
- 障害対策とリストアの考慮
- ディスク障害への対策、Storage SpacesやRAID構成のベストプラクティス
- バックアップ検証(リストアテスト)の重要性
2. ストレージの構成と管理方法
2-1. ベーシックディスク vs. ダイナミックディスク
- ベーシックディスク: ほとんどのシナリオで推奨される標準形式。主にパーティション(MBR/GPT)を切って運用。
- ダイナミックディスク: ソフトウェア的に複数ディスクを束ねてVolumeを形成できるが、Storage Spacesが登場した今では一般的にそちらを推奨。
- Windows Server 2022以降では、ストレージプール(Storage Spaces)の活用が主流となり、ダイナミックディスクを使うケースは減少傾向。
2-2. MBRとGPTの選択基準
- MBR(Master Boot Record):
- 最大2TBの制限、プライマリパーティション4つまでなど歴史的制約がある。
- GPT(GUID Partition Table):
- 2TB超のディスクにも対応、UEFIブートが前提、パーティション数の制限が事実上無くなる。
- 大容量ディスク(2TB超)やUEFI環境ではGPTを基本的に選ぶ。
3. ディスクの初期化、パーティション作成、ボリューム管理
3-1. 代表的なPowerShellコマンド
Get-Disk
: ディスク一覧と状態を表示。未初期化(RAW)のディスクがある場合はPartitionStyle : RAW
などと示されるInitialize-Disk
:-PartitionStyle
GPTまたはMBRを指定してディスクを初期化New-Partition
: ディスク上にパーティションを作成し、ドライブレターを割り当てFormat-Volume
: NTFS / ReFSなどのファイルシステムでフォーマットし、ボリュームラベルを付与
3-2. 実例:新ディスクをGPTで初期化し、NTFSでフォーマット
# ディスク番号 2 を GPTで初期化
Initialize-Disk -Number 2 -PartitionStyle GPT
# 100GBのパーティションを新規作成し、ドライブレター E を割り当て
New-Partition -DiskNumber 2 -Size (100GB) -DriveLetter "E"
# EドライブをNTFSでフォーマット、ラベルを "DataVol" に設定
Format-Volume -DriveLetter "E" -FileSystem NTFS -NewFileSystemLabel "DataVol"
3-3. ReFS vs. NTFS
- NTFS: Windows環境で長く使われてきた従来のファイルシステム。
- 多機能かつ互換性が高く、暗号化(EFS)や圧縮、クォータ管理など豊富な機能。
- ReFS (Resilient File System):
- 大規模ストレージ向けに設計され、回復性やメタデータ整合性が強化されている。
- CSV(クラスタ共有ボリューム)など特定のシナリオでの活用が推奨される。
- 一部機能(クォータ、ファイル圧縮など)がNTFSほど充実していない制約もある。
4. Storage Spaces(ストレージプールと仮想ディスク)の運用
4-1. ストレージプールの概念
- Storage Spaces: 複数の物理ディスク(SATA, SAS, NVMeなど)をプールとして束ね、仮想ディスク(Virtual Disk)を作成。
- ミラーリングやパリティを指定して、ソフトウェア的にRAID的冗長性を確保できる。
- スナップショットやシンプロビジョニングと組み合わせ、運用柔軟性が高まる。
4-2. 代表的なcmdlet:New-StoragePool, New-VirtualDisk
# プール可能な物理ディスクの一覧を取得
$disks = Get-PhysicalDisk | Where-Object { $_.CanPool -eq $true }
# 新しいストレージプール作成
New-StoragePool -FriendlyName "MyPool" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $disks
# 単純構成(Simple, 冗長性なし)の仮想ディスクを200GBで作成
New-VirtualDisk -StoragePoolFriendlyName "MyPool" -FriendlyName "MyDataDisk" -Size 200GB -ResiliencySettingName Simple
-ResiliencySettingName
にMirror
やParity
を選べば冗長性を付与。- 仮想ディスク作成後は通常のディスクと同様にInitialize-Disk, New-Partition, Format-Volume を実行してドライブレターを割り当てる。
4-3. 冗長構成と再同期
- Mirror: RAID1に近い形で、複数の物理ディスクに同じデータを保存し、ディスク障害に耐える。
- Parity: RAID5に近い形でパリティ情報を分散し、ディスク1台障害に対応(ただし書き込みパフォーマンスがMirrorに比べ遅い場合がある)。
- 物理ディスク障害時は
Repair-VirtualDisk
などの手順を踏み、新しい物理ディスクを追加してプールを再同期させる。
5. バックアップおよびリストアの自動化スクリプト
5-1. Windows Server Backup(WSB)の導入と基本操作
Install-WindowsFeature -Name Windows-Server-Backup
- インストール後、wbadmin コマンドやWindows Server Backup GUIが使える。
- wbadmin はSystem Stateやベアメタル回復、ボリューム単位など柔軟なバックアップを可能にする。
5-2. バックアップスクリプトの作成例
# Backup-Script.ps1
param(
[string]$BackupTarget = "F:\Backup",
[string[]]$Volumes = @("C:", "D:")
)
Write-Host "Starting backup for volumes: $($Volumes -join ',') to $BackupTarget"
wbadmin start backup `
-backuptarget:$BackupTarget `
-include:$($Volumes -join ",") `
-allCritical `
-quiet
-allCritical
でシステム起動に必要なパーティションも含める。-quiet
で無人実行。タスクスケジューラで深夜に起動する例が多い。
5-3. リストア(復元)のシナリオ
- ファイル単位リストア:
wbadmin start recovery -version:<BackupVersion> -items:<Files/Folders>
- ボリュームリストア:
-recoverytarget:<Volume>
で復旧先を指定 - ベアメタル回復: Windows PEなどの環境から
wbadmin
を用い、すべてのボリュームとSystem Stateを復旧
Tip: 定期的にリストアテストを行い、バックアップが本当に使用可能か検証することが大切。
6. ストレージのパフォーマンス最適化
6-1. Trimとデフラグ (Optimize-Volume)
Optimize-Volume -DriveLetter E -Verbose
- SSDならTrimコマンド、HDDならデフラグを実行し、断片化を緩和。
- Windowsは既定で定期的に実行するが、サーバー運用で長時間連続稼働の場合、スクリプトで明示的に定期実行することもある。
6-2. I/O監視とボトルネック分析
- パフォーマンスモニタ(perfmon)で
\PhysicalDisk(_Total)\% Disk Time
やAvg. Disk sec/Read
,Avg. Disk sec/Write
を監視。 - PowerShellの
Get-Counter
も用いて、定期的にログを収集し、閾値超過でアラートを出すスクリプトも組める。 - ストレージプール利用時は、プール全体の再同期状況や物理ディスクの健康状態も把握する必要がある。
6-3. ReFSのメリットと制限
- メリット: 大規模ストレージでのメタデータ整合性、エラー耐性、ミラーアクセラレーション(ミラー+パリティハイブリッド)。
- 制限: 一部機能(NTFSの圧縮、EFS暗号化など)は利用不可だったり制限がある。
- Hyper-VのVMストレージやBackup領域に使われるケースが増えている。
7. 障害対策とリストアの考慮
7-1. ディスク障害への対策
- RAIDコントローラ or Storage Spacesのミラー で冗長性を確保。
- バックアップがあっても、物理ディスク障害時に冗長性がないとサービスが即停止するリスクが高い。
- 過酷なI/Oを想定したEnterpriseクラスSSD/HDDの採用も重要。
7-2. メディア保存先とオフサイト保管
- バックアップデータを同一サーバー内の別ディスクに保存するだけでは、サーバー全損やランサムウェアに対応できない。
- オフライン保管(USB HDDに手動コピーして社外保管など)やクラウドストレージに送る方法を検討する。
- WORM(Write Once, Read Many)的な不変ストレージやクラウドアーカイブを利用する例もある。
7-3. リストアテストの重要性
- 計画停電やDRテスト時に、ランダムに選んだバックアップでリストアが成功するか検証。
- システムによってはアプリケーション固有の復元手順(例: SQL Server, Exchange)も絡むので、テストシナリオをきちんと用意する。
8. 章末まとめと次章へのつながり
8-1. 学習のまとめ
- ディスクの初期化・パーティション作成・フォーマットといった基本操作をPowerShellコマンド(
Initialize-Disk
,New-Partition
,Format-Volume
)で効率的に管理できるようになりました。 - Storage Spacesによるストレージプール/仮想ディスク構成を理解し、MirrorやParityなど冗長性をソフトウェア的に確保する運用がWindows Server 2022で主流となっている点を把握。
- バックアップの自動化(Windows Server Backup+
wbadmin
)では、スクリプトやタスクスケジューラを活用して無人運用が可能になるメリットを確認しました。 - ストレージパフォーマンスの最適化として、デフラグ/Trim (
Optimize-Volume
)、ReFSの選択肢、I/O監視などの実務的手法を整理。 - 障害対策としてRAID/Storage Spacesの冗長性確保、オフサイト保管やDRテストの重要性など、単なるバックアップに留まらないシステム全体の可用性確保の考え方を解説しました。
8-2. 次章へのつながり
- 次章(第9章)では、サービスおよびプロセスの監視と管理に進みます。
- ストレージが安定稼働していても、OSやアプリケーションのサービスが停止・不調であればシステムはダウンしてしまいます。
- 本章で確立したディスク構成とバックアップ方針を活かしつつ、サービス監視・再起動自動化・イベントログ収集などのテクニックを学び、システム全体の安定稼働をさらに強化していきましょう。