リソースからブロックストレージボリュームへの接続方法

ボリュームの作成後、同一テナント上にあるリソースからボリュームへの接続を実施します。

Linux サーバー

ここでは、ボリュームへのマルチパス接続に関するLinuxOS上の設定方法について説明します。

以下では Red Hat Enterprise Linux (RHEL) の各バージョンについての設定方法について記載をしますが CentOS/Rocky Linux等の所謂 RHEL互換ディストリビューションについては、対応するRHELのバージョンの 設定・手順をご利用ください。

/etc/multipath.conf の編集

まずは、マルチパス接続に関するconfigファイルを編集します。

RHEL6.X

# vi /etc/multipath.conf

defaults {
    user_friendly_names   no
    max_fds               max
    flush_on_last_del     yes
    queue_without_daemon  no
}
blacklist {
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
}
devices {
    device {
        vendor                  "NETAPP"
        product                 "LUN"
        path_grouping_policy    group_by_prio
        features                "1 queue_if_no_path"
        prio                    "alua"
        path_checker            directio
        failback                immediate
        path_selector           "round-robin 0"
        hardware_handler        "1 alua"
        rr_weight               uniform
        rr_min_io               128
        getuid_callout          "/lib/udev/scsi_id -g -u -d /dev/%n"
    }
}

RHEL7.X

# vi /etc/multipath.conf

defaults {
    user_friendly_names   no
    max_fds               max
    flush_on_last_del     yes
    queue_without_daemon  no
}
blacklist {
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
}
devices {
    device {
        vendor                  "NETAPP"
        product                 "LUN"
        path_grouping_policy    group_by_prio
        features                "1 queue_if_no_path"
        prio                    "alua"
        path_checker            directio
        failback                immediate
        path_selector           "round-robin 0"
        hardware_handler        "1 alua"
        rr_weight               uniform
        rr_min_io               128
        uid_attribute           ID_SERIAL
    }
}

RHEL8.X

# vi /etc/multipath.conf

defaults {
    user_friendly_names   no
    max_fds               max
    flush_on_last_del     yes
    queue_without_daemon  no
}
blacklist {
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
}
devices {
    device {
        vendor                  "NETAPP"
        product                 "LUN"
        path_grouping_policy    group_by_prio
        no_path_retry           queue
        prio                    "alua"
        path_checker            directio
        failback                immediate
        path_selector           "round-robin 0"
        hardware_handler        "1 alua"
        rr_weight               uniform
        rr_min_io               128
        uid_attribute           ID_SERIAL
    }
}

/etc/iscsi/iscsid.conf の編集

また、iSCSI イニシエータのタイムアウト値を5秒に変更します。(弊社推奨設定)

# vi /etc/iscsi/iscsid.conf
            :
#node.session.timeo.replacement_timeout = 120
node.session.timeo.replacement_timeout = 5
            :

上記OSの設定が完了した後、ボリュームのiscsiマウントを実行します。

iscsiログイン

# iscsiadm -m discovery -t sendtargets -p [iscsi target IP address] --login

注釈

[iscsi target IP address] については、コントロールパネル上の「ボリュームの詳細」ページからご確認いただけます。

iscsi rescan

# iscsiadm -m session --rescan

注釈

同一の target IP address に複数のVolumeが割り当てられた場合や、何らかの理由でlogin 後にscsi deviceが発見出来なかった際に実施する手順です。 login してすでに十分な deviceが見えている場合は実行不要です。

multipathdサービスの再起動

# service multipathd restart

multipathデバイスの確認

# multipath -ll
3600a098038303652643f4861334f5875 dm-0 NETAPP  ,LUN C-Mode
size=100G features='2 queue_if_no_path retain_attached_hw_handler' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| `- 2:0:0:0 sda 8:16 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
    `- 3:0:0:0 sdb 8:0  active ready running

iscsiの接続が正常に完了すると、上記のようにsda/sdbの2つが"running"状態として表示されます。 sdX (上記の例ではsda, sdb) はホストのディスク構成によって変更される場合があります。

マウントされているデバイスの確認

# fdisk -l

Disk /dev/vda: 16.1 GB, 16106127360 bytes, 31457280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
        :
Disk /dev/sdb: 107.4 GB, 107389255680 bytes, 209744640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
        :
Disk /dev/sda: 107.4 GB, 107389255680 bytes, 209744640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
        :
Disk /dev/mapper/3600a098038303652643f4861334f5875: 107.4 GB, 107389255680 bytes, 209744640 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

上記のようにiscsiで接続されたボリュームが表示されます。

任意のファイル形式にボリュームをフォーマットします。

ここでは、xfs形式にフォーマットしています。

# mkfs.xfs /dev/mapper/3600a098038303652643f4861334f5875

注釈

fdisk -l で見えている/dev/sda, /dev/sdb をフォーマットするのではなく、 /dev/mapper/3600a098038303652643f4861334f5875 を指定してフォーマットします。

注釈

mkfs.xfs コマンドが応答を返さなくなり、 dmesg に "Discard failure" のメッセージが出力されている場合、 mkfs.xfs コマンドに "-K" を付与して再度お試し下さい。

