2019年4月10日水曜日

VyOSでDNSキャッシュサーバを構築する

DNSフォワーディングをするだけのDNSキャッシュサーバを作るのであれば、VyOSで簡単にできるよ、という話。

DNSフォワーディング設定方法

まず、現在の設定を確認してみる。設定前なので、「not configured」と表示される。
vyos:~$ show dns forwarding statistics
DNS forwarding not configured
DNSフォワーディングの設定を実施してみよう。1.1.1.18.8.8.8を上位のDNSサーバとしてフォワーディングする設定となる。
vyos# set service dns forwarding listen-on eth1
vyos# set service dns forwarding name-server 1.1.1.1
vyos# set service dns forwarding name-server 8.8.8.8
vyos@t3033vyos# compare
+dns {
+    forwarding {
+        cache-size 150
+        listen-on eth1
+        name-server 1.1.1.1
+        name-server 8.8.8.8
+    }
+}
vyos# commit
vyos# save
Saving configuration to '/config/config.boot'...
Done
listen-onで問い合わせを受け付けるインタフェースを指定し、name-serverでフォワーディングする上位のDNSサーバーを指定する。cache-sizeはデフォルトで150となっている(単位は「個」)。0に設定すれば、キャッシュがされないため、必ずDNS問い合わせはフォワーディングされる動作となる。

ちなみに、以下のように設定も可能な模様。VyOSサーバーのOS自体のDNSサーバー設定を行い、そちらをフォワーディング先とする設定となる。
vyos# set system name-server 1.1.1.1
vyos# set system name-server 8.8.8.8
vyos# set service dns forwarding listen-on eth1
vyos# set service dns forwarding system

DNSフォワーディング状況確認方法

設定後のDNS問い合わせ状況を確認するコマンドを以下に記載する。
vyos:~$ show dns forwarding statistics
----------------
Cache statistics
----------------
Cache size: 150
Queries forwarded: 15
Queries answered locally: 5
Total DNS entries inserted into cache: 22
DNS entries removed from cache before expiry: 0

---------------------
Nameserver statistics
---------------------
Server: 8.8.8.8
Queries sent: 12
Queries retried or failed: 0

Server: 1.1.1.1
Queries sent: 11
Queries retried or failed: 0
Queries forwardedが上位DNSに問い合わせをした回数となり、Queries answered locallyがキャッシュにて問い合わせを返すことができた回数となる。
2019年3月20日水曜日

ZabbixのDBの中身のデータを直接SQLで取得する方法

Zabbixは取得したデータをグラフで出力させる機能は充実しているが、CSV等で一覧出力する機能があまり充実しておらず、必然的にスクリプトなどで作りこみを行うことになる。
今回、ZabbixのDBからCPU使用率やメモリ使用率といったパフォーマンスデータをスクリプトなどで自動エクスポートできるよう、DBの内容調査を行い、データ抽出のためのSQL文を作ってみることにした。

Zabbix環境

  • OS : CentOS
  • Zabbix : Zabbix 4.0
  • DB : MariaDB

ZabbixのDB構造を確認する

まずは、ZabbixのDBの後続を把握するため、存在するテーブルを確認し、個々のテーブルの中身を確認してみることにする。

DB内のテーブル一覧を確認

MariaDBにログインして、Zabbixのテーブル一覧を確認してみる。どうやらZabbix 4.0では、144個のテーブルが存在するようだ。
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |

~(中略)~

| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+
144 rows in set (0.00 sec)

登録されているホスト一覧を確認

Zabbixに登録されているホストは「hosts」テーブルに存在する。テンプレートもホストとして登録されており、後半に実際の監視対象としてのホストが表示される。
MariaDB [zabbix]> select hostid, host from hosts;
+--------+-------------------------------------------------------------------------------+
| hostid | host                                                                          |
+--------+-------------------------------------------------------------------------------+
|  10168 | Template App Apache Tomcat JMX                                                |
|  10093 | Template App FTP Service                                                      |
|  10169 | Template App Generic Java JMX                                                 |

~(中略)~

