FSx for NetApp ONTAP に Windows Server で iSCSI 接続してみた

FSx for NetApp ONTAP に Windows Server で iSCSI 接続してみた

Clock Icon2023.09.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コーヒーが好きな emi です。

FSx for NetApp ONTAP に Windows Server で iSCSI 接続をしてみました。事前に FSx for NetApp ONTAP に SSH 接続し、LUN やイニシエーターグループを作成する必要があります。

FSx for NetApp ONTAP のコンポーネント(ファイルシステム、SVM、ボリューム等)については以下のブログを参照ください。

用語確認

LUN(Logical Unit Number)

LUN(Logical Unit Number) は論理ユニット番号とも呼ばれ、一台のストレージ機器の中に複数の装置が存在する場合それぞれを識別する番号のことです。

ボリュームの中に複数の LUN を作成することができます。

FSx for NetApp ONTAP で Windows Server に iSCSI 接続する前に、FSx for NetApp ONTAP 側で LUN とイニシエーターグループを作成する必要があります。

イニシエーターグループ

イニシエータグループとは、LUN とマッピングすることでどのイニシエーター (クライアント) が LUN にアクセスできるかをコントロールするものです。

iSCSI イニシエーター

iSCSI イニシエーターとは、ネットワーク上の iSCSI ストレージにアクセスするための制御ソフトなどのことを言います。
Windows Server 側であらかじめ iSCSI を有効化し、イニシエーター名を取得しておきます。このイニシエーター名を使って、イニシエーターグループを作成します。

検証構成

以下のような構成で検証します。

手順

VPC などのネットワークリソース、セキュリテイグループ、マウント対象の EC2(Windows Server)、ONTAP CLI 実施用の Linux インスタンス、FSx for NetApp ONTAP ファイルシステムは事前準備で作成済みの前提とします。
以下ドキュメントの手順通りに記載します。

  • ①FSx for NetApp ONTAP ファイルシステムでの操作
    • iSCSI LUN の作成
  • ②Windows Server での操作
    • iSCSI の有効化
    • Windows インスタンスのイニシエーター名を取得
    • マルチパス I/O の設定
  • ③FSx for NetApp ONTAP ファイルシステムでの操作
    • イニシエーターグループの作成
    • イニシエーターグループに LUN のマッピング
    • iSCSI IP アドレスの取得
  • ④Windows Server での操作
    • iSCSI LUN のマウント

事前準備

VPC などのネットワークリソース、セキュリテイグループ、マウント対象の EC2(Windows Server)、ONTAP CLI 実施用の Linux インスタンス、FSx for NetApp ONTAP ファイルシステムは事前に作成しておいてください。

VPC

以下画像のように作成しました。

セキュリテイグループ

EC2 用セキュリティグループと FSx for NetApp ONTAP のファイルシステム用セキュリティグループを二つ作成します。

  • EC2 用セキュリティグループ(emiki_test_fsxn-ec2-sg)
    • 今回は ONTAP CLI 実行用の Linux と、iSCSI マウント対象の Windows Server 両方に同じセキュリテイグループをアタッチしています。
    • セッションマネージャー利用のためアウトバウンド TCP 443 が許可されていればよいです。
許可 タイプ プロトコル ポート範囲 ソース 説明
アウトバウンド すべてのトラフィック すべて すべて 0.0.0.0/0 default
  • FSx for NetApp ONTAP のファイルシステム用セキュリティグループ(emiki_test_fsxn-fs-sg)
    • ファイルシステムのクラスター間エンドポイントに付与するセキュリテイグループです。
    • 本検証で Linux からの SSH 接続と Windows Server での iSCSI マウントを実施するため、EC2 からの SSH 通信と iSCSI 通信が許可されていればよいです。
