投稿

vSAN 7U3 の Intelligent Cluster Shutdown&PowerUp と VxRail Cluster Shutdown&PowerUpを比較してみた。

イメージ
 vSAN 7U3 での Shutdownに関するエンハンスメント 何が変わったか それまで煩雑だったvSAN Cluster の Shutdown 手順が vSAN 7U3 の新機能によって簡易化されました。 参考: https://core.vmware.com/blog/vsan-7-update-3-whats-new    従来のやり方(Manual Shutdown)では、vSAN Cluster上のすべての仮想マシンを停止したのちに、ESXiをメンテナンスモードに入れる前に、手動でScriptを実行する必要がありました。 また、PowerUp の際も、ESXi をメンテナンスモード解除した後で、同様に手動で Script を実行する必要がありました。vSAN 6.7U3 より未満の Version では、すべての ESXi でこれを実施しなくてはならず、かつ Script も VMware のサイトからダウンロードし全 ESXi に配置し、かつそれを時刻同期した状態で Cron で実行する必要がありました。 vSAN 6.7U3 以降では、Script が更改され、自動化が進み、かつデフォルトで ESXi に内蔵されました。しかも、vSAN Cluster 内の任意の1ホストで実行するだけでよいため、それまでと比べて非常に簡易化されましたが、依然として CLI ベースの対応が必要であり、エンドユーザにとっては難しい場合もありました。 今回の vSAN 7.0 U3 では、従来の CLI ベースの Shutdown 手順から、GUI での Shutdown が可能になりました。自動化も大きく進み、Shutdown と PowerUp の両手順において、わずか数クリックで完了できます。 そもそもなぜ CLI ベースの Shutdown が必要だったか。 vSAN には、以下の KB で説明される不具合があり、過去すべての Version で該当します。この不具合は2018年に報告されていますが、最新版でも直っていません。 A simultaneous reboot of all hosts in the vSAN cluster may result in data unavailability after a sin...

vMotionでVDSの互換性を無視する方法

イメージ
大したナレッジではないですが個人的なメモを兼ねて。  参考: Migrating a virtual machine between two different vDS version (79446) (vmware.com) https://www.virtuallyghetto.com/2018/09/vmotion-across-different-vds-version-between-onprem-and-vmc.html ターゲット側のVCSAで以下を設定する vSphere Client (or vSphere Web Client) にログインし、Navigater Pane にある vCenter の インベントリを選択する 設定ー>詳細設定を選ぶ config.migrate.test.NetworksCompatibleOption.AllowMismatchedDVSwitchConfig を trueにする。(下図参照。vSphere Web Client の場合)

vCenterに定義されているEventの一覧とEventIDを取得する方法

  **** 留意事項 ***** こちらのブログの内容はDECN(Dell EMC Community Network)に投稿されたブログの再掲です。 DECNが近い将来に廃止となるためこちらに移行させていただいております。 内容についてはオリジナルの執筆当時のものとなりますので最新ではない場合がありますがご容赦ください。   ※本記事は前回の続きです。前回の記事はコチラ↓↓↓ vSphereのアラーム定義で一覧にないEventのアラームを定義する方法       さて、前回の記事ではより自由なアラーム定義の方法をご紹介しましたが、そのためにはEventIDが必要だということがわかりました。 厳密にはEventIDでなくともEventDescriptionを設定すればいいのですが、日本語の場合はスペースや句読点など正しく入力するには多少のハードルがありますので好ましくありません。 前回のEventを例にするとEventDescriptionは以下の二つになりますが、それぞれ微妙に半角スペースが用いられており、正しく入力できない懸念があります。   "RAM ディスクがいっぱいです。" "RAM ディスクのファイル テーブルがいっぱいです。"     したがって、EventIDがわかるのであればEventIDで入力したいところです。 ではどうやってEventIDを調べるのか、というのが本記事の趣旨になります。     実はEvent自体はvCenter内に定義ファイルと思しきものがあるのでそれを見ればいいのです。 VMwareの公式情報があるわけではないですが、検証機で試したところ以下の場所に定義ファイルと思しきものを見つけることができました。   /etc/vmware-vpx/extensions/hostdiag/extension.xml     ちなみに確認で用いたvCenterのVersionは以下です。 BRANCH:vsphere65ep7 BUILDNUMBER:8815520 CLOUDVM_VERSION:6.5.0.21000   このファイルをみるとEventIDやそのDescriptionがまとめられて...

