Microsoft Azure定期メンテナンス

Microsoft Azure では時々、メンテナンスが行われ、そのためインスタンスの再起動が行われます。(サーバリブート)となります。
当方が借りているサーバは、米国西部ですので、8/2がメンテナンスとなります。
メンテナンスはいいのですが、これだと24時間連続稼働の重要なシステムは止まってしまいますので、定期メンテナンスによるダウンタイムの発生を防ぐために、アーキテクチャに可用性セットを使用しないとだめです。
==今回のMicrosoftからのお知らせ==
メンテナンス作業の予定をお知らせします。弊社では、ネットワークハードウエアのメンテナンスを実施いたします。更新は可能な限り、各メンテナンス地域の就業時間外に実施されます。単一および複数のインスタンスのVirtual
Machine および Cloud Service デプロイメントはメンテナンス作業の間一度再起動されます。
各インスタンスの再起動には30分~45分かかります。

以下の表では、開始予定時刻を日本時間 (JST)と世界協定時刻 (UTC)
で示しています。メンテナンスは2日に分けて実施され、お客様のVirtual Machine もしくはCloud
Serviceはいずれかの日程で影響を受けます。各日程のメンテナンスは、開始時刻から 12 時間以内に終了する予定です。

地域 日本時間 (JST) 世界協定時刻
(UTC)
米国西部
(前半)
12:00
2014/8/2
3:00
2014/8/2
米国西部
(後半)
12:00
2014/8/3
3:00
2014/8/3

地域 日本時間 (JST) 世界協定時刻
(UTC)
米国中南部
(前半)
10:00
2014/8/2
1:00
2014/8/2
米国中南部
(後半)
10:00
2014/8/3
1:00
2014/8/3

地域 日本時間 (JST) 世界協定時刻
(UTC)
東日本
(前半)
20:00
2014/8/1
11:00
2014/8/1
東日本
(後半)
20:00
2014/8/2
11:00
2014/8/2

地域 日本時間 (JST) 世界協定時刻
(UTC)
東南アジア
(前半)
21:00
2014/8/1
12:00
2014/8/1
東南アジア
(後半)
21:00
2014/8/2
12:00
2014/8/2

==================

シャットダウン開始が、8/2 17]20、起動が17:52でお知らせどおり約30分ぐらいのダウンでした。

Windows 8.1(無印)からWindows 8.1 Proにアップグレード

Dell Inspiron 15 7000 / Windows 8を購入し、いろいろWindows 7風に操作をカスタマイズして快適になった。(タブレットを意識した操作画面は、ノートPCには不向きで、ましてアプリの開発&MMORPGにPCを使っている身にとってタイル画面や全画面表示なんて無用の長物です・・・)

今回、DELLから購入したPCにバンドルされているWindows 8は無印で、これだと、クライアントHyper-Vとかいろんなツール(例えばグループポリシーエディターgpedit)がありません。

そこで、BizSparkのMSDNをもっているので、Windows Proにアップグレードすることにしました。
作業は簡単で、コントロール パネル->すべてのコントロール パネル項目->システム
->「Windowsの新しいエディションで機能を増やす」でプロダクトキーを入力するだけで、アップグレードできます。(WindowsのUPDATEのような感覚でできます。)
アップグレード後、ライセンス認証リンクが有効になっていますので認証して終了です。
カスタマイズした環境はすべて引き継がれます。
(Windows8.1 proのメディアとか必要ありませんでした。)

chromeで「このウェブページにアクセスできません」が頻発し出した。

ここ2,3週間ぐらい前から、chromeで「このウェブページにアクセスできません」が
時々出るようになった。リロードすると表示されるので気にしなかったのですが、
ここ2,3日で発生頻度がひどくなってきた。ほとんどのページで
「このウェブページにアクセスできません」となるものの再アクセスをすると表示される。

===>追記:http://support.eonet.jp/ac/273/
EO光の「DNSサーバーの障害発生について」でした。
========================

1) chromeの履歴・キャッシュを全部削除、cookieも全て削除。
 =>直らず。 
2) ケイ・オプティコムの回線終端装置、eo光電話アダプタ、YAMAHA RTX1000を再起動。
 =>直らず
3) セキュリティーソフト:Microsoft Security Essentialsを停止
 =>直らず
