ラベル スナップショット の投稿を表示しています。 すべての投稿を表示
ラベル スナップショット の投稿を表示しています。 すべての投稿を表示

2026年9月6日日曜日

仮想マシンのDドライブ以降がオフラインになるのを回避する方法

Nutanixには、仮想マシンを迅速にリカバリまたはクローンする機能としてストレージベースの高速スナップショット機能を持っています。


NGTのSSR機能利用や、Active DirectoryのNTDSデーターなどがDドライブにある場合や、アプリケーションがCドライブ以外にインストールされている場合、OSやアプリケーションが正常に起動しない可能性があります。

このようなことを防ぐため、あらかじめ後から取り付けられたディスク自動的にオンラインにする設定を行うことで、このような事象を回避することができます。

コマンドプロンプトを管理者で開き以下を実行します。

Microsoft Windows [Version 10.0.26100.33296]
(c) Microsoft Corporation. All rights reserved.

C:\Users\Administrator>diskpart

Microsoft DiskPart バージョン 10.0.26100.1150
Copyright (C) Microsoft Corporation.
コンピューター: WINSVTEST118

DISKPART> san
SAN ポリシー  : オフライン共有

DISKPART> san policy=onlineall ★重要!
DiskPart は、現在のオペレーティング システムに対する SAN ポリシーを変更しました。

DISKPART> san
SAN ポリシー  : すべてをオンライン

DISKPART> exit
DiskPart を終了しています...

C:\Users\Administrator>

diskpartコマンドで、SANポリシーをOnlineAllに変更しています。
その後、SANコマンドで、ポリシーが変更されたことも併せて確認をしています。

diskpart → san policy=onlineall → exit

で、設定可能ですので、Windowsマシンは、あらかじめ設定していただくことをお勧めします。

もしくは、PowerShellですと以下の1行で対応可能です。

Set-StorageSetting -NewDiskPolicy OnlineAll


こちらは、Nutanix Moveなどで移行する際にもあらかじめ実行しておいたほうがよいコマンドとなります。





2020年12月1日火曜日

孤立したスナップショットの確認と削除の方法

 NutanixとAHVの構成において、仮想マシンのスナップショットは、ストレージブロックベースのスナップショット取得となります。

一方Prism画面からは、仮想マシンを削除する際に、取得したスナップショットを削除しないまま仮想マシンを削除することができてしまいます。


▲Delete all snapshots of this VM?のチェックを入れずに仮想マシンを消すと、その仮想マシンで取得していた、スナップショットは孤立したスナップショットになります。

こうなると、スナップショットは元の仮想マシンが存在しない孤立したスナップショットとなってしまいます。

この形で孤立したスナップショットはPrism上からは確認することが出来ず、そのままゴミとしてのこり続けます。今日はこのゴミとなったスナップショットを復元する方法と削除する方法をお伝えします。


孤立したスナップショットの確認

孤立したスナップショットは、NCCを利用することで確認できます。

ncc health_checks hypervisor_checks orphan_vm_snapshot_check

実行すると以下のようなUUIDで孤立したスナップショットの結果が表示されます。