フォーマットした領域のマウント

任意のディレクトリへマウントします。ここでは /mnt というディレクトリへマウントしています。

# mount /dev/mapper/3600a098038303652643f4861334f5875 /mnt

注釈

RHEL7.3/CentOS7.3/Rocky Linux8.5以降では、 64KBより大きいブロックサイズでI/Oをされる場合に、確保した性能を十分に使いきれない場合があります。 64KBより大きいブロックサイズでI/Oをされる場合は、multipathデバイスおよびmultipathデバイスを構成するiSCSIデバイスに対し、以下を実施します。 それぞれのデバイス名は multipath -ll よりご確認いただけます。

# echo 512 > /sys/block/sda/queue/max_sectors_kb
# echo 512 > /sys/block/sdb/queue/max_sectors_kb
# echo 512 > /sys/block/dm-0/queue/max_sectors_kb

/etc/fstab への記載によるマウントの永続化

以下のような設定を/etc/fstab へ追記します。(パラメータはご利用の環境に合わせて適宜調整ください)

# tail -1 /etc/fstab
/dev/mapper/3600a098038303652643f4861334f5875 /mnt xfs defaults,_netdev 0 0

注釈

/etc/fstab への記載にあたっては、本サービスのボリュームが提供するファイルシステムは network 起動後にマウントをする必要があるため、 _netdev フラグを付与した記載をお願いします。 _netdev フラグを付与しない場合、OS再起動時に正常起動しないことがあります。

Windowsサーバー

Windowsサーバーより作成したストレージをiSCSIマウントする方法は、下記の通りです。

ベアメタルサーバの場合

ベアメタルサーバの場合、以下図のようにMultiPathを合計4本張ります。

multipath.png


ターゲットポータルの検出

スタートメニューよりiSCSI Initiator を起動します。「Discovery」タブを選択し、「Discovery Portal」をクリックします。「Discover Target Portal」の画面において、ストレージのターゲットIPアドレスを入力します。

Discover Target Portal
Discover Target Portal2

上記設定後、スタートメニューよりMPIO を起動し、「Discover Multipath」タブの「Add support for iSCSI devices」にチェックを入れADDを押下します。(完了後サーバーの再起動を求められます)

Discover Multupath MPIO

サーバーの再起動が完了し、再度MPIOを起動すると、下図のようにデバイスが追加されます。

Discover Multipath Device

イニシエータIQN設定

iSCSI Initiator Properties > ConfigurationよりInitiator Nameを参照し「iqn〜」から始まる項目を確認します。

Discover Multipath Device


上記で確認したInitiator Nameをブロックストレージで作成したボリューム内に登録を行います。
ブロックストレージ > 作成したボリュームより「ボリュームの編集」を押下し、イニシエータIQNへInitiator Nameを記入し「ボリュームの編集」をクリックします。
Discover Multipath Device


iSCSI 接続

次に、iSCSI Initiator を起動し、「Targets」タブを確認すると、InactiveとなっているTargetが表示されます。そこで、「Connect」をクリックし、表示されるポップアップにおいて 「Enable multi-path」にチェックを入れ、「Advanced」をクリックします。

Enable Multipath

注釈

上記画面にある「Add this connection to the list of Favorite Targets」チェックボックスはデフォルトでオンになっています。
このオプションをオンにすると、Windowsの再起動時にFavorite Targetsリスト内のポータルに自動的に接続されます。
このFavorite Targetsリストには、リスト追加時点のイニシエータIQNが登録されます。
後にイニシエータIQNが変更された場合でも、追加済みのFavorite Targetに登録されたIQNには影響を与えず、
Windowsの再起動時にはFavorite Targetsリスト追加時点のIQNで接続されます。
参考: The Microsoft iSCSI Initiator may fail to login to Favorite Targets after the Initiator Name is changed on Windows Server 2008 and 2008 R2 or Windows 7
Windowsの場合、イニシエータIQNにはデフォルトでコンピュータ名やドメイン名が自動的に付加される仕様となっており、
これらの名前が変更された際は自動的にイニシエータIQNも変更されます。
自動的なIQNの変更についても上記同様、Favorite TargetのIQNは変更されません。
手動もしくはコンピュータ名、ドメイン名の変更によりIQNが変更された際は、Favorite Targetsのエントリを削除し再作成いただきますようお願いいたします。
(同時に、前項にありますポータルでのIQN変更も実施ください。)


「Advanced Setting」の画面において、「Local adapter」・「Initiator IP」・「Target Portal IP」をプルダウンより選択し、OKを押します。
再度OKをクリックし、iSCSIイニシエータウィンドウに戻ります。
上記接続作業を、各Initiator IP、Target Portal IPごとに実施します。
本チュートリアルの例の場合は、
Initiator IP: 192.168.1.2, Target Portal IP: 192.168.1.150
Initiator IP: 192.168.1.101, Target Portal IP: 192.168.1.150
Initiator IP: 192.168.1.2, Target Portal IP: 192.168.1.151
Initiator IP: 192.168.1.101, Target Portal IP: 192.168.1.151
の4回実施します。
Advanced Setting1
Advanced Setting2
Advanced Setting3
Advanced Setting4