どの対処もだめで、自分だけでなく、家族の者も同様の症状。
“ERR_NAME_RESOLUTION_FAILED”<=最初からこのエラーメッセージを出してくれればすぐに分かったのに・・・・
とういことで、DNSが引けてないか、不安定のようです。
PCはDHCPで、DNSサーバはルーター(192.168.0.1) が自動指定されています。
とりあえず、DNSをケイ・オプティコムのDNSに直接指定して大丈夫になりました。
YAMAHA RTX1000は、昔、中古でオークションで買ったもので、また中古でYAMAHA RTX1100にでも買い直します。
==DNS IPアドレスの調査 ==
YAMAHA RTX1000
# show status pp 1
PP[01]:
PPPoEセッションは接続されています
接続相手: K-OPT-BAS
通信時間: 25分18秒
受信: 102625 パケット [119392934 オクテット]  負荷: 0.3%
送信: 72139 パケット [9785312 オクテット]  負荷: 0.1%
PPPオプション
    LCP Local: Magic-Number MRU, Remote: CHAP Magic-Number MRU
    IPCP Local: IP-Address Primary-DNS(60.56.0.135) Secondary-DNS(218.251.89.134), Remote: IP-Address
    PP IP Address Local: 182.166.175.187, Remote: 101.143.252.75
    CCP: None
==DNSサーバの設定===
代替サーバにSecondary-DNS(218.251.89.134)を指定しても
いいですが、googleの8.8.8.8を設定。(深い意味はありません。)

MAC Boot Camp Support Software 5.1.5621 / ビデオドライバー / OpenSim

BootCampが5.1にUPDATEされていましたので、5.0からUPDATEしました。

MacBook Pro (Retina, 13-inch, Late 2013)で、BootCamp 5.0 (Windows 7)の時は、
OpenSimのViewer Firestorm-Beta 4.5.1を使うと起動時に「サポート外のビデオカード・・」とダイアログが出ていました。
無視してログインすると一応画面が出てきますが全体的に金属光沢がかかったような画面になっていました。
また、Windowサイズを変更すると、メニューバーからのプロダウンが透明化されて白文字しか表示されず見づらかったのですが、これが解消されました!

まあ、綺麗な画面で見たいときは、MACで起動してFirestorm-Beta 4.5.1で
動かしていたのですが、これでBootCamp 5.1 (Windows 7)でも綺麗に表示されます。

※ビデオドライバーがUPDATEしたようにも思えないのですが、何がかわったのだろうか?BootCamp 5.1にUPDATEした時にビデオドライバーが再インストールされ治ったのかもしれません。(画面解像度とか初期化されていたので再設定した。)

さくらのVPS「ローカルネットワーク 大阪リージョン」追加

3/13にVPS 大阪リージョンもローカルネットワークが追加されていました。
当方は、大阪リージョンで2台のVPSを借りていますので早速設定しました。
一つは、www.picolix.jpでCentOS release 6.5で、もう一つは、www.sco.jpでWindows 7 Ultimateです。(windowsはISOイメージでインストール)
www.sco.jpからwww.picolix.jpへ画像キャプチャーデータの転送をリアルタイムで行っているのですが従来だとインターネット経由(といっても上位のどこかのスイッチで折り返していると思いますが。)でしたが、これがローカルネットワーク経由(1Gbps ベストエフォート)で転送できるようになります。(すばらしい!)

ということで早速設定することに。
1)管理画面からサーバを再起動すると、ネットワークアダプターが2個増えて全部で3個になります。
※サーバをリブートしても増えず、VPSコントロールパネルから再起動したら増えていました。

2)スイッチ(仮想)を追加します。10個まで無料で追加できます。

3)スイッチにサーバを接続
  それぞれeth1に接続
  ※サーバを停止させていないと接続追加できません。

