VMware HA有効時に仮想マシンの自動起動をしたい

2023/03/06追記

警告2

vSphere 7.0 Update1以降、VMware HAを有効にするとvCLSという仮想マシンが起動するようになるという仕様変更があり、おとなしくUPS連動でシャットダウンをさせてくれなくなっています。

詳細は「vSphere 7.0 Update 1以降 vCLSという仮想マシンが勝手に起動してUPS連動シャットダウンに失敗する」を見てください。

2019/06/26追記

警告

UPSによる自動停止と自動起動が目的である場合、このページに書かれている手法は、どこにも担保されていない手法となり推奨できません。

保証がある、という方向性で考えると、UPSソリューションズの「シャットダウンボックス UPSS-SDB02」など、外部機器を用意し、そちらからコントロールする手法をお薦めします。

また、2019年現在では、UPSメーカ公式の対応手法がいくつか出てきています。

基本的には、シャットダウン時にVMware HAを無効化して、起動時はVMware HAが無効化されているのでvCSAと起動用VMが自動起動できるので、それらをまず起動してから、VMware HAを有効化し、それ以外の仮想マシンも起動する、という手法をとっています。

APC UPS「PowerChute Network Shutdown for Virtualization v4.x VMware HA環境でのサポート構成

Eaton UPS「シャットダウン for vCSA on vSphere HA by IPM 1.62」「自動起動 for vCSA on vSphere HA by IPM 1.62

よっぽどのことが無い限り、これらの手段を使うべきだと思います。

また、シャットダウンを行う仮想マシンとしてvMA(vSphere Management Assistant)を使用するといった手順が紹介されている場合がありますが、vMAはvSphere 6.5までの対応(2016年11月リリースが最終版)となっており、最新のvSphere 6.7環境ではサポートされないことに注意してください。

vMAというアプライアンスの代替は公式にはありません。
別途、Windows/Linuxをインストールした仮想マシンに対して「vSphere CLI」をインストールするか、もしくはPowerShellがインストールされたWindows/Linux/MacOSXで動作する「VMware PowerCLI」モジュールを組み込むかを行う必要があります。

追記終わり


VMware HA利用時って、ESXiの仮想マシン自動起動設定が使えません。
そんなわけで、いままではvCenter ServerとしてWindowsサーバを別途ハードウェアを用意し、そこから、スクリプトを使って仮想マシンを起動させていたりました。

しかし、いまは、vCenter Server Appliance(vCSA)。
仮想マシンでたてちゃえば、Windowsライセンスもいらないのでお気軽・・・ってことになっています。
(vCSAは、SuSE Linux+Linux版vCenter Serverです)

が・・・VMware HA有効時は、仮想マシンの自動起動が使えない→vCSAも起動しない。
さて、どうしよう?

正規な解決手法は無い模様。

ハードウェアを追加で購入して対応する、というのであれば、UPSソリューションズの「シャットダウンボックス UPSS-SDB02」というアプライアンスを使って解決する、という手があります。

ESXiサーバだけでなんとか解決する手法はないものか、いろいろ捜索してみた結果、ESXiの起動時に実行される/etc/rc.local.d/local.shを利用して起動させる、というあたりが最適かな、という結論に。
(rc.localに関するVMwareのKB:Modifying the rc.local or local.sh file in ESX/ESXi to execute commands while booting)

警告!!!以下の手順はVMware公式の手順ではありません。

ESXi5.1の場合、ESXi Shellを有効にしてログイン、もしくはsshを有効にしてログインしたあと、/etc/rc.local.d/local.shを編集します。

元々のlocal.shはこんな感じ。

~ # cat /etc/rc.local.d/local.sh
#!/bin/sh

# local configuration options

# Note: modify at your own risk!  If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading.  Changes are not supported unless under direction of
# VMware support.

exit 0

ここに仮想マシン起動のコマンドを入れ込みます。

いろいろ実験した結果、すぐに実行すると仮想マシンファイルのロック問題が発生し、vMotionができない状況が発生したりしたので、若干スリープを入れて処理を遅延させます。
・・・時間調整が面倒だったので、切りよく5分(300秒)で設定しちゃってますけどね。

#!/bin/sh

# local configuration options

# Note: modify at your own risk!  If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading.  Changes are not supported unless under direction of
# VMware support.