iSCSIイニシエータウィンドウに戻ると、InactiveからConnectedにTargetの状態が変更されています。

Init_select_properties
「Properties」をクリックすると、下図のように「Identifier」内に複数表示がされます。
本チュートリアルの例では、4つ表示されます。
Targets list properties3

「OK」をクリックし、iSCSIイニシエータウィンドウに戻ります。

Init_select_devices
「Devices」をクリックし、下図のように、接続した数のデバイスが表示されていることを確認します。
本チュートリアルの例では、4つのデバイスが表示されます。
Devices2


ディスクのフォーマット

Windows のサーバーマネジャーから、「File and Storage Services」を選択し、「Disks」をクリックすると、下図のようにiSCSIで接続されたボリュームがOffline状態で表示されます。
ここで、ボリュームを右クリックしてオンライン状態にした上で、ボリュームのパーティション設定、フォーマットを実施します。
volume_list

仮想インスタンスの場合

ターゲットポータルの検出

スタートメニューよりiSCSI Initiator を起動します。「Discovery」タブを選択し、「Discovery Portal」をクリックします。「Discover Target Portal」の画面において、ストレージのターゲットIPアドレスを入力します。

Discover Target

その後、スタートメニューよりMPIO を起動し、「Discover Multipath」タブの「Add support for iSCSI devices」にチェックを入れます。(完了後サーバーの再起動を求められます)

Discover Multupath MPIO

サーバーの再起動が完了し、再度MPIOを起動すると、下図のようにデバイスが追加されます。

Discover Multipath Device

イニシエータIQN設定

iSCSI Initiator Properties > ConfigurationよりInitiator Nameを参照し「iqn〜」から始まる項目を確認します。

Discover Multipath Device


上記で確認したInitiator Nameをブロックストレージで作成したボリューム内に登録を行います。
ブロックストレージ > 作成したボリュームより「ボリュームの編集」を押下し、イニシエータIQNへInitiator Nameを記入し「ボリュームの編集」をクリックします。
Discover Multipath Device


iSCSI 接続

次に、iSCSI Initiator を起動し、「Targets」タブを確認すると、InactiveとなっているTargetが表示されます。そこで、「Connect」をクリックし、表示されるポップアップにおいて 「Enable multi-path」にチェックを入れ、「Advanced」をクリックします。

Enable Multipath

注釈

上記画面にある「Add this connection to the list of Favorite Targets」チェックボックスはデフォルトでオンになっています。
このオプションをオンにすると、Windowsの再起動時にFavorite Targetsリスト内のポータルに自動的に接続されます。
このFavorite Targetsリストには、リスト追加時点のイニシエータIQNが登録されます。
後にイニシエータIQNが変更された場合でも、追加済みのFavorite Targetに登録されたIQNには影響を与えず、
Windowsの再起動時にはFavorite Targetsリスト追加時点のIQNで接続されます。
参考: The Microsoft iSCSI Initiator may fail to login to Favorite Targets after the Initiator Name is changed on Windows Server 2008 and 2008 R2 or Windows 7
Windowsの場合、イニシエータIQNにはデフォルトでコンピュータ名やドメイン名が自動的に付加される仕様となっており、
これらの名前が変更された際は自動的にイニシエータIQNも変更されます。
自動的なIQNの変更についても上記同様、Favorite TargetのIQNは変更されません。
手動もしくはコンピュータ名、ドメイン名の変更によりIQNが変更された際は、Favorite Targetsのエントリを削除し再作成いただきますようお願いいたします。
(同時に、前項にありますポータルでのIQN変更も実施ください。)
「Advanced Setting」の画面において、「Target Portal IP」をプルダウンより選択し、OKを押します。
再度OKをクリックし、iSCSIイニシエータウィンドウに戻ります。
上記接続作業を、各Target Portal IPに対し実施します。
本チュートリアルの例の場合は、
Initiator IP: Default, Target Portal IP: 192.168.0.3
Initiator IP: Default, Target Portal IP: 192.168.0.4
の2回実施します。
Advanced Setting

iSCSIイニシエータウィンドウに戻ると、InactiveからConnectedにTargetの状態が変更されています。

Init_select_properties
「Properties」をクリックすると、下図のように「Identifier」内に複数表示がされます。
本チュートリアルの例では、2つ表示されます。
Targets list properties3

「OK」をクリックし、iSCSIイニシエータウィンドウに戻ります。

Init_select_devices
「Devices」をクリックし、下図のように、接続した数のデバイスが表示されていることを確認します。
本チュートリアルの例では、2つのデバイスが表示されます。
Devices2


ディスクのフォーマット

Windows のサーバーマネジャーから、「File and Storage Services」を選択し、「Disks」をクリックすると、下図のようにiSCSIで接続されたボリュームがOffline状態で表示されます。

volume_list

ここで、ボリュームを右クリックしてオンライン状態にした上で、ボリュームのパーティション設定、フォーマットを実施します。