外部ストレージ アレイを Azure Local に接続する

この記事では、Azure Localの外部記憶域のサポート、その利点、サポートされているベンダーの外部記憶域ネットワーク (SAN) ストレージを、ファイバー チャネル (FC) またはインターネット Small Computer Systems Interface (iSCSI) を使用してAzure Localと統合する方法について説明します。 クラスター ノードで実行Azure Localホスト側の構成と、ベンダーの配列側の構成タスクの両方について説明します。 論理ユニット番号 (LUN) の作成、ホストの登録、ゾーニングの構成など、ベンダー固有の手順については、 ベンダー配列側の構成で説明します。

Overview

Azure Localでは、ローカル 記憶域スペース ダイレクト ストレージと共に外部 SAN ストレージをアタッチすることも、SAN ストレージを個別に使用することもできます。 新規または既存の SAN アレイは、仮想マシン (VM)、Azure Kubernetes Service (AKS) クラスター、Azure Virtual Desktop (AVD) インスタンスのブロック ストレージ デバイスとしてアタッチできます。

この機能により、ハイブリッド展開 (記憶域スペース ダイレクト + SAN) と非集約デプロイ (SAN のみ) の両方が有効になります。 Azure Localワークロードの実行中に既存の SAN 投資を再利用できます。 ワークロードごとに適切なデータ階層化とパフォーマンス モデルを柔軟に選択できます。

SAN アレイから複数のボリュームをクラスター共有ボリューム (CSV) としてAzure Localノードに表示できます。 各 CSV は、VM のストレージ パスとしてマップできるフォルダー パスとして表示されます。

Benefits

  • 投資保護: 既存の SAN インフラストラクチャを再アーキテクチャなしでAzure Localに拡張します。

  • 運用の一貫性: 管理と運用に既存のプラクティスを使用します。

  • 回復性とスケール: デュアル ファブリック、マルチパス、SAN ネイティブ冗長性により、高可用性が確保されます。

  • 柔軟性: ワークロード要件ごとに記憶域スペース ダイレクトボリュームまたは外部 SAN ボリュームを選択します。

  • エンタープライズ パフォーマンス: 要求の厳しいワークロードに対してファイバー チャネル クラスの帯域幅と待機時間を使用します。

サポートされるプロトコル

  • ファイバー チャネル (FC)
  • iSCSI (TCP/IP 経由)

Azure Local ストレージ アーキテクチャ (記憶域スペース ダイレクト + SAN)

一貫性のある管理、高スループット、低待機時間の I/O を実現するために、主要ベンダーのファイバー チャネルまたは iSCSI ベースの SAN アレイを導入し、それらをAzure Local クラスターに直接統合します。 各Azure Local ノードは、ファイバー チャネル ファブリックまたは iSCSI ネットワーク パスを使用して SAN に接続し、高可用性、回復性、パフォーマンスを確保します。 iSCSI 用のファイバー チャネルまたはイーサネット ネットワーク アダプター用のホスト バス アダプター (HBA) により、外部 SAN ストレージへの信頼性の高い接続が可能になります。

記憶域スペース ダイレクト または外部 SAN ストレージを使用して VM、AVD、AKS のワークロードをホストする Azure Local クラスターを示す図。

接続されると、クラスターは SAN ベースのボリュームを検出し、NTFS でフォーマットされた CSV として統合するため、ノード間でアクセスを共有し、ワークロードをシームレスに可視化できます。 この構成により、ローカル サービスと Arc 対応サービスの両方に対して統合された Azure 管理を維持しながら、コンピューティングとストレージの独立したスケーリングが可能になります。

SAN を 記憶域スペース ダイレクト に接続する

前提条件

FC と iSCSI には、次の前提条件が適用されます。

ファイバー チャネル

  • Azure Local のバージョン 2604 以降でデプロイされたクラスター。
  • すべてのクラスターノードにインストールされ、FC ファブリック上でゾーニングされているファイバーチャネル HBA(Windows Server 2025 の認定を受けた HBA およびドライバー)。
  • 管理アクセスが構成されている FC ファブリックで SAN アレイにアクセスできます。

