Bar

Windows Server 2012 R2 Essentials 読み取り専用の記憶域プールを利用可能にする方法

2013-10-20_18-10-00
先日、Windows Server 2012 EssentialsのサーバをWindows Server 2012 R2 Essentialsへインプレース アップグレードしてみました。
インプレース アップグレード完了後、記憶域ドライブが表示されていない事に気が付き、記憶域スペースの画面には「ユーザー操作により読み取り専用」のメッセージが表示され、設定等が一切できない状態でした。
今回は、読み取り専用の記憶域プールを利用可能にする方法をメモ。
なお、今回の現象は記憶域スペースの仕様のため、背景と手順を覚える必要があります。

現象

  • Windows Server 2012 Essentialsの記憶域プール機能を使い、複数ドライブを1ドライブにまとめる
    ※HDD3本を使用、回復性の種類はパリティ
  • Windows Server 2012 R2 Essentials Previewへインプレース アップグレードを行う(現在はGAされたWS2012R2E)
  • 記憶域プールの設定GUIウィンドウに「ユーザー操作により読み取り専用」と表示され、設定が一切出来ない
2013-10-20_18-10-00
Get-StoragePool関数を実行すると、IsReadOnlyがTrueになっており、読み取り専用になっていることが分かります。
2013-10-20_18-22-00

原因

原因は、Windows Server 2012の仕様でした。
Storage Spaces Frequently Asked Questions (FAQ) - Technet Wiki
What happens to Storage Spaces when moving physical disks between servers?
Storage Spaces records information about pools and storage spaces on the physical disks that compose the storage pool. Therefore, your pool and storage spaces are preserved when you move an entire storage pool and its physical disks from one computer to another.
Windows Server 2012 starts storage that could potentially be shared with a cluster in a safe state. For Storage Spaces, that means the first time Windows connects to a storage pool, the pool starts as read-only and the storage spaces will start in a detached state. To access your data, you must set the storage pool to read-write and then attach the storage spaces.
余談ですが、Windows 8の場合は自動アタッチだそうです。

読み取り専用を解除する手順

GUIから設定が出来ないため、PowerShellからSet-StoragePool関数を実行し、読み取り専用を解除します。
  1. 管理者権限でPowerShellを起動
  2. Set-StoragePool関数を実行
    PowerShellの書き方は色々あると思いますが、私は下記のように実行しました。
    >Get-StoragePool -FriendlyName FrenndlyName | Set-StoragePool –IsReadOnly $false
    2013-10-20_18-35-00
  3. Get-StoragePool関数を実行し、IsReadOnlyがFalseになっていることを確認

記憶域をアタッチする手順

読み取り専用にした後はもちろん記憶域をアタッチします。
アタッチはPowerShellからConnect-VirtualDisk関数を実行します。
  1. 管理者権限でPowerShellを起動
  2. Get-VirtualDisk関数を実行し、記憶域の[OperationalStatus]が[Detached]になっていることを確認
    2013-10-20_193251
  3. Connect-VirtualDisk関数を実行し、記憶域をアタッチする
    >Connect-VirtualDisk -FriendlyName 記憶域名
    ※記憶域プール名とは違います。ご注意ください。
    2013-10-20_193340
  4. Get-VirtualDisk関数を実行し、記憶域の[OperationalStatus]が[OK]になっている事を確認
読み取り専用を解除し、記憶域をアタッチすると[OK]マークが表示され、Explorer等から利用可能になります。
image
なお、デタッチしたい場合はDisconnet-VirtualDisk関数を使います。
デタッチすると情報欄に[ユーザー操作によるアクセス不可]が表示されます。
image
余談:ストレージ コマンドレット
ストレージ コマンドレットを知りたい方はTechnetのWebサイトを見てみましょう。
Storage Cmdlets in Windows PowerShell