DAGにて、どのトランザクションログまでシードしたと認識しているかを確認する方法

Exchange Server 関連の記事はExchange Server Blogにまとめて書くことにしました。よろしければあわせて御覧ください。 Exchange Serverにてどのトランザクションログまでコミット済みかということはeseutilでチェックポイントファイルを確認することで可能ですが、「DAGでどこまでトランザクションログをコピーしたのか?」ということを確認する方法は調べても情報が見つかりません。適当に探してみたらそれらしいものがあったので記録しておきます。(情報の正確性は保証しません) いきなり答えですが、おそらくDAGのアクティブ側DBを保持しているサーバーの以下のパフォーマンスカウンタがそれを示していると思います。 - MSExchange Replication\CopyNotificationGenerationNumber - MSExchange Replication\CopyGenerationNumber - MSExchange Replication\InspectorGenerationNumber - MSExchange Replication\ReplayGenerationNumber - MSExchange Replication\ReplayNotificationGenerationNumber 検証環境で確認してみたところ、上記のカウンタがすべて24になっていました。すべて同じ数字でそろっているのは、検証環境で新しいトランザクションログが発生していないからだと思われます。 最後に複製されているトランザクションログのファイル名は「E0200000018」となっており、16進数の0x18は10進数の24なのでビンゴだと思われます。 さらに、このカウンタはアクティブなDatabaseを持っているサーバーでのみ値が確認できました。アクティブ側のみで数字を把握しているようです。 そもそも論としては「こんなこと知ってどうするの?普通にトランザクションログ自体を確認すればわかるじゃない」という感じではあるのですが、手動でDB自体やトランザクションログをごねごねしたり、シード処理を自動で行わせずに無理やりやりたいようなケースで確認したいという話があったので調べてみました。本当はそういう変なことはせずに、きちんと普通のオペレーションでできるように環境をつくったり、スケジュールを立てたりするのがいいんですけどね…。

October 11, 2012 · 1 min · 胡田昌彦

SQL Serverのsysprep可能イメージの作成方法

SCVMMでVMTemplateは作成できるようになったので、次はSQL Server Profile(SQL Serverの自動インストール)を試そうとしています。 大きな流れ 大きな流れとしては以下のようになるようです。(おそらく) - SQL ServerのセットアップイメージをOSイメージ内に格納し、雛形化する(VM Template作成) - SQL Server Profileを作成する(自動インストールの設定) - 作成したVM TemplateとSQL Server Profileを使ったVM Serviceを作成する ちょっと行程が長いので、まず、SQL Serverのsysprep可能イメージの作成をしてみました。 これは結局のところ「SQL Serverが動いている状態のものをそのままsysprepして複製…」というわけにはいかないので、「インストールに必要なファイルや構成ファイル等をおなかの中にため込んでおいて、あとから簡単に構成できるようにしておきまーす。」くらいの事のようです。中途半端な気もしますが、仕組み上仕方ないのでしょうね、きっと。 SQL ServerのセットアップイメージをOSイメージ内に格納し、雛形化する(VM Template作成) まず、SQL ServerのDVDメディアの中身を仮想マシンが常に触れる場所に展開しておきました。具体的にはSCVMMのLibraryサーバーのShareの中にisoイメージの中身をコピーしておきます。 ※この場所にはsysprep後の構成時にもアクセスできる必要があるので注意が必要です。 setup.exeを起動し、「詳細設定」内の「SQL Serverのスタンドアロンインスタンスのイメージの準備」を実行します。これによってインストールイメージをローカルに格納できます。そしてこれはsysprepに対応しています。 セットアップサポートルールにて問題が無ければ「OK」を押して次に進みます。 セットアップサポートファイルをインストールします。 セットアップサポートルールを確認し、「次へ」をクリックします。 ※「Microsoft .NET アプリケーションセキュリティ」に警告が出ているのは検証環境からインターネットに出ることができないからです。気にせず進めます。 イメージの準備にはすべての機能が対応しているわけではないので項目は少ないですが、必要なものにチェックボックスを入れます。 インスタンスIDを入力します。 必要なディスク領域を確認します。 イメージの準備ルールを確認します。 「イメージの準備の準備完了」というおもしろワードで実施することを確認します…。 ローカルにファイルが準備されていきます。 セットアップが完了しました。 複数インスタンスが必要な場合には、この手順を必要なだけ繰り返します。 これで、SQL Serverのインストールイメージを含んだ雛形を作成することができるようになりました。 sysprepをしてイメージを展開した後は「SQL Server 2008 R2のインストールの完了」を呼び出すことでセットアップを完了することができます。 今回はSCVMMで利用したいので、準備が完了したOSをシャットダウンし、VMTemplateを作成しておきます。 停止した仮想マシンから「Create VM Template」を選択します。 ...

October 4, 2012 · 1 min · 胡田昌彦

SCVMM2010でのVMTemplateの作成方法

