2019年2月27日水曜日

【PowerShell】Windowsの役割・機能を追加する

Windows Server構築時の序盤に必ず発生する作業として、サーバーマネージャーから「役割と機能の追加」がある。この作業はGUI操作となり、何回もウィザードの画面を遷移させる必要があるので地味に面倒くさい・・・。


ということでPowerShellで実施できるよう、コマンドを確認してみた。

Get-WindowsFeatureコマンドレットで「役割と機能の追加」の一覧を確認する

インストールを実施する前に、選択可能な役割と機能をGet-WindowsFeatureコマンドレットで確認しておこう。ここで、インストールしたいもののNameの値を確認しておき、後ほどインストール時に指定する必要がある。
PS C:\> Get-WindowsFeature

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[ ] Active Directory Federation Services                ADFS-Federation                Available
[ ] Active Directory Rights Management サービス         ADRMS                          Available
    [ ] Active Directory Rights Management サーバー     ADRMS-Server                   Available
    [ ] ID フェデレーション サポート                    ADRMS-Identity                 Available

~(中略)~

[ ] マルチパス I/O                                      Multipath-IO                   Installed

~(以下略)~
今回は「マルチパス I/O (Multipath-IO)」をインストールしてみる。

Install-WindowsFeatureコマンドレットで「役割と機能の追加」を実施する

役割と機能のインストールは、Install-WindowsFeatureコマンドレットを使うことで実現できる。インストールする対象に応じて、以下2つのオプション付与も考慮しよう。
  • IncludeAllSubFeature : 下の階層の役割と機能をすべてインストールする
  • IncludeManagementTools : 管理ツールを合わせてインストールする。基本的に管理ツールは必須となる場合が多いので、このオプションは必ず付与しておけばよいと思われる
それではインストールをしてみよう。まず、PowerShellを「管理者として実行する」を選んで開く。


Install-WindowsFeatureコマンドレットでインストールを実行する。マルチパス I/Oの場合は、インストール後に再起動が必要な旨の警告が表示される。
PS C:\> Install-WindowsFeature -Name Multipath-IO -IncludeManagementTools

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    Yes            SuccessRest... {マルチパス I/O}
警告: インストール処理を完了するには、このサーバーを再起動する必要があります。
警告に従い、OSを一度再起動する。
PS C:\> shutdown /r /t 0
再起動すると、「マルチパス I/O」の機能が「Installed」の状態で表示されるようになった。
PS C:\> Get-WindowsFeature | Where-Object {$_.InstallState -eq "Installed"}

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] ファイル サービスと記憶域サービス                   FileAndStorage-Services        Installed
    [X] 記憶域サービス                                  Storage-Services               Installed
[X] .NET Framework 4.6 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.6                              NET-Framework-45-Core          Installed
    [X] WCF サービス                                    NET-WCF-Services45             Installed
        [X] TCP ポート共有                              NET-WCF-TCP-PortShar...        Installed
[X] SMB 1.0/CIFS ファイル共有のサポート                 FS-SMB1                        Installed
[X] Windows Defender の機能                             Windows-Defender-Fea...        Installed
    [X] Windows Defender                                Windows-Defender               Installed
    [X] Windows Defender の GUI                         Windows-Defender-Gui           Installed
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 5.1                          PowerShell                     Installed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
[X] WoW64 サポート                                      WoW64-Support                  Installed
[X] グループ ポリシーの管理                             GPMC                           Installed
[X] マルチパス I/O                                      Multipath-IO                   Installed
[X] リモート サーバー管理ツール                         RSAT                           Installed
    [X] 役割管理ツール                                  RSAT-Role-Tools                Installed
        [X] AD DS および AD LDS ツール                  RSAT-AD-Tools                  Installed
            [X] AD DS ツール                            RSAT-ADDS                      Installed
                [X] Active Directory 管理センター       RSAT-AD-AdminCenter            Installed
                [X] AD DS スナップインおよびコマンド... RSAT-ADDS-Tools                Installed
            [X] AD LDS スナップインおよびコマンドラ...  RSAT-ADLDS                     Installed
            [X] Windows PowerShell の Active Directo... RSAT-AD-PowerShell             Installed
        [X] DNS サーバー ツール                         RSAT-DNS-Server                Installed