許可 タイプ プロトコル ポート範囲 ソース 説明
インバウンド カスタム TCP TCP 3260 EC2 用セキュリティグループ(emiki_test_fsxn-ec2-sg) from ec2_iSCSI
インバウンド SSH TCP 22 EC2 用セキュリティグループ(emiki_test_fsxn-ec2-sg) from ec2_SSH
アウトバウンド すべてのトラフィック すべて すべて 0.0.0.0/0 default

EC2

ONTAP CLI 実施用の Linux インスタンスの作成については以下が参考になります。今回は以下記事と同様 RHEL9 にセッションマネージャーで接続しています。

マウント対象の EC2(Windows Server)の作成については以下が参考になります。本検証では以下の記事のバージョンと同様 Windows Server 2019 を構築し日本語化しています。

FSx for NetApp ONTAP

FSx for NetApp ONTAP の作成方法は以下のブログをご参照ください。本検証ではシングル AZ 構成で作成しています。

参考に、作成した FSx for NetApp ONTAP の情報を AWS CLI で出力したものを以下に記載します。

ファイルシステムの情報

describe-file-systems

aws fsx describe-file-systems \
  --file-system-ids fs-040946a2237e5b165
実行結果(クリックで展開)
[cloudshell-user@ip-10-2-59-122 ~]$ aws fsx describe-file-systems \
>   --file-system-ids fs-040946a2237e5b165
{
    "FileSystems": [
        {
            "OwnerId": "123456789012",
            "CreationTime": "2023-09-06T10:15:18.979000+00:00",
            "FileSystemId": "fs-040946a2237e5b165",
            "FileSystemType": "ONTAP",
            "Lifecycle": "AVAILABLE",
            "StorageCapacity": 1024,
            "StorageType": "SSD",
            "VpcId": "vpc-052c7c6fe511c6f47",
            "SubnetIds": [
                "subnet-07f250d54649d0797"
            ],
            "NetworkInterfaceIds": [
                "eni-0f3283bf3c5be2efd",
                "eni-06850514f596f6237"
            ],
            "KmsKeyId": "arn:aws:kms:ap-northeast-1:123456789012:key/7bc6ef5a-a166-4293-9f1d-707f402b0ca5",
            "ResourceARN": "arn:aws:fsx:ap-northeast-1:123456789012:file-system/fs-040946a2237e5b165",
            "Tags": [
                {
                    "Key": "Name",
                    "Value": "emiki_fsxn_singleAZ"
                }
            ],
            "OntapConfiguration": {
                "DeploymentType": "SINGLE_AZ_1",
                "Endpoints": {
                    "Intercluster": {
                        "DNSName": "intercluster.fs-040946a2237e5b165.fsx.ap-northeast-1.amazonaws.com",
                        "IpAddresses": [
                            "10.0.10.103",
                            "10.0.10.10"
                        ]
                    },
                    "Management": {
                        "DNSName": "management.fs-040946a2237e5b165.fsx.ap-northeast-1.amazonaws.com",
                        "IpAddresses": [
                            "10.0.10.45"
                        ]
                    }
                },
                "DiskIopsConfiguration": {
                    "Mode": "AUTOMATIC",
                    "Iops": 3072
                },
                "PreferredSubnetId": "subnet-07f250d54649d0797",
                "ThroughputCapacity": 128,
                "WeeklyMaintenanceStartTime": "5:16:00"
            }
        }
    ]
}
[cloudshell-user@ip-10-2-59-122 ~]$

SVM の情報

describe-storage-virtual-machines

aws fsx describe-storage-virtual-machines \
  --storage-virtual-machine-ids svm-03e7f9e94f3d79f56