LOGS=/vmfs/volumes/sharedstore/tmp/`hostname`.txt
date >> $LOGS
vim-cmd vmsvc/getallvms >> $LOGS
sleep 300
date >> $LOGS
vim-cmd vmsvc/getallvms >> $LOGS

for vmid in `vim-cmd vmsvc/getallvms | grep "sharedstore" | awk '{ print $1 }'`
do
        vim-cmd vmsvc/power.on $vmid
        sleep 5
done

date >> $LOGS
echo "boot finished" >> $LOGS
exit 0

書き換えた後は「auto-backup.sh」を実行します。
これを忘れると、再起動を行うとlocal.shは初期状態に戻ってしまいます。

~ # auto-backup.sh
Files /etc/vmware/dvsdata.db and /tmp/auto-backup.5979//etc/vmware/dvsdata.db differ
Saving current state in /bootbank
Clock updated.
Time: 00:37:06   Date: 09/20/2013   UTC
~ #

もしかすると、下記の様な感じの出力になるかもしれません。

~ # auto-backup.sh
--- /etc/vmware/hostd/hostsvc.xml
+++ /tmp/auto-backup.5631//etc/vmware/hostd/hostsvc.xml
@@ -8,6 +8,5 @@
   <mode>normal</mode>
   <service>
     <TSM-SSH>on</TSM-SSH>
-    <ntpd>automatic</ntpd>
   </service>
 </ConfigRoot>
\ No newline at end of file
Saving current state in /bootbank
Clock updated.
Time: 00:26:37   Date: 09/20/2013   UTC
~ #

これは、vSphere Clientから行った設定と、いまauto-backup.shで保存した設定に差異があり、vSphere Clientで行った設定が無効になったような場合に表示されます。

その場合は、もう1回、vSphere Clientから設定をやり直します。
上記の場合は、「automatic」が無くなった、ということになりますので、NTPに関する設定をやり直します。


解説

#!/bin/sh

# local configuration options

# Note: modify at your own risk!  If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading.  Changes are not supported unless under direction of
# VMware support.

LOGS=/vmfs/volumes/sharedstore/tmp/`hostname`.txt

LOGS=でログファイルの出力先を指定。
「/sharedstore/tmp/」は適宜環境に応じて調整のこと。

date >> $LOGS
vim-cmd vmsvc/getallvms >> $LOGS

この段階での、このESXiホストが管理している仮想マシン一覧を取得。

sleep 300
date >> $LOGS
vim-cmd vmsvc/getallvms >> $LOGS

300秒待ったあと、再度、仮想マシン一覧を取得。

ここでウェイトを入れなかった場合、ESXi間での共有ファイルロックがおかしくなったようで、vMotionがうまくできなくなったという事例が発生した。
どれくらい待てばいいのかという最適値は不明。とりあえず切りよく300秒としただけ。

for vmid in `vim-cmd vmsvc/getallvms | grep "sharedstore" | awk '{ print $1 }'`
do
        vim-cmd vmsvc/power.on $vmid
        sleep 5
done

仮想マシン一覧を「vim-cmd vmsvc/getallvms」で取得し、そのなかから、起動したい仮想マシンだけをうまいこと選択できるキーワードを使ってgrepで抜き出し、その最初の数字を抜き出す。
その数字の仮想マシンをpower.onする。
という感じ。

仮想マシンの台数が多いときは、この部分を2つに分けて、最初のforループでは、vCSAの起動を。
そこから2分(sleep 120)ぐらい間を置き、
次のforループでは、それ以外の仮想マシンを起動するようにした方がいいと思う。

今回は「sharedstore」という文字列が入っているものを起動させている。
ここら辺は、うまいことやる必要がある。

date >> $LOGS
echo "boot finished" >> $LOGS
exit 0

KeyASICベースのWiFi SDカードについて

KeyASIC社の開発キットをベースに商品化されたWiFi SDカードも、各社からいくつか製品化されてきたので、整理してみる。

以下に掲載する製品群は、Firmwareアップデータの構成および内容がほぼ同一であることから、KeyASIC社開発キットベースであろうと推測されるものです。
あくまで「推測」で、メーカ公式見解ではありません。

また、各製品とも、WiFi接続用のアプリに互換性はありません。
各アプリとも、WiFi SDカード上で動作しているWebサーバにアクセスして、写真を取り出す構造になっていますが、API/CGIに互換性がないため、全然動きません。
(逆に言うと、Webサーバに細工をすると、他社アプリが動く)