|  10262 | t1081w219                                                                     |
|  10260 | t1082w216                                                                     |
|  10176 | {#HV.UUID}                                                                    |
|  10177 | {#VM.UUID}                                                                    |
+--------+-------------------------------------------------------------------------------+
今回はホスト名「t1081w219」(hostid=10262)を対象に確認を進めることにする。

アイテム一覧を確認

アイテムは「items」テーブルに登録されている。アイテムは一覧取得すると大量に出力されるため、とりあえず存在するカラムを確認しておく。
MariaDB [zabbix]> show columns from items;
+-----------------------+---------------------+------+-----+---------+-------+
| Field                 | Type                | Null | Key | Default | Extra |
+-----------------------+---------------------+------+-----+---------+-------+
| itemid                | bigint(20) unsigned | NO   | PRI | NULL    |       |
| type                  | int(11)             | NO   |     | 0       |       |
| snmp_community        | varchar(64)         | NO   |     |         |       |
| snmp_oid              | varchar(512)        | NO   |     |         |       |
| hostid                | bigint(20) unsigned | NO   | MUL | NULL    |       |

~(中略)~

| verify_peer           | int(11)             | NO   |     | 0       |       |
| verify_host           | int(11)             | NO   |     | 0       |       |
| allow_traps           | int(11)             | NO   |     | 0       |       |
+-----------------------+---------------------+------+-----+---------+-------+
63 rows in set (0.00 sec)
ホスト名「t1081w219」のアイテム一覧を確認する。
MariaDB [zabbix]> select itemid, hostid, name,key_ from items where hostid='10262';
+--------+--------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| itemid | hostid | name                               | key_                                                                                                                                      |
+--------+--------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
|  28658 |  10262 | Host name of zabbix_agentd running | agent.hostname                                                                                                                            |
|  28659 |  10262 | Agent ping                         | agent.ping                                                                                                                                |
|  28660 |  10262 | Version of zabbix_agent(d) running | agent.version                                                                                                                             |

~(中略)~

|  28671 |  10262 | Processor load (15 min average)    | system.cpu.load[percpu,avg15]                                                                                                             |
|  28672 |  10262 | Processor load (1 min average)     | system.cpu.load[percpu,avg1]                                                                                                              |
|  28673 |  10262 | Processor load (5 min average)     | system.cpu.load[percpu,avg5]                                                                                                              |
|  28674 |  10262 | Free swap space                    | system.swap.size[,free]                                                                                                                   |
|  28675 |  10262 | Total swap space                   | system.swap.size[,total]                                                                                                                  |
|  28676 |  10262 | System information                 | system.uname                                                                                                                              |
|  28677 |  10262 | System uptime                      | system.uptime                                                                                                                             |
|  28657 |  10262 | Mounted filesystem discovery       | vfs.fs.discovery                                                                                                                          |
|  28741 |  10262 | Free disk space on $1              | vfs.fs.size[C:,free]                                                                                                                      |
|  28742 |  10262 | Free disk space on $1 (percentage) | vfs.fs.size[C:,pfree]                                                                                                                     |
|  28743 |  10262 | Total disk space on $1             | vfs.fs.size[C:,total]                                                                                                                     |
|  28744 |  10262 | Used disk space on $1              | vfs.fs.size[C:,used]                                                                                                                      |
|  28683 |  10262 | Free disk space on $1              | vfs.fs.size[{#FSNAME},free]                                                                                                               |
|  28684 |  10262 | Free disk space on $1 (percentage) | vfs.fs.size[{#FSNAME},pfree]                                                                                                              |
|  28685 |  10262 | Total disk space on $1             | vfs.fs.size[{#FSNAME},total]                                                                                                              |
|  28686 |  10262 | Used disk space on $1              | vfs.fs.size[{#FSNAME},used]                                                                                                               |
|  28678 |  10262 | Free memory                        | vm.memory.size[free]                                                                                                                      |
|  28679 |  10262 | Total memory                       | vm.memory.size[total]                                                                                                                     |
|  28680 |  10262 | Free virtual memory, in %          | vm.vmemory.size[pavailable]                                                                                                               |
+--------+--------+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------+
89 rows in set (0.00 sec)
今回は、「Processor load (5 min average)」(itemid=28673)を取得するSQL文を作成していくことにする。

ヒストリを確認

各ホストのパフォーマンスデータは「history」テーブルに保存されている。このテーブルのカラムはシンプルに4つとなっている。
MariaDB [zabbix]> show columns from history;
+--------+---------------------+------+-----+---------+-------+
| Field  | Type                | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| itemid | bigint(20) unsigned | NO   | MUL | NULL    |       |
| clock  | int(11)             | NO   |     | 0       |       |
| value  | double(16,4)        | NO   |     | 0.0000  |       |
| ns     | int(11)             | NO   |     | 0       |       |
+--------+---------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

特定の日付のパフォーマンスデータを出力する

ひねりのないSQL文

DBのテーブル構成の確認ができたので、historyテーブルから以下内容のパフォーマンスデータをひねりのない単純なSQL文で出力してみる。
  • 取得対象アイテム : Processor load (5 min average) (itemid=28673)
  • 取得開始日時 : 2018-10-08 00:00:00
  • 取得終了日時 : 2018-10-09 00:00:00
以下結果では、出力が21:49からになっているが、これは対象ホストのデータ取得開始が21:49からだっただけで、データが存在すれば00:00からのデータが取得される。
MariaDB [zabbix]> select from_unixtime(clock), value from history where itemid='28673' and from_unixtime(clock) between '2018-10-08 00:00:00' and '2018-10-09 00:00:00';
+----------------------+--------+
| from_unixtime(clock) | value  |
+----------------------+--------+
| 2018-10-08 21:49:53  | 0.0093 |
| 2018-10-08 21:50:53  | 0.0111 |
| 2018-10-08 21:51:53  | 0.0100 |
| 2018-10-08 21:52:53  | 0.0128 |
| 2018-10-08 21:53:53  | 0.0128 |
| 2018-10-08 21:54:53  | 0.0122 |
| 2018-10-08 21:55:53  | 0.0144 |
| 2018-10-08 21:56:53  | 0.0128 |
| 2018-10-08 21:57:53  | 0.0100 |

~(中略)~

| 2018-10-08 23:55:53  | 0.0000 |
| 2018-10-08 23:56:53  | 0.0000 |
| 2018-10-08 23:57:53  | 0.0000 |
| 2018-10-08 23:58:53  | 0.0000 |
| 2018-10-08 23:59:53  | 0.0000 |
+----------------------+--------+
111 rows in set (0.00 sec)

テーブルを結合して出力するSQL文

「ひねりのないSQL文」では、事前にhostidやitemidを調べておく必要があり、実用的ではない。そこで、INNER JOIN句を使いテーブルを内部結合することで、hostidやitemidを調べることなく「ホスト名」や「アイテム名」そのものを条件としてデータ出力できるようにしてみた。
MariaDB [zabbix]> select from_unixtime(history.clock), hosts.host, items.name, history.value from history
    ->  inner join items using( itemid )
    ->  inner join hosts using( hostid )
    ->  where hosts.host='t1081w219' and items.name='Processor load (5 min average)' and from_unixtime(clock) between '2019-01-02 00:00:00' and '2019-01-03 00:00:00';
+------------------------------+-----------+--------------------------------+--------+
| from_unixtime(history.clock) | host      | name                           | value  |
+------------------------------+-----------+--------------------------------+--------+
| 2018-10-08 21:49:53          | t1081w219 | Processor load (5 min average) | 0.0093 |
| 2018-10-08 21:50:53          | t1081w219 | Processor load (5 min average) | 0.0111 |
| 2018-10-08 21:51:53          | t1081w219 | Processor load (5 min average) | 0.0100 |

~(中略)~

| 2018-10-08 23:57:53          | t1081w219 | Processor load (5 min average) | 0.0000 |
| 2018-10-08 23:58:53          | t1081w219 | Processor load (5 min average) | 0.0000 |
| 2018-10-08 23:59:53          | t1081w219 | Processor load (5 min average) | 0.0000 |
+------------------------------+-----------+--------------------------------+--------+
111 rows in set (0.00 sec)
上記の通り、「ひねりのないSQL文」と同一結果が出力できた。

CSVで出力する

最後に出力したデータをCSVでファイル出力する。INTO OUTFILE句にて出力ファイル名を指定し、「,」区切り指定をすればよい。
MariaDB [zabbix]> select from_unixtime(history.clock), hosts.host, items.name, history.value from history
    ->  inner join items using( itemid )
    ->  inner join hosts using( hostid )
    ->  where hosts.host='Zabbix server' and items.name='CPU user time' and from_unixtime(clock) between '2019-01-02 00:00:00' and '2019-01-03 00:00:00'
    ->  into outfile 'zabbix_history_data.csv' fields terminated by ',';
ファイルの出力先は以下となる。
# ls -l /var/lib/mysql/zabbix/ | grep csv
-rw-rw-rw- 1 mysql mysql 79200  1月  6 15:04 zabbix_history_data.csv
2019年3月13日水曜日

ONTAP 9.4でGUIとCLIの自動タイムアウトを無効にする

NetApp社のストレージOSであるONTAPでは、「OnCommand System Manager」によるWebによるGUI操作と、SSHによるCLI操作にて管理が可能となっている。これらの管理画面は、特に操作が行われないと自動でタイムアウトする設定が入っているが、構築時や検証時などは、自動でタイムアウトされない方が都合がよいことも多いため、本タイムアウトの機能を無効にしてみた。

環境

  • ONTAP 9.4

OnCommand System Manager

OnCommand System Managerは、右上の歯車マークのアイコンを選択する。
その後、「全般」→「非アクティブ時のタイムアウト(分)」の値を0に設定して保存すれば、自動でタイムアウトすることはなくなる。



CLI

CLIのタイムアウトはsystemm timeoutコマンドで確認と変更が可能となる。変更前の設定を確認すると、デフォルトは30分でタイムアウトすることがわかる。
cluster1::> system timeout show
CLI session timeout: 30 minutes
タイムアウトを無期限に変更する場合は、タイムアウト値を0に設定すればよい。
cluster1::> system timeout modify -timeout 0
設定後タイムアウト値を確認すると0分となっており、自動でタイムアウトされることがなくなる。
cluster1::> system timeout show
CLI session timeout: 0 minutes
2019年3月6日水曜日

【PowerShell】Windowsのネットワークの設定を行う

Windows Serverをインストールした際に、避けて通れないネットワーク設定であるが、GUIでポチポチ設定するのも面倒なので、PowerShellを使ってコマンドで実施する方法を調べてみた。

NICのIPv6をOFFにする

WindowsのNICはデフォルトでIPv6が利用できるように設定されているが、IPv6は利用する機会はほとんどないので無効化しておく。

まずは、現在のNICの設定状態を確認してみよう。Get-NetAdapterBindingコマンドレットで確認できる。ここで表示される値は、GUIでいうとネットワークアダプターのプロパティの画面と同じになる。
PS C:\> Get-NetAdapterBinding |  Where-Object {$_.Name -eq "Ethernet2"}

Name                           DisplayName                                        ComponentID          Enabled
----                           -----------                                        -----------          -------
Ethernet2                      Microsoft LLDP プロトコル ドライバー               ms_lldp              True
Ethernet2                      Microsoft ネットワーク用ファイルとプリンター共有   ms_server            True
Ethernet2                      インターネット プロトコル バージョン 4 (TCP/IPv4)  ms_tcpip             True
Ethernet2                      Microsoft ネットワーク用クライアント               ms_msclient          True
Ethernet2                      Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
Ethernet2                      Link-Layer Topology Discovery Responder            ms_rspndr            True
Ethernet2                      インターネット プロトコル バージョン 6 (TCP/IPv6)  ms_tcpip6            True
Ethernet2                      Hyper-V Extensible Virtual Switch                  vms_pp               False
Ethernet2                      Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            True
Ethernet2                      QoS パケット スケジューラ                          ms_pacer             True
設定変更はSet-NetAdapterBindingコマンドレットで行う。今回は「Ethernet2」の「ms_tcpip6」を無効化する。
PS C:\> Set-NetAdapterBinding -Name "Ethernet2" -ComponentID "ms_tcpip6" -Enable $false
設定後の確認を行うと、「インターネット プロトコル バージョン 6 (TCP/IPv6)」が「False」になっていることがわかる。
PS C:\> Get-NetAdapterBinding |  Where-Object {$_.Name -eq "Ethernet2"}

Name                           DisplayName                                        ComponentID          Enabled
----                           -----------                                        -----------          -------
Ethernet2                      Microsoft LLDP プロトコル ドライバー               ms_lldp              True
Ethernet2                      Microsoft ネットワーク用ファイルとプリンター共有   ms_server            True
Ethernet2                      インターネット プロトコル バージョン 4 (TCP/IPv4)  ms_tcpip             True
Ethernet2                      Microsoft ネットワーク用クライアント               ms_msclient          True
Ethernet2                      Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
Ethernet2                      Link-Layer Topology Discovery Responder            ms_rspndr            True
Ethernet2                      インターネット プロトコル バージョン 6 (TCP/IPv6)  ms_tcpip6            False
Ethernet2                      Hyper-V Extensible Virtual Switch                  vms_pp               False
Ethernet2                      Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            True
Ethernet2                      QoS パケット スケジューラ                          ms_pacer             True

NICに固定IPアドレスを付与する

NICに固定IPアドレスを設定する前に、インターフェースの名前を確認しよう。インターフェース一覧はGet-NetAdapterコマンドレットで確認できる。今回は「Ethernet2」を対象に設定変更を行うことにする。
PS C:\> Get-NetAdapter | Sort-Object Name

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet0                 Intel(R) 82574L Gigabit Network Conn...      16 Up           00-0C-29-AF-24-83         1 Gbps
Ethernet1                 Intel(R) 82574L Gigabit Network Co...#2       4 Up           00-0C-29-AF-24-8D         1 Gbps
Ethernet2                 Intel(R) 82574L Gigabit Network Co...#3      37 Up           00-0C-29-AF-24-97         1 Gbps
vEthernet (Intel(R) 82... Hyper-V Virtual Ethernet Adapter              9 Up           00-0C-29-AF-24-83         1 Gbps
続けて、インターフェースに設定されているIPアドレスをGet-NetIPAddressコマンドレットにて確認する。
PS C:\> Get-NetIPAddress |ft InterfaceAlias, IPAddress,PrefixLength

InterfaceAlias                                                          IPAddress                    PrefixLength
--------------                                                          ---------                    ------------
Ethernet2                                                               fe80::c57b:1420:969:f48b%37            64
vEthernet (Intel(R) 82574L Gigabit Network Connection - Virtual Switch) fe80::c19f:f1cb:d7ca:df6%9             64
ローカル エリア接続* 10                                                 fe80::155e:acfe:8b10:d8ab%12           64
Ethernet1                                                               fe80::7c63:ecf4:628:44e4%4             64
Loopback Pseudo-Interface 1                                             ::1                                   128
Ethernet2                                                               169.254.244.139                        16
vEthernet (Intel(R) 82574L Gigabit Network Connection - Virtual Switch) 192.168.11.111                         24
ローカル エリア接続* 10                                                 169.254.2.65                           16
Ethernet1                                                               192.168.55.111                         24
Loopback Pseudo-Interface 1                                             127.0.0.1                               8
それではIPアドレスを設定してみよう。IPアドレスはNew-NetIPAddressコマンドレットで設定可能となる。-DefaultGatewayオプションを付けることでデフォルトゲートウェイの設定も可能。ただし、デフォルトゲートウェイはサーバ内で1つしか設定できないため、本コマンドでデフォルトゲートウェイを設定した場合、すでに設定済みデフォルトゲートウェイの設定がある場合は消えてしまうので注意すること。

「Ethernet2」のアダプターに対して、「192.168.77.111/24」でデフォルトゲートウェイを「192.168.77.31」に設定してみた。
PS C:\> New-NetIPAddress -IPAddress "192.168.77.111" -InterfaceAlias "Ethernet2" -DefaultGateway "192.168.77.31" -PrefixLength 24


IPAddress         : 192.168.77.111
InterfaceIndex    : 37
InterfaceAlias    : Ethernet2
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.77.111
InterfaceIndex    : 37
InterfaceAlias    : Ethernet2
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore
設定を元に戻す場合は、デフォルトのDHCPに変更すればよい。
Set-NetIPInterface -InterfaceAlias "Ethernet2" -Dhcp Enable

NICの有効化・無効化

NICの有効化はEnable-NetAdapterコマンドレットで行うことができる。
PS C:\> Enable-NetAdapter -Name "Ethernet2"
NICの無効化はDisable-NetAdapterコマンドレットで行うことができる。
PS C:\> Disable-NetAdapter -Name "Ethernet2"

確認
この操作を実行しますか?
Disable-NetAdapter 'Ethernet2'
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y
確認が不要な場合は-Confirm $falseをオプションとして付与すればよい。
PS C:\> Disable-NetAdapter -Name "Ethernet2" -Confirm $false
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

人気の投稿