実行結果(クリックで展開)
[cloudshell-user@ip-10-2-59-122 ~]$ aws fsx describe-storage-virtual-machines \
>   --storage-virtual-machine-ids svm-03e7f9e94f3d79f56
{
    "StorageVirtualMachines": [
        {
            "CreationTime": "2023-09-06T09:53:45.073000+00:00",
            "Endpoints": {
                "Iscsi": {
                    "DNSName": "iscsi.svm-03e7f9e94f3d79f56.fs-040946a2237e5b165.fsx.ap-northeast-1.amazonaws.com",
                    "IpAddresses": [
                        "10.0.10.102",
                        "10.0.10.28"
                    ]
                },
                "Management": {
                    "DNSName": "svm-03e7f9e94f3d79f56.fs-040946a2237e5b165.fsx.ap-northeast-1.amazonaws.com",
                    "IpAddresses": [
                        "10.0.10.192"
                    ]
                },
                "Nfs": {
                    "DNSName": "svm-03e7f9e94f3d79f56.fs-040946a2237e5b165.fsx.ap-northeast-1.amazonaws.com",
                    "IpAddresses": [
                        "10.0.10.192"
                    ]
                }
            },
            "FileSystemId": "fs-040946a2237e5b165",
            "Lifecycle": "CREATED",
            "Name": "emiki_fsxn_singleAZ_svm",
            "ResourceARN": "arn:aws:fsx:ap-northeast-1:123456789012:storage-virtual-machine/fs-040946a2237e5b165/svm-03e7f9e94f3d79f56",
            "StorageVirtualMachineId": "svm-03e7f9e94f3d79f56",
            "Subtype": "DEFAULT",
            "UUID": "8195f244-4c9e-11ee-bd3e-e1bf43f21bb6"
        }
    ]
}
[cloudshell-user@ip-10-2-59-122 ~]$

作成したボリュームの情報

describe-volumes

aws fsx describe-volumes \
  --volume-ids fsvol-070542f4d78d48351
実行結果(クリックで展開)
[cloudshell-user@ip-10-2-59-122 ~]$ aws fsx describe-volumes \
>   --volume-ids fsvol-070542f4d78d48351
{
    "Volumes": [
        {
            "CreationTime": "2023-09-06T09:53:45.844000+00:00",
            "FileSystemId": "fs-040946a2237e5b165",
            "Lifecycle": "CREATED",
            "Name": "emiki_fsxn_singleAZ_vol",
            "OntapConfiguration": {
                "FlexCacheEndpointType": "NONE",
                "JunctionPath": "/emiki_fsxn_singleAZ_jpath",
                "SecurityStyle": "NTFS",
                "SizeInMegabytes": 10240,
                "StorageEfficiencyEnabled": false,
                "StorageVirtualMachineId": "svm-03e7f9e94f3d79f56",
                "StorageVirtualMachineRoot": false,
                "TieringPolicy": {
                    "Name": "NONE"
                },
                "UUID": "b16f253d-4c9e-11ee-bd3e-e1bf43f21bb6",
                "OntapVolumeType": "RW",
                "SnapshotPolicy": "none",
                "CopyTagsToBackups": false
            },
            "ResourceARN": "arn:aws:fsx:ap-northeast-1:123456789012:volume/fs-040946a2237e5b165/fsvol-070542f4d78d48351",
            "VolumeId": "fsvol-070542f4d78d48351",
            "VolumeType": "ONTAP"
        }
    ]
}
[cloudshell-user@ip-10-2-59-122 ~]$ 

ルートボリュームの情報

