どうも、Tです。
vSphere VDSのエクスポート・インポート・リストアを試してみたので備忘録です。
目次
ここでの結論
- エクスポートは、バックアップのこと。
- エクスポートは手動で取得する必要がある。
- インポートは、新規VDSの作成もしくは削除してしまったVDSの復元のこと。
- リストアは、既存VDSの構成リセット(存在する構成の上書き)のこと。
- インポート(VDSの復元)では、識別子を保存するにチェックとしインポートすること。
- リストアでは、アップリンクなど物理NICの構成は戻らない。
やりたいこと
- VDSのエクスポート・インポート・リストアを確認してみる
管理系に使っているVDSをいじってしまうと復旧が大変なので、仮想マシンだけが使っているサービス用のVDSのみについて確認します。
また、管理ネットワークとしてロールバックという仕組みもありますが、こちらも長くなりそうなのでここでは説明しません。下記に説明してくれてるので参考にしてください。
環境
バージョン
- vCenter:7.0.2 17958471
- ESXi:7.0.2 17867351
- VDS:7.0.2
VDS構成
下記のように3つのVDSを作成しました。今回使うのは、サービスネットワーク用VDSになります。
静的バインド、短期バインドなしは、別の検証で使ったのでここでは無視してください。
前提知識
用語の違い
VDSの構成ファイルを語る際に、3つの用語が少し誤解を受けそうなのでまとめておきます。
エクスポート
VDS構成をエクスポートすることを指します。バックアップファイルと同義です。
インポート
エクスポートファイルから新規VDSを作成、もしくは削除してしまったVDSの復元を指します。リストアのような感覚ですが、VDSではリストアと明確に使い分けられています。
リストア
VDSでいうリストアとは、エクスポートファイルを使って既存VDSの構成をリセットすることを指します。
全損時のリストア目的ではない?
通常バックアップ、リストアというと、バックアップ時点の状態にまるっと戻せるようなイメージですが、VDSでは少々ニュアンスが異なります。VDSをエクスポートしていてもすべてが戻るわけではないので注意が必要です。
下記の引用から、「誤った設定からの復旧」「新規にVDSを作成」の2点であり、全損時(システムすべてが消失など)からの復旧ではありません。
データベースやアップグレードでエラーが発生した場合に、仮想ネットワーク構成をリストアできます。また、保存されたスイッチ構成をテンプレートとして使用して、vSphere の同じ環境または新しい環境でスイッチのコピーを作成できます。
また、エクスポートファイルから戻せるのは「ポリシー」「ホストの関連付け」であることが明記されています。
注:保存した構成ファイルを使用して、ポリシーとホストの関連付けを Distributed Switch にリストアできます。アップリンク ポートまたはリンク集約グループのポートへの物理 NIC の接続はリストアできません
エクスポートは手動
エクスポートファイルはバックアップファイルと同義ではありますが、スケジュールなどはできません。VDSの構成変更を行った際に手動でエクスポートファイルを取得する必要があります。
VDSエクスポート単位
エクスポートの単位は、「分散スイッチのみ」「分散スイッチとすべてのポートグループ」の2つがあります。混乱しないように「分散スイッチとすべてのポートグループ」単位で取得するのがよさそうです。
なお、ドキュメントに記載はありませんが下記のような仕様のようです。「分散スイッチとすべてのポートグループ」単位がわかりやすくて、一番良いです。
分散スイッチとすべてのポートグループのエクスポート
分散スイッチとすべてのポートグループ(分散ポートグループ、アップリンクポートグループ)の構成が含まれます。
分散スイッチのみエクスポート
「分散スイッチ」と「アップリンクポートグループ」の構成が含まれます。
分散ポートグループのみエクスポート
「エクスポートした1つの分散ポートグループ」と「分散スイッチ」と「アップリンクポートグループ」の構成が含まれます。
アップリンクポートグループのみエクスポート
「分散スイッチ」と「アップリンクポートグループ」の構成が含まれます。これは分散スイッチのみエクスポートするのと何が違うのかわかりませんでした。
VDSエクスポートファイルの構成
どの単位でエクスポートしても、エクスポートファイル名は、「backup.zip」で出力されます。ありえないだろ・・・と思いますが、現実です。ファイル名は、変更しても問題ないのでわかりやすい名前に変更しておきましょう。※検証では、アルファベット数字だけ使うようにしました。
インポート・リストアともZIPファイル単位で指定しますが、内部構造も確認しておきます。
ZIPファイルを解凍すると、「data」「META-INF」フォルダで構成されています。
dataフォルダの中は、bakファイルがあります。これはバイナリデータになっており、ファイル名も実際の分散スイッチ名やポートグループ名はついていないのであまり利用価値はありません。
META-INFファイルは、data.xmlファイルがありテキストファイルです。
xmlファイル自体は1行記載になっているので、直接読み取るのは難しいですが、XML整形サービスなどでXML整形を行うとある程度の情報が読み取れます。
VDSのエクスポート
VDSのエクスポートをしていきます。「分散スイッチとすべてのポートグループ」でエクスポートします。
「分散スイッチを右クリック」->「設定」->「設定のエクスポート」をクリックします。
「Distributed Switchとすべてのポートグループ」を選択して「OK」をクリックします。説明欄が設けられていますが、入力してもどこにも使われていなかったので空白でいきます。
エクスポートファイルがダウンロードされます。
わかりやすい名前に変更しておきます。
VDSのエクスポートが完了しました。
VDSのインポート(VDSの復元)
事前準備
VDS-Serviceには、仮想マシン2台と各ESXiホストのアップリンクがあります。仮想マシンやアップリンクがあるVDSの削除はできないため、仮想マシンとESXiホストのアップリンクを事前に手動で削除しておきます。
VDS手動で削除します。
VDSが削除されました。
インポート
エクスポートファイルをインポートしていきます。「データセンターを右クリック」->「Distributed Switch」->「Distributed Switchのインポート」をクリックします。
「参照」をクリックします。
インポートを行うエクスポートファイルを選択します。
エクスポートファイルが選択されたことを確認し、「元のDistributed Switchとポートグループ識別子を保存します」にチェックを入れて「NEXT」をクリックします。※識別子については後述します。
「FINISH」をクリックします。
VDSの構成とESXiホストのアップリンクが戻りました。仮想マシンのリンクは戻っていません。
手動で仮想マシンのネットワークをVDSのグループポートに割り当てると通信が回復しました。
識別子について補足
インポート時にチェックをいれた識別子について補足します。
識別子のチェックのオプションについてドキュメントには、下記のように説明されています。言い換えると「VDSが存在していた同じ環境にインポートする場合は」という考え方になります。
次の場合、[元の Distributed Switch とポート グループ識別子を保存します] オプションを使用できます。
- 削除したスイッチを再作成する。
- アップグレードに失敗したスイッチをリストアする。
すべてのポート グループが再作成され、スイッチに接続されていたホストは再度追加されます。
この識別子について正確な情報はありませんでしたが、ESXiホストで「esxcli network vswitch dvs vmware list」で表示される「VDS ID」と「DVPortGroup ID」を指していると思われます。チェックなしで復元するとIDが異なっていました。
[root@testesxi003:~] esxcli network vswitch dvs vmware list -VDS-Servaice以外のスイッチ情報は割愛- VDS-Service Name: VDS-Service VDS ID: 50 1d cd 69 70 8c e8 b5-72 21 31 06 47 ee 06 fb Class: cswitch Num Ports: 2560 Used Ports: 8 Configured Ports: 512 MTU: 1500 CDP Status: listen Beacon Timeout: -1 Uplinks: vmnic5, vmnic4 VMware Branded: true DVPort: Client: vmnic4 DVPortgroup ID: dvportgroup-13005 In Use: true Port ID: 8 Client: vmnic5 DVPortgroup ID: dvportgroup-13005 In Use: true Port ID: 9 Client: w2k19.eth0 DVPortgroup ID: dvportgroup-13006 In Use: true Port ID: 0 Client: DVPortgroup ID: dvportgroup-13005 In Use: false Port ID: 25 Client: DVPortgroup ID: dvportgroup-13005 In Use: false Port ID: 24
また、既存環境に識別子のチェックなしでインポートした場合、ESXiホストのアップリンクは戻らずVDSの構成だけが戻りました。
元の環境にインポート(VDSの復元)する場合は、識別子のチェックを入れる。
別環境にインポート(VDSの新規作成)する場合は、識別子のチェックを入れない。
で覚えておけばよさそうです。
VDSのリストア(既存VDSのリセット)
事前準備
VDSのリストアでは、VDSの削除ではなく設定誤りをエクスポートファイルの内容に戻す(リセットする)ことになります。そのため、現在の設定を事前に変更しておき、リストア後に元に戻るか確認していきます。
分散スイッチ設定変更
分散スイッチの設定を変更しておきます。「分散スイッチの名前」「MTU」を変更しました。
lagを新規で作成しました。(ホストの紐づけは行っておらずlag設定のみ新規作成です)
分散スイッチから「testesxi003ホストを削除」「tstesxi002のアップリンクを1つ削除」しました。
分散ポートグループ設定変更
「分散ポートグループ名を変更」「ポート割当を固定に変更」「ポート数を500に変更」しました。
「VLANトランクを300に変更」「チーミングタイプをIPハッシュに変更」しました。
新規分散ポートグループ「newportgroup」を作成しました。
アップリンクポートグループ設定変更
「アップリンクポートグループ名を変更」しました。
「VLANトランクを1000に変更」しました。
リストア
VDSのリストアを行います。
「VDSを右クリック」->「設定」->「設定のリストア」をクリックします。
「参照」をクリックします。下記のような表示があることからエクスポートファイルに含まれないポートグループには影響がないことがわかります。
Distributed Switch のバックアップをリストアすると、スイッチとそのポート グループの設定が上書きされます。バックアップに含まれていないポート グループは保持されます。
エクスポートファイルを選択します。
エクスポートファイルが選択されていること、「Distributed Switchとすべてのポートグループをリストアします」が選択されていることを確認して「NEXT」をクリックします。
「FINISH」をクリックします。
数秒程度でリストアが終わりました。この時点で名前も元に戻っていることがわかります。
確認
それでは変更点がリストアされているかを確認していきます。
分散スイッチ設定
分散スイッチの名前とMTUが戻りました。
元々LAGは作成していない状態にもどりました。
削除したtestesxi003ホスト、1つのアップリンクを削除したtestesxi002のアップリンク状態は戻りませんでした。
これはドキュメントにあるように、仕様のようです。
注:保存した構成ファイルを使用して、ポリシーとホストの関連付けを Distributed Switch にリストアできます。アップリンク ポートまたはリンク集約グループのポートへの物理 NIC の接続はリストアできません。
1個わからないのが、ホストの関連付けはリストアできるはずが、testesxi003は戻りませんでした・・・何か条件があるのかな・・・不思議。
分散ポートグループ設定
分散ポートグループの名前、ポート割当、ポート数が戻りました。
VLAN、チーミングポリシーが戻りました。
新規作成したポートグループに影響はありませんでした。
アップリンクポートグループ設定
アップリンクポートグループ名が戻りました。
VLAN設定が戻りました。
参考
まとめ
本当にトラブったときは、こんなにすんなり戻らないと思いますが、何ができて、何ができないのかの再確認は必要ですね。NICO周りも入れておけばよかった・・・・。