497日の壁

先日、勉強会に行ったのですがその際に仕入れたネタを備忘録として記載しておきます。

その元ネタはこちら

 

All the TCP/IP ports that are in a TIME_WAIT status are not closed after 497 days from system startup in Windows Vista, in Windows 7, in Windows Server 2008 and in Windows Server 2008 R2
http://support.microsoft.com/kb/2553549/en-us

 

どうやら、Vista以降のTCP/IPスタックは新規に作られたものですが、その不具合らしい。

具体的には連続起動しているサーバーなどは497日目に突入すると新しいTCP/IPセッションが作れないということになり、通信が途絶してしまうようです。

データセンターなどで動かしているサーバーは連続起動が当たり前なので、このような現象が発生しているようです。

 

勉強会ではデータセンターなどを使用している人が多数いたのでそのようなことを話していました。

いや~、知らなかった・・・

Windows Server バックアップ に関して~その7~

今回はネットワーク経由のベアメタル回復の手順をステップバイステップ形式で載せておきます。

まず、ネットワーク共有に対してベアメタル回復ができるようにバックアップを取ります。

wbadmin get versions

wbadmin 1.0 – バックアップ コマンド ライン ツール
(C) Copyright 2004 Microsoft Corp.

バックアップ時間: 2012/02/24 10:21
バックアップ場所: ネットワーク共有 ラベル付き \dcBackup
バージョン識別子: 02/24/2012-01:21
回復可能: ボリューム, ファイル, アプリケーション, ベア メタル回復, システム状態

webadmin get versions コマンドを使用して確認します。回復可能の領域に、ベアメタル回復があるはずです。これがないとベアメタル回復ができません。

続きを読む

Windows Server 2008 R2 導入後に行うべき設定~Network編

Windows Server 2008 R2 導入後に行うべき設定 も参考にしていただければ幸いです。

今回はネットワーク編としてやっておいた方がいい設定を記載します。

■SNPの無効化

■DNS動的更新のチェックOFF(複数セグメント)

SNPの無効化に関して

これは以前から話題になっていましたが、改めて復習します。

SNPとは「Scalable Networking Pack」のことで、TCP に関するネットワーク処理を、NIC およびドライバを利用して最適化するためのテクノロジー及びその実装の総称になります。当然のことながらSNPに対応したNICおよびドライバが必要となります。

またPackという単語からもわかるとおり、ネットワークの様々な機能を包括しています。具体的には次に紹介する3つの機能を指します。

1. Receive Side Scaling (RSS)

マルチCPUおよびマルチコアCPUを利用している場合、TCP の受信処理を複数のコアに分散するテクノロジーになります。そもそも、RSSが機能していない状態(通常のネットワーク通信)では、たとえマルチCPUであっても、TCPの受信処理は単一のコアで行われるので、特定のコアのみに処理が集中されるという課題がありました。

A. 対応NIC例

Intel製NIC

Broadcom製NIC

Realtek製NIC

2. TCP Chimney Offload

TCPに関するネットワーク処理をNICで行うことにより、コンピューターのCPUの負荷を軽減するテクノロジーになります。TCPチェックサムの確認と送信データのセグメンテーションについては、以前からTCP の連続的な状態を管理しない簡易的な機能として「TCP Task Offload」や「Large Send Offload」がありました。

3. Network Direct Memory Access (NetDMA)

ネットワークの受信データをネットワーク アダプターの受信バッファーからアプリケーションのバッファーへコピーする作業をCPU によって行うのではなく、チップセットを含むシステム全体が連携し、Direct Memory Access機能により行うためのテクノロジーになります。

要件

  1. BIOSで有効であること。
  2. Intel I/O Acceleration Technology (I/OAT)をサポートしていること。具体的にはIntel 5000 シリーズチップセットなど(サーバー用)が該当するようです。
  3. NetDMAと一緒にTCP Chimney Offloadを使用することはできない。ハードウェアサポートおよび設定が両方とも有効になっていた場合はTCP Chimney Offloadが優先される。

そもそも論として、これらの技術が対象としているのは10Gbitネットワークで、1Gbitネットワークなどではあまり(ほとんど?)恩恵を受けられません。更に、これらがWindows Server 2008 R2ではデフォルトで有効になっていますが、不意なリセットの送出や、パケットレベルでの動作に起因して、パフォーマンスが逆に低下するなどの現象が発生しているようです。要するにまだ成熟されていない状態です。よって、明確に使用する意図がないのであれば、SNPは無効化する方が良いということになります。

 

確認方法