実行結果(クリックで展開)
[cloudshell-user@ip-10-2-59-122 ~]$ aws fsx describe-volumes \
>   --volume-ids fsvol-084dd9d6fa03b9ca8
{
    "Volumes": [
        {
            "CreationTime": "2023-09-06T10:16:56+00:00",
            "FileSystemId": "fs-040946a2237e5b165",
            "Lifecycle": "CREATED",
            "Name": "emiki_fsxn_singleAZ_svm_root",
            "OntapConfiguration": {
                "FlexCacheEndpointType": "NONE",
                "JunctionPath": "/",
                "SecurityStyle": "NTFS",
                "SizeInMegabytes": 1024,
                "StorageEfficiencyEnabled": false,
                "StorageVirtualMachineId": "svm-03e7f9e94f3d79f56",
                "StorageVirtualMachineRoot": true,
                "TieringPolicy": {
                    "Name": "NONE"
                },
                "UUID": "81e370dc-4c9e-11ee-b8df-33c8a84591ac",
                "OntapVolumeType": "RW",
                "SnapshotPolicy": "default",
                "CopyTagsToBackups": false
            },
            "ResourceARN": "arn:aws:fsx:ap-northeast-1:123456789012:volume/fs-040946a2237e5b165/fsvol-084dd9d6fa03b9ca8",
            "VolumeId": "fsvol-084dd9d6fa03b9ca8",
            "VolumeType": "ONTAP"
        }
    ]
}
[cloudshell-user@ip-10-2-59-122 ~]$ 

①-1. FSx for NetApp ONTAP:LUN の作成

まず FSx for NetApp ONTAP ファイスシステムに SSH でログインし、LUN の作成を行っていきます。

ONTAP CLI 実施用の Linux インスタンスに接続し、以下のコマンドで SSH ログインします。

  • 構文
    ssh fsxadmin@your_management_endpoint_ip
    

  • your_management_endpoint_ip(ファイルシステムの管理エンドポイント IP):10.0.10.45

  • コマンド例

    ssh fsxadmin@10.0.10.45
    

▼実行結果

sh-5.1$ ssh fsxadmin@10.0.10.45
The authenticity of host '10.0.10.45 (10.0.10.45)' can't be established.
ED25519 key fingerprint is SHA256:nlSP6KmwItd5lqdaDY+jngMdAuOpcF2O6XJHtUmr2c0.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.10.45' (ED25519) to the list of known hosts.
(fsxadmin@10.0.10.45) Password:

This is your first recorded login.
FsxId040946a2237e5b165::>

ここではファイルシステムに初めて SSH 接続したので、接続先ファイルシステムの公開鍵フィンガープリントが信頼できるものかどうかを確認するように求められました。yes を入力して進めてからパスワードを入力し、SSH 接続ができました。

LUN を作成するにあたり、現在のボリュームに割り当てられている上限一杯のサイズで作成しようと思います。LUN に設定可能な最大サイズを確認します。

lun maxsize

▼実行結果

FsxId040946a2237e5b165::> lun maxsize
                                                 Without   With SS   Complete
Vserver    Volume       Qtree        OS Type  SS Reserve   Reserve SS Reserve
---------- ------------ ------------ -------- ---------- --------- ----------
emiki_fsxn_singleAZ_svm
           emiki_fsxn_singleAZ_vol
                        ""           aix          9.46GB    9.46GB     4.73GB
                                     hpux         9.46GB    9.46GB     4.73GB
                                     hyper_v      9.46GB    9.46GB     4.73GB
                                     linux        9.46GB    9.46GB     4.73GB
                                     netware      9.46GB    9.46GB     4.73GB
                                     openvms      9.46GB    9.46GB     4.73GB
                                     solaris      9.46GB    9.46GB     4.73GB
                                     solaris_efi  9.46GB    9.46GB     4.73GB
                                     vmware       9.46GB    9.46GB     4.73GB
                                     windows      9.46GB    9.46GB     4.73GB
                                     windows_2008 9.46GB    9.46GB     4.73GB
                                     windows_gpt  9.46GB    9.46GB     4.73GB
                                     xen          9.46GB    9.46GB     4.73GB
13 entries were displayed.

FsxId040946a2237e5b165::>

実行結果より、9.46GiB まで LUN に割り当てられることが分かりました。