2019年2月20日水曜日

Hyper-VのリダイレクトI/Oを動作確認してみた

Hyper-Vでは、ストレージのI/Oをネットワーク経由で別ノードにリダイレクトするという機能がある。これはHyper-Vの共有ボリュームの機能であるCSV(Cluster Shared Volume)にて実装される機能となり「リダイレクトI/O」と呼ばれる。ディスクI/Oをネットワークに流すという動作は、vSphere環境のVMFSではできないので非常に新鮮に感じる。

リダイレクトI/Oでは、ディスクI/Oが一度別ノードを経由することからディスクI/O遅延を引き起こすものとなるため、通常はストレージ障害発生時に利用される。

今回実際に疑似的な障害を発生させ、リダイレクトI/Oが動作することを確認してみた。

Hyper-V環境

環境は以下の通りとなる。2台のWindows Server 2019のHyper-Vノードがあり、iSCSIのボリュームをCSVとして共有している環境を想定する。

リダイレクトI/O動作時のディスクI/Oは以下図のとおりとなる。

リダイレクトI/Oの動作を確認してみる

ノード#1のiSCSI用のネットワークを切断した際に、リダイレクトI/Oが動作することを確認する。

ネットワーク切断してからしばらくすると、以下イベントログが表示され、リダイレクトI/Oが動作したことを確認できた。
ソース:FailoverClustering
id:5121
クラスターの共有ボリューム ‘Volume1’ (‘クラスター ディスク 1’) はこのクラスター ノードから直接アクセスできなくなりました。I/O アクセスは、ボリュームを所有するノードへのネットワークを介して記憶装置にリダイレクトされます。これが原因でパフォーマンスが低下した場合は、このノードから記憶装置への接続のトラブルシューティングを実施してください。記憶装置への接続が再確立されたら、I/O は正常な状態に戻ります。
また、ネットワーク切断からリダイレクトI/Oが動作するまでを時系列でまとめてみた。
発生時間 (秒) 内容 イベントログ
0 iSCSI用のNICのリンクダウン発生 ソース:e1iexpress
id:27
10 MPIOのフェイルオーバー失敗 ソース:mpio
id:32
140 ディスクが取り外される ソース:Disk
id:157
140 リダイレクトI/Oの開始 ソース:FailoverClustering
id:5121
MPIOのフェイルオーバー失敗からリダイレクトI/Oの開始まで130秒必要(NICのリンクダウンから換算で140秒)となっている。この時間のディスクI/Oは不可となるが、OSがディスク復旧を待つ時間として設定されているタイムアウト値のようだ。OSのパラメーターとしてはMPIOのPDORemovePeriodで規定されている。これはPowerShellのGet-MPIOSettingで確認することができる。
※下記はNetApp社のユーティリティがインストールされた状態の値であり、Windowsデフォルト値ではないので注意。
PS C:\Users\tadmin\Desktop> Get-MPIOSetting
PathVerificationState     : Disabled
PathVerificationPeriod    : 30
PDORemovePeriod           : 130
RetryCount                : 6
RetryInterval             : 1
UseCustomPathRecoveryTime : Enabled
CustomPathRecoveryTime    : 40
DiskTimeoutValue          : 60
ちなみに、ESXiではディスクの全パスダウン(APD : All Paths Down)の検知時間は、デフォルト140秒として設定されている。

まとめ

以上のとおりリダイレクトI/Oの動作が確認できた。vSphere環境ではvSphere HAで仮想マシンが再起動されてしまうが、Hyper-Vではディスク遅延が発生したとしても仮想マシンの動作継続を優先するという設計思想の違いが見て取れた。

人気の投稿