5)サーバネットワーク設定
 ■www.sco.jp/ Windows 7 Ultimate
   ローカル エリア接続 2 : eth2
   ローカル エリア接続 3  : eth1
   が生成されていますので、ローカル エリア接続 2は使わないので、無効にする。
   ※環境によっては、ローカル エリア接続 2がeth1,ローカル エリア接続 3がeth2に
   なる場合もあります。DOS窓で、ipconfig /allと打ってMACアドレスでどちらに割り当てられたかを事前に調べておきます。

  ローカル エリア接続 3にIPアドレス 192.168.200.10を設定

 ■www.picolix.jp / CentOS release 6.5
  [root@www ~]# ifconfig -a
  で、eth1,eth2が追加されていることが分かります。
  [root@www ~]# cd /etc/sysconfig/network-scripts/
  [root@www network-scripts]#
  [root@www network-scripts]# cp ifcfg-eth0 ifcfg-eth1
  viでifcfg-eth1を編集
  [root@www network-scripts]# cat ifcfg-eth1
  DEVICE=”eth1″
  IPADDR=”192.168.200.11″
  NETMASK=”255.255.255.0″
  ONBOOT=”yes”
  TYPE=”Ethernet”
  ARPCHECK=no

  ついでに、 ifcfg-eth0にARPCHECK=noを追加
  どういうわけか、ARPCHECK=noを入れないと、eth1をifupした時に、
  eth0が応答しなくなります。
  [root@www network-scripts]# cat ifcfg-eth0
  DEVICE=”eth0″
  IPADDR=”YY.YYY.YYY.YYY”
  NETMASK=”255.255.254.0″
  GATEWAY=”XX.XX.XX.XX”
  ONBOOT=”yes”
  TYPE=”Ethernet”
  ARPCHECK=no

    [root@www network-scripts]# ./ifup eth1
  でeth1有効化
  これで、www.sco.jp 192.168.200.10にアクセスできるようになります。

  [root@www network-scripts]# ping 192.168.200.10
  PING 192.168.200.10 (192.168.200.10) 56(84) bytes of data.
  64 bytes from 192.168.200.10: icmp_seq=1 ttl=128 time=1.74 ms
  64 bytes from 192.168.200.10: icmp_seq=2 ttl=128 time=0.826 ms

 後はwww.sco.jpの自前のアプリで、www.picolix.jpに転送しているところを192.168.200.11
 に書き換えて終わり。

 

OSgrid テレポート先のChannelVersionの取得:(OpenMetaverse libomv-0.9.1)

この記事は自分用です。
最近、OSgridのopensimのバージョンアップ更新頻度が高く、当方所有のSIM (aska) もUPDATEするのも手間です。
Viewer Firestormでテレポートすると、simulatorバージョンが異なると、↓のように
simulatorバージョン(ChannelVersion)の詳細を表示してくれます

この詳細バージョンのデータを何とか、OpenMetaverse libomvのDLLでChannelVersionを取得したく、FireStorm Viewerのソースコードとlibomv-0.9.1のソースコードを少し漁りました。
結局、サーバからAgentMovementCompleteのメッセージが来たときに、目的のデータが入っていました。

とりあえず、、OpenMetaverse libomvのNetworkManager.csに###部を追加して強制的に表示してみた。
これだと汎用性がないので、別途OpenMetaverse.Packetsをcallbackで自アプリの方に実装する予定。

