Windows Serverのインスタンスで記憶域プールの設定ができませんでした。どうすればよいですか?

サーバーインスタンス, 運用

2016年4月1日 (2023年6月1日:更新)

申し訳ございませんが、サーバーインスタンスのドライバがWindows記憶域プールに対応していないため、ボリュームをマウントしてもデフォルトの設定では記憶域プールの設定を行うことができません。

この問題に対する2つの回避策がございますので、下記のとおりご案内いたします。

※ いずれの回避策も注意事項がございます。回避策を実行される際は注意事項をご理解の上、お客さま判断にて実施いただくようお願いいたします。

※ Windows2019オフィシャルテンプレート以降のオフィシャルテンプレートでは本ページの回避策の実施は不要となります。

回避策1.ドライバの設定を変更する


 

Windowsのサーバーインスタンスから取得したスナップショットに対してプロパティを付与することで、サーバーインスタンスで利用するドライバを変更する設定ができ、記憶域プールを利用可能とする方法がございます。具体的な手順は下記のとおりとなります。

(手順)

1.オフィシャルテンプレートのWindows Serverを選択し、インスタンスを作成します。

2.作成したWindows Serverのインスタンスにコンソール接続し、アカウントを設定します。

3.Windows Serverのインスタンスの電源を停止し、インスタンスのスナップショットを取得します。

4.作成したスナップショットに対し、プロパティを設定します(API操作のみとなります)Keystoneのトークンを取得後、スナップショットに対し、下記のAPIを実行し、スナップショットの’hw_disk_bus’を’ide’に変更します。

’hw_disk_bus’を’ide’へ変更する際のAPIフォーマット

curl -i -X PATCH -H 
                  'Content-Type: application/openstack-images-v2.1-json-patch'
                 -H 'X-Auth-Token: {token}' https://{endpoint}/v2/images/{image_id} 
                 -d '[{"path": "/hw_disk_bus", "value": "ide", "op": "add"}]'

上記、APIに対し、レスポンス 200 OKが返ってくることを確認いたします。

HTTP/1.1 200 OK
content-length: 1662
server: Apache
connection: close
 ~以下略~

(参考) ’hw_disk_bus’を’ide’から元の設定(virtio)に戻す際は下記のAPIとなります。

’hw_disk_bus’を’virtio’ へ変更する際のAPIフォーマット

curl -i -X PATCH -H 
                 'Content-Type: application/openstack-images-v2.1-json-patch' 
                 -H 'X-Auth-Token: {token}' https://{endpoint}/v2/images/{image_id} 
                 -d '[{"path": "/hw_disk_bus", "value": "virtio", "op": "replace"}]'

5.4の手順で設定を変更したスナップショットからインスタンスを作成します。

6.コンソール接続を行うと、記憶域プールの設定画面から記憶域プールを設定することができます。

(注意事項)

  • 本回避策では4ボリューム(ルートボリュームを含む)までしかアタッチできません。
  • 本回避策ではボリュームのオンラインアタッチ/デタッチはできません。必ずインスタンスの電源を停止させからアタッチをしてください。
  • 追加でボリュームをアタッチする際には必ずAPIから実行してください。GUIからアタッチすると、既存ディスクのパスに対し、アタッチしてしまうため、アタッチできません。

追加アタッチ時のAPIフォーマット

curl -i 'https://{endpoint}/v2/{project_id}/servers/{server_id}/os-volume_attachments' -X POST 
        -H  "Accept: application/json" 
        -H "Content-Type: application/json" 
        -H "X-Auth-Token: {token}" 
        -d '{"volumeAttachment": {"device": "{device_path}", "volumeId": "{volume_id}"}}'

※”{device_path}”に”/dev/hda”,”/dev/hdb”,”/dev/hdc”,”/dev/hdd”を設定

  • 本回避策により、サーバーインスタンスのボリュームに対するI/O性能が落ちる可能性がございますので、ご注意ください。

回避策2.ブロックストレージを利用する


 

サーバーインスタンスのボリュームの代わりにブロックストレージ(IO性能確保)をアタッチいただき、ブロックストレージについて、記憶域プールを設定する方法がございます。

(注意事項)

本回避策は弊社検証により、動作を確認しておりますが、ブロックストレージはiSCSI接続であり、マイクロソフト社はiSCSI接続による記憶域プールの利用をサポートしておりませんので、ご注意ください。

  • 参考URL:記憶域プールに関するマイクロソフト社の公開情報

https://technet.microsoft.com/ja-jp/jp/library/jj822938(v=ws.11).aspx

  • ブロックストレージ(IO性能確保)の仕様につきましては詳細情報を参照ください。

https://sdpf.ntt.com/services/docs/block-storage/service-descriptions/block_storage.html