lun create コマンドを使用して LUN を作成します。

  • 構文
    lun create -vserver svm_name -path /vol/vol_name/lun_name -size size -ostype ostype -space-allocation enabled
    

  • svm_name(SVM の名前):emiki_test_fsxn_svm

  • vol_name(ボリュームの名前):emiki_test_fsxn_vol
  • lun_name(LUN の名前を指定):emiki_test_fsxn_lun
  • size(バイト単位のサイズ):10157372006(9.46GiB)
  • ostype(マウント対象の OS の種類):windows_2008

  • コマンド例

    lun create -vserver emiki_test_fsxn_svm -path /vol/emiki_test_fsxn_vol/emiki_test_fsxn_lun -size 10157372006 -ostype windows_2008 -space-allocation enabled
    

▼実行結果

FsxId040946a2237e5b165::> lun create -vserver emiki_fsxn_singleAZ_svm -path /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun -size 10157372006 -ostype windows_2008 -space-allocation enabled

Created a LUN of size 9.5g (10157372416)

FsxId040946a2237e5b165::>

ちなみに、LUN に割り当てられるより大きなサイズを指定すると LUN の作成に失敗します。

失敗例(クリックで展開)

size(バイト単位のサイズ):10737418240(10GiB) で LUN 作成コマンドを実行してみます。

lun create -vserver emiki_test_fsxn_svm -path /vol/emiki_test_fsxn_vol/emiki_test_fsxn_lun -size 10737418240 -ostype windows_2008 -space-allocation enabled

▼実行結果

FsxId040946a2237e5b165::> lun create -vserver emiki_fsxn_singleAZ_svm -path /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun -size 10737418240 -ostype windows_2008 -space-allocation enabled

Error: command failed: No space left on device

FsxId040946a2237e5b165::>

「エラー:コマンドに失敗しました: デバイスに空き容量がありません」というエラーが表示されています。
===失敗例ここまで===

LUN が作成され、オンラインになっていることを確認します。

lun show

▼実行結果

FsxId040946a2237e5b165::> lun show
Vserver   Path                            State   Mapped   Type        Size
--------- ------------------------------- ------- -------- -------- --------
emiki_fsxn_singleAZ_svm
          /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun
                                          online  unmapped windows_2008
                                                                      9.46GB

FsxId040946a2237e5b165::>

②. Windows Server:iSCSI の有効化、Windows インスタンスのイニシエーター名の取得、マルチパス I/O の設定

こちらのブログの手順を実施ください。

③-1. FSx for NetApp ONTAP:イニシエーターグループの作成

FSx for NetApp ONTAP ファイルシステムに SSH 接続しておきます。コマンドはファイルシステムに接続した状態で実行します。

NetApp ONTAP CLI lun igroup create を使用して、イニシエーターグループ(igroup)を作成します。

イニシエータグループは iSCSI LUN にマップし、どのイニシエーター (クライアント) が LUN にアクセスできるかをコントロールするものです。

  • 構文
    lun igroup create -vserver svm_name -igroup igroup_name -initiator host_initiator_name -protocol iscsi -ostype windows
    

  • igroup_name(イニシエーターグループ名を指定):emiki_test_fsxn_igroup

  • host_initiator_name(Windows Server で取得したイニシエーター名):iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g

  • コマンド例

    lun igroup create -vserver emiki_test_fsxn_svm -igroup emiki_test_fsxn_igroup -initiator iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g -protocol iscsi -ostype windows
    

▼実行結果

FsxId040946a2237e5b165::> lun igroup create -vserver emiki_fsxn_singleAZ_svm -igroup emiki_fsxn_singleAZ_igroup -initiator iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g -protocol iscsi -ostype windows

FsxId040946a2237e5b165::>

次のコマンドを使用して、igroup が正常に作成されたことを確認します。

lun igroup show

▼実行結果

FsxId040946a2237e5b165::> lun igroup show
Vserver   Igroup       Protocol OS Type  Initiators
--------- ------------ -------- -------- ------------------------------------
emiki_fsxn_singleAZ_svm
          emiki_fsxn_singleAZ_igroup
                       iscsi    windows  iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g