コマンドプロンプトにて次のコマンドを実行

netsh int tcp show global

アクティブ状態を照会しています...

TCP グローバル パラメーター

----------------------------------------------

Receive-Side Scaling 状態              : enabled

Chimney オフロード状態                 : automatic

NetDMA 状態                            : enabled

Direct Cache Acess (DCA)               : disabled

受信ウィンドウ自動チューニング レベル  : normal

アドオン輻輳制御プロバイダー           : none

ECN 機能                               : disabled

RFC 1323 タイムスタンプ                : disabled

** 上の autotuninglevel 設定は、少なくとも 1 つのプロファイルのローカルポリシー構成を
上書きするウィンドウ スケーリング ヒューリスティックの結果です
TCP Chimney Offload の automatic mode が有効になる要件は次の通り
  1. 10 GbE
  2. Round trip time (RTT) が 20 ミリ秒以下
  3. 該当の接続にて 130 KB 以上の通信が発生

TCP Chimney Offload がサポートされているかを確認するコマンド

netsh int tcp show chimneystats

Idx  Supp  Atmpt    TMax    PMax     Olc              FailureReason
---  ----  -----    ----    ----     ---              ------------
 10   いいえ  -n/a-       0       0       0                       -n/a-

  Idx           - システムで使用されるインターフェイス (NIC) インデックス
  Supp          - インターフェイス (NIC) は TCP Chimney オフロードをサポート
  Atmpt         - システムが TCP 接続オフロードを試行
  TMax          - NIC によってアドバタイズされたオフロード容量
  PMax          - システムで観察されたオフロード容量
  Olc           - 現在オフロードされている接続の数
  FailureReason - 前回接続のオフロードの試行に失敗した原因

 詳細については、'netsh int tcp show chimneystats (Idx) ' を使用してください。

NetDMA機能のTCP/IP統計情報を確認するコマンド

netsh int tcp show netdmastats

TCP DMA 統計
---------------------------------------------------------
NetDMA を使用してコピーした合計バイト数    : 0
CPU を使用してコピーした合計バイト数       : 68206265
NetDMA コピーの合計エラー数               : 0</pre>

SNP無効化方法

Receive-Side Scaling(RSS)の無効化

netsh int tcp set global rss=disabled

TCP Chimney Offload の無効化

netsh int tcp set global chimney=disabled

Network Direct Memory Access(NetDMA)の無効化

netsh int tcp set global netdma=disabled

実はWindows7も同じ設定なので、同様にSNP無効化をした方がいいかもしれません。

DNS動的更新のチェックOFFに関して

DNSへ登録設定

デフォルトでネットワークのTCP/IP設定は

この接続のアドレスをDNSに登録する

にチェックが入っています。これは全てのNICに割り当てられたアドレスがDNSに登録されることになります。例えば、マルチセグメントのコンピューターの場合複数NICが存在しますが、DNSに登録してほしくないアドレスまで登録されることになります。よって、DNSに登録してほしくないアドレスが割り当てられているNICに対しては、明示的にこのチェックをはずす必要があります。

Msdia80.dllファイルは何者?

こんな記事を発見しました(備忘録として載せておきます)。

ドライブルートのMsdia80.dllファイルは削除してもよいのですか?

実は私の自宅環境にもあったような・・・・

でも気にしない~で終わっていました(エンジニアとしてどうなのかはわかりませんが)

どうやら、原因は x64(またはIA64)版のWindowsに「Visual C++ 2005 再頒布可能パッケージ」 をインストールする際に発生する既知の問題のようです。

以下抜粋

「Msdia80.dll」は本来、「%Program Files%¥Common Files¥Microsoft Shared¥VC」フォルダーにインストールされるべきですが、x64(またはia64)版のWindowsの場合、誤ってドライブルートにインストールされてしまいます。共有DLLとしてレジストリにも登録されているので、安易に削除はしないようにしてください。

Windowsの自動更新(Microsoft Update)を適切に実施していれば、2009年7月に公開された以下のセキュリティ更新プログラム(MS09-035/KB973923/KB973544)が適用されたことで、すでに修正されているはずですが、問題が解決されない場合もあるようです。

ここまで

なるほど~、要するにバグだったのね。

この記事では問題が解決されない場合に対する対処方法も載っていました(さすがです)。

Windows Server 2008 R2 導入後に行うべき設定

導入後に行う設定