ESXi に DNS サーバを何個まで登録できるか

イメージ
ESXi の DNS サーバの最大登録可能数を調べる vSphere 構築経験のある多くの方は2つまでとお答えになるかもしれない。 なぜならば、DCUI や vSphere Client から設定した場合、Primary DNS と Alternative DNS の2つまでしか設定できないからだ。 GUI から設定する場合、苦し紛れにカンマ区切りなどで3つ以上登録しようと試みても無駄である。GUI でエラーになってはじかれるだけだ。 ならば、CLI はどうか。 /etc/resolv.conf に手動で追記していくだけであればストレージの許す限り記載することはできるだろうが、 この方法は当然ながら標準的な手順ではない。 esxcli を利用して DNS を登録することも可能である。具体的には以下のコマンドを利用する esxcli network ip dns server add -s <ip_address> 上記のコマンドを利用してどこまで登録可能かを試してみた。 具体的には以下のコマンドを用いて255個のDNSサーバを追加してみた for i in `seq 1 255`; do esxcli network ip dns server add -s 192.0.2.$i ;done なお、本ブログで記載される IP Address は例示用に予約されたものであり、RFC5737 から拝借している。 結果として、少々時間はかかるが登録自体は問題なく成功した。 実環境においてこれほど多くの DNS の登録をすることはあり得ないので、事実上制限なしと考えられる。 なお、参考のために他ベンダーも含める形で DNS 登録数の最大数を調べたところ、2 か 3 にしているところが多いようだ。 DNS を大量に登録した際の動作を調べる DNS クエリのタイムアウト時間:5 秒則 ESXi の DNS Client は最近の systemd-resolved などではなく、レガシーなソフトウェアであるため、 resolv.conf の上から順番に問い合わせていき、問合せ先の DNS に到達できなかった場合に次の DNS サーバに問い合わせる動作になる。 次の DNS サーバに問い合わせる条件はあくまでも到達できなかった場合であり、到達できた...

ESXiの特定のログで特定のメッセージが出た際にvCSAからメールが送信されるように仕込む

前回 と 前々回 の記事は標題の内容が実施したかったための準備だった。 本記事で紹介するスクリプトを理解するためには前提になるので、まだ読んでいない方は一読してほしい。 この記事では、ESXi の任意のログファイルに任意の文字列が記録された際に、vCSA 経由で任意のメッセージを送信するための雛形となるスクリプトを紹介する。 雛形スクリプト 以下のスクリプト (monitorLogFileAndInvokeAction.sh) を作成した #!/bin/sh logfile="/var/run/log/vmkernel.log" message="hogehogehoge" vcsa_ipaddress="<vcsa_ip>" id_rsa_filepath="<path_to_privatekey>" sender_address="<address sent from>" rcpt_address=<address sent to> action(){    ssh -i $id_rsa_filepath  $vcsa_ipaddress "echo $1 | sendmail -v -f $rcpt_address $sender_address" } monitorLogFileAndInvokeAction () { tail -fn0 $logfile | \    while read line; do       echo "$line" | grep "$message"       if [ $? = 0 ]       then           action "`date`"       fi    done } monitorLogFileAndInvokeAction  太字に部分は、環境や目的に合わせて適切な値を代入する必要がある。 今回の例では、監視するログファイルとして vmkernel.log を指定し、トリガーとなるメッセージとして h...