Important

FC LUN のデプロイの混乱を避けるために、Azure Local展開後まで FC HBA World Wide Names (WWN) にゾーンを設定しないでください。

iSCSI

  • Azure Local のバージョン 2604 以降でデプロイされたクラスター。
  • ネットワーク インターフェイス カード (NIC) のファームウェアとドライバーのバージョンは、Azure Localハードウェア カタログの要件と一致する必要があります。
  • クラスター内のすべてのノードで、同じ NIC 構成を使用する必要があります。
  • ハイブリッド ストレージ構成 (記憶域スペース ダイレクト + iSCSI) には、iSCSI 専用の物理ポートが必要です。 vNIC はサポートされていません。

手順 1: Windows機能とサービスを有効にする

1.1 マルチパス I/O (すべてのデプロイ) を確認する

Azure Local 2604 以降のバージョンでは、マルチパス I/O (MPIO) が既定で有効になります。 すべてのノードで MPIO が有効になっていることを確認します。 以前のバージョンで発生する可能性がある MPIO が有効になっていない場合は、有効にした後で再起動する必要があります。

Enable-WindowsOptionalFeature -Online -FeatureName MultipathIO

# Verify
Get-WindowsOptionalFeature -Online -FeatureName MultipathIO |
    Select-Object FeatureName, State, RestartNeeded

1.2 iSCSI イニシエーター サービスを有効にする (iSCSI のみ)

iSCSI デプロイの場合は、すべてのノードで iSCSI イニシエーター サービスを有効にして開始します。 この手順は、FC のみのデプロイでは必要ありません。

Set-Service -Name MSiSCSI -StartupType Automatic
Start-Service -Name MSiSCSI
Get-Service -Name MSiSCSI | Select-Object Name, Status, StartType

1.3 必要に応じて再起動する

2604 より前のビルドで MPIO を有効にした場合、または RestartNeededTrueを返す場合は、続行する前にすべてのノードのローリング 再起動を実行します。

1.4 イニシエーター識別子を収集する

必要なサービスを有効にした後、各ノードからイニシエーター識別子を収集します。 SAN アレイで LUN マスクを構成するには、これらの識別子が必要です。

  • FC — ワールド ワイド ポート名 (WWPN) を収集する

    Get-InitiatorPort | Where-Object ConnectionType -eq 'Fibre Channel' |
    Select-Object NodeAddress, PortAddress, ConnectionType | Format-Table -AutoSize
    
  • iSCSI — iSCSI 修飾名 (IQN) を収集する

    (Get-InitiatorPort | Where-Object ConnectionType -eq 'iSCSI').NodeAddress
    

手順 2: MPIO にベンダーを登録し、設定を構成する

各Azure Local ノードですべての構成を実行します。 MPIO ポリシーの変更は、再起動後まで有効になりません。

2.1 MPIO の既定値

Azure Local 2604 以降のバージョンには、次の MPIO の既定の設定が含まれています。

Setting デフォルト値
パス検証状態 Enabled
パス検証期間 30
PDORemovePeriod 20
リトライ回数 6
再試行間隔 3
CustomPathRecovery Disabled
CustomPathRecoveryTime 20
DiskTimeoutValue 60
負荷分散ポリシー ラウンド ロビン (RR)
NewDiskPolicy オフライン共有

2.2 ベンダー デバイスを MSDSM に登録する

MPIO がアレイの LUN を要求できるように、ストレージ ベンダーを Microsoft デバイス固有モジュール (MSDSM) に登録します。 お使いのベンダー用のコマンドを使用します:

