2014年9月1日月曜日

System Center on Azure IaaSで考えなきゃと思ったこと

※ここに記載しているのは、ブログオーナーたる私の個人的な見解です。

2014/9/1追記 buchizoさんより、コメント頂きまして、内容が不正確であることがわかりましたので、お詫び申し上げるとともに内容を加筆訂正(取り消しや青字部分)致します。

Azureのギャラリーから、SQL Serverを含むVMイメージを展開してみました。
(すでにSC 2012 R2 Orchestratorをインストール済みで、DBファイルがしっかりありますが。。。)
Cドライブにデータベースファイルが置かれていました。
Azure-SQLfiles

日本マイクロソフトの安納さんが3年前に書かれたブログ記事によれば、
【Azure for IT Pro】Guest VM の C: ドライブは絶対に消えないか? http://blogs.technet.com/b/junichia/archive/2011/06/10/3434620.aspx
Cドライブは最悪消失の可能性がある(ブログ記事にある表の最下行です)と。。。


つまり、SQL Serverで重要なmasterなどいわゆる重要といわれているDBは消えちゃうということですね。
既定でSQL ServerのDATAドライブにインストールされてしまう(System Centerなどの)DBももれなく消えそうですね(最悪のケースですが)。

buchizoさんよりコメント頂きまして、いろいろ調べてみたところ、Azure VMの正式リリース前ではありますが、下記の記事を見つけました。
Windows Azure Disk Partition Preservation http://blogs.msdn.com/b/kwill/archive/2012/10/05/windows-azure-disk-partition-preservation.aspx
この記事に下記の文章があります(原文を引用)。
One of the regular questions I get asked is what happens to my disks and drive letters in Windows Azure VMs when happens. The following chart will outline the different scenarios that affect your VM instances, and what happens to the different disks. Note that this information is for stateless PaaS VMs and not the new Windows Azure Virtual Machine persistent VMs.

この文章以降に、ノードをマイグレーションしたときにはCドライブがリビルドされると書いてあるのですが、
Note that this information is for stateless PaaS VMs and not the new Windows Azure Virtual Machine persistent VMs.

とあるように、このブログ記事が書かれた時点では正式リリースされていない「新しいAzure VMでは違うよ」とあるように読めます(少々強引か?!)。

あと、しばらく前に見ていてどのページだったかわからなくて難儀していたドキュメントも見つけました。
About Virtual Machine Disks in Azure http://msdn.microsoft.com/en-US/library/azure/dn790303.aspx
このドキュメントにCドライブは永続的(Persistent)だと書かれています。

ということで、Azure VMのCドライブにSQL Serverのデータディスクが置かれるのは、ちゃんと理由があったということになります。
Azure-installedSQLDB2
ブログ記事の内容を見直すきっかけを頂いたbuchizoさんには、感謝です!

さて、Azure VMのCドライブが永続的だということがわかってすっきりしましたが、そうはいってもデータ消失の危機が去ったわけではないと思います。
これはAzure VMだろうが、それ以外の仮想マシンだろうが、物理マシンだろうがCドライブのデータ消失は気にしておかないといけませんね(と個人的に思います)。
バックアップはきちんと取っておくことは言わずもがなですが、AzureでSystem Centerなどをインストールした場合は、サービスを停止後、一旦データベースをデタッチ、(VMに接続したEドライブ等に)アタッチしたほうが良さそうかもしれませんね。。。しておくのも一考かなと思ったりしました。
(先にDBファイルを作成しておいても、権限設定が面倒かもしれないですしね(^^;))

と、ここ迄考えたところでAlwayson可用性グループの出番なのかなと思っています。
今回はラボ的に構築していますが、リリース環境的にはバックアップ以外で、Alwayson可用性グループなり、ミラーを構成するのは、至極普通なことでしょう。
また、Cドライブが壊れる想定でのでデータ消失が起きた時のリカバリー手順は、Azure VMでも使うでしょう。そうすると、これ迄の知見も活かせるのではないかなぁ〜となんとなく思ってみました。

以上、思索ベースですが、考え方の参考になれば…

5 件のコメント:

  1. 安納さんのBlogにあるGuestVMはPaaSのほうのCloudServiceでの話なので、今のAzureの仮想マシン(IaaS)は状況が異なります。
    ※当時は仮想マシンがなかったかと

    仮想マシンのほうは、OSディスクであるCドライブ(のVHDファイル)はAzureストレージ上にあって永続化されているので、消失の可能性はかなり下がります(ストレージ側で最低3重の複製と、設定によってDC間の複製がつけれます)
    ※データ破損の話とは別ですが

    返信削除
  2. コメントありがとうございます。成る程、誤解している様ですので、訂正しておきます。

    返信削除
  3. […] rel="bookmarkAzure IaaSでSystem Centerなる記事を見つけて思ったこと、System Center on Azure IaaSで考えなきゃと思ったことの投稿で、Azure IaaSにSystem […]

    返信削除
  4. Cドライブは既定で「ホスト キャッシュ Read/Write」で構成されているので、データの破損は少し怖いですね。以下ドキュメントでも、データベースは「ホストキャッシュなし」のドライブにするよう記載されています。

    Azure Virtual Machines における SQL Server のパフォーマンスに関するベスト プラクティス
    https://msdn.microsoft.com/ja-jp/library/azure/dn133149.aspx

    またドメインコントローラーのデータベースも、追加でアタッチしたものに置くような手順となっています。

    Azure の仮想ネットワークでの Active Directory フォレストのインストール
    http://azure.microsoft.com/ja-jp/documentation/articles/active-directory-new-forest-virtual-machine/

    以上、参考まで。

    返信削除
  5. ご指摘ありがとうございます。
    SQL Serverのドキュメントは把握しておりませんでしたが、有益な情報をいただき感謝いたします。
    Active Directoryドメインコントローラーについては、すでに認識していて、キャッシュなしの追加アタッチしたものにおいています。

    返信削除