KeyASIC WiFi SD Card Reference Platform
KeyASIC社の開発キット。
これをベースに各社がバリエーションを作っていると想定される。

Trek2000 Flucard Pro
製品
 4GB Flucard Pro GEN2, Flucard Pro GEN3
 8GB Flucard, Flucard Pro GEN2, Flucard Pro GEN3
 16GB Flucard Pro GEN3
firmware version: v3.70_100R (2012/12/13)

Trek2000 Internatinal社が、一番最初にKeyASIC製品を一般向けに販売しはじめたところ。
現状は3世代目の製品が販売されているが、2世代目と3世代目は製品名で区別されていないので注意。
互換性や書き込み速度の改善を図るため3世代目(GEN3)がリリースされたとのこと。
つまりは2世代目は、動かない環境が多め、とのこと。
動かない場合はメーカサポートに問い合わせると、ある程度は対応してくれるらしい。

管理画面を表示するWebサーバは、busybox内に埋め込んでしまっている・・・・・・・・権利的にどうなん?という点が散見されたりもする


東芝 Flash Air
製品
 SD-WB008G(初代,Flash Air Class6, 8GB)
 SD-WC016G(2代目,Flash Air W-02 Class10, 16GB)

初代firmware version: v1.00.04 / F24A6W3AW1.00.04 (2013/07/04)
2代目firmware version: 更新は未リリース

Flash Airについては、Key ASICベースなのかははっきりしない点がある。
ただ、おそらくはかなり近いと予想される動作が見受けられる。
2代目になってようやくやる気が出てきたのか、「開発者向け情報サイト」を作ったり、Developer向けイベント開催とかしている模様。


PQI Air Card
firmware version: v1.47 (2013/02/04)

microSDHCカードスロットがついており、そこにカードを入れることで、SDカードとして使うことができるようになる、というもの。
Trek2000 Flucard Proをベースに作成されたようで、Firmware内のファイルにTREKをうかがわせる残骸が残っている。
その割には、Web CGI/APIに互換性がないので、アプリ流用はできない。


Transend Wi-Fi SDカード
製品
 TS32GWSDHC10(Class10, 32GB)
 TS16GWSDHC10(Class10, 16GB)
firmware version: v1.7 (2013/05/15)

結構後発組。
海外でもそれなりに発売されているようで、改造例がいくつか見られる。

Hax it! Random hacks「Hacking Transcend WiFi SD Cards
fernjager $cat /dev/urandom「Modifying Transcend WiFi SD Card Firmware

WebサーバはBoaを使用。


・幻のTrek2000版 Flash Air Pro
firmware version: v1.15 (2013/04/16)

一時期Flash Air Proという製品ページが出来ていた。
現在でも、Flash Air Pro用アプリページというのが存在している。
Flucard Proとも、東芝版Flash Airともアプリ互換性がないようなのが謎。

Firmware探索をすると、基本的にはFlucard Proベースで構築されているが、/etc/init.d/rcS内に「get_toshiba -p “APPMODE”」という記述が追加されていたりするのだが、前述の通り、アプリが別になっていて、非常に謎。
(参考:Flash Air ProがFlucard ProのTREK2000から発売?)

Spreadtrum系を改造するためのメモ書き

Spreadtrumチップを採用したAndroidを改造するためのメモ書き。

対象は以下のチップセット
・GSM向けのSC6820(Cortex-A5 1core 1GHz), SC6825(Cortex-A5 2core 1.2GHz)
・TD-SCDMA向けのSC8810(Cortex-A5 1core 1GHz), SC8825(Cortex-A5 2core 1.2GHz)
・WCDMA向けのSC7710(Cortex-A5 1core 1GHz)

「SC6820/SC8810」と「SC6825/SC8825」は兄弟モデルといっていい感じのもので、超廉価向けGSM onlyのSC68xxと、中国国内向けTD-SCDMAのSC88xx、というようなすみ分け。

今回、SC7710というWCDMA向けが加わったんだけど、2coreにした、SC7725は出てこないのかな?

・・・それはさておき、改造の話。

正直余り資料はない。