FsxId040946a2237e5b165::>

③-2. FSx for NetApp ONTAP:イニシエーターグループへ LUN のマッピング

作成したイニシエーターグループ(igroup)と LUN の紐づけ(マッピング)を作成します。

  • 構文
    lun mapping create -vserver svm_name -path /vol/vol_name/lun_name -igroup igroup_name -lun-id lun_id
    

  • lun_id(LUN ID):01

  • コマンド例

    lun mapping create -vserver emiki_test_fsxn_svm -path /vol/emiki_test_fsxn_vol/emiki_test_fsxn_lun -igroup emiki_test_fsxn_igroup -lun-id 01
    

▼実行結果

FsxId040946a2237e5b165::> lun mapping create -vserver emiki_fsxn_singleAZ_svm -path /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun -igroup emiki_fsxn_singleAZ_igroup -lun-id 01

FsxId040946a2237e5b165::>

次のコマンドを使用して、LUN がイニシエーターグループにマッピングされていることを確認します。

  • 構文
    lun show -path /vol/vol_name/lun_name 
    

  • コマンド例

    lun show -path /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun
    

▼実行結果

FsxId040946a2237e5b165::> lun show -path /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun
Vserver   Path                            State   Mapped   Type        Size
--------- ------------------------------- ------- -------- -------- --------
emiki_fsxn_singleAZ_svm
          /vol/emiki_fsxn_singleAZ_vol/emiki_fsxn_singleAZ_lun
                                          online  mapped   windows_2008
                                                                      9.46GB

FsxId040946a2237e5b165::>

③-3. FSx for NetApp ONTAP:iSCSI IP アドレスの取得

次のコマンドを使用して、SVM の二つの iSCSI エンドポイント IP アドレス(iscsi_1、iscsi_2)を取得します。

  • 構文
    network interface show -vserver svm_name
    

  • コマンド例

    network interface show -vserver emiki_test_fsxn_svm
    

▼実行結果

network interface show -vserver emiki_fsxn_singleAZ_svm

FsxId040946a2237e5b165::> network interface show -vserver emiki_fsxn_singleAZ_svm
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
emiki_fsxn_singleAZ_svm
            iscsi_1      up/up    10.0.10.102/24     FsxId040946a2237e5b165-01
                                                                   e0e     true
            iscsi_2      up/up    10.0.10.28/24      FsxId040946a2237e5b165-02
                                                                   e0e     true
            nfs_smb_management_1
                         up/up    10.0.10.192/24     FsxId040946a2237e5b165-01
                                                                   e0e     true
3 entries were displayed.

FsxId040946a2237e5b165::>

以下二つの iSCSI エンドポイント IP が取得できました。

  • iscsi_1:10.0.10.102
  • iscsi_2:10.0.10.28

ちなみに、FSx マネジメントコンソールでストレージ仮想マシンのエンドポイントタブからも確認できます。

④. Windows Server:作成した LUN をマウント

Windows Server に作成した LUN を iSCSI マウントします。

以下の PowerShell スクリプトを Windows Server 上で実行し、作成した LUN をマウントします。

#iSCSI IP addresses for Preferred and Standby subnets 
$TargetPortalAddresses = @("iscsi_1","iscsi_2") 
                                    
#iSCSI Initator IP Address (Local node IP address) 
$LocaliSCSIAddress = "ec2_ip" 
                                    
#Connect to FSx for NetApp ONTAP file system 
Foreach ($TargetPortalAddress in $TargetPortalAddresses) { 
New-IscsiTargetPortal -TargetPortalAddress $TargetPortalAddress -TargetPortalPortNumber 3260 -InitiatorPortalAddress $LocaliSCSIAddress 
} 
                                    
#Add MPIO support for iSCSI 
New-MSDSMSupportedHW -VendorId MSFT2005 -ProductId iSCSIBusType_0x9 
                                    