Windows Server 2008 R2 を導入して運用している方は多いと思いますがが、意外と忘れがちな設定を列挙しておきます。(これ以外にもあるかもしれませんが、とりあえず備忘録として記述しておきます)

  • ウイルスソフト導入後の除外設定
  • 信頼性モニターの設定
  • GPOのセントラルストアの設定
  • Active Directory Recycle Bin
  • Sysvol レプリケーション
  • DNSの清掃とエージング
  • バックアップソフトのインストールとスケジュール設定

ウイルスソフト導入後の除外設定

ウイルススキャンの除外設定に関して

こちらを参考に行うことができます。

信頼性モニターの設定

Windows Server 2008 では信頼性モニターがデフォルトの状態は有効でした。これはトラブルシューティングの際にかなり役に立つツールになります。しかしながら、R2ではデフォルトの状態では無効になっています。よって、いざトラブルが発生して信頼性モニターを起動しても使えないのです。

そこでWindows Server 2008 R2 の信頼性モニターを有効にするには次の通り。

レジストリ

HKLMSOFTWAREMicrosoftReliability AnalysisWMI
WMIEnabile⇒1

タスクスケジューラー

MicrosoftWindowsRACの「RacTask」を編集する

トリガーの「指定日時」を編集

設定
1回 および開始時刻の設定

詳細設定
「遅延時間を指定する(ランダム)」にチェック(例:15分間)
「繰り返し間隔」にチェック(例:1時間)
「継続時間」(例:無制限)
「有効」にチェック

以上の設定を行うと、信頼性モニターの記録が開始される

GPOのセントラルストアの設定

GPOの管理用テンプレートは、デフォルトの状態ではローカルから取得されています。やはり、これはセントラルストアからの取得に変更するべきでしょう。

グループポリシーのアーキテクチャ~その1~

こちらを参考に行うことができます。

Active Directory Recycle Bin

R2の新機能であるADのごみ箱機能です。デフォルトでは有効になっていません。よって、有効にしましょう。しかし、前提としてフォレスト機能レベルを「2008 R2」にする必要があります。

Active Directory Recycle Binに関して~その1

こちらを参考に行うことができます。

Sysvolレプリケーション

Sysvolレプリケーションは導入時のドメイン機能レベルが Windows Server 2008 の場合はDFSRが使用されますが、それ以外の場合はFRSが使用されます。よって、既存環境のバージョンアップなどでは最初は機能レベルがWindows Server 2003 などで、その後Windows Server 2008 にすることがあると思います。そのような場合は、SysvolレプリケーションをDFSRに変更することができます。

SYSVOL レプリケーション移行ガイド: FRS から DFS レプリケーション

DNSの清掃とエージング

意外と忘れがちな、DNSレコードのお掃除設定です。

DNS に対してエージングと清掃を有効にする

こちらを参考に行うことができます。

バックアップソフトのインストールとスケジュール設定

デフォルトではバックアップソフトはインストールされていません。Windows Server バックアップを使用するなら、機能よりインストールしましょう。そして、スケジュール設定を行い定期的にバックアップを行う設定にしましょう。

他にもいろいろあると思いますが、意外と忘れがちな項目を列挙しておきました。

Windows Server 2008 R2 導入後に行うべき設定~Network編

も参考にしていただければ幸いです。

ウイルススキャンの除外設定に関して

サーバーには通常ウイルススキャンを導入すると思われます。しかし、入れただけで特段設定を行うのはスケジュールくらいかなという人は多いのではないでしょうか?

特に支障がないようならそのままにしておきますよね~

実は、マイクロソフトからウイルススキャン除外設定の指針が出ているのを気が付きましたので備忘録として載せておきます。

現在サポートされているバージョンの Windows を実行しているエンタープライズ コンピューターでウイルス スキャンを行う場合の推奨事項

この中に、

次の場所にある FRS プレインストール フォルダーのファイルのスキャンを無効にします。
Replica_rootDO_NOT_REMOVE_NtFrs_PreInstall_Directory

とありますが、「Replica_root」とはSysvol共有になります。ですのでドメインが仮に「nwtraders.local」だった場合のフルパスは

C:WindowsSYSVOLsysvolnwtraders.local

になります。

DO_NOT_REMOVE_NtFrs_PreInstall_Directory

は通常は見えません。ツールのフォルダオプションより表示タブを開いていただいて、「□保護されたオペレーティングシステムファイルを表示しない」にチェックを入れると見えます。

Hyper-Vの場合

Hyper-V をインストールした Windows Server 2008 ベースのコンピューターまたは Microsoft Hyper-V Server 2008 ベースのコンピューターで仮想マシンを作成または起動すると、エラー コード “0x800704C8″、”0x80070037″、または “0x800703E3” が表示されることがある