Detailed information for orphan_vm_snapshot_check:
Node 192.168.XXX.YYY:
INFO: Found 9 orphan VM snapshot(s): ['660380b2-a2c1-4e4a-807b-0e230e0b5512', '4186337a-7218-4c6e-b88a-ccfade14fa2c', '588ca5a0-6416-4ffa-9a01-eea78a062f6f', '7638e79a-64be-4890-b87d-ed83aca4398c', '9199e109-6a40-4c32-8135-5a806282dc7b', '070dd5b0-4361-4d1f-aef2-5284640a5319', '5fa8aa7c-ed73-412d-978d-5f624b5a872c', '148a3176-943d-45bd-89f4-6c3d1362aced', '2a898e7f-1a45-4ed7-a89e-8aa77ef71f7a'].
Refer to KB 3752 (http://portal.nutanix.com/kb/3752) for details on orphan_vm_snapshot_check or Recheck with: ncc health_checks hypervisor_checks orphan_vm_snapshot_check

この環境では、9つの孤立しなスナップショットがあることが分ります。



孤立したスナップショットが何の仮想マシンかを確認する

孤立したスナップショットのUUIDは分りましたが、このスナップショットが何の仮想マシンで利用されていたのか、また、どのような名称を付けていたスナップショットかを確認します。

以下のコマンドを利用して、スナップショットの情報を取得します。

acli snapshot.get <SNAPSHOT-UUDI>

ここでは試しに、「5fa8aa7c-ed73-412d-978d-5f624b5a872c」で試してみます。

結果以下のようなスナップショット情報が表示されます。

gui installed {
  create_time_usecs: 1534811599505881 ★
  group_uuid: "d74ea526-e722-4603-81c2-c18d6f6e8677"
  logical_timestamp: 1
  name: "gui installed" ★
  uuid: "5fa8aa7c-ed73-412d-978d-5f624b5a872c"
  vm_spec {
    agent_vm: False
    disk_list {
      addr {
        bus: "ide"
        index: 0
      }
      cdrom: True
      empty: True
    }
    disk_list {
      addr {
        bus: "scsi"
        index: 0
      }
      clone {
        container_id: 1062
        snapshot_group_uuid: "d74ea526-e722-4603-81c2-c18d6f6e8677"
        vmdisk_uuid: "eb9a302f-b274-489a-a44b-63ab6af2ac64"
      }
    }
    hwclock_timezone: "Asia/Tokyo"
    machine_type: "pc"
    memory_mb: 6144
    name: "Ubuntu 16.4" ★
    nic_list {
      mac_addr: "50:6b:8d:12:2f:c8"
      network_uuid: "094444f7-5f75-47b8-859c-fa349866f205"
      pci_slot: 3
      type: "kNormalNic"
      vlan_mode: "kAccess"
    }
    num_cores_per_vcpu: 2
    num_vcpus: 2
    vga_console: True
    vm_type: "kGuestVM"
  }
  vm_uuid: "be6d4b5d-21a3-45f5-8c23-331feea6aee3"
}

この仮想マシンは、「Ubuntu 16.4」という仮想マシン名称で、「gui installed」という名前のスナップショットであることが分ります。

ではいつ作成したスナップショットかというと、create_time_usecsに値が書かれていますが、これはUnix表記のためそのままでは読み取ることが出来ません。
この場合、CVMで以下のコマンドを入力し変換します。

date --date "@UNIX時間"

今回は、「1534811599505881」を変換してみたいと思います。
コマンドでは、create_time_usecsにある後ろの6桁を除いて入力を行います。
この場合では、「1534811599505881」となり、505881が入力しないエリアとなります。

$ date --date "@1534811599"
Tue Aug 21 09:33:19 JST 2018

結果このスナップショットは、2018年8月21日のスナップショットであることが分りました。



スナップショットから仮想マシンを作成する

仮にこのスナップショットが必要な物で、このスナップショットから仮想マシンを復元したい場合は、以下のコマンドを利用します。

acli vm.clone <新規仮想マシン名> clone_from_snapshot=<スナップショット名>

今回は、仮想マシンを「NewUbuntu」とし、スナップショット名は「gui installed」と入力をします。

acli vm.clone NewUbuntu clone_from_snapshot="gui installed"
NewUbuntu: pending
NewUbuntu: complete

仮想マシンの作成が完了し、当時のスナップショットの仮想マシンが起動しました




孤立したスナップショットの削除方法

現実的には、スナップショットからの復元よりも、孤立してゴミとなったスナップショットを削除したいという方が多いと思います。
削除は以下のコマンドを使って行います。

acli snapshot.delete <スナップショット名 or スナップショットUUID>

ここでは、スナップショット名「gui installed」を削除してみます。

acli snapshot.delete "gui installed"
Delete 1 snapshots? (yes/no) yes
gui installed: complete

これで削除完了です。


なお、スナップショットの一覧は、以下のコマンドから確認することも可能です。

acli snapshot.list

これを入力すると、孤立の有無に関係なく全てのスナップショットが表示されます。ただし、DataProtectionで取得したスナップショットはこちらの表示の対象外となります。


検証環境などでは、ゴミなスナップショットが放置されたままとなり、利用している容量の割りにストレージが消費しているケースがあります。この場合は、孤立したスナップショットが存在していないかを是非確認することをお勧めします。






2016年11月26日土曜日

Nutanixスナップショット機能の紹介(その1)

Nutanixには、高機能なストレージサービスをハイパーバイザーに提供します。
その中の1つが「スナップショット」機能です。

Nuatxniは、仮想化の基盤として利用されるものなので、ハイパーバイザーのスナップショットがあるじゃないかと思うかもしれません。
しかし、Nutanixの提供するスナップショットは、ストレージスナップショットで有り、ハイパーバイザーが提供するスナップショットとは少々仕組みが違います。

ハイパーバイザーが提供するスナップショットは、スナップショットを取得した時点で、仮想ディスクファイル(vSphereであれば、VMDK)が、分割され、以降のVMDKに対して書き込まれるデーターは、差分の仮想ディスクファイルに書き込まれます。スナップショットを取得する前の仮想ディスクファイルは、読み取り専用となります。
サードパーティー製の仮想マシンバックアップソフトウェアでは、この機能を利用して、読み取り専用になったファイルをバックアップするというやり方をしているものもあります。

スナップショットを複数取得すると複数の差分ディスクが作成され、それらの差分ディスクはすべてチェーンのような形で繋がっています。
データーの読み書きには元の仮想ディスクから差分のディスクを順番にアクセスをしていくことになりますので、仮想マシンからのディスクI/Oスピードが低下します。

スナップショットの倫理的な構造

また、リスクとして複数のスナップショットをとっていた場合、中間に仮想ディスクファイルが破損したり、他のツール等でその仮想ディスクを直接データーを書き込んだりすると、それ以降の仮想ディスクとのチェーン構造が壊れるため、最新のデーターにアクセスできなくなるという恐れもあります。

vSphereにおけるスナップショットは、以下のKBが細かく解説されています。

(参考)VMware ESXi および ESX の仮想マシン スナップショットについて (1033239)
https://kb.vmware.com/kb/1033239

つまり、ハイパーバイザーが提供するスナップショットは、一時的なリカバリポイントを作成することが目的であることを理解しておく必要があります。
まれに、ハイパーバイザーが提供するスナップショットをバックアップの代わりに利用している話しを耳にしますが、スナップショットはバックアップ機能として利用することはパフォーマンスや運用上よろしくありません。

また、vSphereでは、スナップショットにおいてベストプラクティスが記載されており、「1つのスナップショットを24時間から72時間にわたって使用しないでください」という記載があります。

(参考)vSphere 環境でスナップショットを使用するベスト プラクティス (1038295)
https://kb.vmware.com/kb/1038295



対してNutanixは、ストレージベースのスナップショット機能を提供します。
Nutanixのストレージは8Kのストレージブロックで構成されており、スナップショットをとった時点でそのスナップショットの対象となるストレージブロックは読み取り専用となります。

スナップショットをとる前の仮想マシン(仮想ディスク)とストレージブロック


スナップショット取得直後の状態



スナップショット取得後に、データーの上書き等でそのストレージブロックが変更される場合、そのストレージブロックは読み取り専用のため、変更されず、新しいストレージブロックに上書きされるデーターが保存され、仮想ディスクのストレージブロックの参照先が上書き後のストレージブロックに切り替わります。




ハイパーバイザーのスナップショットの場合は、ファイルで分割されていたものがストレージブロックで分割されるようなイメージになります。では、ファイルなのかストレージブロックの違いだけなのかというと、決定的な違いが1つあります。
それは、Nutanixが提供するストレージスナップショットは、チェーン構造な作りになっていないことです。

Nutanixのストレージスナップショットは、スナップショットを作成しその後データーの変更追加が発生した場合であっても、チェーン構造な1つずつ順番に掘り下げていくのではなく、横並びのストレージブロックの参照位置を変えるだけのため、ハイパーバイザーのスナップショットの特徴である、パフォーマンスの低下や、スナップショットによる中間仮想ディスクファイルの肥大化による破損等はおきることはありません。

つまりNutanixのスナップショットは、バックアップとしても利用することができるという点は、ユーザー側の視点に立っても大変便利であると思います。

これはいわゆる、ポイントインタイムコピーテクノロジーといわれるものです。

それなら、今までのストレージ装置にもあったじゃないかと思うかもしれませんが、Nutanixは、エンタープライズクラウドプラットフォームです。Nutanixは、仮想マシンのワークロードに最も適した基盤を提供するものですので、今までのストレージ装置のスナップショットと違う機能があります。

それは、Nuatxniは、仮想マシンを意識しているということです。

これについては、次回の投稿で説明をしたいと思います。