とはいえ、4月に「Firefox OSがSpereadtrum SC8810対応に?」という記事でFirefox OSがSC8810対応になった、ということ書いたように、Spreadtrum社としては、いろいろ開発に参加しているようで、期待は持てる。
(2012/06/16のSpreadtrum社のFirefox OSに関するプレスリリース)

それでは、以下にいろいろ調べた内容をメモっておく。

SPD 8810 6820 reset google account ….
電源ボタン+音量アップボタンを同時押しすると、fastboot modeで起動。
「fastboot oem unlock」でロックが外れるとかなんとか

使えるfastbootコマンドの範囲が不明だが、送り込んだbootイメージから起動とかできると面白いのだが・・・

[Q] Rooting Chinese Spreadtrum Phone w/ Android 4.0.3
SC8810(TD-SCDMA向けチップ)を使ったAndroidでrootを取るには?という質問

Root MANY ANDROID! [Upd: 18.06.2013] – Switched to improved method」のroot取得方法が薦められている。

Rooting Every Spreadtrum SC6820/SC8810 phones ! (1.5)
こっちの記事だとX-Rayってソフトを薦めている。
その他にもいろいろなことについて書いてある

Spreadtrum SC6820/SC8810 Full Backup
フルバックアップの作成方法

MC Tool Box
Spreadtrumチップ採用のEEPROM編集機能、MTK系のIMEIなどの焼き直し機能、などを持っているハードウェア?
Android向けじゃなくて、フィーチャーフォンを含んだ全体的なものっぽい

GPGDRAGON
これもMC Tool Boxと同様なハードウェア

Spreadtrum SC7710搭載のAndroidが日本公式発売!その名もfreetel!

なんと、Spreadtrum SC7710搭載のAndroidが日本公式発売!その名もfreetel!

freetelという名称でSpreadtrum社のCPU SC7710搭載のAndroidフォンが日本で公式に発売されるそうです。

シネックスインフォテック株式会社「プラスワン・マーケティングと国内最安値クラスのSIMロックフリースマートフォンを提供
製品公式ページ「freetel

6月に中国のサイトで「展讯首颗WCDMA手机芯片SC7710曝光」とか「展讯W平台SC7710,单核心的“核武器”?」というような感じで、3.5インチ~4.0インチクラスで、Cortex-A7 dual coreのMTK MT6572対抗のCPUが出る、という話がありました。
ただ、「Spreadtrum社製品一覧」にはフィーチャーフォン向けのSC7701Bはあっても、Android向けのSC7710は無かったので、存在を疑問視していました。

それが、まさか、いきなりの日本発売を果たすとは驚きです。

Spreadtrum社のSC7710はどんなCPUであるのか?

画像は「展讯W平台SC7710,单核心的“核武器”?」より

Cortex-A5 1GHz(1コア)
GPU Mali-400
WCDMA Category14(= HSPA+ 21.1Mbps)
20130626090037156

おそらくはTD-SCDMA向けチップとして先行しているSC8810のWCDMA版なんでしょうね

現行のSpreadtrum社のラインナップ的には以下の3ライン
・GSM向けのSC6820(Cortex-A5 1core 1GHz), SC6825(Cortex-A5 2core 1.2GHz)
・TD-SCDMA向けのSC8810(Cortex-A5 1core 1GHz), SC8825(Cortex-A5 2core 1.2GHz)
・WCDMA向けのSC7710(Cortex-A5 1core 1GHz)

超廉価向けGSM onlyのSC68xxと、中国国内向けTD-SCDMAのSC88xxがあり、それぞれ1コア、2コアモデルがある、という感じ。
そこに今回、WCDMAモデルのSC77xxが追加、という感じなのに、1コアモデルのみって・・・・

しかも、シングルコアなのに、Dual coreのMT6572対抗とか言っちゃってだいじょぶなのか?

で・・・今回の製品「freetel」はどんなスペックなのか?

3.5インチ QVGA(480×320)液晶搭載
RAM 512MB/ROM 512MB
Android 4.1.2
カメラ 前面30万画素、背面200万画素
ストラップホールは恐らくない

公式サイトに掲載されている写真は実機そのものではない模様。
130910_01_img01

RAM 512MB/ROM 512MBで、Android 4.1.2は、かなりキツイです。
いま、うちに、RAM 512MB/ROM 512MBで、Android 4.0.4を載せたやつがありますが、ストレージがぱんぱんで、日本語IMEを入れてしまうと、他はtwitterクライアントぐらいしか入らないぐらいの容量のなさです。

