Windows Server 2019 記憶域スペースダイレクト のネットワーク

記憶域スペースダイレクトでは、高速なネットワーク接続のほかに、リモートダイレクトメモリアクセス (RDMA) を利用することか推奨されています。今回の検証環境では、RDMA に対応したネットワークインターフェースカード(Mellanox ConnectX-3)を使用しています。

Mellanox ConnectX-3 でInfiniBandRDMA Over Converged Ethernet(RoCE) の2つのプロトコルでRDMAがサポートされます。
既定は、InfiniBand です。

【InfiniBand を 使用する場合】
1.メーカーサイトのダウンロードサイトよりドライバーを入手します。

2.ダウンロードしたドライバーを実行します。

3.ライセンスに同意し、Next をクリックします。

4.展開先フォルダーを選択して、Next をクリックします。

5.パフォーマンスオプションは既定のまま Next をクリックします。

6.インストールオプションは既定のまま Next をクリックします。

7.Install をクリックします。

8.Finish をクリックします。

9.InfiniBand Subnet Manager をサービスとして登録するために、以下のPowerShell コマンドレッドを実行します。

New-Service –Name "OpenSM" –BinaryPathName "`"C:\Program Files\Mellanox\MLNX_VPI\IB\Tools\opensm.exe`" --service -L 128" -DisplayName "OpenSM" –Description "OpenSM for IB subnet" -StartupType Automatic

10.ibstat を実行し、State が Active になっていることを確認します。

11.vstat を実行し、port_state が PORT_ACTIVE となっていることを確認します。

12.PowerShell で以下のコマンドを実行し、ネットワークアダプターの構成を確認します。

Get-NetAdapter -Name IBNIC
Get-NetAdapterRDMA
Get-NetOffloadGlobalSetting | Select NetworkDirect

13.PowerShell で以下のコマンドを実行し、SMBの構成を確認します。

Get-SmbClientConfiguration | Select EnableMultichannel
Get-SmbClientNetworkInterface
Get-SmbServerConfiguration | Select EnableMultichannel
Get-SmbServerNetworkInterface

【RDMA Over Converged Ethernet (RoCE)を使用する場合】
1.デバイスマネージャー開き、システムデバイス > Mellanox ConnectX‐3 VPI (MT04099) Network Adapter を選択します。

2.操作メニューにあるプロパティをクリックします。

3.Port Protocol タブを開き、HCA Port Type Configuration を「ETH」をクリックし、「OK」をクリックします。

Windows Server 2019 記憶域スペースダイレクト の更新プログラムの失敗

クラスター更新対応で失敗した場合は、以下の手順で回復することができます。

1.クラスター対応更新を起動し、「このクラスターに更新プログラムを適用する」をクリックします。

2.「次へ」をクリックします。

3.「更新」をクリックします。

4.「回復」をクリックします。

5.失敗した更新プログラムの実行が回復されます。「閉じる」をクリックします。

6.失敗した更新プログラムの失敗を回復中です。

7.手動でクラスター更新を実行して、成功することを確認します。

Windows Server 2019 記憶域スペースダイレクト の更新プログラム

記憶域スペースダイレクト の各サーバーに更新プログラムをインストールするには、クラスタ対応更新(CAU)が推奨されています。
そこで、クラスタ対応更新の構成してみます。

1.クラスタ名オブジェクト(CNO)が自動的に作成できるようにOUに対して、コンピューターオブジェクトを作成する権限を付与します。

2.各ノードでクラスターノードの自動シャットダウンを有効にします。

Set-NetFirewallRule -Group "@firewallapi.dll,-36751" -Profile Domain -Enabled true

3.クラスタ対応更新を起動し、「クラスターの自己更新オプションの構成」をクリックします。

4.自己更新オプションの構成ウィザードが開始されます。「次へ」をクリックします。

5.「CAUのクラスタ化された役割を、自己更新モードを有効にしてこのクラスターに追加」のチェックボックスをチェックして、「次へ」をクリックします。

6.更新スケジュールを設定して、「次へ」をクリックします。

7.詳細オプションを設定して、「次へ」をクリックします。

8.追加オプションを選択して、「次へ」をクリックします。

9.選択が問題なければ、「適用」をクリックします。

10.設定が完了しました。

11.Admin Center のクラスター対応更新の画面

クラウドを利用したクラスターの監視の構成

Windows Server 2016 からクラウドの監視にクラウドを利用する(Cloud Witness)ことができるようになりました。
クラウド監視は、Microsoft Azure ストレージにクォーラムを配置し、監視を行います。

Windows Server 2019 記憶域スペースダイレクト 検証環境でクラウド監視を構成してみます。

【Azure でクラウド監視に必要なサービスを構成する
1.Azure Portal より「ストレージ」>「ストレージアカウント」の順に展開します。

2.「追加」をクリックし、ストレージアカウントの作成をします。

3.必要事項を入力し、「確認及び作成」をクリックします。
レプリケーションは、「ローカル冗長ストレージ(LRS)」を選択します。

4.内容に問題がなければ。「作成」をクリックします。

5.作成が完了するまでしばらく待ちます。

【クラスター監視を構成する】
1.ファールオーバークラスタマネージャ から「操作」>「他のアクション」>「クラスタ クォーラムの構成」の順に選択をします。

2.「次へ」をクリックします。

3.「クォーラム監視を選択する」を選択し、「次へ」をクリックします。

4.「クラウド監視を構成する」を選択し、「次へ」をクリックします。

5.Azure Portal で作成した、ストレージアカウントとアカウントキーを入力し、「次へ」をクリックします。
アクセスキーは、「ホーム」>「ストレージアカウント」>作成したアカウント>「アクセス キー」にあります。

6.「次へ」をクリックします。

7.「完了」をクリックします。

8.フェールオーバー クラスタマネジャーのクラスタ コア リソースに「クラウド監視」が表示されます。

Windows Server 2019 記憶域スペースダイレクト 検証環境構築

2ノードの記憶域スペースダイレクト を検証する環境を構築していきます。
OSのインストール、OSやドライバーの最新化、ドメインの参加まで終わったサーバーで始めます。
ドメインの管理者アカウントを使って作業をしていきます。

1.サーバー2台に役割と機能を追加します。

$ServerList = "S2DSV01", "S2DSV02"
$FeatureList = "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer", "Hyper-V-Tools", "RSAT-Clustering-Mgmt"
Invoke-Command ($ServerList) {
    Install-WindowsFeature -Name $Using:Featurelist
}

2.再起動後、物理ドライブの初期化を行います。
今回接続されている物理ドライブは、SSD2個、HDD2個、USB1個です。

$ServerList = "S2DSV01", "S2DSV02"
Invoke-Command ($ServerList) {
    Update-StorageProviderCache
    Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue
    Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue
    Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue
    Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue
    Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -ne RAW | % {
        $_ | Set-Disk -isoffline:$false
        $_ | Set-Disk -isreadonly:$false
        $_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false
        $_ | Set-Disk -isreadonly:$true
        $_ | Set-Disk -isoffline:$true
    }
    Get-Disk | Where Number -Ne $Null | Where IsBoot -Ne $True | Where IsSystem -Ne $True | Where PartitionStyle -Eq RAW | Group -NoElement -Property FriendlyName
} | Sort -Property PsComputerName, Count

3.クラスタを構築する前に、検証を実施します。
Include パラメータを指定するとエラーになってしまったので、今回は、Include パラメータは指定しませんでした。

Test-Cluster –Node s2dsv01, s2dsv02

4.クラスタを構築します。
サーバーのIPアドレスが静的である場合は以下のコマンドを使用します。

New-Cluster -Name S2DSV -Node S2DSV01,S2DSV02 -NoStorage –StaticAddress XXX.XXX.XXX.XXX

5.管理ツールを使用してクラスタの構成を確認およびクラスターの監視の構成します。
特にDNSにクラスタ名(ここではS2DSV)に登録されるのに時間がかかる場合があるので、Ping コマンドなどで確認することをお勧めします。
フェールオーバークラスタマネージャーのクラスタコアリソースがすべてオンラインであることを確認することもお勧めします。

6.記憶域スペースダイレクトを有効にします。
特にDNSにクラスタ名(ここではS2DSV)に登録されるのに時間がかかる場合があるので、Ping コマンドなどで確認することをお勧めします。

Enable-ClusterStorageSpacesDirect -CimSession S2DSV

7.Admin Center のダッシュボードで確認

Windows Server 2019 のインストール

構築したサーバーに Windows Server 2019 Datacenter エディションをインストールします。
今回は、応答ファイル(AutoUnattend.xml)による自動インストールにしてみました。
使用した応答ファイルには、次の設定が自動的にインストールされるように設定されています。
この後、ホスト名の設定、ドメインの参加、リモートデスクトップの有効化を設定いたします。

1.インストールの言語、時刻と通貨の設定、キーボードまたは入力方式、キーボードの種類

2.プロダクトキー

3.インストールするOSの種類

4.インストール先の設定

5.Administrtorのパスワード設定

応答ファイルの中身は以下のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>0411:E0010411</InputLocale>
            <SystemLocale>ja-JP</SystemLocale>
            <UILanguage>ja-JP</UILanguage>
            <UserLocale>ja-JP</UserLocale>
        </component>
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <UserAccounts>
                <AdministratorPassword>
                    <Value>*********</Value>
                    <PlainText>false</PlainText>
                </AdministratorPassword>
            </UserAccounts>
            <TimeZone>Tokyo Standard Time</TimeZone>
        </component>
    </settings>
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>0411:E0010411</InputLocale>
            <SystemLocale>ja-JP</SystemLocale>
            <UILanguage>ja-JP</UILanguage>
            <UserLocale>ja-JP</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>560</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Type>Primary</Type>
                            <Extend>true</Extend>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <Active>true</Active>
                            <Extend>false</Extend>
                            <Format>NTFS</Format>
                            <Label>システムで予約済み</Label>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                            <Format>NTFS</Format>
                            <Letter>C</Letter>
                            <Active>false</Active>
                            <Extend>false</Extend>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallFrom>
                        <MetaData wcm:action="add">
                            <Key>/IMAGE/INDEX</Key>
                            <Value>2</Value>
                        </MetaData>
                    </InstallFrom>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>2</PartitionID>
                    </InstallTo>
                </OSImage>
            </ImageInstall>
            <UserData>
                <ProductKey>
                    <Key>*****-*****-*****-*****-*****</Key>
                </ProductKey>
                <AcceptEula>true</AcceptEula>
            </UserData>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/install.wim#Windows Server 2019 SERVERDATACENTER" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

新しいサーバーを構築してみました

自宅のサーバーがだいぶ古くなってきたので、サーバーを新調することにしました。
Windows Server だけで ハイパーコンバージドインフラ(HCI)が構築できるので、今回はこちらを試してみることにしました。

2019年3月27日に Microsoft は、HCI で仮想化アプリケーションを実行できる製品として「Azure Stack HCI」を発表しました。

今回構築したサーバーは次のとおりです。

CPU Intel Xeon E3-1235L v5 ×1
メモリ DDR4-2133 ECC-DIMM 16GB ×2
ディスク SSD SATA3.0 256GB
HDD SATA3.0 2TB
MLC USB3.0 64GB
×3
×3
×3
ネットワーク 10GB
1GB
×1
×2
マザーボード ASRock Rack C236WSI ×1
ケース SilverStone ML06-E ×1

SCCM 更新プログラムパッケージのインストールに失敗する

SCCM が更新プログラムパッケージのインストールが前提条件の確認で失敗しました。

「Configuration Manager コンソール」で、 監視 > 概要 > 更新とサービスの状態 > ステータスの表示の順に展開します。
「前提条件の確認」、「サイトのアップグレードのための SQL Server 構成」がエラーとなっています。

システムログ (ConfigMgrPrereq.log)を確認すると以下の警告が記録されています。
WARNING: Invalid configuration – checked rule ‘Service broker is enabled’.

これは データベースのService broker の状態が enabled でないためです。
これを解決するには、以下の手順を実行します。

1.SQL Server Management Studio で以下のクエリを実行し、データベースの Service broker の状態を確認します。

クエリ SELECT is_broker_enabled FROM sys.databases WHERE name = ‘データベース名’;
結果 0(disabled)

2.以下のクエリを実行し、データベースの状態が enabled に変更できるか確認します。

クエリ ALTER DATABASE [データベース] SET ENABLE_BROKER WITH NO_WAIT;
結果 メッセージ 5070、レベル 16、状態 2、行 10
他のユーザーがデータベース ‘データベース名’ を使用しているときに、データベースの状態を変更することはできません
メッセージ 5069、レベル 16、状態 1、行 10
ALTER DATABASE ステートメントが失敗しました。

3.以下のクエリを実行します。

クエリ ALTER DATABASE [データベース] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
結果 限定されないトランザクションをロールバック中です。推定ロールバック完了率: 0%。
限定されないトランザクションをロールバック中です。推定ロールバック完了率: 100%。

4.再び、1.のコマンドを実行し、is_broker_enabled が「1」に変わったことを確認します。

5.「Configuration Manager コンソール」で 監視 > 概要 > 更新とサービスの状態 > インストールの再試行 の順に展開します。

Windows Admin Center で Active Directory、DHCP、DNS が管理できるようになりました。

プレビュー版ではありますが、Active Directory、DHCP、DNS を管理できるようになりました。
拡張機能を更新するとインストール可能な機能として表示されます。

SQL Server 2014 Agent ジョブの PowerShell ステップで “ReportWrongProviderType” が無効なため、操作を実行できません

SQL Server 2014 Agent ジョブ で 以下のPowerShell を実行すると「操作 “ReportWrongProviderType” が無効なため、操作を実行できません。操作 “ReportWrongProviderType” を削除するか、または無効である理由を調べてください。」とエラー表示され、CSVファイルのインポートが実行されません。

$File = “\\server\shear\sample.csv”
Import-Csv $File -Encoding Default

これは、SQL Server 2014 Agent ジョブ でPowerShell ステップを実行するときに、SQLPS モジュールをインポートされ、SQL Server PowerShell プロバイダ へ変更された結果、「Import-Csv」がエラーとなります。
これを以下のように変更することによって、正常に実行されました。

Set-Location C:
$File = “\\server\shear\sample.csv”
Import-Csv $File -Encoding Default

 

カテゴリー: PowerShell. Leave a Comment »
Windows Server Essentials を中心とした雑記

中小企業で初めてサーバーを導入しようと思っている担当者向けにWindows Server Essentials や Small Business Server に関する情報を提供するブログです。

My Knowlage Base

ggrksといわれる前に。

Dj Saori's Hardstyle Life

Dj Saori in the Mix

exceedone (エクシード・ワン)

Just another WordPress.com site

WoodStreamのCtrl+Alt+Delete

WindowsやWindowsPhoneのお話をします。