売り手 VendorId 製品 ID 命令
Dell PowerStore DellEMC PowerStore New-MSDSMSupportedHW -VendorId "DellEMC" -ProductId "PowerStore"
Everpure FlashArray PURE FlashArray New-MSDSMSupportedHW -VendorId "PURE" -ProductId "FlashArray"
日立 VSP (mpclaim を使用) OPEN-V mpclaim -r -i -d "HITACHI OPEN-V"
HPE Alletra / 3PAR 3PARdata VV New-MSDSMSupportedHW -VendorId "3PARdata" -ProductId "VV"
NetApp ONTAP NETAPP LUN C-Mode New-MSDSMSupportedHW -VendorId "NETAPP" -ProductId "LUN C-Mode"
  • NetApp の場合:ONTAP C モードでは、LUN C-ModeではなくLUN報告されます。 -ProductId "LUN"の使用が一致しません。 レガシ 7 モード システムに接続する場合にのみ、 LUN を登録します。

  • Everpure の場合: MSDSM が非 Pure デバイスを自動的に要求しないように、汎用ベンダーワイルドカード エントリを削除します。

    Remove-MSDSMSupportedHW -VendorId 'Vendor*' -ProductId 'Product*'
    

2.3 負荷分散ポリシーを設定する

Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy RR

2.4 MPIO タイマーの構成 (ベンダー固有)

サポートされているほとんどのベンダーでは、既定の設定を超える追加の MPIO チューニングは必要ありません。 次のベンダーは、ベンダー固有のオーバーライドを推奨しています。

  • Dell PowerStore

    Set-MPIOSetting -NewRetryCount 3 -CustomPathRecovery Enabled `
    -NewPathRecoveryInterval 10 -NewDiskTimeout 30
    
  • Everpure FlashArray

    Set-MPIOSetting -NewPathRecoveryInterval 20 -CustomPathRecovery Enabled `
    -NewPDORemovePeriod 20 -NewDiskTimeout 60 -NewPathVerificationState Enabled
    
  • HPE Alletra / 3PAR

    配列でホスト ペルソナを WINDOWS に設定する場合、MPIO チューニングは必要ありません。

  • 日立 VSP

    RR ポリシーを使用した既定の MSDSM 設定は適切に機能します。

  • NetApp ONTAP

    既定の設定を超える追加の MPIO チューニングは必要ありません。

2.5 iSCSI 自動要求を有効にする (iSCSI のみ)

Enable-MSDSMAutomaticClaim -BusType iSCSI

このコマンドは、MPIO を登録して、すべての iSCSI デバイスを自動的に要求します。 LUN が既に表示された後で自動要求を有効にする場合は、MSDSM がデバイスを再列挙できるようにノードを再起動します。

手順 3: iSCSI ネットワークを構成する (iSCSI のみ)

Important

FC のみのデプロイの場合は、この手順をスキップします。

3.1 ネットワーク ATC から iSCSI NIC を除外する

Network ATC は、記憶域スペース ダイレクト およびリモート ダイレクト メモリ アクセス (RDMA) トラフィック向けの管理、コンピュート、ストレージのインテントを管理します。 iSCSI NIC をネットワーク ATC の外部に保持し、手動で構成します。

Add-NetIntent -Name "Mgmt-Compute" -Management -Compute -AdapterName "NIC1","NIC2"
Add-NetIntent -Name "Storage" -Storage -AdapterName "NIC3","NIC4"

ネットワーク ATC 意図に iSCSI NIC を追加する場合は、それを削除し、アダプターを手動で再構成します。

3.2 専用 iSCSI NIC を構成する

各 iSCSI NIC に、既定のゲートウェイがないストレージ サブネット上の静的 IP アドレスを割り当てます。

Rename-NetAdapter -Name "Ethernet 3" -NewName "iSCSI-NIC-A"
Rename-NetAdapter -Name "Ethernet 4" -NewName "iSCSI-NIC-B"

New-NetIPAddress -InterfaceAlias "iSCSI-NIC-A" -IPAddress 10.30.30.11 -PrefixLength 24
New-NetIPAddress -InterfaceAlias "iSCSI-NIC-B" -IPAddress 10.31.31.11 -PrefixLength 24

Note

iSCSI NIC で既定のゲートウェイを構成しないでください。

3.3 MTU と VLAN の構成 (省略可能)