こちらを参考に行うことができます。ここに書かれている設定は必ず行っていただきたいですね!これをしないと悲しい出来事が発生することがあります。たとえば、作成した仮想マシンが消えるとか・・・

クラスター環境の場合

WSFC: クラスタ環境でのウィルス スキャンの除外設定について

・ノードおよびディスクマジョリティの環境の場合
========================================
– 各ノードの C:WindowsCluster フォルダー
– 監視ディスクの Cluster フォルダー

・ノードおよびファイル共有マジョリティの環境の場合
========================================
– 各ノードの C:WindowsCluster フォルダー
– 監視用ファイル共有の共有フォルダー

・ノードマジョリティの環境の場合
========================================
– 各ノードの C:WindowsCluster フォルダー

・マジョリティなし ディスクのみの環境の場合
========================================
– Quorum ディスクの Cluster フォルダー

RHSがデフォルトで2つある理由

リソース管理の仕組み

Windows Server 2008 R2 の クラスターにおけるリソース管理の仕組みとしては、上記のようになります。Windows Server 2008 以降に関してはリソース管理の判断において使用していたプログラムの名称が変わって「リソースコントロールマネージャ」となり、ステータスの死活管理においても「リソースホストサブシステム」となりました。

この「リソースホストサブシステム」のファイル名が「rhs.exe」となります。

クラスターの特長として、ノード端末の停止だけではなく、アプリケーションの障害においても冗長性を確保することがあげられます。このアプリケーションの障害における対応を行うのがリソース管理になります。

クラスター対応アプリケーションには、ほとんどの場合MSFC用のリソースDLLが提供されています。このリソースDLLはアプリケーションに対して適切な監視を行うためのプログラムになります。監視手法として「Looks Alive」(5秒)と「IsAlive」(1分)があり、何か障害が起こるとリソースホストサブシステムがリソースコントロールマネージャに情報を渡し、再起動やフェールオーバーするなどの判断を行います。

ここで着目したいのはリソースホストサブシステムになります。

続きを読む

ドメインにログオンできないときの対処方法に関して

ドメインにログオンできないというトラブルはよく起こりますが、システム的な原因として次の2つが考えられます。

  • DNSの名前解決によるもの
  • セキュアチャネルの破損によるもの

他にもさまざまな原因がありますが、今回はこの2つに着目して考えてみます。

 

DNSの名前解決によるもの

そもそも、クライアント(ここでいうクライアントはメンバーサーバーも含みます)はどのようにドメインにログオンしているのか?

ログオンプロセス

  1. クライアントはドメインにログオンする際、DNSにドメインコントローラー(DC)は誰なのかを問い合わせます。
  2. その後、そのDCのアドレスを再度問い合わせて、DCにログオン要求を投げます。
  3. DCは認証プロセスを行い、GCに対してユーザーのユニバーサルグループメンバーシップ情報を要求します。
  4. 無事、認証プロセスが終了したのちドメインへのログオンが完了します。

続きを読む

CPUのリソースコントロール に関して

Hyper-Vの設定にはCPUに関するものがあります。

そこでCPUのリソースコントロールに関して備忘録としてまとめておきます。

■仮想マシンの予約

仮想マシンが確保するプロセッサの割合を0から100%で予約できる。例えば、100%にセットした場合、100%(全システムリソースに対する割合としては50%)を消費することになる。ただし、予約されたリソースは、使用時のみ確保される。また、既定の0の場合は、CPUの負荷に合わせてシステムリソースは可変する。CPUが割り当てられないわけではない。

■仮想マシンの限度

仮想マシンが使用するプロセッサの割合を上限値で設定する。例えば、仮想マシンBの限度を40%にセットした場合、プロセッサにいくらアイドルタイムがあっても、仮想マシンBが、40%(全システムリソースに対する割合としては20%)以上を使用することはない。

■相対的な重み

プロセッサが飽和状態の場合、仮想マシン間でのプロセッサの使用率の割合を決定する。相対的な重みは、1から10000までの値が指定できる。既定の仮想マシンの相対的な重みは100である。例えば、仮想マシンAの重みを200、仮想マシンBの重みを300、仮想マシンCの重みを500にすると、仮想マシンA・B・Cは2:3:5の比率でプロセッサを占有する。

ただし、仮想マシンA・B・Cに100・100・800と設定した場合、1:1:8にはならない。これは1つの仮想マシンが使用できる全システムリソース対する割合は50%に制限されるためである。100・100・800と設定した場合は25%・25%・50%の割合でプロセッサを占有する。

続きを読む