//***NetworkManager.cs
        private void IncomingPacketHandler()
        {
            IncomingPacket incomingPacket = new IncomingPacket();
            Packet packet = null;
            Simulator simulator = null;

            while (connected)
            {
                // Reset packet to null for the check below
                packet = null;

                if (PacketInbox.Dequeue(100, ref incomingPacket))
                {
                    packet = incomingPacket.Packet;

                    simulator = incomingPacket.Simulator;

                    if (packet != null)
                    {
                        // Skip blacklisted packets
                        if (UDPBlacklist.Contains(packet.Type.ToString()))
                        {
                            Logger.Log(String.Format(“Discarding Blacklisted packet {0} from {1}”,
                                packet.Type, simulator.IPEndPoint), Helpers.LogLevel.Warning);
                            return;
                        }
//#################### 追加
                        if (packet.Type.ToString() == “AgentMovementComplete”)
                        {
                            Console.WriteLine(“#### Networkmanager.cs ####:…” + packet.Type.ToString());
                            string packetText = PacketDecoder.PacketToString(packet);
                            Console.WriteLine(packetText);
                        }    
//####################
                        // Fire the callback(s), if any
                        PacketEvents.RaiseEvent(packet.Type, packet, simulator);
                    }
                }
            }
        }
====

ChannelVersion: OpenSim 0.8.0 Dev          OSgrid 0.8.0 (Dev) 73891c7: 2014-05-09 (Unix/Mono)
が取得できてます。で、それがどうしたのと言われても特に何もありません・・。

関連:

FireStorm Viewer のビルド & サイズ制限解除(1024mまでok,メッシュも)

SMAIL 4.18にバージョンアップしました。openSSL 1.0.1gにライブラリをバージョンアップ。脆弱性対策(CVE-2014-0160)

「OpenSSLに脆弱性、クライアントやサーバにメモリ露呈の恐れ」ということで、
openssl 1.0.1から 1.0.1fが対象です。
SMAILはメールクライアントソフトで、サーバタイプではないのですが、
OpenSSLに脆弱性に該当するメールサーバに接続した場合に影響あるかも
ということで、openSSL 1.0.1gのライブラリーを組み込みました。
*前バージョンSMAIL 4.17は、openSSL 1.0.1eを使用しています。

OpenSSLに脆弱性、クライアントやサーバにメモリ露呈の恐れ

[メモ] oci_bind_by_nameでのbindする値がNULL時のエラー対策。PHP 4.4.9 / oci8 Revision: 1.273 / Oracle Version 10.1

PHP Version 4.4.9 / oci8 Revision: 1.273 / Oracle Version  10.1
で oci_bind_by_name($stmt, ‘:dummy’, $dummy);
$dummy が NULLの時、oci_bind_by_nameはなぜかエラーとなります。

エラー内容:
Allowed memory size of 8388608 bytes exhausted (tried to allocate -153092211 bytes)

ググっても対策方法が出て来ないのでトライ&エラーで対応。

$dummy = “”;
$dummy = null;
どれもだめで、以下にするとOK

$dummy .= “”;
空文字を連結するとなぜかOKとなる。多分変数$dummyのメモリー上に
何かがセットされて、oci_bind_by_nameの方で正しくNULLが認識された!?

$sql = “select sysdate from dual where sysdate > :dummy”;
if($dummy == “”){
          $dummy .= “”;
}
$stmt = oci_parse($Conn,$sql);
oci_bind_by_name($stmt, ‘:dummy’, $dummy);

Windows Azure “仮想マシン”作成

マイクロソフト BizSpark審査承認されました。
http://www.microsoft.com/ja-jp/mic/bizspark/

MSDN サブスクリプション を無料で利用できます。
また、Windows Azure を3年間で最大 ¥454,500分を無償で利用できます。
(登録月¥17,000,以降毎月¥12,500分が提供される。)
Windows Azureを有効化するときに、携帯電話を使った認証(SMS認証)がありますが、
クレジットカードの登録とかは必要ありません。

今回、Windows Azureで“仮想マシン” Windows 2008 Server R2 Datacenterを作成してみました。
私は、さくらでVPS(仮想専用サーバ)を2台(LinuxとWindows)を借りていますがこれと似たようなものですがちょっと制限があります。

【Windows Azure 仮想マシン】注意事項

1)外部に公開するポートは、エンドポイントで登録しないといけない。
2)untrust側のpingは送受信ともフィルターされているっぽい。
3)IPアドレスの逆引きは設定されていない。
   *メールサービス関連を実装するときは要注意です。
    逆引きができないので、メールサーバによっては拒否されます。
    SMTP認証等を実装している外部のSMTPサーバを使う必要があります。

   *場合によっては、逆引きされているIPもあります。
    これは、たまたまマイクロソフトが別サービスのため設定しているものです。
    例)book.azurewebsites.net
      waws-prod-am2-003.cloudapp.net [137.117.224.218]
      nslookup 137.117.224.218
      名前:    dreamspark.ro
      Address:  137.117.224.218

4)使用制限(デフォルト)をかけていますので、無償分のクレジットを超えるとその月は停止されます。
   *これに関しては超えないような、構成を選択しているのでほぼ問題ないかと思います。
   *制限は削除できますが、削除したら制限を再度有効化できません。