#Establish iSCSI connection 
1..8 | %{Foreach($TargetPortalAddress in $TargetPortalAddresses)
{Get-IscsiTarget | Connect-IscsiTarget -IsMultipathEnabled $true -TargetPortalAddress $TargetPortalAddress -InitiatorPortalAddress $LocaliSCSIAddress -IsPersistent $true}}
                                    
#Set the MPIO Policy to Round Robin 
Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy RR 

上記スクリプトで、以下のように値を置き換えてください。

  • iscsi_1(前の手順で取得した iSCSI IP①):10.0.10.102
  • iscsi_2(前の手順で取得した iSCSI IP②):10.0.10.28
  • ec2_ip(マウントする Windows Server のプライベート IP):10.0.10.92

上記スクリプトでは以下の操作をおこなっています。

  • 各ファイルシステムの iSCSI インターフェイスに接続
  • iSCSI 用の Multipath-IO(MPIO)を追加および設定
  • iSCSI 接続ごとに 8 つのセッションを確立
    • これにより、クライアントは最大 40 Gb/秒 (5,000 MB/秒) の集約スループットを iSCSI LUN に駆動できます(各セッションのスループットは最大 625 MB/秒)。
    • ONTAP スループットキャパシティで最高レベルである 4,000 MB/秒のスループット容量をフルに駆動できます。
    • また、#Establish iSCSI connection ステップのスクリプトの for-loop を、1..8 から別の上限に変更することで、セッション数を、より高いまたはより低いセッション数に変更することもできます。

スクリプトについての詳細は Windows クライアントに iSCSI LUN をマウントします を参照ください。

===追記===
後で気づいたことですが、パフォーマンスの詳細 を見ると、読み込みスループットで 4,096 MBps を設定可能なのは以下のリージョンのみなので、東京リージョンではまだ読み込みスループットは 2,048 MBps までしか設定できないようです。

  • 米国東部 (オハイオ)
  • 米国東部 (バージニア北部)
  • 米国西部 (オレゴン)
  • 欧州 (アイルランド)

===追記ここまで===

私は Windows Server に Systems Manager フリートマネージャーで RDP 接続し、Windows Server の C ドライブに work フォルダを新規作成しました。 work フォルダ内に新規テキストファイルを作成し、スクリプトをコピーして、ファイル名は「iSCSI_mount.ps1」として保存しました。
ブラウザでクリップボードのアクセスを許可しておけば、スクリプトを Windows Server 上にペーストできます。

ブラウザでクリップボードのアクセスを許可する方法は [アップデート] WindowsインスタンスにAWS Systems Manager Fleet ManagerからRDP接続できるようになりました|DevelopiesIO Fleet ManagerからRDP接続 を参照ください。

C:\work で Shift を押したまま右クリックすると「PowerShell ウィンドウをここで開く」というメニューが出てくるので、クリックします。

C:\work で PowerShell が開きます。

ps1 ファイルを実行します。

.\iSCSI_mount.ps1
実行結果(クリックで展開)
PS C:\work> .\iSCSI_mount.ps1


InitiatorInstanceName  : ROOT\ISCSIPRT\0000_0
InitiatorPortalAddress : 10.0.10.92
IsDataDigest           : False
IsHeaderDigest         : False
TargetPortalAddress    : 10.0.10.140
TargetPortalPortNumber : 3260
PSComputerName         :

InitiatorInstanceName  : ROOT\ISCSIPRT\0000_0
InitiatorPortalAddress : 10.0.10.92
IsDataDigest           : False
IsHeaderDigest         : False
TargetPortalAddress    : 10.0.10.192
TargetPortalPortNumber : 3260
PSComputerName         :

