この記事では、個々の Linux クライアントから Elastic SAN ボリュームに接続する方法について説明します。 Windows クライアントからの接続の詳細については、「 Elastic SAN ボリュームへの接続 - Windows」を参照してください。
この記事では、サブネットからの接続を許可するようにボリューム グループを構成し、Elastic SAN ボリュームに接続して接続を確立するようにクライアント環境を構成します。
個々のエラスティック SAN ボリュームを複数のクライアントに接続する場合は、クラスター マネージャーを使用する必要があります。 詳細については、「 Azure Elastic SAN でクラスター化されたアプリケーションを使用する」を参照してください。
[前提条件]
- 最新の Azure CLI を使用するか、最新の Azure PowerShell モジュールをインストールします
- Elastic SAN をデプロイする
- プライベート エンドポイントを構成するか、サービス エンドポイントを構成します
iSCSI イニシエーターを有効にする
Linux クライアントから iSCSI 接続を作成するには、iSCSI イニシエーター パッケージをインストールします。 正確なコマンドはディストリビューションによって異なる場合があり、必要に応じてドキュメントを参照する必要があります。
たとえば、Ubuntu では、 sudo apt install open-iscsi
を使用し、SUSE Linux Enterprise Server (SLES) では sudo zypper install open-iscsi
を使用し、Red Hat Enterprise Linux (RHEL) では sudo yum install iscsi-initiator-utils
使用します。
マルチパス I/O をインストールする
ボリュームに対して高い IOPS とスループットを実現し、その上限に達するには、アプリケーションのマルチスレッド機能とパフォーマンス要件に基づいて、iSCSI イニシエーターからターゲット ボリュームへの複数セッションを作成する必要があります。 これらの複数のパスを 1 つのデバイスに集約し、負荷分散ポリシーに基づいて使用可能なすべてのパスに I/O を最適に分散することでパフォーマンスを向上させるには、マルチパス I/O が必要です。
Linux ディストリビューション用のマルチパス I/O パッケージをインストールします。 インストールはディストリビューションによって異なるため、そのドキュメントを参照する必要があります。 たとえば、Ubuntu ではコマンドが sudo apt install multipath-tools
され、SLES の場合、コマンドは sudo zypper install multipath-tools
され、RHEL の場合、コマンドは sudo yum install device-mapper-multipath
されます。
パッケージをインストールしたら、 /etc/multipath.conf が存在するかどうかを確認します。
/etc/multipath.conf が存在しない場合は、空のファイルを作成し、次の例の設定を使用して一般的な構成を行います。 たとえば、 mpathconf --enable
は RHEL に /etc/multipath.conf を作成します。
/etc/multipath.conf にいくつかの変更を加える必要があります。 次の例では devices セクションを追加する必要があります。次の例の既定のセクションでは、一般的にいくつかの既定値が適用されます。 マルチパス トポロジからボリュームを除外するなど、他の特定の構成を行う必要がある場合は、multipath.conf のマニュアル ページを参照してください。
defaults {
user_friendly_names yes # To create ‘mpathn’ names for multipath devices
path_grouping_policy multibus # To place all the paths in one priority group
path_selector "round-robin 0" # To use round robin algorithm to determine path for next I/O operation
failback immediate # For immediate failback to highest priority path group with active paths
no_path_retry 3 # To disable I/O queueing after retrying once when all paths are down
polling_interval 5 # Set path check polling interval to 5 seconds
find multipaths yes # To allow multipath to take control of only those devices that have multiple paths
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
ファイルを作成または変更した後、マルチパス I/O を再起動します。 Ubuntu では、コマンドは sudo systemctl restart multipath-tools.service
され、RHEL と SLES ではコマンドが sudo systemctl restart multipathd
。
ボリュームをクライアントにアタッチする
次のスクリプトを使用して、接続を作成できます。 これを実行するには、次のパラメーターを収集または決定します。
- サブスクリプション: サブスクリプション ID
- g: リソース グループ名
- e: Elastic SAN 名
- v: ボリューム グループ名
- n <vol1、vol2、...>: ボリューム 1 と 2 の名前と、必要なその他のボリューム名(コンマ区切り)
- s: 各ボリュームへのセッション数 (既定では 32 に設定)
ここからスクリプトをコピーし、connect.py などの.py ファイルとして保存します。 次に、必要なパラメーターを指定して実行します。 スクリプトを実行する方法の例を次に示します。
./connect.py --subscription <subid> -g <rgname> -e <esanname> -v <vgname> -n <vol1, vol2> -s 32
を使用してセッションの数を確認できます。 sudo multipath -ll
セッション番号を設定する
各ターゲット ボリュームに対して 32 セッションを使用して、最大 IOPS やスループットの制限を達成します。
次の手順に従ってスクリプトを実行することで、セッション数を変更できます。
注
-n
を使用してセッションの数を設定します。 パラメーターは 1 から 32 の値を受け取り、既定値は 32 です。
python3 connect_for_documentation.py \
--subscription <your-subscription-id>\
-g <resource-group>\
-e <elastic-san-name>\
-v <volume-group-name>\
-n volume1 volume2 \
-s <value>