System Center関連記事は以下のブログに移行しました。 - [System Center Blog](http://ebi.dyndns.biz/systemcenter/) この記事は以下のURLに移行されています。 - [SCVMM2010でのVMTemplateの作成方法 | System Center Blog](http://ebi.dyndns.biz/systemcenter/2012/10/03/scvmm2010%E3%81%A7%E3%81%AEvmtemplate%E3%81%AE%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95/)

October 3, 2012 · 1 min · 胡田昌彦

PowerShellを使ってExcelできちんと開けるCSVファイルを作成する方法

PowerShellからCSVファイルを作成し、それをExcelで開いて…という操作は結構需要があり、頻繁に行われるのではないかと思います。ちょっとしたはまりポイントがありますので、そのあたりのTipsを紹介しようと思います。 Export-Csv PowerShellの素敵な点の1つはオブジェクトを簡単にCSVに出力できるコマンドレットが標準で用意されているところだと思います。 ただし、日本語が含まれている場合に、そのまま何も考えずにExport-Csvを実行すると文字化けが発生してしまいます。 これは、Excelで読み込むときにエンコーディングの判定に失敗して文字化けしている…という事ではなく、PowerShellでファイルを吐き出した時に????に変換されてしまっています。なので、出力時にきちんとエンコーディングを指定してあげる必要があります。 どのエンコーディングを使うか、というのは人によって意見が違うかもしれませんが、私はいつもUTF-8を使います。これであればきちんと日本語も出力され、Excelで開いた時にも文字化けもなく意図した通りに開きます。 ExcelでShift-JIS以外の文字コードでは文字化けが発生する問題 実は先ほどの例ではうまくいっていますが、ExcelはCSVファイルはShift-JISにしておかないと文字化けすることが多い困ったやつです。回避策はいくつかあります。以下のあたりが参考になります。 ExcelでUTF-8のCSVを開く方法 (CodeZine編集部ブログ) ExcelでUTF-8エンコーディングされたCSVファイルを開く方法 - 大人になったら肺呼吸 先ほどの例ではBOM付きのUTF-8であったためうまく表示されたわけです。Stirlingでファイルを確認するとファイルの先頭に「EFBBBF」が不可されていることがわかります。 スクリプト内でファイルに出力する場合 Export-Csvを使う場合には-Encodingオプションを付ければよいことはわかりましたが、foreachの中などで、自分で文字列をファイルに出力したいようなときには残念ながら別の問題が発生します。 このようにA列にすべて表示されてしまいます。(※文字化けをしていないのはExcel2010だからなのではないかと思います。) これも回避策としてはいくつかあると思いますがShift-JISで出力するにはAdd-Contentコマンドレットで-EncodingにStringを指定することができます。 UTF-8でBOM付きにしようと思ったら、先にファイルを作成しておくと良いようです。

October 2, 2012 · 1 min · 胡田昌彦

DAG構成のDBに対しての手動でのトランザクションログの削除方法

Exchange Server 関連の記事はExchange Server Blogにまとめて書くことにしました。よろしければあわせて御覧ください。 Exchange ServerのDatabaseに対しては、バックアップが正常に動作していなかった時にトランザクションログが貯まりすぎてしまったような場合にコミット済みのログを調べ、それを手動で退避あるいは削除するというオペレーションをよく行っていました。 [XADM] Eseutil を使用してコミット済みのログを特定する Exchange Server 2010のDAGでDatabase Copyが構成されているDatabaseの場合、このあたりの操作はどのように行えるのか、行えないのか、情報を調べてもほとんどみつからないので実際の動作を確認してみることにしました。(正確性は保証しません。「私の環境ではこのように動いた」以上でも以下でもありません。) ちなみにテストしている環境はExchange Server 2010 SP2の環境です。 同期している状態 上記はコピーを開始した直後で、両者の保持しているログに差異が無い状態です。 この状態から、大きめの添付ファイルをDatabaseに存在しているユーザーに送信し、トランザクションログを発生させます。 この操作の結果、以下のようにE0200000006~E020000000Eまでのファイルが生成され、同時に、アクティブからパッシブにコピーされました。 ここでActive側のDatabaseにて、コミット済みのトランザクションログを調べ、コミット済みのログファイルを削除してみます。 「eseutil /mk」にて0x5のファイルまでコミット済みであることがわかりました。 すでにコミット済みであるファイルをActive側で手動で削除してみます。 結果、特に何の問題もなくファイルは消え、その後特にエラーも何も表示されることなく通常通り使えています。Aassive側のDatabase側にトランザクションログが削除されたという情報が伝わっている様子もありません。20分ほど時間をおいてみましたが、そのままでした。 次に、Passive側でもコミット済みであることを確認したうえで、Active側で削除したトランザクションログファイルを手動削除してみます。 この操作後も、特段何の反応もなく、正常稼働を続けています。DAGでコピーを構成したとしてもすでに処理の終わったトランザクションログに関しては取り立てて何も監視、処理はしていないという事になると思います。トランザクションログファイル自体は環境によっては大量に生成されるでしょうし、それをすべて監視するようなことはリソースの無駄になると思われますので妥当な動きだと思います。 確認のために先にPassive側を削除し、その後Active側を削除…というパターンもやってみましたが挙動は変化ありませんでした。 緊急時の対応としては、単純にコミット済みのトランザクションログの退避あるいは削除が手段として使えそうです。

October 1, 2012 · 1 min · 胡田昌彦

SCVMM 2012でISOファイルを共有から直接マウントできない問題について

System Center関連記事は以下のブログに移行しました。 - [System Center Blog](http://ebi.dyndns.biz/systemcenter/) この記事は以下のURLに移行されています。 - [SCVMM 2012でISOファイルを共有から直接マウントできない問題について | System Center Blog](http://ebi.dyndns.biz/systemcenter/2012/09/28/scvmm-2012%E3%81%A7iso%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%85%B1%E6%9C%89%E3%81%8B%E3%82%89%E7%9B%B4%E6%8E%A5%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84/)

September 28, 2012 · 1 min · 胡田昌彦

Exchange Server 2010でADに存在しないユーザーに対してのメール送信をSMTPセッション中に拒否するように構成する方法

Exchange Server 関連の記事はExchange Server Blogにまとめて書くことにしました。よろしければあわせて御覧ください。 Exchange Serverでは過去のバージョンから最新のバージョンまで一貫して「存在しないユーザー宛てのメールでも一度受け入れる。その後、ユーザーが存在しなければNDRを生成し送信する」という動きになっています。ユーザーが存在しなければSMTPセッション中に「User Unknown」というような応答を返し、そもそもメールを受け入れない場合に比べるとExchange Serverのリソースを多く消費することになります。 もちろんこの挙動にも、どのアドレスでも受け入れることによって「存在するアドレスをspam業者に収集されない」という良い面がありますので、一概に悪いわけではありません。ただ、このあたりに関してもExchange Server 2010にはtarpit機能があり、連続してSMTP送信を行ってくるホストに対しては遅延させることができますし、セッション中に拒否したい…というシチュエーションも少なからずあるものと思います。 これをHUB上でどのようにできるのか、ということを調べてみました。以下手順です。 AntiSpam機能のインストール c d % s y s t e m d r i v e % / P r o g r a m F i l e s \ M i c r o s o f t \ E x c h a n g e S e r v e r \ V 1 4 \ S c r i p t s / i n s t a l l - A n t i s p a m A g e n t s . p s 1 R e s t a r t - S e r v i c e M S E x c h a n g e T r a n s p o r t ※必要な全サーバーで実行する ...

September 27, 2012 · 3 min · 胡田昌彦

Exchange Server 2010におけるメッセージサイズ制限について

Exchange Server 関連の記事はExchange Server Blogにまとめて書くことにしました。よろしければあわせて御覧ください。 Exchange Server 2010におけるメッセージサイズ制限について調べる機会があったので、結果をまとめてブログに書いておこうと思います。 結論 最初に結論を書いておきます。 - グローバル設定で送信制限サイズと受信制限サイズを指定できるが、異なる値にしても事実上意味が無く小さい方の値で制限される。 - 受信サイズ制限と送信サイズ制限を違う値にしたければグローバル設定では大きな方の値を設定しておき、ユーザー個別のサイズ制限設定を行う必要がある。 - Outlook(MAPI)を使用したExchange組織内部からExchange組織外部への送信時にはエンコード前のファイル自体のサイズで制限されるかされないかが決定される。 - SMTPクライアントを使用したExchange組織外部への送信および、SMTPでの組織外部からの受信メールに関してはエンコード後のサイズで制限されるかされないかが決定される。 このあたりの挙動はExchange Server 2010に限らず、以前のバージョンのExchangeでも同じはずですが、今回Exchange Server 2010 SP2にてきちんとまとめて確認しました。 Exchange組織内部から外部への送信時の動作 検証のために、制限値をすべて統一しておきます。 エンコード前には制限サイズ以下で、エンコードすると制限サイズを超えるサイズのファイルを準備します。 ※ここではメール用の転送エンコードとして一般的なBase64エンコードを想定しています。Base64エンコードではおおよそ33%ほどファイルサイズが大きくなります。 このファイルを添付して組織内部のユーザーと組織外部のユーザーとに向けて、組織内部のOutlookより送信します。 結果、きちんと組織内部のユーザーと組織外部のユーザーにメールが届きます。tracking logには以下のように記録されます。 TotalBytesの部分が注目の箇所です。内部宛てに関しては7154949となっており、エンコード前のサイズが記録されている事が分かります。添付ファイルのサイズよりも若干大きいですが、これはメールの本文やヘッダ等を含んだサイズに鳴っているためです。この値は送信、受信制限値内ですので、メールが届くのは自然な動きです。 違和感があるのは外部宛てのメッセージのTotalBytesの部分です。9774551となっており、エンコード済みのサイズになっていることが分かります。そしてこれは送信メッセージ制限を超えています。ですが、送信できちゃいます。納得いかない面もありますが、内部宛て、外部宛ての両方を宛先に入れたようなケースで、内部ユーザーには届いたけど、外部ユーザーには届かなかった……というようにするのもおかしな話なので、このような動きになっているのかなと思います。 Exchange組織外部から内部への送信時の動作 同様に、Exchange組織外部から内部への送信時の動作も見てみます。Outlook Expressから直接Exchange Server 2010のHUBに対してSMTPを送信し、テストしました。 Outlookをつかって内部から外部へ送信できた添付ファイルを添付して送信したところ、SMTPセッション中にサイズ制限で拒否されるという結果となりました。 内部から外部には送信できるのにその逆はだめっていうのは若干腑に落ちないですが、エンコード済みであるので…ということで筋は通っていますね。 ちなみに、Outlook ExpressはEHLOではなく、HELOを使って送信しており、事前にサイズチェック等していないので、添付ファイルも含めてメールを全て送り終わったあとでExchange Serverによりサイズチェックが行われ、サイズ超過が伝えられる…という流れでした。 この場合、受信サイズ制限により制限されていますので、挙動を見るために、送信サイズ制限はそのままで、受信サイズ制限のみ大きくし、追加でテストを行いました。 結果、SMTPセッションが正常に完了したあと、MBXに送信する段階で送信サイズ制限により送信できず、配信不能メッセージが生成される結果となりました。 この時、TotalBytesは一貫して9771052であるので、確かに送信サイズ制限にはひっかかります。内部に取り込んでるんだし、デコード後の実ファイルサイズでコントロールしてもいいんじゃないかという気もしますが、こういう実装なんでしょうね。結果的に、送信サイズ制限と受信サイズ制限の値を変える事でDSNの生成場所がかわりますが、「届かない」という事実には変化無いということが分かりました。 この挙動はコネクタおよびそこに付与する権限を変化させても行ってみましたが、全て同じ結果でした。 知っていれば何という事も無い話題ではありますが、知らないとかなり悩んでしまう挙動だと思います。皆さんもお気をつけ下さい。

September 25, 2012 · 1 min · 胡田昌彦

PowerShellでxmlファイルを読む方法

PowerShellでは非常に簡単にXMLファイルを読み込んで利用することができます。 XMLファイルのサンプルにはググると一番上に出てくる以下のものを使わせてもらいます。XML文書のサンプル - XMLの基本 - XML入門で紹介されているものです。 - www.webword.jp/xml/ini/sample1.xml [http://www.webword.jp/xml/ini/sample1.xml](http://www.webword.jp/xml/ini/sample1.xml) ソ h 楽 h フ t 天 t ト t 株 t バ p 式 p ン : 会 : ク / 社 / 株 / / 式 w w 会 w w 社 w w . . s r o a f k t u b t a e n n k . . c c o o . . j j p p / / i n f o / P o w e r S h e l l で x m l フ ァ イ ル を 読 み 込 む の は 以 下 の よ う に で き ま す 。 G e t - C o n t e n t で 読 み 込 み 、 [ x m l ] を 付 け る こ と で X m l D o c u m e n t に し ま す 。 - [xml]$venture = Get-Content -path C:\tmp\sample1.xml 結果、xmlのオブジェクトが出来上がります。 ...

September 18, 2012 · 1 min · 胡田昌彦

Server Coreからアプリケーションをアンインストールする方法

SCVMM 2012をSP1 CTP3からSP1 Betaに上げた上でSCVMMのエージェントを配布しようとしたら、「SCVMMのサーポートされていないバージョンがインストールされている!」ということで怒られてしまいました。 仕方がないので、アンインストールしようと思うのですが、Server Coreでインストールしてあります。Server Coreでアプリケーションのアンインストールはどのようにできるのかを調べました。残念ながらGet-InstalledApplication, Remove-InstalledApplicationなんていうようなコマンドレットは存在していないようです。 WmiObjectを使ったアンインストール 仕方がないので、WmiObjectを使ってアンインストールをします。「Get-WmiObject –Class Win32_Product」でインストールされているアプリケーションが取得できます。 Get-Memberを見てみると「Uninstall」メソッドがあることがわかります。 Uninstallメソッドを呼ぶとアンインストールができました。 1行でやるなら以下のような感じで。 Get-WmiObject -Class Win32_Product | Where-Object {$.Name -eq “Microsoft System Center Virtual Machine Manager Agent (x64)”} | ForEach-Object { $.Uninstall()} 参考 - [How can I uninstall an application using PowerShell? - Stack Overflow](http://stackoverflow.com/questions/113542/how-can-i-uninstall-an-application-using-powershell)

September 18, 2012 · 1 min · 胡田昌彦

承認済みドメインと組織内に存在できるメールドメインについて

Exchange Server 関連の記事はExchange Server Blogにまとめて書くことにしました。よろしければあわせて御覧ください。 Exchange Serverにおける承認済みドメインと組織内に存在できるメールドメインとの関係について質問を受けたので、まとめて書いてみようと思います。 Exchange Server 2007以降には「承認済みドメイン」という設定があり、ここでドメインを以下の三種類に区別して管理できます。 - 権限のあるドメイン - 内部の中継ドメイン - 外部の中継ドメイン 権限のあるドメイン 権限のあるドメインは簡単に言うと「このExchange組織でのみ管理しているメールドメイン」という感じです。ですので… - そのドメイン宛のメールは受け入れる - 宛先をActive Directoryフォレスト内から探す - 宛先が存在すればメールを配信する - **宛先が存在していなければNDRを生成する** という動作をします。特にNDRを生成するという点が重要です。Exchange組織が1つだけしかなくて、MXレコードもその組織をむいていて、連携するものも何も無い!って時にはこのモードでドメインを登録すればおしまいなので楽ですね。そうではない時には別のモードも必要になります。 内部の中継ドメイン 内部の中継ドメインは「このExchange組織内にもそのドメインのメールアドレスを持っている人もいるけど、このExchange組織以外にも同じメールドメインを使っているメールシステムがある」という時に使います。 - そのドメイン宛のメールは受け入れる - 宛先をActive Directoryフォレスト内から探す - 宛先が存在すればメールを配信する - **宛先が存在していなければ、外部に送信する** 要は、NDRを生成しないわけですね。そして、内部の中継ドメインを設定する場合には大抵専用のSMTPコネクタを作成して同じメールドメインを共有しているメールシステムに向けて送信する形になると思います。 ExchangeではNDRを生成しないわけなので、別のメールシステムできちんとNDRを生成してあげる必要があります。やってしまいがちなのは、メールドメインを共有している別システムでも同じような設定をしてしまい、どちらにも存在していないメールアドレスに関してメールがループしてしまう構成ミスですね。「どこでNDRを生成するのか」というのはきちんと抑えておく必要があります。 外部の中継ドメイン 外部の中継ドメインは「Exchange組織内ではこのメールドメインを持っているユーザーはいないけど、中継だけする」という時に設定します。 - そのドメイン宛のメールは受け入れる - 宛先をActive Directoryフォレスト内から**探さず**、そのまま外部に送信する いちいち中は見ないで、全部リレーするだけの設定です。 信頼済みドメインに設定していないドメインのメールアドレスを設定した場合 信頼済みドメインに設定していないドメインのメールアドレスでも、実はActive Directory内のユーザーに設定できちゃいます、その場合どのような挙動になるかというと、組織内部からの送信時にはそのユーザーに届いてしまいます。内部の中継ドメインでも、外部の中継ドメインでも、どこにもなにも書いてなくてもこの挙動です。 この挙動は私が確認する限りExchange Server 2000のころから一貫しています。 管理者がメールアドレスを設定している訳なので当たり前と言えば当たり前の気もしますが、まったく管理権限が無いドメインに関しても操作できてしまうのはちょっと気持ち悪い気もしますね。でも、まぁ、そうなっているのですから仕方がないです。この動きを前提に設計を行ってください。

September 18, 2012 · 1 min · 胡田昌彦

System Center 2012 SP1 Beta導入(SCVMM)

System Center関連記事は以下のブログに移行しました。 - [System Center Blog](http://ebi.dyndns.biz/systemcenter/) この記事は以下のURLに移行されています。 - [System Center 2012 SP1 Beta導入(SCVMM) | System Center Blog](http://ebi.dyndns.biz/systemcenter/2012/09/15/system-center-2012-sp1-beta%E5%B0%8E%E5%85%A5/)

September 15, 2012 · 1 min · 胡田昌彦

Windows Server 2012へのSQL Server 2012のインストール時に出るエラー(NetFx3)

Windows Server 2012 Hyper-V上にWindows Server 2012をGUIでインストールし、単純にSQL Server 2012の評価版をインストールしようとしたところ、以下のエラーに遭遇しました。 Windows機能(NetFx3)を有効にしているときにエラーが発生しました。エラーコード:-2146498298。Windows管理ツールからWindows機能(NetFx3)を有効にして、再度セットアップを実行してください。Windows機能を有効にする方法の詳細については、http://go.microsoft.com/fwlink/?linkid=227143を参照してください。 SQL Server 2012は.NET Framework 3.5を利用しているので、Windows Server 2012に機能追加しないといけません。 Windows Server 2012への.NET Framework 3.5への機能追加方法は以前紹介した通りです。 - [ペイロードが削除された役割、機能をインストールする際のsourceの指定方法(Windows Server 2012への.NET Framework 3.5のインストール) - WindowsServer管理者への道](https://windowsadmin.ebisuda.net/2012/07/10/%e3%83%9a%e3%82%a4%e3%83%ad%e3%83%bc%e3%83%89%e3%81%8c%e5%89%8a%e9%99%a4%e3%81%95%e3%82%8c%e3%81%9f%e5%bd%b9%e5%89%b2%e3%80%81%e6%a9%9f%e8%83%bd%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc-2/) PowerShellでやるならインストールDVDをマウントした状態で(以下の例ではDドライブにマウントしている)以下のコマンドで機能追加ができます。 I n s t a l l - W i n d o w s F e a t u r e N E T - F r a m e w o r k - F e a t u r e s - S o u r c e " D : \ \ s o u r c e s \ \ s x s " ...

September 13, 2012 · 1 min · 胡田昌彦

Windows Server 2012 Hyper-Vで任意のホスト間を移動(Live Migration)させるための委任設定

Windows Server 2012ではShared-Nothing Live Migration(何も共有していなくてもできる移行)ができるようになったのでちょっとしたサーバーの移動が非常に楽にできるようになりました。ですがちょっとやろうとするとすぐに詰まるのが以下のエラーです。 これは認証プロトコルとしてKerberosを選択しているにもかからず、きちんと委任できていない場合に発生します。 ※CredSSPを利用すると、ログオンしているホストから他への移動が実行できます。が…、いちいちログオンするのは面倒なのでやはりここはKerberosで任意のサーバーから任意のサーバーに自由に移動できるように構成したいところです。 このエラーを回避するには以下の技術情報にしたがってコンピューターアカウントに対して2つのサービスに関して委任を設定してあげればOKです。移行元コンピューターに移行先コンピュターのサービスを委任してあげる感じです…が、私は面倒なので、全部のHyper-Vホストに全部のHyper-Vホストのサービスを委任してしまってます。 - [クラスター化されていない仮想マシンでのライブ マイグレーションの構成と使用](http://technet.microsoft.com/ja-jp/library/jj134199.aspx) きちんと委任してあげれば以下のように移動することができます。

September 7, 2012 · 1 min · 胡田昌彦

WindowsクラスタとMSDTCについて

今回はWindowsのクラスタ(MSFC(2008以降)、MSCS(2003より前))とMSDTCの関係について調べてみました。 MSDTCとは MSDTCは複数サーバーにまたがった処理を行う際に、不整合が起きないように複数サーバーの調整役を行ってくれるものです。特にデータベースが複数存在するときに全体の処理がきちんと終わったことを確認してから実際にデータ更新を反映させるような際に使われます。以下@ITの記事がイメージがわきやすいと思います。 - [第8回 テーブルアダプタでトランザクション - @IT](http://www.atmarkit.co.jp/fdotnet/vblab/vsdbprog_08/vsdbprog_08_03.html) - [第8回 テーブルアダプタでトランザクション - @IT](http://www.atmarkit.co.jp/fdotnet/vblab/vsdbprog_08/vsdbprog_08_04.html) サーバー管理屋さん的には動作するアプリケーションでMSDTCを利用するのであればきちんとMSDTCを動作させておいてあげる…という感じになります。特にSQL Serverをクラスタ化するような際にはきちんと考慮が必要ですね。(もちろんMSDTCを使わない処理しか行わないのであれば必要ないです。) Windows Server 2003(MSCS) - [The Microsoft support policy for the Microsoft Distributed Transaction Coordinator on clustered nodes](http://support.microsoft.com/kb/912374/en-us) The MSDTC is a cluster-aware application. You can configure the MSDTC as a clustered resource on clustered nodes. Microsoft only supports running the MSDTC on cluster nodes as a clustered resource. Microsoft does not support the MSDTC in a stand-alone configuration on cluster nodes. 上記では「MSDTCはクラスタ化可能な(cluster-aware)アプリケーションであり、クラスタノード上で構成されたクラスタ化されていないMSDTCはサポートしない」と書かれています。 ...

September 6, 2012 · 2 min · 胡田昌彦

Windows Server 2012関連のダウンロードが開始されましたね。

Windows Server 2012関連のダウンロードが開始されましたね。さっそくダウンロードして導入し始めている方も多いと思います。(私はまだですが…) 評価版は以下からダウンロードできます。 - [Windows Server 2012 のダウンロード](http://technet.microsoft.com/ja-jp/evalcenter/hh670538.aspx) WIndows 7 SP1, Windows 2008 R2 SP1, Windwows 2008 SP2用のPowerShell v3(Windows Management Framework)のダウンロードも開始されています。 - [Download: WMF 3.0 - Microsoft Download Center - Download Details](http://www.microsoft.com/en-us/download/details.aspx?id=34595) Hyper-V Server 2012のダウンロードも開始されています。 - [Microsoft Hyper-V Server 2012 | Virtualization | VDI](http://www.microsoft.com/en-us/server-cloud/hyper-v-server/)

September 5, 2012 · 1 min · 胡田昌彦

Exchange Server 2010を複数サイトに展開するときに把握しておくべき挙動について

最近はメールシステムが大容量化、重要化したり、Exchange Serverがソフトレベルで標準でDR(Disaster Recovery = 災害対策)の仕組みを備えているなどの事情があり、DRサイトを構築する機会が増えてきました。また、やはり震災の影響も大きいですね、本格的にDRサイトを構築するのが当たり前の時代になってきたように思います。 Exchange Server 2003のころは標準でDRの仕組みを持たなかったり、Exchange Serverが存在するサイトのGCをOutlookが使いだしてしまうこともあってExchange Server専用のサイトを作成し、その中にExchangeとExchange用のGC(DC)を配置することが多かったのですが、ずいぶんと時代は変わったものです。 さて、Exchange Server 2010でDRサイトを構築するとなるとたいていの場合Exchange ServerをActive Directoryの複数サイトにまたがって構築することになります。そうするとシングルサイトで構成していたときにはあまり考えなくても良かった考慮点が色々と出てきます。 その中から今回は2点取り上げて記録しておきたいと思います。(最近質問されて調べたのでまとめておきます) サイトをまたいだCAS ArrayとDAGの接続について CASはMBXを配置するサイト内に必ず1つは必要です。またCAS Arrayはサイト内に1つしか作成できません。なので本番サイトとDRサイトにそれぞれ1つずつCAS Arrayが作成されるのはほぼ自動的に決まります。 一方、DAGに関しては、素直に設計するなら本番サイトとDRサイトにまたがって構築されることが多いだろうと思います。データもコピーしたいし、フェールオーバーしたいですし。 この時、Outlookの接続しているCASのサイトと、DAGのアクティブノードが別サイトになったときにどのような挙動になるでしょうか?DAGのみ問題が起きてフェールオーバーした場合やクライアントが意図せず別サイトにアクセスしているケース、本番サイトからDRサイトへの切り替え、切り戻しの際の一時的な状況等で発生する可能性がある状況です。 調べたところ以下の事が分かりました。Exchange 2010 SP2 RU3で挙動が変更になっています。 - Exchange 2010 SP2RU2及びそれ以前 CASは自分の存在するサイト、DAGのアクティブサーバーの存在するサイトを意識しません。 - クライアントはちゃんとアクセスできていれば、Autodiscoverの値が変わってても無視します。 - 結果、CASとMBXの間がサイトまたぎのアクセスになってもそのままつながります。(つながっちゃいますの方が表現として正確かもしれません。) - Exchange 2010 SP2RU3以降 DAGのプロパティーのAllowCrossSiteRPCClientAccessが使えるようになります。規定の値は$falseです。 - AllowCrossSiteRPCClientAccessが$trueの場合(あえて設定変更した場合)以前のバージョンと同じ動きになります。 - AllowCrossSiteRPCClientAccessが$falseの場合、CASは違うサイトのMBXへのアクセスに関してはクライアントに「サイト間違ってるよ。正しいCASArrayはあっち」と教えます。 - クライアントは教えられたらきちんとプロファイルを更新します。 このことやこの周辺のことは以下のブログで解説されています。 RPC Client Access Cross-Site Connectivity Changes - Exchange Team Blog - Site Home - TechNet Blogs サイトをまたいだOWAのアクセスについて OWAとMBXの関係についても同様に考慮が必要です。OWAの場合にはユーザーがサイトをまたいでメールボックスを移動したとき等に一番効率的なOWAを伝える必要等も発生するのでその点からも確認が必要です。 ...

September 3, 2012 · 1 min · 胡田昌彦

動画で知識を取り入れる

最近、IT系の知識、特に最新の情報の導入の部分に関して動画で解説をし、それを公開しているようなものが多くなりました。…と、私が最近気が付いてみるようになっただけで前からずっとあるのかもしれませんが…。これは中々いいなぁと思ったものを紹介しますね。 Windows Server 2012 USTREAM:MSKK Windows Server 2012 Channel:録画ビデオ、1 / 2 - 過去のライブ配信 第 1 回 Windows Server 2012 Community Day - 資料ダウンロード | TechNet 第 2 回 Windows Server 2012 Community Day - 資料ダウンロード | TechNet 仮想化 ムービー一覧 - 仮想化の落とし穴と脱出法 - 仮想化ソリューション スペシャルサイト - ユニアデックス Microsoft全般 Channel 9: Videos about the people building Microsoft Products & Services 特に、Channel9は全部英語なので、今の私には英語的にも内容的にもかなりいい感じで、一石二鳥って感じです。 セミナー等はそれなりに参加していた時期もあったのですが、事前に内容がわからないので期待外れのものばかりだったりしましたが、オンラインだと移動時間もかからないし、内容がマッチしなければすぐに止められるし、理解できなかったりしたら戻せるし、運が良ければ時間効率がすごくいいのではと思います。無料で公開されるオンラインセミナーばっかりになればいいのになーと思います。

August 31, 2012 · 1 min · 胡田昌彦

ファイルサーバーのデザインについてのあれこれ

ファイルサーバーのデザインについて質問を受けて、色々要素があって一応説明したけれどもあまり伝わらなかった気がするのでブログに書いておいてみます。 注意というか前提 何に関してもそうなのですが「どうするのがベストなのか?」という問いにはたいていの場合答えはありません。「いや、ベストってのはなかなかないよね。お客さんの使い方にあわせてベターな選択肢がいくつかあるという話であって、例外が無いなんていうことはあり得ないし…ごにょごにょ……」というのが本音であり、紳士的な回答だと思います。 #だいたい、何かにおいて「こたえはこれです!こうしておけば間違いない!」なんてのは騙そうとしているか、その人自身盲目になっちゃってるかですよね。 #怪しい宗教とか怪しいビジネスとか疑似科学なら断言するでしょうけどね! とはいえ、技術要素を抑えた上で「こうすればこうなる。一方こうすればこうなる。こういう前提ならこの選択肢がいいんじゃない?」ということは言えるし、お客さんの前では「お客様の環境や使い方を考慮すると、私としてはこのようなデザインと進め方をお勧めします。」ということはやっぱりプロとして言わなくちゃいけないですよね。それをするためには技術的なことを抑えた上でお客さんの希望や使い方を良く聞いて、自分の頭で考えてアイデアを出さなくちゃいけないです。 特にファイルサーバーのデザインや運用に関してははっきりいって「うまくいってる!」「こうすれば成功確実!」というようなものは聞いたことがありません。ファイルサーバーの権限管理は破綻し、ゴミファイルが散乱し、慢性的に容量不足で、組織変更の度にアクセス権設定とフォルダ構成変更とで多大な工数が必要となり…となってしまっている環境も多数あると思います。 そういう分野であるという認識の元、以下を読んでもらえればと思います。 抑えておくべき技術的な事 まず抑えておくべきは以下の事項です。 - [アクセス権の理解(NTFSアクセス権と共有アクセス権) - WindowsServer管理者への道](https://windowsadmin.ebisuda.net/2009/04/15/%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e6%a8%a9%e3%81%ae%e7%90%86%e8%a7%a3ntfs%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e6%a8%a9%e3%81%a8%e5%85%b1%e6%9c%89%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e6%a8%a9/) - [コピー&ペーストとカット&ペーストではNTFSアクセス権が異なる - WindowsServer管理者への道](https://windowsadmin.ebisuda.net/2008/10/30/%e3%82%b3%e3%83%94%e3%83%bc%e3%83%9a%e3%83%bc%e3%82%b9%e3%83%88%e3%81%a8%e3%82%ab%e3%83%83%e3%83%88%e3%83%9a%e3%83%bc%e3%82%b9%e3%83%88%e3%81%a7%e3%81%afntfs%e3%82%a2%e3%82%af%e3%82%bb/) アクセス権の設定個所は「NTFSアクセス権」「共有のアクセス権」の2つがあるので(Windows Server 2012ではさらにもう1つ増えましたがここでは触れない事にします。すぐに使われそうも無いので。)どちらかあるいは両方のパターンについてきちんと検討が必要です。 NTFSアクセス権を使ってアクセス権をコントロールすることに決めた場合にはそのファイルをコピー、移動した時のアクセス権の動きに付いても考慮が必要です。 その他にも知っておいた方がよい事柄を紹介します。 NTFSのアクセス権を維持したままファイルをコピーする方法はある - NTFSのアクセス権はxcopy, robocopy等のコマンドでオプションを適切につければ、コピーであってもアクセス権を維持することができる。 これについてはヘルプを見てもらえば一発で分かるかと思います。xcopyなら/oオプション、robocopyなら/SECオプションあたりで実現できます。 フォルダがネストしていて、別階層が共有されている場合ユーザーが混乱するかもしれない - 共有フォルダの作成方法によっては「同一のファイルに複数のUNCパスが存在する」という状況が起きる。しかもその際に共有のアクセス権の設定方法によっては「ある人は複数のUNCパスで同一のファイルを開けるのに、別の人はこちらのパスでは開けるけれども、別のパスでは開けない」ということが起きる。 これについてはちょっと補足説明があった方がいいでしょうか。例えば以下のパスがあるとします。 - D:¥Share →Shareとして共有(¥¥Server¥Share, 管理者のみフルコントロール) - D:¥Share¥Share2 →Share2として共有(¥¥Server¥Share2, Everyoneフルコントロール) さてここでD:¥Share¥Share2¥folder¥file1.txtというファイルがあったとします。このファイルは1の共有からたどると 「¥¥Server¥Share¥Share2¥folder¥file1.txt」というUNCパスになります。一方2の共有からだと 「¥¥Server¥Share2¥folder¥file1.txt」というUNCパスになります。 管理者であればどちらのUNCパスからでも同じファイルにアクセスする事ができます。一方管理者以外の人は1の共有からのパスにはアクセスできません(共有のアクセス権を持たないので)。しかし、2の共有からのパスにはアクセスする事ができます。 エンドユーザーがこの事を理解して「あの人はこの共有にはアクセス権を持たないからこっちの共有からのUNCパスを伝えてあげないとな」と、気を利かせてくれたりする……ということはかなり難しいと思いますし、それを期待してはいけないと思います。 また、この場合でも、NTFSのアクセス権のみで制御し、共有のアクセス権はだれでも何でもできるような権限設定の場合にはアクセス自体には何も問題が発生しない事になります。ユーザーさんはちょっと混乱するかもしれませんけどね……。 組織毎にフォルダ作成、権限設定をすると組織変更時に泣きたくなる 決行スタンダードなファイルサーバーの設計として、「組織毎に管理する」というのはあると思います。組織毎にセキュリティグループがあり、ファイルサーバーにも組織毎のフォルダがあり、その組織に所属する人はその中にアクセスできる(つまり、組織のフォルダに組織のセキュリティグループでのアクセス権が設定してある。共有アクセス権か、NTFSアクセス権かはここでは問わない)。 一見なんの問題もなさそうな、スタンダードな設計に思えますが以下の場合には悲惨な事になります。 - 組織が頻繁に変わる 組織変更の度にファイルサーバーの中のファイルやフォルダを移動して回らないといけなくなります。1つの組織が2つに分割したら?どのフォルダ、ファイルがどちらの組織に所属すべきなのかを全部担当者に聞いて回らないといけない事になります…。 - 別の部署と共有したいファイルが出てくる 別の部署と共有したいばあい共有用に別の場所をつくってそこに移動してもらうか、その特定のファイル、フォルダだけアクセス権を変更してしまうか…というようなイレギュラーな対応をする必要が出てくると思います。別の場所に移動するとその場所のアクセス権の設定はどうしても緩くなり、そうするとそこの使い勝手がいい物だからみんなそこにファイルを作るようになり…と当初の構成が無意味になってしまう事が良くあります。 かといって特定のファイル、フォルダだけアクセス権を変更すると、都度管理者が特別対応をしなくてはいけないので管理者の負荷が上がる上に、出来上がった特別ファイル、フォルダは次の部署移動の際にどう扱っていいのか分からない事に……。 ユーザーにフルコントロールを与えてしまうとデザインを維持できない ユーザーが自分で好き勝手できるようにフルコントロールを与えてしまうケースがあります。そうするとそのユーザーはそのフォルダ以下すべて完全に好き勝手できちゃいます。アクセス権も変更できてしまうので、ある程度の枠組みを決めてあったとしても事実上破綻します。もちろんそのフォルダ以下は完全に権限移譲するのと引き換えに管理責任もきちんと引き取ってもらえるのならいいのかもしれません。…が、部署毎のフォルダ構造があるなかに勝手に別部署用のフォルダを作られたりなどもできちゃうのでやはりフルコントロールは危ないと思います。 アクセス権はグループでつけておき、ユーザーはグループへの追加、削除で権限管理するのが大抵うまくいく これはかなり常識的な感じですが、アクセス権のエントリに個人名を出してしまうのは良くない方法だと思います。 - 個人で付与すると、アクセス権を追加、削除したいときにすべての場所に個別に設定を行う必要が出てくる。 - 個人にしておくと、その個人アカウントを削除したときにアクセス権のゴミが残ってしまう。(生SIDが見えちゃうやつですね。) - 「XXさんの後任なので同じ権限で」と言われても、くまなく見て回って個別にアクセス権をつけるしか無くなってしまう。 このようになってしまうので、まず、グループを作成し、グループで権限をつけ、そのグループメンバの追加削除でアクセス権のコントロールをするとうまくいきます。 ...

August 30, 2012 · 1 min · 胡田昌彦

XenAppのWeb InterfaceとReceiver Storefrontの関係について

最近会社でXenApp6.5に対してのトレーニングの要望があったので、今まで触った事は一度も無かったのですが、ここ1週間程度集中的に勉強して(ますがなかなか時間が取れないで)います。触り始めてまずすぐに混乱したのがWeb InterfaceとReceiver Storefrontの関係についてです。おおよそ理解できたと思うのでまとめてみます。 混乱した原因 まず参考にしたドキュメントは以下のstep by stepです。 - [Citrix XenApp 6.5 for Windows 2008 R2 インストール Step by Step ガイド](http://www.citrix.co.jp/products/pdf/XenApp65_Step_by_Step_Guide_rev.pdf) 上記ドキュメントには以下のように「Web Interfaceが共通の役割であり必須」のように書いてあります。 一方実際にmyCitrixからXenApp6.5の評価版をダウンロードしてインストーラーを起動すると… このように「Receiver Storefrontが共通の役割であり必須」のように見えます。 Citrixは同一バージョンの製品であってもインストーラーのバイナリを変更するようなことをしているんでしょうか?私の感覚からすふとちょっと信じられないですが……。 今まではWeb Interface。これからはReceiver Storefrontになって行く。 調べたところ以下の記事が内容も新しく、参考になりました。 WebInterface vs Receiver Storefront (CloudGateway) | archy.net詳細は記事を読んで頂ければと思うのですが、以下のような状況であると理解しました。 - 今まではWebInterfaceが必須コンポーネントだった - citrixはReceiver Storefrontを今後主流にして行きたい - まだWebInterfaceでなければできないことも多い - 既存のXenAppユーザーは今後乗り換えタイミングをいつにするか検討する必要がある。が、当面はWebInterfaceを使い続けられる。 実際に両方構築してみましたが、ちょっと基本的な機能をつかうだけならどちらでもいいね。という印象でした。同じサーバーに両方インストールするとWebInterfaceが動かなくなるので以下の情報を元に手動で設定変更する必要があるようです。 CTX132294 - How to Install Receiver Storefront on a Server with Web Interface - Citrix Knowledge Center

August 28, 2012 · 1 min · 胡田昌彦