ProductId      : iSCSIBusType_0x9
VendorId       : MSFT2005
PSComputerName :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370000
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000003
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0100
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370002
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000004
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0100
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370004
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000005
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0200
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370006
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000006
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0200
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370008
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000007
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0300
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 40000137000a
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000008
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0300
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 40000137000c
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000009
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0400
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 40000137000e
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-400001370000000a
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0400
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370010
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-400001370000000b
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0500
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370012
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-400001370000000c
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0500
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370014
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-400001370000000d
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0600
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370016
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-400001370000000e
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0600
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 400001370018
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-400001370000000f
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0700
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 40000137001a
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000010
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0700
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 40000137001c
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000011
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0800
PSComputerName          :

AuthenticationType      : NONE
InitiatorInstanceName   : ROOT\ISCSIPRT\0000_0
InitiatorNodeAddress    : iqn.1991-05.com.microsoft:ec2amaz-vtgtk0g
InitiatorPortalAddress  : 10.0.10.92
InitiatorSideIdentifier : 40000137001e
IsConnected             : True
IsDataDigest            : False
IsDiscovered            : True
IsHeaderDigest          : False
IsPersistent            : True
NumberOfConnections     : 1
SessionIdentifier       : ffff9685e16b1010-4000013700000012
TargetNodeAddress       : iqn.1992-08.com.netapp:sn.9fc4c3dd4b1911eeadaecd5d675fa738:vs.3
TargetSideIdentifier    : 0800
PSComputerName          :



PS C:\work>

Windows Server:マウント後の iSCSI イニシエーターのプロパティ確認

スクリプトの実行が終わったら、iSCSI イニシエーターのプロパティを確認してみましょう。
[スタート] - [Windows 管理ツール] - [iSCSI イニシエーター] をクリックします。

ターゲットタブでは、検出されたターゲットの状態が「接続完了」となっていることが分かります。
探索タブにもターゲットが表示されるようになりました。

お気に入りのターゲットタブにも表示されています。

Windows Server:ディスクのフォーマット

スクリプトを実行しただけでは、まだディスクとして使うことができません。ディスクのフォーマット操作が必要です。
[スタート] - [Windows 管理ツール] - [コンピューターの管理] をクリックします。

コンピューターの管理画面が開いたら「ディスクの管理」を開きます。
iSCSI マウントしたディスクがオフライン状態で見えているので、「オフライン」と書いてある枠の中で右クリックし「オンライン」をクリックします。

すると「初期化されていません」という状態になります。「初期化されていません」と書いてある枠の中で右クリックし「ディスクの初期化」をクリックします。

ディスクの初期化画面が開きます。パーティションスタイルでは「GPT」を選択して「OK」をクリックします。

ディスクがオンラインになりました。右側の「未割り当て」と書かれた網掛け部分を右クリックし「新しいシンプルボリューム」をクリックします。

新しいシンプルボリュームウィザードが開始します。「次へ」をクリックします。

ボリュームサイズを指定します。今回は割り当てられるすべての容量を割り当てます。このまま「次へ」をクリックします。

ドライブ文字を選択します。今回はこのまま D ドライブとします。「次へ」をクリックします。

パーティションのフォーマットに関するウィザードに遷移します。このまま「次へ」をクリックします。

確認画面です。「完了」をクリックします。

「フォーマット中」からすぐに「正常」となります。

エクスプローラーを開くと、作成した D ドライブが見えるようになっています。クリックしてファイルを作成してみます。

D ドライブに遷移し、右クリック [新規作成] - [テキストドキュメント] でテキストファイルを作成してみます。

できました。

おわりに

FSx for NetApp ONTAP に Windows Server で iSCSI 接続しました。手順は多いですが、落ち着いて順番に実施すれば難しい作業ではありません。
iSCSI でストレージをサーバに接続すると直接デバイスとして読み込まれ、ストレージにアクセスできます。ファイルサーバのように共有フォルダが見える方式とは違い、直接デバイスとして読み込まれるのが特徴です。UNC パスが使えないなどの制約があるシステムで役に立ちます。
どなたかのお役に立てば幸いです。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.