iSCSI ネットワーク パス全体で一貫した最大伝送単位 (MTU) 設定を使用します。 スイッチ ポートがアクセス ポートとして構成されている場合、ホストはタグなしトラフィックを送信します。 スイッチ ポートがトランク ポートとして設定されている場合にのみ、ホストで VLAN タグ付けを設定します。

Set-NetAdapterAdvancedProperty -Name "iSCSI-NIC-A" -RegistryKeyword "*JumboPacket" -RegistryValue 9014
Set-NetAdapterAdvancedProperty -Name "iSCSI-NIC-B" -RegistryKeyword "*JumboPacket" -RegistryValue 9014

Set-NetAdapter -Name "iSCSI-NIC-A" -VlanID 500
Set-NetAdapter -Name "iSCSI-NIC-B" -VlanID 600

3.4 静的ルートを構成する

両方の iSCSI NIC 上の各ターゲット ポータルに永続的な /32 ルートを追加します。

New-NetRoute -DestinationPrefix <TargetPortalIP>/32 -InterfaceAlias "iSCSI-NIC-A" -NextHop <GatewayIP> -PolicyStore PersistentStore
New-NetRoute -DestinationPrefix <TargetPortalIP>/32 -InterfaceAlias "iSCSI-NIC-B" -NextHop <GatewayIP> -PolicyStore PersistentStore

3.5 サービス品質 (QoS) 設定を構成する (省略可能)

iSCSI トラフィックがイーサネット インフラストラクチャを他のトラフィックと共有する場合は、優先度 4 で iSCSI にタグを付け、拡張伝送選択 (ETS) を使用して帯域幅を予約します。

New-NetQosPolicy -Name "iSCSI" -IPDstPortStart 3260 -IPDstPortEnd 3260 -IPProtocol TCP -PriorityValue8021Action 4
New-NetQosPolicy -Name "CSV-LiveMigration" -Cluster -PriorityValue8021Action 3
New-NetQosPolicy -Name "ClusterHeartbeat" -IPProtocol UDP -IPDstPortStart 3343 -IPDstPortEnd 3343 -PriorityValue8021Action 7

手順 4: ストレージ アレイを構成し、LUN を提示する

Azure Local ノードではなく、ストレージ アレイに対してこの手順を実行します。 手順はベンダー固有です。 詳細については、「 ベンダー配列側の構成」を参照してください。

手順 5 に進む前に、ストレージ管理者に次の項目を確認します。

Item FC iSCSI
作成され、すべてのクラスターノードにマップされたLUN
手順 1d のイニシエーター ID を使用して作成されたホスト エントリ
HBA とアレイ ターゲット ポートの間で構成された FC ゾーニング
利用可能な iSCSI ターゲットポータルの IP アドレスとターゲット IQN
各ノードは、ポート 3260 上のすべてのターゲット ポータルに到達できます
すべてのノードに表示される一貫性のある LUN ID

手順 5: iSCSI ターゲットに接続する (iSCSI のみ)

FC LUN は、ゾーン化と LUN マスクの後に自動的に表示されます。

Important

  • FC のみのデプロイの場合は、この手順をスキップします。
  • iSCSI の場合は、すべてのAzure Local ノードでこれらのコマンドを実行します。
  1. 両方の iSCSI NIC から各ターゲット ポータルを検出し、永続化とマルチパスを有効にして各ターゲットに接続します。

    # Discover target portals
    New-IscsiTargetPortal -TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-A>
    New-IscsiTargetPortal -TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-B>
    
    # Connect with multipath and persistence
    Connect-IscsiTarget -NodeAddress "iqn.yyyy-mm.com.vendor:target-name" `-TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-A> `-IsPersistent $true -IsMultipathEnabled $true
    Connect-IscsiTarget -NodeAddress "iqn.yyyy-mm.com.vendor:target-name" `-TargetPortalAddress <TargetPortalIP-A> -InitiatorPortalAddress <InitiatorPortalIP-B> `
    -IsPersistent $true -IsMultipathEnabled $true
    
  2. 配列が提供するターゲット ポータル IP ごとに、 New-IscsiTargetPortalConnect-IscsiTargetを実行します。

