
今日のランチは、サブウェイで生ハム&マスカルポーネのサンドイッチ。野菜は増量でボリュームアップ。
久しぶりに食べた。美味しかった。
vSphere8.0でESXiの起動時(電源ON時)にVMも起動させる設定のメモ。
自動起動は、「ホストがvSphere HAクラスタの一部である場合、仮想マシンの自動起動とシャットダウンが無効になります。」という仕様があるので注意すること。
vSphere8でのホスト起動時の自動VM起動設定
1. vCenter Server にログインする。
2. 「ホストおよびクラスタ」のメニューを開く。
3. 自動起動させたいホストを選択する。
4. 「構成」タブを選択する。
5. 「仮想マシンの起動およびシャットダウン」を選択する。
6. 「仮想マシンの起動およびシャットダウン」のメニューに「自動順位付け」「自動」「手動での起動」の選択項目があるので、「手動での起動」を選択する。ここで表示されている仮想マシンは自動起動設定がされていないVMである。
7. 「編集」をクリックする。
8. 画面内のポップアップで「仮想マシンの起動/シャットダウン設定の編集」が開く。
9. 「手動での起動」を選択し、一覧から自動起動させる仮想マシンを選択する。
10. 「移動先」をクリックし、「自動」または「自動順位付け」を選択する。(移動先の場所はわかりにくいので注意)
11. 上記で選択した「自動」/「自動順位付け」を選択し、選択した仮想マシンが表示されていることを確認する。
12. 確認後、「OK」をクリックする。(クリック前の起動の表示は無効になっているが、これでよい)
13. ポップアップが閉じるので、「仮想マシンの起動およびシャットダウン」で、「自動」/「自動順位付け」を選択し、選択した仮想マシンの起動が有効になっていることを確認する。
もし、自動起動やシャットダウンのタイミングを変更する場合は、編集画面で、起動時間とシャットダウンの時間の秒数を変更する。
vCenter Serverから、VM(Windows Server)のVMware Toolsのバージョンアップをおこなったところ、「vixエラーコード=21009」でVMware Tools のインストールが失敗した。その後、vCenter Serverの画面では、その仮想マシンは「VMware Toolsはインストールされていません」にかわった。
アンインストールは成功しているようで、仮想マシン上もVMware Toolsは無くなっていた。
対処方法
1. 念のため、VM(Windows Server)のVMware Toolsのインストールで利用されていたフォルダを削除。下記のフォルダを中身ごと削除する。アクセス権がないと言われるはずなので、アクセス権を取得してから削除する。
C:\Windows\Temp\vmware-SYSTEM
2. vCenter Serverから、VMware Toolsのインストールを実行する(仮想サーバ上に、VMware Toolsのインストーラーをマウントする)。
3. VMにログインして、VMware Toolsをインストールする。
SQL Server 2019からSQL Server 2005へのリンクサーバ経由でアクセスするプロシージャーでエラーが発生した。
SQL ServerにSSMSでアクセスしてみると、リンクサーバーは存在する。リンクサーバーへの接続も問題なし。Select文でもリンクサーバー先のテーブルを参照できる。プロシージャーを実行すると、OLEDBのエラーが表示される。
リンク サーバー "サーバ名" の OLE DB プロバイダー "MSOLEDBSQL" から、メッセージ "トランザクションは既に暗黙的または明示的に、コミットまたは中止されています。" が返されました。
メッセージ 7391、レベル 16、状態 2、プロシージャ dbo.プロシージャー名、行 99 [バッチ開始行 2]
リンク サーバー "サーバ名" の OLE DB プロバイダー "MSOLEDBSQL" で分散トランザクションを開始できなかったので、この操作を実行できませんでした。
リンク サーバー "サーバ名" の OLE DB プロバイダー "MSOLEDBSQL" で分散トランザクションを開始できなかったので、この操作を実行できませんでした。
状況をまとめると・・・
いろいろと切り分けた結果、認証先?のAD(Active Directory)のOSバージョンによって、プロシージャーの実行が成功するか失敗するかが分かれていた。古いWindowsOSのADに問い合わせがいくと成功する。新しいOS(Windows Server 2022)だと失敗する。
Windows Server 2022のADに問い合わせされて、SQL Server 2005にアクセスされると、プロトコルとかセキュリティのキーセットの問題ではじかれて分散トランザクションが失敗して、タイムアウトになっているようだ。古いものは、互換性も無くなってきているので、きつい。
Veeam Backupで取得するVMware vSphere環境の変更を行った。新しい環境のバックアップを行ったところ、別の仮想サーバとして認識され、使用されるライセンス数が2倍になった。
Inventoryで不要なサーバを削除しても使用されるライセンスは減らない。(Inventoryで不要なサーバを削除するためには、利用されているバックアップタスクの削除も必要)
不要なサーバで、使用されているライセンスを減らすには、以下の作業でライセンス割り当てを解除する。
1. Veeam Backup の管理コンソールを開く
2. メニューからライセンス(License)を開く
3. 「Instances」のタブを開く
4. 「Manage…」をクリックする
5. ライセンスを使用しているサーバの一覧が表示されるので、NameとHostをみて、不要になったサーバを選択して、「 Revoke」をクリックする
6. 「Revoke」のところ、不要な台数だけ繰り返す。
7. 終わったら、OKで閉じていく。
Veeam Backupで仮想基盤のバックアップを取得している場合、vCenter Server や、ダイレクト登録しているESXiを入れ替えて、仮想マシンを移行すると、同じ仮想マシン名でもVeeam Backup上は別のVMとして認識される。そのため、既存のバックアップタスクでは、移行先のホストをVeeam Backupに登録しても、バックアップ対象の仮想マシンは切り替わらない。
新しい仮想基盤にVMを移行させた場合は、Veeam Backupのバックアップタスクで、バックアップ対象となるVMを、指定しなおす必要がある。具体的には、個別のタスクで旧ホスト側のVMを削除して、新しいホストのVMを指定しなおす。このとき、別VM扱いになるので、バックアップ容量は気を付ける必要がある。
現在、稼働している.NETのアプリが、どのバージョンのライタイムで、アプリケーションが動作するようになっているのかを調べてみる。この方法は、.NET5よりも後の.NETアプリについて、調べることができる。
アプリのフォルダで、下記の名前のファイルがあるかを調べる。[appname]の部分には、そのアプリの名前がついている。
[appname].runtimeconfig.json
次のそのJSONファイルを開く。メモ帳などのテキストエディタで開けばよい。
下のような中身になっているので、「tfm」や「version」の部分を確認し、どの.NETバージョンを利用するようになっているのかを確認する。
{
"runtimeOptions": {
"tfm": "net8.0",
"includedFrameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.5"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "8.0.5"
}
],
"configProperties": {
"System.GC.Server": true,
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
参考: https://learn.microsoft.com/en-us/dotnet/core/runtime-config/