2014年12月19日金曜日

ADMT 3.0でユーザー移行時にSIDヒストリ生成が失敗する

1日の教育コース「Windows環境マイグレーション実践」を実施していて気付いたことがあります。

ADMTで、アカウントを移行(複製)するとき、最後に移行元の管理者アカウントを聞いてきます。既に管理者権限があるのに、なんで聞いてくるのか分かりませんが、確認のためなのでしょう。

Windows Server 2003上でADMT 3.0を実行した場合、管理者パスワードを間違えても、その時はエラーにならず、以下のような現象が出ます。

  • 移行時にエラーが出る
  • ユーザーアカウントの複製は完了
  • ただしSIDヒストリが生成されない(エラーメッセージはこれ)

ADMTのデータベースには「移行済み」マークが付くので、再移行はできませんし、SIDヒストリの更新もできないという状態になってしまいます。

ユーザーの権利やグループのメンバーシップ情報などは、更新もできるのですが、SIDヒストリは更新の対象になっていません。

しかし、ADMT 3.2 QFE をWindows Server 2012 R2上で実行した場合は、管理者アカウント情報を間違えた時点で適切なエラーが表示され、先には進めませんでした。

よかった。

なお、移行に失敗してしまった場合、以下の2つ解決方法がありそうですが、どちらも問題があります。

  • 移行先のユーザーを削除し、別のマシンにADMTをインストールして再移行
    移行自体は成功しますが、ADMTのデータベーステーブルにある「移行先ユーザーの新SID」が適切な値にならず、セキュリティ変換などに支障をきたします。
  • 移行先のユーザーを削除し、ADMTのデータベースを直接操作して、移行しなかったことにする
    これができればいいのですが、ADMTのデータベーススキーマが公開されていません。

ところで、先日、デモ中に、クライアントPCの移行に失敗したのですが、単にNT4互換の暗号化アルゴリズム指定が抜けていたためでした。テキストの手順通りに実行すれば問題なく移行できます。

KONICA MINOLTA DIGITAL CAMERA
▲マイグレーションと言えば、アフリカ大陸で毎年見られる「ヌーの大移動」
(写真は移動の時期ではありません)

2014年12月9日火曜日

Hyper-VのDHCPガードの意味

Windows Server 2012以降のHyper-Vには「DHCPガード」という機能があります。説明には「承認されていない仮想マシンからのDHCPサーバーメッセージを削除します」とあります。

実際に、このチェックボックスをオンにすると、DHCPパケットが仮想マシン外に飛びません(DHCPサーバーとして実用的な動作はしません)。

DHCP-Guard
▲DHCPサーバーガードの構成は仮想マシン単位で行う

Windows ServerにはDHCPサーバーをActive Directoryで承認する機能があるため、この「承認」も何らかの操作を指すと思っている人が多いようです。

実は、ここでいう「承認」は「管理者が正しいと判断する」という意味です。つまり、管理者が、正しいDHCPサーバーを立てたと思ったらチェックを外すという手順を意味します。

存在しない機能を探すのは難しいのですが、一応、それらしいものがありました。英語版TechNet Forumの「How to configure DHCP guard in Hyper-V 2012?」では、モデレータのBrian Ehlertさんがこう答えています。

Unauthorized and Authorized is a procedural / process phrase. It is not a technical phrase or any setting that can be applied.  It is the business decision to call machine authorized or not.

意訳

「承認されていない/承認されている」は手続きの順序を意味しており、技術的な方法や設定手順を意味するものではありません。「承認されている/いない」は、仮想マシンを構成するときのビジネス的な判断(DHCPサーバーにするかしないかを管理者が決めること)を意味します。

Hyper-V管理者と、仮想マシン管理者が同一の場合は意味を持ちませんが、以下のような運用を想定しています。

  1. Hyper-V管理者が仮想マシンVMを作成
  2. VM管理者はDHCPサーバーでないことをHyper-V管理者に通知
  3. Hyper-V管理者が仮想マシンVMのDHCPガードを有効化
  4. 誤ってVMにDHCPサーバーをインストールしてもDHCPパケットは廃棄される

2014年12月3日水曜日

物理マシンの認証を仮想マシンのドメインコントローラーで行うには

マイクロソフト製品の多くは、Active Directoryドメインサービスを必要とします。しかし、ドメインコントローラーはIDとセキュリティ管理の要なので、構築や複製が何かと面倒です。

特にVDI環境を構築するときは、物理マシンをドメインのメンバーにする必要があり、通常は物理マシンを2台必要とします。

何とか1台でできないものでしょうか。

ksakakiさんのブログ「More Than One Way」の記事「世界のブログから - 「ドメイン コントローラーどうしよう」に、ドメインコントローラーを仮想マシンとして構成し、その仮想マシンホストをメンバーとする手順が掲載されています。

VDI (640x289)

詳細はksakakiさんのブログを読んでいただくとして、要点だけを整理してみましょう。

  1. ドメインコントローラー仮想マシン(DC)は自動起動
    既定値は[サービスが停止したときに実行されていた場合は自動起動する]
  2. ドメインコントローラー仮想マシン(DC)は最初に起動
    既定値は0
  3. ドメインコントローラー仮想マシン(DC)は自動シャットダウン
    既定値は[保存]
  4. 万一に備えて物理マシンのローカル管理者アカウントを正しく構成
    ドメインコントローラーが動かないと、ドメインのユーザーでログオンできません。セキュリティ対策としてローカル管理者Administratorの名前を変えたり、無効化する場合もありますが、Hyper-Vホストには必ずローカル管理者としてログオンできるようにしておいてください。

上記1から3は、以下のPowerShellコマンドレットで構成できます(`は継続行の印)。

Set-VM -VMName 仮想マシン名  `
    -AutomaticStartAction Start   `
    -AutomaticStartDelay 0          `
    -AutomaticStopAction ShutDown

しかし、これだけでは起動時のタイミングによってはエラーが出ます。追加の設定が「世界のブログから - Hyper-Vとドメイン コントローラーに関してもう一つ」として公開されています。

  1. 確実に認証させるため、資格情報のキャッシュを停止
    物理マシンで以下のようにレジストリを変更します(PowerShellの場合)。
    Set-ItemProperty `
        'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' '
         -Name cachedlogonscount –Value 0
    (`は継続行の印)
  2. 起動時の待ち時間を回避するため、サービス起動順序を構成
    ドメインコントローラー(つまり仮想マシン)で以下のコマンドを実行
    sc config netlogon depend= LanmanWorkstation/LanmanServer/DNS
    (現在の依存関係は sc qc コマンドで表示できます)

以上の構成をしたら、あとは物理マシンの優先DNSに仮想マシンのDNSサーバーアドレスを指定し、通常どおりドメインに参加してください。

だいたいこれで大丈夫なのですが、VDIを構成する場合は以下のようなトラブルがありました。

  • 仮想化ホストの構成時に警告が出る
    仮想化ホストの構成時に、ローカルグループの設定に失敗することがあります。管理ツールで見ると、ローカルグループは正しく構成されているようです。実際、そのままでも動作しましたが仮想化、念のためホストをVDIから削除して、再構成した方が無難です。
  • 複数のNICがあると、クライアントOSの展開に失敗する
    仮想化ホスト(物理マシン)に、NICが2枚構成されていると(たとえば外部ネットワークと内部ネットワーク)、クライアントOSの展開に失敗しました。同じ構成で成功したこともあるので、詳細は分かりません。

前者はVDIの再構成で、後者は内部ネットワークをやめ、VLANで物理ネットワークを分離することで解決しました。ただ、そもそもなぜ複数NICで問題が発生したかは分かりませんので、もう少し調べてみます。

2014年11月10日月曜日

Microsoft Azureサブスクリプションの制限/負荷分散/ルーティング/複数NIC/VMware

今週は「Microsoft AzureによるITインフラの拡張」(1日)を実施しました。このコースはMicrosoft AzureのIaaSを1日で体験するのが目的です。

いくつか答えきれなかった質問があったので、この場を借りて紹介します。過去の受講者の方にもお伝えしたいので、答えた質問についても記載しておきます。

 

サブスクリプション単位の制限

Microsoft Azureには「サブスクリプション」という概念があります。サブスクリプションは契約と課金の基本単位で、部門やプロジェクト単位に割り当てます。詳しくはMSDNの「アカウント、サブスクリプション、管理ロールの管理」の「Azure のアカウントとサブスクリプションの違い」を参照してください。

サブスクリプションには、いくつかの制約があります。たとえば、サブスクリプション全体でCPUコア数の合計は20基が上限です。ただし、カスタマーサポートにインシデントとして問い合わせることで、10,000基まで引き上げることができます。このように、いくつかのリソースには既定の最大値と、リクエストベースの上限が存在します。

詳しくは「Azure サブスクリプションとサービスの制限、クォータ、制約」を参照してください。

 

負荷分散

Microsoft Azureに内蔵された負荷分散装置には、構成パラメータがほとんどありません。また、数少ないパラメータもPowerShellから操作する必要があります。

詳細は「Microsoft Azure の負荷分散サービス」を参照してください。8月に「新機能: Azure Load Balancer のアイドル タイムアウトが構成可能に」という記事が上がったので、徐々に構成パラメータを解放しているようです。

 

仮想ネットワーク間ルーティング

複数の拠点を結ぶ「マルチサイトVPN」の機能が追加されています。この時「サブスクリプションの制限はあるのか」という質問がありました。よく考えてみれば、仮想ネットワークは証明書を使った認証を行うため、サブスクリプションは無関係です。

ただし、実際の構成は(今のところ)かなり面倒なようです。詳しくは以下のブログ記事をご覧ください。

 

複数NIC

Microsoft Azureの仮想マシンには、1枚の仮想NICしか搭載できませんでしたが、できるようになったようです。ただし、こちらも例によってPowerShellでの操作が必要で、しかもちょっと面倒な漢字です。

具体的な手順は「Multiple VM NICs and Network Virtual Appliances in Azure」に記載されています(英語)。

独自のロードバランサーを導入できないかという質問もいただいていたのですが、この機能を使えばできるかもしれません。ただし、外部IPに対する変更はないようなので、もしかしたらAzureの負荷分散装置との整合性に問題が出るかもしれません。

 

VMwareからの変換

Hyper-Vで構成した仮想マシンのVHDファイルをMicrosoft Azureに送ることはできますが、VMwareについてはできませんでした。

しかし、最近発表された「Migration Accelerator」を使うことで、物理、VMware、AWS、Hyper-V 仮想のマシンをMicrosoft Azureに移行できます。

北米のみのプレビュー版ですが、北米リージョンを指定すれば使えるのか、日本からは使えないのかは未確認です。さっき、プレビュー版にサインアップしたので、承認されたら試してみたいと思います。

2014年10月25日土曜日

ADMT 3.2はWindows Server 2012/2012R2に対応していました(追記あります)

10月23日(木)と10月24日(金)は、The Microsoft Conference (MSC) でした。私も久しぶりに参加してきました。

今回は、原則としてすべてのセッションが、「CONTOSOドラッグ」という架空のドラッグストアの課題を解決するというシナリオで進んでいました。

内容はもちろん多岐にわたりますが、特にMicrosoft Azureにからんだものが多かったように思います。

そして、そこで、衝撃の事実が。

ADMT 3.2はWindows Server 2012/2012R2に対応しています

インターネットでは『対応していない』という情報がまだまだ多いので注意してください」だそうです。ここでいう「インターネット」には、microsoft.comも含みます。せめてブログで告知してくれればいいのですが。

Microsoft MVPのメーリングリストでは「完成した」という報告はあったものの、「ダウンロードできない」という報告が相次ぎ、「ちょっと待て」と言われたまま放置されていたので、完全にノーマークでした。