この製品は、ストレージの少なさを、どう回避しているのか、気になるところです。

いろいろぐぐってみると、同じ外見で似たスペックのものを発見。

Shenzhen Kotena Technology Co. Limited「3.5-inch Smartphone with Google’s Android 4.1/SC7710 Cortex A5 1.0GHz CPU (Model Number: W7712)
globalsource-android
これは、RAM 256MBだけど、カメラは前面130万画素,背面300万画素良くなってる。

Ying Tai Electronics Co., Ltd.「Best low end cheap 3g android phone with android 4.1(Model GN351)
Low_end_cheap_3g_android_4_1
こっちは、RAM 256(オプション512)MB、カメラは同じ。
GPSがオプションとなっているんだけど、freetelは、ちゃんとGPSついてるのかな?

上記画像に書かれてるURLを元に探すと、深圳市科永泰电子有限公司「厂家直供低价3G智能手机 展讯7701 智能机厂家 安卓手机生产商」に行き着く。
ここだと、3000台発注時に1台あたり245人民元(4千円)だそうな。(おそらくRAM 256MB版の値段)

で・・・このfreetelの日本でのお値段はというと、1万5千円程度らしい。

このスペックだと1万以上は出せないかなぁ・・・
だって、元値が5千円程度な上に、Cortex-A7 DualcoreのMTK MT6572搭載4.0インチ(800×480)中華Androidを輸入したとしたって、82.56ドル(送料込)なんだぜ・・・
売れるのかなぁ????これ

COOLPIX S01とCOOLPIX S02の比較

小型デジカメのCOOLPIX S01の新モデルCOOLPIX S02が発売されるという。

新しくなった点は外見が四角くなったのと、液晶大型化と画素数増加だけなの?とちょっとわかりにくかったので、スペックを並べてみた。
ISO感度が微妙に変わってる・・・
また、添付の本体充電ACアダプター(USB-ACアダプタ)が新モデルになってるのはなんなんだろう?何かスペックが違うのかな?

型式 COOLPIX S01 COOLPIX S02
有効画素数 1014万画素 1317万画素
レンズ 光学3倍ズーム、NIKKORレンズ、4.1-12.3mm(35mm判換算29-87 mm相当の撮影画角)、開放F値:f/3.3-5.9、レンズ構成:5群6枚、電子ズーム:最大4倍(35mm判換算で約348mm相当の撮影画角) 光学3倍ズーム、 NIKKORレンズ、焦点距離:4.1-12.3mm(35mm判換算30-90mm相当の撮影画角)、開放F値:f/3.3-5.9、レンズ構成:5群6枚、電子ズーム倍率:最大4倍(35mm判換算で約360mm相当の撮影画角)
撮影距離 先端レンズ面中央から約50cm~∞、撮影シーンのクローズアップ時は、先端レンズ面中央から約5cm~∞(広角側)、約50cm~∞(望遠側) 先端レンズ面中央から約30cm~∞(広角側)、撮影シーンのクローズアップ時は、先端レンズ面中央から約5cm~∞(広角側)、約50cm~∞(望遠側)
画像モニター 2.5型TFT液晶モニター(タッチパネル)、約23万ドット 2.7型TFT液晶モニター(タッチパネル)、反射防止コート付き、約23万ドット
記録媒体 内蔵メモリー(約7.3GB) 内蔵メモリー(約7.3GB)
ISO感度(標準出力感度) ISO 80~1600 ISO 125~1600
電源 リチウムイオン充電池(内蔵) リチウムイオン充電池(内蔵)
電池寿命※1 静止画撮影時:約190コマ
動画撮影可能時間(実撮影電池寿命)※2:約1時間10分
静止画撮影時:約210コマ(内蔵充電池)
寸法(幅x高さx奥行き) 約77.0×51.2×17.2mm(突起部除く) 約77.1×51.3×17.5mm(突起部除く)
質量(重さ) 約96g 約100g
付属品 ストラップ、本体充電ACアダプターEH-69P、USBケーブル UC-E16 ストラップ、本体充電ACアダプターEH-70P、USBケーブル UC-E16

にしても・・・S01の丸い感じが良かったんだけど、四角くなっちゃったなぁ・・・