手順 6: 構成を確認して再起動する

mpclaim -s -d
Get-MSDSMSupportedHw

SAN 構成に進む前に、各ノードをローリング方式で再起動して MPIO の変更を適用します。

手順 7: SAN ディスクを確認する

Important

すべてのAzure Local ノードでこれらのコマンドを実行します。

UniqueId値を比較します。 すべてのノードに同じ LUN のセットが表示されている必要があります。 ディスク番号はノードによって異なる場合があります。 権限のある識別子として UniqueId を使用します。

# Rescan storage
Update-HostStorageCache

# List SAN LUNs — appear with BusType 'Fibre Channel' or 'iSCSI'
Get-Disk | Where-Object { $_.BusType -in 'Fibre Channel','iSCSI' } | Select-Object Number, FriendlyName, Size, OperationalStatus, PartitionStyle, BusType | Format-Table -AutoSize

# Verify MPIO path count per disk
mpclaim -s -d

# Verify disk UniqueId matches across all nodes
Get-Disk | Where-Object { $_.BusType -in 'Fibre Channel','iSCSI' } | Select-Object Number, SerialNumber, UniqueId | Format-Table -AutoSize

手順 8: ディスクを初期化してフォーマットする

Important

これらのコマンドは、単一のAzure Local ノードでのみ実行します。

SAN ボリュームを GUID パーティション テーブル (GPT) として初期化し、NTFS でフォーマットします (CSV には 64K の割り当て単位を使用します)。 クラスター共有ボリューム (CSV) としてディスクを追加した後、クラスターはマルチノード アクセスを管理します。

$sanDisks = Get-Disk | Where-Object {
    $_.BusType -in 'Fibre Channel','iSCSI' -and $_.PartitionStyle -eq 'RAW'
}
foreach ($disk in $sanDisks) {
    # Bring disk online — SAN LUNs are Offline by default (OfflineShared policy)
    Set-Disk -Number $disk.Number -IsOffline $false
    Set-Disk -Number $disk.Number -IsReadOnly $false
    Initialize-Disk -Number $disk.Number -PartitionStyle GPT
    New-Partition -DiskNumber $disk.Number -UseMaximumSize -AssignDriveLetter | Format-Volume -FileSystem NTFS -AllocationUnitSize 65536 -NewFileSystemLabel "SAN-LUN-$($disk.Number)" -Confirm:$false
}

手順 9: クラスターにディスクを追加し、CSV を作成する

Important

すべての SAN ディスクが表示され、検証されたら、すべてのAzure Local ノードでこれらのコマンドを実行します。

SAN ディスクをフェールオーバー クラスターに追加し、ディスクを CSV に変換します。

# Add SAN disks to cluster
Get-ClusterAvailableDisk | Add-ClusterDisk

# Convert to Cluster Shared Volumes
Get-ClusterResource | Where-Object {$_.ResourceType -eq 'Physical Disk' -and $_.OwnerGroup -eq 'Available Storage'} | Add-ClusterSharedVolume

# Verify CSVs
Get-ClusterSharedVolume | Select-Object Name, State, OwnerNode | Format-Table -AutoSize

# Verify CSV paths
Get-ClusterSharedVolume | Select-Object -ExpandProperty SharedVolumeInfo | Select-Object FriendlyVolumeName

手順 10: Azure ポータルでストレージ パスを追加する

各 SAN CSV パスを Azure ポータルに登録して、SAN ボリュームでの仮想マシン (VM) の配置を有効にします。 SAN CSV パスのみを登録します。 Azure Localは、InfrastructureUserStorage などの記憶域スペース ダイレクト ボリュームを自動的に管理します。

  1. Azure ポータルにサインインし、Azure Local クラスター リソースに移動します。
  2. 設定>ストレージ パスに移動します。
  3. [ + ストレージ パスの追加] を選択します。
  4. CSV パス (例: C:\ClusterStorage\Volume1) を入力します。
  5. 確認して保存します。
  6. SAN CSV ごとに繰り返します。

ベンダー配列側の構成