URLが長すぎてメモを取れなかったので、以下は自分で探した結果です(セッション資料は後日公開されるので、それを参照した方が確実です)。

  1. ダウンロードセンターから「Active Directory Migration Tool (ADMT) Guide: Migrating and Restructuring Active Directory Domains」を入手します。
    これが2014年6月版で、2014年10月に公開されています。同じダウンロードIDの日本語版は2010年6月版で、両者は別物です。
    2014年6月版のSystem Requirements(システム要件)には以下のOSが含まれます。
    • Windows Server 2003
    • Windows Server 2008
    • Windows Server 2008 R2
    • Windows Server 2012
    • Windows Server 2012 R2
  2. 肝心の実行ファイルはここにはありません。上記のドキュメントを開くと
    http://go.microsoft.com/fwlink/?LinkId=401534からダウンロードしろとあります。
    リンク先は「connect」と呼ばれるサイトで、主にベータ版のソフトウェアを扱っている場所です。
  3. そこからWindows Server Active Directory Migration Tool (ADMT) V3.2にアクセスし、必要に応じて以下の3つのソフトウェアをダウンロードします。

ADMT QFE (Quick Fix Engineering) は32ビット版のようですが、問題なくインストールできました(おそらくセットアッププログラムが32ビット版で、セットアップされるプログラムが64ビット版なのでしょう)。しかも日本語化されています。なお、ツールのショートカットは[管理ツール]にできることに注意してください。

実際の移行テストはまだしていませんが、インストールが正常に完了し、ドメイン選択画面までは進んだので、おそらく大丈夫だと思います。

【追記1】Windows Server 2008 R2ドメインからWindows Server 2012 R2ドメインへの移行を確認しました。パスワード移行は未確認です。

【追記2】Windows Server 2003ドメイン(x86版DCが1台)からWindows Server 2012 R2ドメインへの移行を確認しました。パスワード移行も正常に機能しましたので安心してください。なおADMTのセットアッププログラムは32ビット(x86)コードのようですが、x86版Windows Server 2003にインストールできませんでした。

ADMT

従来、ADMT 3.0から3.2までは、以下の通りインストール可能なOSのバージョンが限られていました。

  • ADMT 3.0…Windows Server 2003以前
  • ADMT 3.1…Windows Server 2008
  • ADMT 3.2…Windows Server 2008 R2

しかし、新しいADMT 3.2ではWindows Server 2003以降のすべてをサポートします。もともと3.0以降の機能差はなかったので、より分かりやすくなりました。

なお、ADMTについては「Active Directoryマイグレーション実践」コースで詳しく説明しています。

Active Directoryマイグレーション実践」コースではもう1つ、ファイルサーバー移行についても扱っています。主なツールはPowerShellベースの「サーバー移行ツール」で、補助的にファイルコピーツール(XCOPYやROBOCOPY)を扱っています。

マイクロソフトではもう1つ「FSMT (ファイルサーバー移行ツール)」を無償ダウンロードツールとして公開しています。FSMTは、Windows Server 2003時代に登場したツールで、DFSを使った巧妙な移行パスをサポートします。詳しくは、(少し古いのですが)以下の記事などを参照してください。

FSMTは、システム要件にWindows Server 2012が日英ともに入っていないのですが、.NET Framework 3.5 (.NET 2.0および3.0を含む)がインストールされていればいいようです。

なお、FSMTはコースでは扱っていませんのでご了承ください。

DSC01706M
▲MSC会場近くから(朝)

DSC01711M
▲MSC会場近くから(夜)


【さらに追記】

Connectサイトが閉鎖されたため、ADMTの場所が移動しています。

詳しくは、山市良さんのブログ「ADMT v3.2 のダウンロード URL 変更(Microsoft Connect 閉鎖の影響か?)」をどうぞ。

https://yamanxworld.blogspot.jp/2018/02/admt-v32-microsoft-connect.html

【もっと追記】

念のため、こちらにもリンクを張っておきます。

2014年10月23日木曜日

「G-Tech 2014」ありがとうございました

恒例になった、グローバルナレッジネットワークの技術イベント「G-Tech」、今年も無事に開催することができました。

今回は「G-Tech 2014 ~ビジネスを加速させるフルスタック、マルチスキルエンジニア ~」のテーマで、東京10月10日(金)および大阪10月18日(土)で開催しました。

東京の様子は、公式Webサイトの「イベントレポート」をご覧ください。また、当日のTwitterはTogetterを使って「【グローバルナレッジ】コーポレートイベント『G-Tech 2014』実況まとめ(新宿)」としてまとめられています。

また、セッションで使用したスライドの多くはSlideshareで公開されています。

DSC01496M

今回も、懇親会では恒例のクイズ大会を行いました。ここで問題と解答を紹介します。なお、前回の内容は「「G-Tech 2013 Autumn」ありがとうございました」をどうぞ

 

1. グローバルナレッジネットワークの日本支社が 創業した時の大阪オフィスは中之島にあった。

【参考】 現在のオフィスは中之島にあります。

グローバルナレッジのオフィスの変遷です。

  • 東京
    • 荻窪(日本DEC内)
    • 初台(オペラシティタワー)
    • 新宿南口(文化クイント)
    • 西新宿(オークタワー)
  • 大阪
    • 中之島(ニチメンビル)
    • 梅田(ハービス大阪)
    • 中之島(住友中之島ビル)

 

2. Cisco Systems社の分散仮想スイッチ製品 Cisco Nexus1000Vは、VMware、Hyper-Vに加え KVMやOpenStackにも対応している。

もちろん対応しています(こういう問題はと相場が決まってます)。

仮想化環境では、サーバー技術とネットワーク技術が融合します。技術者のスキルシフトは グローバルナレッジネットワークにご相談を。

 

3. 現在のRHEL(Red Hat Enterprise Linux)の前身 Red Hat LinuxはWindows NTよりも遅く登場した

【参考】 Windows NTの最初のバージョンは1993年、 レッドハット社の創業も1993年です。

  • 1993年 Red Hat創業
  • 1993年7月 Windows NT 3.1 (英語版)
  • 1994年11月 Red Hat Linux配布開始

「参考」が全然ヒントになっていませんね。実質的にはWindows NTとLinuxはほぼ同じ頃に出たと言っていいでしょう。

 

4.Microsoft Azureで利用できるストレージ 「Blob」は、以下の冗長性を提供します。

  • 同一地域・同一拠点で合計3つの複製
  • 同一地域・別拠点で合計3つの複製
  • 別地域に各3つ(合計6つ)の複製

×

ややこしいのですが、以下が正解です。

  • ローカル冗長…同一拠点で3つの複製
  • ゾーン冗長…1~2地域の別拠点で3つの複製(同一地域に限るわけではありません)
  • 地理冗長…別地域に各3つの複製(合計6つ)

 

5. AWS (Amazon Web Services)は、 米Amazon.comで使っているサーバーの 余剰時間を利用して儲けたかったからである。

×