ESXiからvCSAに公開鍵認証でSSH接続する

 都合により、ESXi から vCSA に対して簡易に(スクリプト化可能な方法で)SSH接続をしたくなったので準備手順として、公開鍵認証の設定を記録する。 参考記事 今回の記事内容はおおむね以下の記事を参考にしている。 https://vhoge.hateblo.jp/entry/2021/01/04/231350 上記記事との差異の要点としては、通常は SSH Client 側で作成する公開鍵をサーバ側(vCSA 側)で作成している点である。 この理由は簡単で、ESXi には公開鍵作成に必要な ssh-keygen コマンドがないからである。 したがって、 vCSA 側で作成した秘密鍵を ESXi にコピーする必要がある 細かいところは上記記事を見ていただくとして、今回は端的な手順とコマンドの記載だけとする。 接続用ユーザを作る 今回は root ユーザでログインするつもりなので作ってない。 公開鍵を作成して設置 vCSAにて以下のコマンドを実行して公開鍵と秘密鍵を生成する #  ssh-keygen -t rsa -b 4096 公開鍵の設置については、作成された公開鍵( .pub のほう)を .ssh/authorized_keys に追記すればよい。 上記記事に従うなら、ssh-copy-id コマンドでも実施可能である。 とはいえ、コピー先が自分自身なので、 以下のようにすればよい。 # ssh-copy-id -i /root/.ssh/id_rsa.pub localhost ※自分自身へのSSHだがパスワードは要求されるので入力する 秘密鍵を設置 これは、参考記事にはないステップである。 vCSA で作成した秘密鍵(.pub がないほう)を ESXi の任意のディレクトリにコピーすればよい。 ただし、再起動でなくなってしまう RAMDISK に配置するのはイケてないので、Local Datastore か Scratch partition にコピーしよう。 接続テスト ESXiに接続して、 ssh コマンドで -i で秘密鍵を指定して vCSA に接続すればよい。 認証なしでログインできれば成功である。 # ssh -i id_rsa <vcsa_ipaddress> パスワード認証無効化など諸々 参考記事ではパスワー...

vCSA からメールを送信する

都合により vCSA から任意の Email をとばしたくなったので方法を調べてみた。 環境情報 まず前提かつ必要となる条件は以下である。 必須条件: vCSA が正常に動作していること 宛先ドメインを解決可能な DNS が設定されていること(ラボ用と別でよい) vCSA が DNS および SMTP サーバと適切に疎通可能であること 任意条件: vSphere Client から SMTP サーバ IP を設定していること 意外に思うかもしれないが、vSphere Client から設定できる SMTP Server は必須ではないと判断している。 今回の環境ではメールサーバ都合で実際にメール送信が確認できなかったので、確証ではないがおそらく SMTP サーバの指定は必要ない。 一方で、DNS で宛先ドメインの MX レコードを引けることは必須であると思われる。 SMTP サーバの設定をした場合は、DNS で検索した MX レコードではなく設定した SMTP サーバが利用される。 ならば、DNS で宛先ドメインを解決できなくてもいいのではないか、と考えたくなるが、DNS で宛先ドメインを検索できない場合は Name Server Timeout になり、メールの送信が完了しない。 今回の環境では MX レコードで検索できる SMTP サーバが、セキュリティ都合で利用できなかったため、 vSphere Client で SMTP サーバを設定することで、MX レコードのメールサーバではなく、vSphere Client で設定した SMTP サーバに転送するようにしている。 DNSについての補足 DNS で宛先ドメインが検索できることが必須であると記載したが、この DNS サーバは仮想環境用の DNS サーバと異なっていてもよい。 言い換えると、仮想環境で VCSA が必要とする名前解決(ESXi や AD など)を提供する DNS サーバと、今回の目的であるメール送信の宛先ドメイン検索用の DNS サーバを2台設定しても問題ないという意味である。 DNS Client の挙動に多少の造詣のある人なら違和感を覚えるかもしれない。 通常、resolv.conf に DNS サーバが複数記載されている場合でも、名前解決で利用されるDNS は resolv.conf の一...