Elastic SAN ボリュームに接続する - Linux
この記事では、Elastic 記憶域ネットワーク (SAN) ボリュームに個々の Linux クライアントから接続する方法について説明します。 Windows クライアントからの接続の詳細については、「Elastic SAN ボリュームに接続する - Windows」を参照してください。
この記事では、Storage サービス エンドポイントを Azure 仮想ネットワークのサブネットに追加し、サブネットからの接続を許可するようにボリューム グループを構成します。 最後に、Elastic SAN ボリュームに接続し、接続を確立するようにクライアント環境を構成します。
個々の Elastic 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 セクションを追加する必要があります。次の例の defaults セクションでは、一般的に適用可能ないくつかの既定値が設定されます。 マルチパス トポロジからボリュームを除外するなど、他の特定の構成を行う必要がある場合は、multipath.conf の man ページを参照してください。
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 1 # To disable I/O queueing after retrying once when all paths are down
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
ファイルを作成または変更した後、マルチパス I/O を再起動します。 Ubuntu ではコマンドは sudo systemctl restart multipath-tools.service
で、RHEL と SLES ではコマンドは sudo systemctl restart multipathd
です。
クライアントにボリュームをアタッチする
次のスクリプトを使用して接続を作成できます。 これを実行するには、次のパラメーターが必要です。
- subscription: サブスクリプション ID
- g: リソース グループ名
- e: Elastic SAN 名
- v: ボリューム グループ名
- n <vol1, vol2, ...>: ボリューム 1、2、および必要なその他のボリュームの名前 (コンマ区切り)
- s: 各ボリュームへのセッションの数 (既定では 32 に設定)
スクリプトをこちらからコピーし、.py ファイルとして保存します (connect.py など)。 次に、必要なパラメーターを指定して実行します。 このスクリプトを実行する方法の例を次に示します。
./connect.py --subscription <subid> -g <rgname> -e <esanname> -v <vgname> -n <vol1, vol2> -s 32
sudo multipath -ll
を使用してセッションの数を確認できます
セッションの数
その最大の IOPS やスループット上限を達成するには、各ターゲット ボリュームに 32 のセッションを使用する必要があります。