当初から独立したビジネスを考えていたそうです(出典: http://knoh.jp/answers/fd597b4e)。

Amazon.comのモットーはfrugality(倹約)ですが そこまで倹約はしていません。

 

6. Facebookの創業者マーク・ザッカーバーグは スタンフォード大学を中退した。

【参考】 スタンフォード大学はシリコンバレーの中心 Facebook本社は、シリコンバレーのメンロパーク

×

これも「参考」がヒントになっていません。ボストン郊外のハーバード大学を中退し、 東海岸から西海岸へ拠点を移しました。

ちなみにビル・ゲイツもハーバード中退ですが、中退したから成功するわけではありません。やりたい仕事が見つかったから中退したのです。

 

7. Googleの名前は数の単位googolに由来します。その「1 Googol」は「100無量大数」に相当します。

×

1グーゴルは10の100乗です(1920年に命名)。一方、1無量大数は10の68乗という説と88乗という説があります。無量大数は「塵劫記」(1627年)に登場します。

通常、英語では大きな数は3桁ごとに大きくなりますが、Googolはこの規則に従いません。なんても「(ほとんどの)関数電卓で表示できない数」ということで作られた名前だそうです。確かに、一般的な関数電卓は10の99乗までしか表現できません。

 

8. 1964年の東京オリンピックでは、競技結果の集計に初めてコンピュータが使われました。その時のデータセンターの跡地が大手町IXです。

×
メイン会場である国立競技場に隣接した日本青年館には、 東京オリンピックのプレスセンターがありました。データセンターはそこにあったそうです。

ちなみに、システム開発には2年以上かかりましたが、それまで閉会後何ヶ月もかかっていた集計が、1964年東京大会では閉会式に間に合うという画期的な成果を出したそうです。

この成功が評判になり、金融機関の第一次オンラインシステムが広がりました。

日本青年館
▲現在の日本青年館

 

9. グローバルナレッジネットワークの定期開催 教育コースは、東京と大阪以外に以下の都市で開催されている。

  • 札幌
  • 仙台
  • 名古屋
  • 広島
  • 福岡

×
こういう問題はと決まっていますが、正解は×でした。

東京と大阪以外に、提携会場を使って札幌、仙台、名古屋、福岡で実施しています。残念ながら広島はまだ提供していません。1社向け対応であれは、これらの地方会場はもちろん、他の地域でも対応も可能ですのでご相談ください。

2014年10月16日木曜日

Windows Server 2012 R2とWindows Server 2003の混在環境でログオンできない

Windows環境マイグレーション実践」という1日の教育コースを提供しています。中心となるのは、Active Directoryドメインサービスの移行です。

旧バージョンとの混在環境は、過去に大きなトラブルがなかったこともあり、あまり重視していませんでしたが、今回は、かなり深刻な問題が報告されています。

Windows Server 2012 R2 と Windows Server 2003 の混在環境でのコンピューターアカウントのパスワードを変更した後にログオンできない

現象が出るまでに時間がかかるため、気付かれなかったようです。以下を参考に対策をお願いします。

 

【現象】

Windows Server 2003 で構成された Active Directory ドメインに Windows Server 2012 R2 のドメインコントローラーを追加すると、追加後、2 ヶ月程度経過した後に、ドメインのメンバーおよびドメインコントローラーでログオンができなくなる場合があります。

 

【背景】

ドメインのメンバーコンピュータは定期的にパスワードを自動的に変更してます。Windows Server 2012 R2では、パスワードの暗号化アルゴリズムが変更されており、古いコンピュータでは認識できません。

Active Directoryは認証に失敗した場合、メンバーに保存されている1つ前のパスワードを使って認証を行います(何らかのパスワード同期トラブルに備えての機能です)。

通常、コンピューターのパスワード更新間隔は30日なので、問題が発生するのは最大60日後ということになります。

Hebikuzureさんのブログ(Hebikuzure's Tech Memo)の以下の記事も参考にしてください。
自動的なコンピュータアカウントパスワード変更を無効にする方法

 

【解決方法】

■問題の予防

問題を未然に防ぐには、Windows Server 2012 R2 をドメインコントローラーとして追加する前に以下の対応を実施します。

  1. ドメインコントローラーとして構成する予定のWindows Server 2012 R2に、Active Directoryドメインサービス役割を追加
  2. 修正プログラムKB2989971を適用
  3. ドメインコントローラーに昇格

役割を追加することで、Active Directoryドメインサービス用のファイルがインストールされます。このファイルに対して修正プログラムを提供することで、ドメインコントローラーに昇格するときは、修正済みのファイルが使われるようになります。

メンバーコンピューターの再起動は不要なので、この方法をおすすめします。

なお、KB2989971の修正プログラムを適用するためには、Windows Updateで配信されているKB2919355が適用されている必要があります。

【参考】http://support.microsoft.com/kb/2989971
Windows Server 2012 R2 と Windows Server 2003 の混在環境でのコンピューター アカウントのパスワードを変更した後にログオンできない

■事後対応

Windows Server 2012 R2のドメインコントローラーが既に追加されている場合は、以下の手順で対応します。

  1. KB2989971を全ての Windows Server 2012 R2 のドメイン コントローラーに適用
  2. 全てのドメインコントローラーに対して修正プログラムを適用後(再起動を含む)、ドメインコントローラーを含む全メンバーを再起動
    再起動時に、新機能に対応した暗号化キーを生成するため、問題が解消します。

このように、全サーバーの再起動が必要になってしまいます。

 

【その他】

2014年10月7日火曜日

Microsoft Azure復旧サービスを使った回復

最近のWindows Server は、バックアップ先にMicrosoft Azureを指定できます。

バックアップメディアは、あまり遠くに置くと復旧作業が面倒ですし、近くに置くとメディアごと破損するリスクが増えます。セキュリティ情報を含むため、取り扱いも煩雑という問題もあります。

クラウドにバックアップを置くことで、これらの問題をある程度解決できます。

バックアップ手順はさまざまなところで紹介されているので、ここでは概要だけを紹介します。

  1. Microsoft Azure復旧サービスのコンテナを作る
  2. バックアップ対象サーバーにクライアント証明書をインストールする
    (サーバー証明書では駄目だそうです)
  3. Azureポータルに、クライアント証明書をアップロード
  4. Azureポータルから、コンテナ資格情報ファイルをダウンロード
  5. コンテナ資格情報ファイルを使って対象サーバーをAzureに登録
    (パスワードも必要です)
  6. バックアップツールを使って、ファイルをバックアップ

バックアップを復元するときは、以下の手順で行います。

  1. Azureポータルの復旧サービスにアクセス
  2. コンテナ資格情報ファイルをダウンロード
  3. エージェントをインストール
  4. そのままコンテナ資格情報ファイルを使って対象サーバーをAzureに登録
  5. バックアップツールを起動
  6. [データの回復]を選択
  7. [別のサーバー]を選択し、コンテナ資格情報ファイルを指定
    (選択肢には[このサーバー]もあり、この場合は最小限の設定情報で済みます)
  8. Azure復旧サービスに登録されているサーバー一覧から、復元したいサーバーを選択
  9. 復元したいファイルを選択
  10. バックアップ時に指定したパスワードを指定
  11. 回復

つまり、パスワードさえ分かれば他に情報は必要ありません。クライアント証明書もコンテナ資格情報も不要でした。

大事なバックアップを、パスワードだけで保護していいのだろうかと思いますが、以下の理由で問題ないと判断しているようです。

  • パスワードが長い(16文字以上)
  • AzureにログオンするときにMicrosoft IDの資格情報で認証済み
  • コンテナ資格情報ファイルは使い回しができない(みたい)

ということで、特に問題ないようです。

2014年10月2日木曜日

VLAN、使ってますか?

日経ITproに「VLAN、使ってますか?」という記事が出ました。Facebookに書いたものが「なんと自然な宣伝」と評判が良かったので、加筆してこちらに転載します。

記事では「VLAN(Virtual LAN)が意外に使われていない」とありました。これは、我々の認識とちょっと違います。数十人以上の社員がいる会社で、VLANがない状況というのはちょっと考えられません。

ちょうどいいタイミングで、グローバルナレッジの公式コラムにも「つながるネットワークコラム CCNA R&S一問一答 #19」としてVLANの話が出ています。

もしかしたら、サーバー担当とネットワーク担当が分かれている場合、サーバー担当はネットワーク構成を知らないことがあるので、自社のVLANが導入されていることを意識していなかったのではないでしょうか。

管理者が1人ならそういうことはないと思いますが、2人いる場合でサーバー担当とネットワーク担当に分かれている場合はサーバー担当はVLANを知らないかもしれません。

VLANは「Virtual LAN」というくらいで、そこに存在することを普段は意識する必要がありません。Virtualは「あたかもそこに存在するかのようにみなせること」で、VLANも「あたかもそこにLAN(1つのネットワーク)」が存在するかのようにみなすことができ、利用者はルーターやL3スイッチで中継されているのか、それともVLANなのかを認識することはありません。

徳川家康は、virtual kingだった」のような用例もあるようです。徳川家康の称号は、天皇から与えられた征夷大将軍であり、名目上は行政長官です。しかし、実際には天皇や貴族が守るべき規則を作り、実質的な予算管理もしていましたから、「国王」と呼んでも差し支えないでしょう。実際、日本に開国を迫ったペリーは徳川家と交渉をしています。

社内にVLANを使うのは既に常識になっていいます。しかし、サーバーエンジニアには意外に知られていないのが実情です。

ところが、最近、それでは済まないことが起きています。

仮想マシンを使うと、仮想化ホストの仮想スイッチにVLANを構成しなければいけないからです。VMwareでもHyper-Vでも、仮想マシンは仮想マシンホスト内に構成されたL2スイッチ(仮想スイッチ)に接続され、そこから物理ネットワークに配線されます。もちろん仮想スイッチにもVLAN機能はあります。

このとき、仮想マシンホストのVLAN構成は、ネットワーク管理者の仕事なのかサーバー管理者の仕事なのか、というのは難しい問題です。

クラウド時代を見据えると、サーバーとネットワークの管理は統合に向かっており、両方の技術者が両方の技術を学習すべきです。

エンジニアのスキルシフトのご用命は、グローバルナレッジネットワークにどうぞ。

2014年9月9日火曜日

コードは動けばいいってものじゃない

グローバルナレッジの公式ブログはいくつかありますが、その中で「Win Win Windows」は主にマイクロソフト製品を扱っています。

今日公開された記事「第49回 [開発スキル再始動特集2] プログラムコードを洗練させよう~配列からコレクション、そしてジェネリック~」では、「リファクタリング」について扱っています。

Visualo Studioには、コードを洗練させる「リファクタリング」機能が数多く備わっており、既存のコードを再利用しやすくなっています。

本来は、モジュールの独立性が高く、外部インターフェースがしっかり定義されていれば、モジュールの中身はブラックボックスとして扱えるはずです。しかし、現実にはなかなかそうもいきません。バグが発見されたり、実行効率を上げるための修正を加えたりする必要があります。外部公開しているモジュール名を変える必要があるかもしれません。

私が学生時代、ゼミ生に課題を兼ねて、自分の修士論文に使うサブルーチン作成をお願いしていました。特にK君は、驚くほど早くて正確なコーディングをしてくれたので大変助かりました。3日くらいかかるつもりで出した課題が、翌日に提出されたのは本当にびっくりしました。

しかし、K君が書くコードにはとても大きな問題がありました。変数名や関数名が明らかに間違っているのです。スペルミスとか誤訳というレベルではなく、言葉の解釈が間違っており、全く違う名前がついているのです。

入力したパラメータに対して、正しい出力が得られるのですが、内部で使っている変数名や、呼び出しに使う関数名が、本来の意図と違うので使っていてイライラしますし、いずれ動作を勘違いしてバグが混入することは容易に予想できます。

しかも、主に使っていた言語はLispとPrologであり、再帰呼び出しを多用します。つまり、間違った関数(サブルーチン)名が、1つのモジュール内に何か所も登場するのです。外部モジュール名だけを1箇所変更したら、使う人にとっては同じ、というわけにはいきません。

(defun copy (x)
(cond ((atom x) x)
(t (cons (copy (car x))
(copy (cdr x))))))

たとえばこんな感じです。copyが外部モジュール名ですが、定義中にcopyを2回呼び出しているのが分かります。


当時使っていたのは、日立のメインフレーム機M-280Hでしたが、プログラマ向けの便利なエディタがなく、単語変換機能を使ってひとつずつ置き換えていました。


Visual Studioのリファクタリングツールには名前の変更リファクタリング機能があるので、こうした作業もずいぶん簡単で正確になったはずです。


もちろん、本来の名前変更リファクタリングは、「間違った名前」を直すものではありません。外部仕様が同じで実装が変わったとき、実装にあわせて名称を変更するものなのでしょう。


その後、K君はメーカー系のIT子会社に就職したのですが、ちゃんとプログラムを書いていたのでしょうか。リファクタリングの話題が出るたびに思い出します。

2014年7月28日月曜日

GUIパーツの歴史

昔、IDGジャパン社の「Computer World」に書いた原稿を引っ張って来ました。

ラジオボタンの悲劇(追記: 写真入れました) 」のリンク先とほぼ同じ内容です。あわせてご覧ください。


GUIは平板な枠からスタートし、立体化したが、ふたたび平板に戻ろうとしている。しかし、これは単なる先祖返りではなく、必然的な理由がある。

■平板なアイコンから立体へ

初期のGUIは、マウスやボタンなどが平面的に描かれていた。主として性能上の制約のためである。

たとえば、Windows 3.1のチェックボックスは×印だし、ラジオボタンは黒丸だ。

Win3
▲Windows 3.1のGUI

米国では、チェックした印として×を使う習慣だから特に問題はないのだが、日本だと×は誤りの意味になってしまうため、「有効と無効が逆転しているのではないか」と、よく質問された。聞くところによると、試験の採点でも正解に×を付けるのも珍しくないらしい。そういえば、講習会名簿に出席者を○、欠席者を×で記録していたら米国本社(当時)の監査で「出席と欠席の区別が付かない」と警告されたこともあった。

ラジオボタンは●の有無なので誤解はなかったが、最近はなぜ「ラジオ」なのか分からない人が増えてきた。昔のカーラジオは1つの選局ボタンに1つの放送局を割り当て、あるボタンを押すと、既に押されていたボタンが元に戻る仕組みだった。そこから「単一選択ボタン」を「ラジオボタン」と呼ぶようになったのだが、そんなラジオを見たことのない人も多いだろう。

Windows 3.1ではボタンこそ立体感があったが、その他のGUIパーツは平面的だった。同時期にUNIXを中心に使われていたOSF/Motifは、WindowsのGUIをベースに各種のパーツを立体的にすることで、美しいシステムに仕上がっていた。ただし、少々凝り過ぎた面もあって、どのボタンが押されているのか分かりにくいこともあった。凸状態は分かりやすいのだが、凹状態がちょっと難しい。

Motif
▲OSF/Motifの立体感の原理

■シンプルなアイコンから凝ったアイコンからへ

Windows 95では全体にGUIパーツが凝った表示になった。たとえば、チェックボックスには「チェック」マークが採用され、日本人にも分かりやすくなった。

Win95
▲Windows 95のGUI

Windows XPではウインドウ枠が丸くなった。Windows Vistaでは半透明のタイトルバーと縁取りが採用され、非常に派手な画面となった。そして、半透明のおかげできれいな画面ショットが取りにくくなった。この機能はWindows 8の製品版では廃止されるそうである。

WinVista
▲Windows VistaのGUI (後ろが透けている)

■凝ったアイコンからシンプルなアイコンへ

Windows 8では、行きすぎた装飾を廃止して、よりシンプルなものに変わる。ちょっとシンプルすぎる気もするが、スマートフォンやタブレットを意識してのことだろう。

Win8
▲Windows 8のダイアログボックス(オン/オフがスライドスイッチになっている)

歴史は繰り返さないが韻を踏む。Windows 8のシンプルなアイコンは、Windows 1.0のアイコンと同じではない。平面的ではあるが、そこには高いデザイン性が感じられる。筆者の好みではないが、洗練された印象は受ける。Metro Styleのアプリケーションは平面的に配置されるが、タイリング表示を採用したWindows 1.0と同じにはならないのが素晴らしいところである。

さて、お気づきの方もいらっしゃるだろうが、サンプルに使ったダイアログボックスは、「ソリティア」である。筆者はWindows 3.x時代は「マインスイーパ―」に凝り、Windows NTでは「フリーセル」にはまった(Windows 9xは使っていない)。単純なゲームだけに、はまりやすく、そして、やるたびに時間の浪費を深く後悔したものだ。ソリティアはあまりやったことがないのだが、世界的には根強い人気があるらしい。

Windows 8では、筆者はこれらの定番ゲームを発見できていない。別になくても問題ない。いや、ない方が無駄な時間を使わずに済むので嬉しいくらいだ。だから、インストール方法を教えていただくには及ばない。ご心配なく。


▲猫のふみふみは、母猫の乳を出すための動作の名残

2014年7月26日土曜日

記録メディアの歴史

昔、IDGジャパン社の「Computer World」に書いた原稿を引っ張って来ました。

コンピュータの記録メディアの歴史です。一緒に写っている手は私です。大きさが分かるようにわざと入れました。

QIC/Travan以外は全部実際に使ったことがあります。


●オーディオカセット

パーソナルコンピュータの記録装置は、オーディオ用のコンパクトカセットテープ(カセットテープ)から始まった。カセットテープはアナログオーディオの記録媒体なので、デジタルデータをアナログ音に変換(変調)して記録した。カセットテープを開発したフィリップ社(オランダ)は、後にCDの規格制定の中心会社となる。

SONY DSC
▲斉藤由貴のCMでおなじみ、富士フイルムのAXIA(おなじみじゃない?)

ホビイストらが決めた最初の標準は、1975年に米カンサス市のシンポジウムで制定された「カンサスシティスタンダード」である。速度は300bpsと、当時としても低速な入出力装置ではあったが、極めて安価だったので広く使われた。NECの8ビットパソコンPC-8001で使われていた規格は、カンサスシティスタンダードの変形で600bpsだった(その後、PC-8801では1200bpsになる)。

シャープMZシリーズは、起動時に毎回カセットテープからシステムを起動する必要があるため高速化に特に熱心だった。最終的に2700bpsの速度が実現されたが、アナログ記録のためデータの読み書きが不安定であること、ランダムアクセス性に劣ることから主役の座を5インチフロッピーディスクに明け渡すことになった。

写真は通常のオーディオカセットだが、1980年代には「データ用」と称して10分や15分といった短い録音時間のテープも販売されていた。単純に計算すると、10分×60秒×1200bps=720,000ビットとなる。伝送同期のためのオーバヘッドを考慮すると10分テープはおよそ70Kバイト程度と思われる。

 

●8インチフロッピーディスク

1970年、IBMは8インチの磁気ディスクを使った記憶装置を開発した。容量は128Kバイトで、当初はパンチカード(ホレリスカード)の代わりに大型コンピュータへのデータ入力用メディアとして利用された。筆者は「オフラインフロッピー端末」というものを使ったことがある。キーボードとディスプレイ、そしてフロッピーディスクドライブが装備されており、データ入力のみができた。作成したフロッピーディスクはオペレータに依頼して、コンピュータシステムに読み込んでもらった。

SONY DSC
▲会社にあった8インチフロッピーディスク
ちなみにドクター中松の特許は、データ読み取り用の楕円穴であって記録方式ではない。
IBMは予防的にドクター中松から特許を買ったが、本当に必要だったかは意見が分かれる。

当時一般的だったディスク盤はアルミ合金だったのに対して、小型軽量化のためにプラスチックフィルムを使ったため「floppy(だらりと垂れた、ばたばたする)」と名付けられた。これに伴い、従来のディスクは「ハードディスク」と呼ばれるようになった。IBM自身は「フロッピー」ではなく「ディスクケット」(etは「小さい」の接尾辞)と呼んでいる。

PCでも広く使われ、8ビットPC用のオペレーティングシステムCP/Mでは256Kバイト容量の規格(片面単密度)が標準でサポートされた。後に1.2Mバイト(両面倍密度)まで拡張されるが、高価であり(PCに限れば)広く使われるには至らなかった。

8インチフロッピーディスクは記録面がむき出しのため、素手で触ってしまうことで読み取りエラーを起こすことが多かった。また、ライトプロテクトはディスクジャケットに切り欠きを作るために専用工具が必要だったが(切り欠きを作ることでプロテクトするのはカセットテープと同じ考え方)、切り欠きツールは一般的ではなかった。

 

●5インチ(5.25インチ)フロッピーディスク

5インチ(5.25インチ)フロッピーディスクは、1976年に米シュガートアソシエイツから発表された。1978年にApple IIに採用されてからPCを中心に広く普及した。国産8ビットパソコンでは320Kバイトフォーマット(両面倍密度、通称2D)が広く使われたが、その後、640Kバイトフォーマット(両面倍密度バイトラック、通称2DD)が登場した。ただし、IBM PCは同じ物理メディアを720Kバイトで使ったため、国産PCも720Kバイトをサポートするものが増えた。

SONY DSC
▲5インチフロッピーディスク(構造は8インチとほぼ同じ)
中心の白い部分は補強材(補強材jのないフロッピーディスクも多かった)

最終的に5インチフロッピーディスクは1.2Mバイト(NEC PC-9801シリーズを中心とした国産機)または1.44Mバイト(IBM PC/ATと互換性を考慮したPC)まで記録密度が向上する。両者は物理的には同じメディアを使い、「2HC」または「2HD」と呼ばれた。ただし、2DDの640/720KBと異なり1.2/1.44MBはドライブの仕様が異なる。そのため2DDに加え、2HCの2つのフォーマットを含んだ「3モードドライブ」が登場した。

8インチと異なり、ライトプロテクトは銀色のシールを貼ることで行なう。シールは簡単にはがせるので容易に再利用できたが、シールそのものを再利用するのは難しかった。

SONY DSC
▲5インチフロッピーディスク(ライトプロテクトシールが貼ってある)
保存用のエンベロープは、細かなゴミが出ないように特殊紙製

8インチフロッピーディスクと同様の形態なので、記録面を触ってしまう事故は耐えなかった。また、ディスクを、ドライブに完全に挿入せずにロックすると、ディスク中心部の穴(ディスクホール)を痛めてしまうこともあった。ディスクホールの補強を行なった製品もあった(写真)が、それほど大きな効果はなかった。さらに、完全に正方形なので表裏や前後を間違えて挿入することもできた。もちろん正常に動作しないが、いちいち入れ換えるのはちょっとしたイライラの原因にもなった。なお、対照形という性質を利用して、Apple IIでは片面用ディスクを裏返して使うというテクニックが一部で使われた。

 

●3.5インチフロッピーディスク

3.5インチフロッピーディスクは、1980年にソニーによって開発された。最初は英文ワープロの外部記録媒体として採用され、続いてソニーの8ビットPCであるSMC-70 (1982年)に搭載されている(広く売れたSMC-777の原型)。

記録フォーマットは5インチフロッピーディスクを踏襲しており、320/360Kバイトの2DDまたは1.2Mバイト/1.44Mバイトの2HD(2HC)が広く使われたため、容量的な優位性はない。2EDと呼ばれる2.88Mバイトのフォーマットも提案されたが普及しなかった。

3.5インチフロッピーディスクが、5インチに対して優位な点は以下の通りである。

  • 小型化…対角線長がコンパクトカセットテープとほぼ同じ
  • 操作性の向上…スライド可能な書き込み禁止用爪が追加され、シールが不要
  • 誤操作の防止…上下左右が非対称で、誤った方向だとドライブへの挿入すらできない
  • ジャケットの強化…ジャケット材質をプラスチックにすることで、折り曲げ事故を防止
    (ジャケットに厚みがあるため、外部磁気の影響も多少は受けにくくなった)
  • 記録面の保護…自動開閉シャッターにより記録面を保護
    (ただし、初期のディスクには自動シャッター開閉に必要な切り書きとスプリングが搭載されていなかった)

SONY DSC                       SONY DSC
▲3.インチフロッピーディスク(シャッターはスプリングによって自動的に閉まる)

筆者はSMC-70の製品発表会の後、ソニーの技術者の方と話し込んでいたら、記念にディスクを1枚いただいた。もちろん自動開閉シャッター機能はついていない。残念ながら、そのディスクは友人に上げてしまって手元にはない。

SONY DSC                       SONY DSC
FD右下が書き込み禁止ノッチ(左側が書き込み不可、右側が書き込み可)
FD左下は2HC/2HDと2DDを区別する穴(写真は左右とも2HC)

 

●フロッピーディスクのサイズ比較

8インチ、5インチ、3.5インチの各フロッピーディスクを重ねてみた。大きさは違うが、容量はほとんど同じである。扱いやすい3.5インチフロッピーディスクが普及したのは当然だろう。

SONY DSC
▲すべてを重ねてみた

 

●MO(5インチ/3.5インチ)

3.5インチフロッピーディスクは誰にとっても扱いやすく、メディアおよびドライブ単価が下がるとともにPC用外部記憶装置の主流となった。しかし、取り扱うデータ量が増大し、フロッピーディスクでは収まりきらなくなってきた。

1988年に発表されたMO(光磁気ディスク)は、高温状態で磁化した状態が低温状態で恒常的に維持される性質を利用した外部記憶媒体である。5インチ規格と3.5インチ規格があり、いずれも3.5インチフロッピーディスクと似た形状をしている。

SONY DSC
▲3.5インチMO(5インチMOもサイズが違うだけでほぼ同じ構造)

当初、5インチMOは640Mバイトであり、裏返すことで両面使うことができた。その後、1.2Gバイトの容量が規格化され、2000年には9.1Gバイトの製品も登場している。筆者はソニーのUNIXワークステーションNEWSとセットで購入した5インチMOを使ったことがある。

3.5インチ規格が登場してからは、PCでも広く使われるようになった。3.5インチMOは、128Mバイトからスタートし、230Mバイト・540Mバイト・640Mバイト・1.3Gバイト・2.3Gバイトと容量を増やしていった。Gバイトクラスの容量を持つものは特に「GIGAMO(ギガモ)」と呼ばれる。

MOは、ドライブもメディアも比較的安価であったが、世界的にはあまり普及しなかった。既に多くのベンダーがドライブやメディアの供給を停止しているため、将来性はあまりない。

SONY DSC
▲3.5インチMO(シャッターの構造も3.5インチFDと似ている)

1995年、松下電器産業(当時)は、熱による相変化を利用した「PD(Phase-change DualまたはPhase-change Disk)」を開発した。PDは記録媒体の分子が規則正しく並んだ結晶構造か、不規則なアモルファスかを区別することでデータを記録する。PDメディアの外観はMOと非常に似ており、当時は容量的にもほぼ同じだった。PDの技術を元に開発されたのがDVD-RAMであるが、PD/DVD-RAMのいずれも記録媒体の主流にはならなかった。

 

●DDS(デジタルデータストレージ)

DDSは、デジタルオーディオテープ(DAT)をコンピュータデータ記録に応用した製品で、1989年にソニーとHPが規格を定義した。最初の規格であるDDS-1では、60m長のテープに非圧縮1.3Gバイト、圧縮時2.6Gバイトの記録が行えた。

その後の規格(DDS-2からDDS-3、DAT 72/DAT 160/DAT 320)ではデータ密度とテープの最大長の両方を増やすことで、記録可能なデータ量を増大させている(DAT 160からはテープ幅も増加)。DAT 320の記憶容量は、非圧縮時160Gバイト/圧縮時320Gバイトである。

DDSに限らず、テープドライブは機械的に複雑な構造をしており、他のコンピュータ機器に比べて値下がり幅が少ない。そのため、個人用途で使われることはほとんどない。

SONY DSC
▲DDS(今はなきDigital Equipmentブランド)

 

●DLT(デジタルリニアテープ)

ディジタルイクイップメント社(DEC)によって開発されたTK-50(最大容量95Mバイト)を発展させたカートリッジテープの規格。カートリッジにはテープを巻き取ったリールが1つしかなく、ドライブ側に装備されたリールに巻き取りながら使う。

当初は非常に低速で「TK-50のTKは “Time Killer” (時間を無駄に使わせる)」と揶揄されたが、ストレージ事業部門をクオンタム社に売却する頃から性能が大きく向上し、広く使われるようになった。DECとのしがらみがなくなることで、DECの競合企業も採用しやすくなったという側面もある。最新の製品は220Gバイトの容量を持つ。

DLTはDDS以上に高価であり、個人用途で使われることはまずない。

SONY DSC                       SONY DSC
▲DLT(DECから売却されたおかげで普及したと言って良い)

 

●その他のテープメディア

UNIX系のシステムではQIC(クォーターインチカートリッジ)テープがよく使われた。名前の通り1/4インチのテープ幅である。

機械精度を挙げるため、アルミダイキャストフレームを使っているものが多かった。

DSC08220DSC08221
▲写真はQICではなくその実質的な後継規格であるTravan(8mm幅のテープ)

 

●光学ディスク

フィリップスおよびソニーによって、オーディオ用に開発されたCD(コンパクトディスク)は、当初からデータ利用も考慮されていた。これが読み取り専用データディスク「CD-ROM」である。当初、記憶容量は540Mバイト程度とされていたが、現在ではディスク製造技術の発達で、650Mバイトから700Mバイト程度が記録可能である。

CD-ROMはアルミ蒸着膜の凹凸を使うため、量産には向くが個人用に作成することは事実上不可能である。そこで、金属薄膜に塗布された有機色素を使う方法が考案された。これがCD-Rである。CD-Rは、レーザー光で盤面の有機色素の一部を焼き切ることでデータを記録する。これが「CDを焼く(英語ではburn:燃やす)」という言葉の由来となった。焼き切った色素を復元することはできないので、再書き込みはできない。

再書き込みを実現するために、記録材質の結晶構造を変化させる(相変化)方法を採用したのがCD-RWである。

容量を増大させるために、CDではなくDVDをベースにしたのが「DVD-ROM」や「DVD-R」「DVD-RW」である。書き換え可能なDVD規格は多数あるが、いずれもDVD-ROMとの互換性を考慮しており、メディアの物理的な形状は全く同じである。

レーベル面はポリカーボネートの保護層がむき出しの場合と、印刷可能な加工がしてある場合がある。記録面は、光の干渉のため虹色に光る。

SONY DSC                       SONY DSC
▲CD-Rのデータ読み取り面(左)とラベル印刷面(右)

●番外編: パンチカード

米国の発明家、ハーマン・ホレリスが統計処理用に考案した紙カードが「ホレリスカード」で、1890年の米国国勢調査から使用されるようになった。当時コンピュータは存在せず、単にデータを集計することだけが目的だった。1880年の米国国勢調査は集計に9年かかった。米国の国勢調査は10年に1回なので、ぎりぎり次の調査に間に合った格好である。しかし、ホレリスカードの利用により、1890年の調査は2年で集計が完了したという。

SONY DSC                       SONY DSC
▲ホレリスカード(筆者が大学時代に計算機センターのアカウントを作った時にもらった)

ホレリスが1911年に設立した会社「タビュレーティングマシン社」は、タイムレコーダ(出退勤記録装置)を扱う「ザ・インターナショナル・タイム・レコーディング・カンパニー・オブ・ニューヨーク」と、計量器を扱う「コンピューティング・スケール・カンパニー・オブ・アメリカ」と合併し、「ザ・コンピューター・タビュレーティング・レコーディング・カンパニー(C-T-R)」となった。これが後のIBMである。ホレリスカードはIBM社製のコンピュータに引き継がれ、重要な入力装置となった。

ホレリスカードは、別名「パンチカード」と呼ばれ、タイプライター状の穿孔機を使って文字コードに応じた穴を空けていく(パンチする)。再後期に使われたホレリスカードは80桁なので、1枚80バイトである。

一般的なプログラムは、短くても数十行、長いと数万行を超える。そのためカードをまとめて保存するアタッシュケースのようなカバンが販売されていた。カードはまとめて「カードデッキ」と呼ばれる読み取り装置にセットして読み取るのだが、計算機センターでは手が滑ってカードをぶちまける姿が散見された。最初から打ち直すのが早いか、並べ直すのが早いかは悩むところであった。

パンチカードの代わりに8インチフロッピーディスクに磁気的に記録するようにしたのが前述の「オフラインフロッピー端末」である。

 

●PCMCIA/PCカード

PCカードは、パソコン用の小型カード型汎用インターフェースで、日米の業界団体による統一規格である。主に、ノートPCで利用され、本格的なプラグアンドプレイ、ホットスワップを初めて実現したI/O規格である。

もともとは、日本電子工業振興協会(JEIDA)が電子手帳などのために規格化していたが、米国で似たような規格を規定するための業界団体PCMCIA(Personal Computer Memory Card International Association)が設立されたのを受け、1990年にJEIDAの呼びかけで共同作業が開始された。その結果できたのが「PCMCIA Standard」である。米国PCMCIAによる規格が先行したため当初は「PCMCIAカード」と呼ばれたが、1993年にJEIDA規格の統一呼称として「PCカード」が制定されたため、その後は「PCカード」に統一された。

PCカードの規格を使ったバッテリバックアップ式のメモリもあったが、あまり一般的では無かった(筆者は富士通の携帯情報機器OASYS Pocket用に1MBのメモリーカードを持っていた)。外部記録メディアとして使われたのは、PCカードを小型化したコンパクトフラッシュができてからだ。

SONY DSC
▲PCカード(モデム)

 

●コンパクトフラッシュ

コンパクトフラッシュは1994年に米国サンディスクによって開発された。「コンパクトフラッシュ」という名称はサンディスクの商標なので、他のメーカーは「CFカード」や「CF」といった名称を用いることが多い。

SONY DSC
▲プロ向け一眼レフではまだまだ現役で使われている

コンパクトフラッシュはPCカードを小型化した規格なので、汎用インターフェースとして使える。実際に携帯情報機器用のモデムカードなども存在したが、フラッシュメモリを内蔵した外部記憶装置として利用されることが最も多い。

42.8mm×36.4mm×3.3mmのTypeIと、少し厚い5mmのTypeIIが存在するが、いずれも外部記憶メディアとしては大型である。高速で大容量な記憶装置を実現しやすいため、現在でもデジタル一眼レフカメラのハイエンド機で採用されることがある。最大容量は128GBのものが商品化されているが、原理的にはさらに大容量を実現できる。超小型のハードディスクを内蔵した「マイクロドライブ」という製品もある。

 

●スマートメディア

スマートメディアは1995年に、東芝・オリンパス・富士写真フイルム(当時)・東京エレクトロン・セガの5社で結成したSSFDCフォーラムによって規格策定された外部メディア規格で、コンパクトデジカメを中心に広く使われた。45.0mm×37.0mmと、サイズはコンパクトフラッシュよりわずかに大きい程度だが、厚さは0.76mmと圧倒的に薄い。

SONY DSC
▲スマートメディア(少し分かりにくいが現在の感覚でも非常に薄い)
丸い部分がうっすら見えているのが書き込み禁止シール貼り付け位置
反射率の違いで識別する

正式名称は「Solid State Floppy Disk Card」で、「スマートメディア」は愛称である(商標登録はSmartMedia)。実際にフロッピーディスクの代替も狙っていたようで、3.5インチフロッピーディスクにセットすることで、フロッピーディスクドライブから読み書きできるアダプタも発売されていた。ただし、汎用I/Oとしての機能は用意されていない。

データ容量は当初4MBが最大だったが、その後128MBまで拡張された。フォーマットの違いや電気特性の違い(5Vか3.3Vか)があるため、初期の製品は4MBを超えるスマートメディアが使えない場合もある。
 
コンパクトフラッシュには無かったライトプロテクト機能があり、付属のプロテクトシールを貼り付けることで、書き込みが出来なくなる。しかし、たいていの人はこのシールを紛失する。5インチフロッピーディスク時代は、10枚毎にまとめ買いするとシールが20枚くらいついてきたのだが、スマートメディアはまとめ買いすることが少なく、付属シールの数も少なかったためだろう。

写真は筆者がミノルタ(当時)のフィルムカメラ「α7」の撮影データを保存するための装置で使っているカードである。このようにPC以外でも広く使われた。


●SDカード

SDカードは1999年に、スマートメディアの主力企業だった東芝と、コンパクトフラッシュ大手のサンディスクは、著作権保護機能を提唱した松下電器産業(当時)と組んでSDメモリーカードを開発した。公式には、SDは何かの略称ではないとされるが「Secure Digital」の略という説もある。

SONY DSC
▲現役のメディアなので知っている人も多いだろう

SDカードのサイズは、24mm×32mm×2.1mmである。厚みこそスマートメディアの2倍以上あるが、それ以外は小型化している。書き込み禁止用の爪も内蔵され、シールは不要になった。ちょうど3.5インチフロッピーディスクと似た形態である。

SDカードの原型となったのはマルチメディアカード(MMC)である。SDカードはMMCカードと物理的・電気的互換性があるため(MMCの方が少し薄い)、現在のSDカードドライブでもMMCを読み書きできることが多い。

最大記憶容量は2GBで、これはファイルシステムとして採用されたFAT16の制限である。ただし、2006年にはSDカードと互換性を持つSDHC(SD High Capacity)カードが登場し、最大容量はFAT32の制限である32GBとなった。また2009年にはexFATを採用したSDXC(SD Extended Capacity)カードが登場し、規格上の最大容量は2TBとなった。なお、exFATを扱えるOSはWindows Vista SP1以降やMacOS X 10.6.5以降など、ある程度限定される。

携帯電話などの小型機器用に、物理サイズのみを変更したminiSDカードやmicroSDカードもある。いずれもアダプタを使うことでSDカードとして使える。

●xDピクチャーカード

xDピクチャーカードは、2002年に、冨士フイルムとオリンパスによって発表された。主に両社のデジカメを中心に使われたが、スマートメディアとは互換性が無い。

SONY DSC
▲xDピクチャーカード(SDカードなどに比べてかなり小さい)

厚さは増えたものの、スマートメディアよりも小型で(20.0mm×25.0mm×1.7mm)、書き込み防止用の爪を持つ。

SDカードよりもずっと小型であること、I/O機能や著作権機能を省くことで、SDカードよりも割安になる予定だったことから普及が期待されたが、実際には採用された製品が少なく、高価なままに終わった。

現在は富士フイルムもオリンパスもSDカード(SDHCカード)を中心に展開しており、xDピクチャーカードの役割は終わったと考えられる。

筆者は長く富士フイルムのコンパクトデジカメを使っていたため、xDピクチャーカードには馴染みがあるが、知らない人も多いかもしれない。

 

●メモリースティック

メモリースティックは、1997年にソニーから発表された規格で、当初はスマートメディアの代替を狙っていたため、最大容量は4MBであった。後に128MBまで増加する。256MB以上に対応したのが「メモリースティックPRO」で、32GBまで対応する。

「メモリースティック」「メモリースティックPRO」を小型化したのが「メモリースティックDuo」「メモリースティックPRO Duo」で、現在でも使われている形状である。

「メモリースティックDuo」は、高速化と容量拡張が進められている。「メモリースティックPRO Duo」の高速版が「メモリースティックPRO-HG Duo」で、大容量版が「メモリースティックXC Duo」である(最大2TB)、容量と転送速度の両方を上げたのが「メモリースティックXC-HG Duo」である。

ややこしいようだが、現在販売されているメモリースティックはすべてDuoと考えてよいため、PROの有無は気にしなくてよい。HGが高速化、XCが大容量化を意味し、XC-HGは両方を実現している。

PRO以降のメモリースティックには、小型機器用の規格「メモリースティックマイクロ」がある。こちらにもHG、XC、HG-XCが存在する。

SONY DSC
▲メモリースティックDuo
オリジナルのメモリースティックは、現在ほとんど使われていない。

初期のメモリースティックでは、著作権保護技術「MagicGate」に対応しない製品が存在したが、現在はMagicGate機能標準搭載で統一されている。

メモリースティックは、スマートメディアよりも安定していること、コンパクトフラッシュよりも小型であることで注目を集めたが、SDカードが登場してからは苦戦が続いている。

たとえば、以前のソニー製ノートPCにはメモリースティックスロットのみが搭載されていたが、最近はSDカードとメモリースティックの両対応である。また、デジカメにもメモリースティックとSDカードのいずれかが使える製品やSDカードのみ対応の製品が増えている。

 

●メモリーカードのサイズ比較

並べてみるとxDピクチャーカードの小ささが分かる。しかし、SDカードやメモリースティックDuoもそれほど変わらない。これ以上小さくすると、人間にとって扱いにくいので、携帯電話内蔵カードのようなサイズを最優先に考えなければならない場合を除いて、これ以上小さくなることはないだろう。

携帯電話内蔵カードは、SDカードを極端に小型化したマイクロSDカードが広く使われている(メモリスティックを小型化したものもある)。

SONY DSC

2014年7月23日水曜日

スクー授業「Microsoft Azure IaaS講座: 5分で作れるサーバーシステム(1限目) ~とにかく仮想マシンを作ってみよう~」ありがとうございました

「スクー」という新しい学習サイトをお借りして(「公認団体」として)授業をしてきました。

Microsoft Azure IaaS講座: 5分で作れるサーバーシステム(1限目)
~とにかく仮想マシンを作ってみよう~

いくつか課題もありましたので、次回(8/6(水))には改善していきたいと思います。

録画が公開される予定なので、少々お待ちください。

なお、次回は難しい内容です。最終回(3限目)の方が簡単です。

DSC01169M
▲準備中の様子

英語版Windows Server 2012 R2を日本語化する手順

Microsoft AzureやAmazon Web Servicesといったクラウドサービスは、仮想マシンを簡単に入手でき、使った分だけ課金されます。

ただし、両者とも現時点では英語版のテンプレートしか用意されていません。英語版のまま使ってもいいのですが、操作マニュアルの作成をしたい場合は不便ですし、やはり日本語で使いたいという人も多いでしょう。

Windows Server 2012 R2は、以下の手順で言語を変更できます。管理ツールの画面も含めて完全に日本語化されるので便利です。

  1. [スタート]ボタンを押し、[Control Panel]を起動
  2. [Clock, Language and Region]の下の[Add a Language]をクリック
  3. [Add a Language]をクリック
  4. [Japanese]を選択し[Add]をクリック
  5. [日本語]を選択し、[Move Up]をクリックして最優先言語に設定する
  6. [日本語]の[Options]をクリック
  7. [Download and install language pack]をクリックし、日本語言語パックをインストール
  8. [Change date, time, or number format]をクリック
  9. [Location]タブで[Japan]を選択
  10. [Administrative]タブを選択
  11. [Welcome screen and new user accounts]で[Copy settings]をクリック
  12. ダイアログボックスで[Apply]をクリック
  13. 2つのチェックボックスを有効にして[OK]をクリック
  14. 再起動を促すダイアログボックスで[Cancel]をクリック
  15. [Language for non-Unicode programs]で[Change system locale]をクリック
  16. [Japanese (Japan)]を選択して[OK]をクリック
  17. 再起動を促すダイアログボックスで[Restart now]をクリックし、再起動
  18. 再起動が完了したら、仮想マシンに再接続

以上で日本語化が完了します。

さらに、以下のコマンドを実行して一般化しておけば、それをテンプレートとして保存して再利用できます。

cd c:\Windows\system32\Sysprep
sysprep /generalize /oobe /mode:vm /shutdown

/generalizeは一般化してIPアドレスやホスト名などの固有情報を抜き取ります。

/oobeは初期化作業(out-of-box experience)を省略します。

/mode:vmは起動サーバーを仮想マシンを仮定し、デバイスの初期化を最小限で済ませます。

/shutdownを指定しているため、SYSPREP実行後はシャットダウンが行われます。テンプレート(Microsoft Azureでは「マイイメージ」)の登録をしておけば、次にサーバーを作成する時ギャラリーから選ぶだけで済みます。

SYSPREP実行前にWebサーバーなどの役割を追加しておけば、展開後すぐにその役割が使用できます。

ただし、アプリケーションによってはSYSPREPに対応していないものがあります。


【2019/07/27追記】

Windows Server 2016/2019については以下をご覧ください。Windows Server 2012 R2と同様の手順も画面ショット付きで紹介しています。

【図解】英語版Windowsの日本語化~画面ショット付き詳細手順~

2014年7月18日金曜日

ログオンスクリプトと遅延

最近のWindowsは、(利用者の要望に応えて)起動時間やログオン時間の高速化が図られています。

これに伴い、いろいろめんどくさいトラブルが起きます。

●スタートアップスクリプトの実行

起動時に動作するスクリプト(スタートアップスクリプト)は、非同期に実行されるようになっています。そのため、起動時間は高速化されますが、実行順序は保証されません。

参考: コンピューター スタートアップ スクリプトを割り当てる

●ログオンスクリプトの実行

ログオン時に動作するスクリプト(ログオンスクリプト)は、Windows 8.1からはログオン後に実行されるようになりました。

参考: Windows 8.1 ベースのコンピューターにユーザーがログオンした後、5 分間ログオン スクリプトが実行されません

従来と同じように実行するには、グループポリシーを変更する必要があります。ドメインコントローラーがWindows Server 2012以前の場合はグループポリシー管理エディタにこの設定項目がありません。

そこで、クライアントコンピューターのローカルグループポリシー(ローカルポリシー)を構成するか、あるいはWindows Server 2012 R2またはWindows 8.1でグループポリシー管理エディタを使って設定してください。

●PowerShellの実行

スクリプトの実行エンジンとしてPowerShellを使うことは想定されていなかったため、専用の設定タブがあります。PowerShellをスクリプト登録する場合は、こちらを使ってください。

image

2014年7月7日月曜日

Active Directoryとロックアウト

お客様からの質問がありました。

ロックアウトされたユーザーの一覧を知りたい

Windows Server 2008以降をお使いなら、PowerShellのコマンドレットを使って

Search-ADAccount -LockedOut

これが一番簡単です。

ドメインコントローラーがWindows Server 2003であっても、管理ツールがWindows Server 2008以降なら(Windows Vista以降のクライアントOSの場合はリモートサーバー管理ツールをインストールすれば)このコマンドが使えるはずです(すみません、そこまでの検証はしていません)。

Windows Server 2003の場合は少々面倒ですが、マイクロソフトのWebサイトにサンプルが出ていました。

Hey, Scripting Guy! ロックアウトされたアカウントを特定する方法はありますか

記事はPowerShellベースです。VBScriptへのリンクもあるのですが、リンク先のURLが変わっているようです。以下を参考にしてください。

How to programmatically read the lockout flag in Windows 2000 and in Windows Server 2003
(URL末尾のenをjaに変えれば機械翻訳の日本語が表示されます)

ところで、マイクロソフトの「Hey, ××Guy!」シリーズは、本題以外のどうでもいい話が多く、私は好きです。日本のどっかのユーザーが日本マイクロソフトにクレームを付けたようですが、コラムに対して「無駄話が多い」と文句を言うのはばかげた話です。

今回は、「スクリプトキティ」としてライオンの写真から始まっています。

深く考えずに、適当なスクリプトを書く人を「script kiddie」と呼びます(日本語訳は「スクリプト厨」)。

キディ→キティ→キャット→ライオンとなったのでしょうか。

そして「スクリプト キティを Get-Aslan と呼ぶことにします」というのは、ナルニア国物語に出てくる「アスラン」というライオンのことですね。

「ナルニア国物語」と「指輪物語」は、米国で子供時代をおくった人なら、おそらく誰でも知っている有名なお話です。「指輪物語」は映画化もされたので見た人も多いでしょう。「ナルニア国物語」も3作ほど映画化されていますが、全体の半分以下です。特に、「創世記」に当たる「魔術師のおい」が映画化されていないのは残念です。

なお、他にも同様のプログラムを紹介しているブログも見つかったのですが、匿名だったのでここでは紹介しません。

2014年6月30日月曜日

仮想マシンとしてのドメインコントローラーとディスクキャッシュ

Windows Serverをドメインコントローラーにした場合、Active Directoryデータベースの整合性を維持するため、書き込みキャッシュを無効にします。

仮想マシンをドメインコントローラーとして構成した場合、物理マシンのキャッシュが無効になるため、性能が低下するらしいが本当ですか。

という質問をいただきました。

最終的な答えはNOですが、いくつか微妙な問題があったのでまとめておきます。なお、以下の文書はすべてWindows Server 2008ベースのものですが、Windows Server 2012 R2でも状況は同じだと思われます。

サポート技術情報888794「仮想ホスト環境で Active Directory ドメイン コントローラーをホストする場合の考慮事項」には以下のことが記載されています。

仮想ホスト環境のソフトウェアで、Force Unit Access (FUA) をサポートする SCSI エミュレーション モードが正しくサポートされている場合、この環境で Active Directory が実行するバッファーなし書き込みはホスト オペレーティング システムに渡されます。

FUA がサポートされていない場合は、Active Directory データベース、ログ、およびチェックポイント ファイルをホストするゲスト オペレーティング システム上のすべてのボリュームにおいて、書き込みキャッシュを無効にする必要があります。

後半は自動的に設定されるため、特に意識する必要はありません。

FUAは、キャッシュ制御をするためのSCSIコマンドです。このコマンドが、仮想マシンから物理マシンに正しく送られる場合、キャッシュを無視してアクセスを行えるようです。

つまり、キャッシュを無効にしなくても、仮想マシンDCからのI/O要求に関してはキャッシュを使わずにディスクをアクセスします。

もちろんSCSIコマンドを発行するのは、仮想マシンの仮想ディスクに対してですから、仮想マシンには仮想SCSIディスクが必要です。また、最終的にSCSIコマンドを受け取るのは物理ディスクですから、物理ディスクもSCSIディスクでなければいけません。

物理ディスクがSCSIでない(IDE/ATA)の場合は、VHD(VHDX)ファイルが破損しないように、キャッシュを手動で無効にする必要があります。

なお、仮想ディスクは、ドメインコントローラーの既定の動作によりSCSIであろうとなかろうと書き込みキャッシュを無効にします。

Microsoft TechNetのドキュメント「仮想化ドメイン コントローラーの展開に関する考慮事項」には以下の記述があります。

Active Directory のデータが壊れる可能性を減らすため、SCSI コントローラーを使用するか、ATA ドライブまたは IDE ドライブで書き込みキャッシュを無効にしてください。

仮想ドメイン コントローラーをホストする Hyper-V サーバーでは、IDE ドライブや ATA ドライブではなく SCSI 物理ドライブを使用してください。SCSI ドライブを使用できない場合は、仮想ドメイン コントローラーをホストする ATA ドライブまたは IDE ドライブで書き込みキャッシュを必ず無効にしてください。詳細については、「Event ID 1539 – Database Integrity (イベント ID 1539 - データベースの整合性に関するページ)」を参照してください。

ドメイン コントローラーとして実行するすべての仮想マシンで、仮想 SCSI コントローラーを使用してください。仮想 SCSI コントローラーを使用できない場合は、ドメイン コントローラーとして実行する仮想マシンの仮想 IDE ドライブで書き込みキャッシュを必ず無効にしてください。インストールされているディスク コントローラーの種類は Virtual Machine Manager の設定ダイアログ ボックスで確認できます。詳細については、「仮想マシンを構成する」を参照してください。

まとめると、以下の通りです。

  • 物理ディスクがATAの場合
    • 物理ディスク…手動でキャッシュ無効化
    • 仮想ディスク…自動的にキャッシュ無効化
  • 物理ディスクがSCSIの場合で仮想ディスクがATAの場合
    • 物理ディスク…手動でキャッシュ無効化
    • 仮想ディスク…自動的にキャッシュ無効化
  • 物理ディスクも仮想ディスクもSCSIの場合
    • 物理ディスク…FUAによる自動制御
    • 仮想ディスク…自動的にキャッシュ無効化

より詳細な内容は、以下のドキュメントをダウンロードしてください(英語です)。

Hyper-V でのドメイン コントローラーの実行に関するページ (ダウンロード可能な Word 文書)

2014年6月29日日曜日

Hyper-V 仮想化環境での時刻同期

時刻同期は今ではサーバーの非常に重要な要件となりました。時刻が同期されていないと、各種のログの照合が難しくなるだけでなく、認証プロトコルが失敗することさえあります。

Hyper-Vを含め、多くの仮想化環境では、仮想マシンの時刻が遅れる傾向にあります。

昔「任天堂ゲームウォッチ」という携帯ゲームがありました。単機能なので、学校でゲーム機本体の交換を行った経験のある人もいるでしょう。ゲームウォッチは、名前の通り本来は時計なのですが、内蔵されたCPUでソフトウェア的に時刻情報を管理していたようです。頻繁にゲームを行うと、CPU割り込みが増え、表示時刻が遅れるという問題がありました。仮想環境でもこれと似たような問題が発生します。

ちなみにゲームウォッチの発売は1980年なので、このたとえ話は40歳代以上にしか分からないと思います。何しろファミリーコンピューター(ファミコン)以前の話です。

●Hyper-V統合サービスでの時刻同期

閑話休題、そこでHyper-Vでは「統合サービス」を仮想マシン上で動作させることで、時刻の遅れを防ぎます。

マイクロソフトのWebサイト「ヒント: Hyper-V 仮想化環境におけるゲスト OS の時刻同期について」によると、時刻同期は以下のように行われます(Windows Server 2008/2008 R2での記載ですが、2012でも同じだと思われます)。

  • ゲストOSの時刻が、ホストOSより遅れている場合(5秒以上)
    強制的に時刻同期を行う
  • ゲストOSの時刻とホストOSの時刻のずれが5 秒未満の場合
    時刻同期を行うかどうかは NTP (w32timeサービス) に委任
    統合サービスの時刻同期 はVM IC Time Synchronization Provider という名前の NTP Time Providerとして提供
  • ゲストOSの時刻が、ホストOSの時刻より進んでいる場合(5秒以上)
    時刻同期しないので、必要に応じてNTPなど、他の時刻同期機構を利用

また、統合サービスの "時刻の同期" は、他の時刻ソース(他の NTP サーバー)の参照環境と共存可能なように実装されているそうです。

その他に、ゲストOSの起動時に同期します。ゲストOSの時刻はシャットダウンまたは保存時に停止するため、次に起動したときは必ず遅れています。つまり、メカニズムとしては「5秒以上遅れている場合」と同じです。

 

●NTPの構成

NTPのパラメータ調整はW32TMコマンドを使います。仮想マシンンに依存しない時刻同期については、私と同じDirectory ServicesのMicrosoft MVPである小鮒道成さんが書いた記事が参考になります。

Windowsネットワーク時刻同期の基礎とノウハウ

万一時刻がずれてしまったらどうするかということも問題になります。時刻変更の影響が予測できる場合で、許容できる程度のリスクであれば、一気に同期させるのもひとつの方法です。

時計を進めることは、遅らせることに比べてリスクが少ないと考えられます。通常、仮想マシンンは時刻が遅れるので、多くの場合は問題が出ません。

しかし、時刻変更の影響が予測できない場合や、リスクが大きい場合はどうすればいいでしょう。NTPのパラメータで調整できるならそうしてください。そうでなければ、人間が少しずつ時刻差を縮めていくしかありません。

 

●【追記】ドメインコントローラーの構成

仮想マシンドメインコントローラーでは特別な注意があります。

Microsoft TechNetのドキュメント「仮想化ドメイン コントローラーの展開に関する考慮事項」から引用します(太字は私の注釈)。

ドメイン コントローラーとして構成された仮想マシンでは、統合サービスを通じてホストとの時間の同期を無効にしてください。代わりに、既定の Windows タイム サービス (W32time) ドメイン階層時間の同期を使用してください。

ホスト時間の同期では、ゲスト オペレーティング システムは各自のシステム クロックをホスト オペレーティング システムのシステム クロックに同期させることができます。ドメイン コントローラーはそれぞれ独自の時間同期メカニズムを持っているので、ドメイン コントローラーとして構成された仮想マシンではホスト時間の同期を無効にする必要があります。ドメイン コントローラーが各自のソースから時間を同期させると同時にホストからも時間を同期させた場合、ドメイン コントローラーの時間が頻繁に変化する可能性があります。ドメイン コントローラーのタスクの多くはシステム時間に関連付けられているので、システム時間が突然変化した場合、それが原因で残留オブジェクトがディレクトリに残り、レプリケーションが停止する可能性があります。

Hyper-V マネージャーの [統合サービス] セクションにある仮想マシンの設定で [コンピューターの時計の同期] チェック ボックスをオフにすることで、ホスト時間の同期を無効にすることができます。

2014年6月13日金曜日

Microsoft Azureのアフィニティグループと課金

Microsoft Azureに限らず、クラウドサービスの研修で怖いのは、ある日突然管理ツールが変わってしまうことです。

クラウドの基本は、「IT機器ではなく、ITサービスを使う」ということなので、これはやむを得ません。

提供されるサービスが同じなら、使い勝手が変わってもある程度は仕方ないでしょう。たとえば、京都市のバス料金はかつて

    • 均一区間は乗車時に支払う
    • 均一区間外は降車時に支払う
      (
      乗車時に整理券を取り、整理券の記号に従った価格を支払う)

でした。複数のルールを使い分けるのが面倒なことから、現在では以下に統一されています。

    • 降車時に支払う
    • 均一区間外を走るバスは乗車時に整理券を取る
      (均一区間を走るバスは整理券が出ない)

ユーザーインターフェースが変わるので、最初は戸惑う人も多かったのですが、サービスを受ける側としては受け入れるしかありません。

先日、グローバルナレッジとしては初めてMicrosoft Azureの研修を実施しました。そこで、2つほど保留した質問と、アンケートに記載されていた質問について、この場を借りてお答えします。

●アフィニティグループの作成

  1. 複数の仮想マシンを同じ場所(大ざっぱに言うと同じラック)に配置するための機能「アフィニティグループ」は、事前に作成しておきます。
  2. Microsoft Azureの管理ポータルWebサイトにアクセス
  3. [設定]をクリックし、[アフィニティグループ]タブを選択
  4. [追加]をクリックし、サブスクリプションとリージョンを指定

これで、特定のリージョンに結びついたアフィニティグループができました。

次に、仮想マシンの入れ物である「クラウドサービス」を作成します。この時、リージョンの代わりにアフィニティグループを指定します。

●課金

Microsoft Azureの仮想マシンは、管理ツールからシャットダウンすると[割り当て解除]となり、課金対象になりません。

Azureは料金改定が頻繁に行われますが、単なる停止で課金対象から外れるという発表は今の所ありません。これからも割り当て解除が必要です。

なお、ストレージの使用分には課金されますので、ご注意ください。

●料金シミュレーター

Microsoft Azureの料金シミュレーターが公開されています。あまり詳細なパラメーター指定はできませんが、参考にしてください。

image
▲マイクロソフトが配布しているアイコンから「Affinity Group」
単なる点線枠にしか見えません。

2014年6月10日火曜日

Windows Azure改めMicrosoft Azureはじめました

今日、ある会社向けにMicrosoft Azure (IaaS) の演習付き体験セミナーをします。

Microsoft Azureの演習を行う場合、アカウントをどうするかという問題があって、いまだに定期開催コースが提供できていません。

私個人としては

  • 各自アカウントを取ってきてもらう
  • アカウントを持っていない人はその場で取ってもらう
  • それが無理なら演習ができない

ということでいいと思うのですが、反対意見も根強く難しいようです。

事前に注意事項を配布しても、読まない受講者が一定数いらっしゃいますし、申し込んだ方と受講者が違う場合は連絡が伝わらない場合もあります。会社や個人の事情でアカウントが取れない人もいらっしゃるかもしれません。

会社としてサービスを提供する場合、こうした可能性をすべて考える必要があります。

ところで、本日の受講者に対しては記念品を渡すことになりました。「マイクロソフトのMicrosoft Azure公式キャラクター『クラウディア窓辺』さんのコスプレ写真集ありますよ」、と言ったら「もっといいものあげましょうよ」って言われました。

昨年末に作って、コミックマーケット(コミケ)で売ったのですが、私のサークル「まぐにゃむフォト」は動物ジャンル(猫写真)なので、見事に売れませんでした。

もっとも、コンスタントに売れるはずの既刊猫写真集も売り上げが激減していたので、何か別の原因があるかもしれません。

夏のコミケも出展するので、もうちょっと売りたいところです。完売してもモデル代とスタジオ代は出ないのですが、印刷費くらいは回収したいところです。

スライド0
▲表紙と裏表紙

【追記】

Windows AzureをMicrosoft Azureに修正しました。

ちなみにAmazonさんのAWS無料講習会は、アカウントを事前作成するのが宿題でした。また開始30分前に「アカウント作成無料セッション」が開催されていました。

グローバルナレッジのAWS講習会はRemote Labと呼ばれるエミュレーション環境を使います。

2014年5月22日木曜日

フェールオーバー用の DHCP の構成 (Windows Server 2012)

公式コラムでは「Windows移行特集」が始まりました。第1回は「Windowsのマイグレーションと言えば」というタイトルで私が書いています。

英語の「migration」は、ごく一般的な言葉で「人や動物が移動する」ことを意味します。たとえば、アフリカ大陸で見られる「ヌー(Gnu)の大移動」は「The Great Migration」と呼ばれるそうです。UNIXからLinuxに移行することではありません。

GnuプロジェクトのツールがUNIXからLinuxにどんどん移植され、最近ではLinuxが中心になっていることに引っかけてみたんですが、社内では誰も突っ込んでくれませんでした(Gnuプロジェクトの創設者R. M. Stallmanは「Gnu Linuxと呼べ」と言っているので、最初は「WindowsからLinuxへの移行」と書いたのですが、「UNIXからLinusの方が面白い」と社外の方に指摘されて修正しました)。

さて今日の本題です。

Windows Server 2012から、DHCPサーバーの冗長構成(DHCPフェールオーバー)が可能になりました。もう高価で面倒なフェールオーバークラスターを構築する必要はありません。

DHCPフェールオーバーは、DHCPスコープあたり2台のサーバーで構成します。フェールオーバー後の動作を実際に試してみました。いずれも「ホットスタンバイモード」の場合です。

 

●正常時の動作

プライマリDHCPサーバーがIPアドレスをリースします。この情報はスタンバイDHCPサーバーのDHCPスコープに複製されます。

 

●フェールオーバー後の動作

プライマリDHCPが停止すると、一定時間後にスタンパイDHCPがスコープの制御を取得します。

ただし、この情報はDHCPクライアントには伝わりません。そのため、DHCPクライアントからのIPアドレス更新要求は常に自分がIPアドレスを取得したDHCPサーバー(プライマリDHCPサーバー)に対して行われます。

しかし、プライマリDHCPサーバーは停止しているため、更新要求は失敗します。

DHCPクライアントは、IPアドレスの有効期限直前になると、プライマリDHCPサーバーからの更新をあきらめ、新たにIPアドレスのリースをブロードキャストで要求します。

この時、スタンバイDHCPが応答しますが、スタンバイDHCPには既存のDHCPスコープ情報が複製されているため、DHCP要求に含まれるMACアドレスに対して、以前払い出したIPアドレスが再割り当てされます。

結果として、DHCPサーバーは変わりますが、IPアドレスその他のパラメータは以前と同じ情報が配布されます。これによりTCP/IP構成の連続性が保証されます。

 

●フェールバック時の動作

プライマリDHCPサーバーが復旧した場合、一定時間後にスコープの制御がプライマリDHCPサーバーに戻ります。もちろんスコープ情報もすべて複製されます。

スタンバイDHCPサーバーは待機状態になり、IPアドレスの更新要求に答えなくなります。その後はフェールオーバー時と同様の動作で、プライマリDHCPサーバーからIPアドレスを新たに(でも同じIPアドレスで)入手します。

 

●注意

DHCPサーバーがフェールオーバーしているときに、コマンド「ipconfig /renew」を実行すると、IPアドレスが更新できずエラーとなります。

手動でIPアドレスを更新する場合は、「ipconfig /release」を実行し、明示的にIPアドレスを解放してから「ipconfig /renew」を実行してください。

2014年5月11日日曜日

メリー・ポピンズと「ウォルト・ディズニーの約束」

メアリー・ポピンズとCommon Lisp」の続きです。今度こそ技術的な話は登場しませんが、続きなのでこちらに書きます。

ところで私、ずっと「メアリー・ポピンズ」と書いてきましたが、ディズニー映画(ジュリー・アンドリュース主演)の邦題は「メリー・ポピンズ」だということを先月知りました(40年くらい間違って覚えてました)。

お一人様で「ウォルト・ディズニーの約束」を見ました。

「ウォルト・ディズニーの約束」原題は「Saving MR. BANKS」で、「メリー・ポピンズは子供たちではなく、バンクスさんを助けきた」という話と、Saving Account(貯蓄口座、バンクスさんは銀行員です)をかけたのだと思います。

こっちの方がよく出来たタイトルですが、「Mr. BANKS」でメリー・ポピンズを思い出せる人は日本では少数派らしいです。

原作者のP.L.トラバースの少女時代と、ディズニーとの映画化交渉権をめぐる話が交互に進みます。
ディズニーは、多くの作品をめちゃめちゃに、いえ、独自の演出を加えていますから、P.L.トラバースの心配はよく分かります。

プーさんのぬいぐるみを見ながら「A.A.ミルンも可愛そうに」とつぶやくシーンは笑いました(が、他に笑ってる人がいないのはなぜ?)。

「ディズニーは単なる金儲けのために映画を作るのではない」ということで、最後に譲歩するんですが、ここはちょっと物足りなかったように思います。

ウォルト・ディズニー本人が「(駆け出しの頃)『ねずみ』の権利を購入したいという申し出があったが断った」という話をしていますが、もうちょっと聞きたかったところです。

もっとも、映画の本題はP.L.トラバースと父親の話なので、あえて踏み込まなかったのでしょう。

終盤「バンクスさん(メリー・ポピンズがいる家のお父さん)は悪人ではない」ということで、2ペンス(タペンス)で材料を買って、凧の修理をします。2ペンスは、「Feed the Birds」の曲でおなじみ「鳥の餌、1袋2ペンス」です。

「ウォルト・ディズニーの約束」ではここまでしか描かれていないのですが、映画「メリー・ポピンズ」の終盤はこうです。

父を訪ねて銀行に行った子供は、持っている2ペンスを、(鳥の餌を買うのではなく)銀行に預金しろと、銀行員に取り上げられます。

バンクスさんだったか、銀行員だったか忘れました。バンクスさんは、前半、お金に厳しい人に描かれていたので、バンクスさん自身が息子のお金を取り上げたのだったような気もします。

すると、子供は「ぼくの2ペンスを返して」と叫びだし、周囲の人は「2ペンスも返せない銀行か」と誤解して取り付け騒ぎが起き、バンクスさんがクビになるという話だったと思います。

バンクスさんが、責任を問われている会議中、バンクスさんが開き直って、銀行よりも子供の方が大事だと「スーパーカリフラディリステクエクスピアリドーシャス」と歌い出し、なんとなく円満に終わるという話だったような違ったような。
(映画見たの40年くらい前なんで、よく覚えてない)

「ウォルト・ディズニーの約束」では「新しいエンディングを用意した」としか言ってないのですが、これがその「新しいエンディング」です。

P.L.トラバースが、映画化に譲歩したのは、凧ではなく、このエンディングのおかげでしょう。

かなり感動的なシーンなので、詳細は忘れていても、米国人なら当然知っているエピソードなんだそうです(というのは岡田斗司夫さんのお話)。

ということで、だらだら書いてしまいましたが、いいお話でした。

そういえば、同じジュリー・アンドリュース主演の「サウンド・オブ・ミュージック」も、厳格なお父さんが変わっていく話ですね。

2014年4月19日土曜日

メアリー・ポピンズとCommon Lisp

分室のブログとどちらに書こうか迷ったのですが、技術的な話もあるのでこちらに書きます。

評論家の岡田斗司夫さんが、自身の無料メルマガ「岡田斗司夫の毎日メルマガ~力尽きるまで」で、映画「ディズニーの約束」のことを書いていらっしゃいました。YouTubeに音声が上がっています

ディズニーの映画「メアリー・ポピンズ」の制作裏話です。

メアリー・ポピンズは、バンクスさんの家に、子供たちの住み込み家庭教師として雇われます。

この映画、前半は原作の雰囲気そのままに進むのですが、後半になって銀行員であるバンクスさんの話に変わっていきます。堅物だったお父さんが、どうなるのかはぜひ映画を見てください。そして、なぜそうなったのかが「ディズニーの約束」で描かれているそうです。なかなか面白そうなので見たいと思います。

さて、この「メアリー・ポピンズ」、米国では誰もが見ている作品のようです。だから「ディズニーの約束」もメアリー・ポピンズを見ていることを前提に話が進むそうで、多くの日本人にとってはちょっと分かりにくいみたいです。

そこで本題。

Common Lispというプログラミング言語があります。Lispという言語は、1950年代に設計され、1960年頃には広く使われていた非常に古い言語です。

ところが、主に人工知能研究に使われており、産業界では普及しなかったせいでしょうか、多くの方言があります。

自然科学の研究が、仮説→実験→検証→再仮説、というサイクルを回すように、人工知能の研究は、仮説→コーディング(プログラム作成)→検証(実験)→再仮説というサイクルを回します。実験と同じくらいプログラムを書くので、同じプログラムを使い続けることはほとんどありません(部分的な再利用はあります)。だから標準化して、他の人のプログラムをそのまま使えるようにする必要もなかったのでしょう。

プログラムは、事前に手順が決まっているから「実験」というのは奇異な感じがするかもしれません。自然科学だとこうなります。

  1. Aという3つの現象がある
  2. Aを満たすモデルMAを考える
  3. Bという現象が見つかった
  4. MAのある部分を修正すればBも説明できるし、Aも説明できる
  5. 修正MAは、より確からしいモデルである

人工知能も同じように考えて、適用範囲が広がり、整合性がとれるようにプログラムを拡張していきます。

Lispには、主な系列でもMIT(マサチューセッツ工科大学)のMacLisp、ゼロックス社のパロアルト研究所(PARC)やスタンフォード大学で広く使われていたInterlispがあります。東海岸と西海岸ですね。

Common Lispは、1980年代の人工知能ブームに乗ってきた産業界の要請に応える形で、Lispの集大成として計画され、従来のLispにScheme(スキーム)という、Lispベースの言語のエッセンスを取り入れて作られたプログラム言語です(Schemeをベースに、の方が近いかもしれません)。

「どうせなら、良いアイデアをたくさん取り入れよう」ということで、Common Lispは既存のLispとはどれとも違うものになりました。多くの人が集まって規格を決めるとこうなります。

内容はともかく、この時の仕様書の名前が凝っています。仕様書を作ったのは、G. L. Steele Jr.、有名なコンピュータ科学者です。

  • 1981年: Swss Cheese...スイスチーズには穴が空いているところから「穴だらけ」(「トムとジェリー」によく出てくるチーズです)。
  • 1982年: Flat Iron...古い(電気式でない)アイロンの意味で「シワが残る」そうです。
  • 1982年: Colander...水切りざるの意味です。「穴は増えたが前より小さい」そうです。
  • 1982年: Laser...コヒーレントでありますように。「コヒーレント」とは、「首尾一貫した」という意味ですが、光学分野では「位相がそろった」という意味を持ちます。コヒーレントな光のことを「レーザー」と呼ぶのでLaser Editionと名付けられました。
  • 1983年: Excelsior...荷造りのための詰め物だそうです。仕様が確定し、明確なバグ以外は受け付けないということになったので「(荷物を)固定する」という意味なのでしょう。
  • 1983年: Mary Poppins...「Practically Perfect In Every Way(あらゆる意味でほとんど完璧)」という、映画のメアリー・ポピンズの台詞に由来します。

私の知る限り、小説版のメアリー・ポピンズには...「Practically Perfect In Every Way」という台詞はありません。映画では、自己紹介でメアリー・ポピンズが自分のことをこう言います。

Mary Poppinsと言うだけでPerfectと結びつくのは、ディズニーの映画がいかに広く知られているかということですね。

すみません。あんまり技術は関係ありませんでした。

2014年4月10日木曜日

Microsoft MVP受賞しました(Directory Services)

報告が遅れましたが、4月1日付で、今年も「Microsoft MVP」を受賞しました。12年連続受賞ということになります。

今年もDirectory Servicesでの受賞です。

昨年は、書籍が2冊でたものの、その他の活動はあまり多くなかった上、仮想化やストレージなど、分野も分散していたので不安でしたが、無事受賞できました。

Microsoft MVPは、製品開発グループの認定なので、複数分野にまたがった活動は評価されにくいようです。

MVP-DSC00189 (1024x576)
▲記念の盾とオブジェ
最近は、コスト削減のためかスリットの入ったリングだけが送られてきます。
ただし、このスリットの位置がそろっておらず、がたがたしています。

10年を超えて連続受賞するには、本人のモチベーションはもちろん、周囲の環境が大きく影響します。ずっと同じ仕事を続けているのが良いことか悪いことか分かりませんが(おそらく、それ自体に良い悪いはないでしょう)、ともかく周囲の理解があって実現した受賞です。たとえば、執筆活動は会社に直接利益をもたらさないから駄目とか、Webサイトへの投稿はノウハウが漏れるから駄目だとか、そういう制約はありませんでした。

どうもありがとうございました。

ところで、最近のディレクトリサービスのトレンドは、イントラネットのActive Directoryドメインサービスから、ADFSへ移行しつつあり、あまり追従できていません。困ったものです。

2014年4月9日水曜日

さようならWindows XP【追記あり】

Windows XPサポート終了の記念として、仮想マシンのWindows XPを起動してWindows Updateをかけてみました。

再起動後、ログオンするとこんな画面が。

XPwall

拡大します。
XP

Internet Explorer 8をインストールすると、こんな画面も。

XP-IE

拡大します。
XP-IE-X

どこかのテレビ局が、マイクロソフトに対して「勝手にサポートを打ち切って、消費者に対する責任は感じないんですか」と尋ねて、周囲の失笑をかっていたそうです。

アナログ放送を打ち切ったのは政府方針だとしても、ケーブルテレビのデジアナ変換が2015年3月末で打ち切られるのと似たような状況だと思います。

マイクロソフトと言えども、古いインフラを永久にサポートすることはできません。

当初の予定よりもサポート期間はかなり延長されていますし、十分な告知も行われたので、私企業としては最大限の努力をしたのではないかと思います。

それより、先日、人づてに聞いた衝撃的な言葉があります。

Windows XPのサポートが終了らしいけど、そこにあるWindows 98はそのまま使っていいんだよな。

【追記】
Security Essentialsはこんな画面が出ました。

XP-SE