Azure Localでは、次のベンダーおよびストレージ プラットフォームとの外部 SAN 統合がサポートされています。 この記事の対応するセクションには、ベンダー固有の配列側の構成ガイダンスが含まれています。

売り手 サポートされているモデル FC iSCSI
Dell PowerStore T/Q (OS 3.0 以降)
Everpure FlashArray X、C、XL、E、RC20
Hitachi VSP One Block、VSP 5x00、VSP Exx90、VSP Fxx0、VSP Gxx0
HPE Alletra MP 10000
NetApp AFF、ASA、ONTAP プラットフォーム
Lenovo ThinkSystem DS/DM/DG シリーズ

サポートされているモデルとファームウェアの要件の完全な一覧については、Azure Local のSupported SAN ソリューションを参照してください。

ストレージ管理者に要求する内容

ホスト側の構成を開始する前に、ストレージ管理者に次の情報を提供します。

  • 手順 1d で収集したイニシエーター識別子 : イニシエーター識別子 (FC の場合は WWPN、iSCSI の場合は IQN) を収集します。
  • LUN の必要な数とサイズ。
  • 配列上のホスト登録用のクラスター ノード名。

ストレージ管理者は、次の情報を提供する必要があります。

  • FCの場合: ゾーニング設定の対象WWPN。
  • iSCSI の場合: ターゲット ポータルの IP アドレスとターゲット IQN。
  • LUN が一貫性のある LUN ID を持つすべてのクラスター ノードにマップされていることを確認します。

Troubleshooting

SAN ストレージをAzure Localと統合するときの一般的な問題を特定して解決するには、次のガイダンスを使用します。

ディスクがクラスター ノードに表示されない

SAN ディスクが 1 つ以上のクラスター ノードに表示されない場合は、記憶域アレイが LUN をすべてのクラスター ノード イニシエーターにマップしていることを確認します。 (FC の場合は WWPN、iSCSI の場合は IQN)。

各ノードのストレージを再スキャンします。

Update-HostStorageCache

次の構成設定も確認します。

  • FC ゾーニングまたは iSCSI ターゲット ポータルの接続を確認します。
  • MPIO が有効になっており、正しいベンダー ID と製品 ID が登録されていることを確認します。
Get-MSDSMSupportedHw

MPIO がディスクを正しく要求しない

登録済みのベンダー ID と製品 ID がストレージ アレイの構成と一致することを確認します。

Get-MSDSMSupportedHw

iSCSI デプロイの場合は、MPIO の自動要求が有効になっていることを確認します。

Get-MSDSMAutomaticClaimSettings

LUN が既に表示された後にハードウェア ID を追加する場合は、MPIO がディスクを再列挙できるようにノードを再起動します。

mpclaim -s -d

Test-Cluster 中にクラスターの検証が失敗する

ストレージ検証を含むクラスター検証テストを実行し、生成されたレポートを確認します。

Test-Cluster -Include Storage

次の要件を確認します。

  • すべてのクラスター ノードは、同じ共有ディスクのセットを検出します。
  • LUN ID は、すべてのノードで一貫しています。
  • 記憶域アレイでは、SCSI-3 永続的予約 (PR) がサポートされています。

CSV としてディスクを追加できない

ディスクを CSV に変換する前に、クラスター リソースとしてフェールオーバー クラスターにディスクを追加します。

ディスクがオンラインで、NTFS ファイル システムでフォーマットされていることを確認します。

Get-Disk | Select-Object Number, OperationalStatus, PartitionStyle
Get-Volume

ディスクがクラスター リソースとして使用できることを確認します。

Get-ClusterResource | Where-Object ResourceType -eq 'Physical Disk'

Azure ポータルでストレージ パスの作成が失敗する

Azure ポータルでストレージ パスの作成が失敗した場合は、次の条件を確認します。

  • CSV はオンラインであり、すべてのクラスター ノードからアクセスできます
  • CSV パスでは、次のような正しい形式が使用されます。 C:\ClusterStorage\Volume1
  • Azure ポータルで Azure Local クラスターが登録され、正常である

次のステップ