5)”仮想マシン” の新規作成は“ギャラリー” から好きなものを選んで作成する。
   http://www.windowsazure.com/ja-jp/pricing/details/virtual-machines/
   *仮想マシン以外にクラウドサービス、ストレージが作成されます。
   *設置場所は、東アジアもありますが、米国西部にしました。
    これは、送信データ転送料が安いのと、踏み台サーバにした時に何かと良いので。
   *インストールモデルは英語版のみとなりますが、言語パックダウンロードして
    日本語を適用させると問題なく日本語化できます。こちら参照↓
    http://yomon.hatenablog.com/entry/2013/06/15/%E3%80%90Azure%E3%80%91%E8%8B%B1%E8%AA%9E%E7%89%88Windows_2008R2SP1%E3%82%92%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%A1%A8%E7%A4%BA%E3%81%B8%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86

6)料金について
  ・仮想マシン :S (A1) 1CPU/ MEM 1.75GB ¥7.48 (~ ¥5,561/月)
  ・クラウド サービス:S (A1) 1CPU/ MEM 1.75GB ¥6.65 (~ ¥4,982.37/月)
    ・ストレージ: 最初の 1 TB 1/月 ¥7.89 (GB あたり) ¥5.82 (GB あたり)
    ・送信データ転送(Windows Azure データ センターから出ていくデータ):
       最初の 5 GB/月 1 無料
       5GB~10TB 2/月 ¥9.97 (GB あたり)

多分、無償でいけそう。

【仮想マシン Windows 2008 Server R2 Datacenter】
    CPU:AMD Opteron 4171HE 2.09GHz /MEM:1.75G

  とりあえず今のところ使い道がないので、テストでWEBOSGRID(opensim)に接続しました。
  OSGRID(opensim)は、1SIMの場合TCP,UDP 9000を開ければ良いので、Windows Azureの
  仮想マシンのエンドポイント設定で、TCP 9000、UDP 9000を登録しておきます。
  
  <サービス>
    ・Apache 2.2 / php5.4.7 / Mysql5.5
    ・Opensim 0.8.0

OSgrid OpenSimulator 0.8.0.dev.f94d07f 11-16-2013 リリースされました。

SNS MANIAXXのOpenSimのトピックより、
=================
.NET Framework:Version 4.0以上
Mono:Version 2.10.8.1以上
=================
の情報を頂いて、monoを最新の3.2.3にしてopensim-11162013.v0.8.0.f94d07f
http://www.osgrid.org/index.php/downloads
を動作(osgrid: aska)させました。 * mono 2.10.8でも動作しました。

以前、libomv-0.9.1で作ったlogininfo.exeで
opensimにログインできるかチェックするプログラムですが、opensim-11162013.v0.8.0.f94d07fで起動させると、

[root@www opensim-11162013.v0.8.0.f94d07f]# /usr/local/bin/mono logininfo.exe firstname secondname password “aska/20/60/40” “http://login.osgrid.org”
Missing method .ctor in assembly /projects/opensim1162013.v0.8.0.f94d07f/SmartThreadPool.dll, type System.Runtime.Versioning.TargetFrameworkAttribute
Can’t find custom attr constructor image: /projects/opensim-11162013.v0.8.0.f94d07f/
Aborted
でabortして動作せず。

「System.Runtime.Versioning.TargetFrameworkAttribute」でエラーなので、
多分、NET Framework のバージョン関連でエラーになっているのかもということで、
logininfo.exeのコンパイル時の対象フレームワークを見てみると今まで3.5でコンパイルしていたので、
これを.NET Framework:Version 4にしてコンパイルして実装しました。(正常動作しました。)

logininfo.exeはこちらにUPしておきます。

http://dip.picolix.jp/free/soft/logininfo.exe
http://dip.picolix.jp/free/soft/osgrid_login.pl.txt

使い方:
 1) logininfo.exeを OpenSim.exeと同じフォルダーにコピー。
 2) cmd窓(dos窓)で
     logininfo.exe firstname lastname password simname/x/y/height login-server-url
     *linuxはmonoで実行して下さい。(.NET Framework 4以上)

    例)logininfo.exe  aaaaa bbbbb xxxxxx “Wright Plaza/128/128/40” “http://login.osgrid.org”
      Login:…aaaa bbbbb
      Login success Welcome to OSGrid…
      Teleported [Wright Plaza/128/128/40]
      Logout:…

      戻り値
      //windows: echo %ERRORLEVEL%
      //linx : echo $?
   // 0:正常 1:失敗 2:ログインできたものの該当SIMに行けず。 3:失敗