ストレージアダプター
ストレージアダプターは、ホストが基盤となるストレージハードウェアまたはネットワークストレージターゲットとどのように通信するかを決定します。Vaporは、ローカルハードウェアコントローラー、Fibre Channel ホストバスアダプター(HBA)、およびソフトウェア定義(Software-Defined)のストレージ接続をサポートします。
ローカルおよびハードウェアアダプター
Storage > Adapters に移動して、検出されたすべてのホストバスアダプター(HBA)を表示します。これには、ローカルのAHCI/SATAコントローラーと、インストールされているPCIe RAID or Fibre Channelカードが含まれます。
- HBAをクリックすると、それに関連付けられている特定のブロックデバイスが一覧表示されます。
- 再スキャン (Rescan): 新しいドライブをホットプラグ(ホットスワップ)したり、ハードウェアRAIDアレイを再構成した場合は、再スキャン操作を実行して、再起動なしにOSに新しいストレージジオメトリを強制的に検出させます。
iSCSIソフトウェアアダプター
Vaporは、標準のイーサネットインターフェースを介してリモートのiSCSIストレージターゲットをマッピングするための組み込みサポートを提供します。iSCSIインターフェースは、シングルトンソフトウェアアダプターとして管理されます。
1. アダプター構成モード
Storage > Adapters に移動し、iSCSI Software Adapter を選択して以下の設定を行います:
- イニシエーターIQN: ユニークなイニシエーター名(例:
iqn.2026-03.com.awanio.vapor:node-01)を定義します。 - 接続モード:
single_path: 単一のネットワークゲートウェイパスを経由して接続します。multipath: フェイルオーバーと集約のために複数の物理パスを経由して接続します。
- ノードスタートアップ: 起動時にセッションが自動的に接続されるか(
automatic)、または手動で有効化する必要があるか(manual)を構成します。
2. ポートバインディング
マルチパス構成では、特定のホストネットワークインターフェース(enp2s0 や enp3s0 など)をソフトウェアiSCSIイニシエーターにバインドします。ポートバインディングは、ストレージトラフィックを専用のサブネットとNICに分離します。
- ポートのバインド:
POST /api/v1/storage/iscsi/adapter/port-bindings(ペイロード:{"interface_name": "enp2s0"})。 - バインディングの削除:
DELETE /api/v1/storage/iscsi/adapter/port-bindings/{binding_id}。
3. ターゲットの検出 (Target Discovery)
SAN上のターゲットIQNを検出するには、検出(ディスカバリー)呼び出しを実行します:
- ターゲットの検出:
POST /api/v1/storage/iscsi/adapter/discoverに、ターゲットのportal(IP:ポート)とオプションのbinding_portals(特定のポータルIPにマッピングされたインターフェース)を指定します。これにより、iSCSI SendTargets要求が実行されます。 - 検出されたターゲットの表示:
GET /api/v1/storage/iscsi/adapter/targetsは、解決されたすべてのSAN IQNをリストします。
4. アクティブセッションと認証
検出されたターゲットIQNにログインして、そのLUNをマウントします:
- セッションログイン:
POST /api/v1/storage/iscsi/adapter/sessions(target_iqn、portal、CHAP認証情報username/password、およびbinding_portalsを受け入れ)。 - セッション一覧の取得:
GET /api/v1/storage/iscsi/adapter/sessionsは、有効なiSCSIセッション識別子(session_id)を返します。 - セッションのログアウト:
DELETE /api/v1/storage/iscsi/adapter/sessions/{session_id}。 - ターゲット情報の削除 (Forget Target): 検出されたターゲットメタデータを消去するには、
POST /api/v1/storage/iscsi/adapter/targets/forget(target_iqnとportalを指定)を送信します。
5. 再スキャンとLUNマッピング
セッションを確立した後、iSCSIバスを再スキャンして新しいボリュームを検出します:
- バス再スキャン:
POST /api/v1/storage/iscsi/adapter/rescanは、すべてのアクティブセッションの再スキャンを強制します。 - LUNとデバイスの取得:
GET /api/v1/storage/iscsi/adapter/lunsおよびGET /api/v1/storage/iscsi/adapter/devicesを使用して、ローカルブロックパス(例:/dev/sdbや/dev/disk/by-id/*)へのマッピングを検証します。
マルチパスI/O (MPIO) 管理
iSCSIアダプターを multipath モードで実行する場合、Vaporはホストの multipathd サービスと統合してパスフェイルオーバーを管理します:
- マルチパスデバイス一覧の取得:
GET /api/v1/storage/multipath/devicesは、アクティブなマルチパスマップをリストします。 - デバイス詳細の取得:
GET /api/v1/storage/multipath/devices/{wwid}は、World Wide Identifier(WWID)による特定のデバイスの状態、ポリシー、および容量を返します。 - デバイスパス一覧の取得:
GET /api/v1/storage/multipath/devices/{wwid}/pathsは、各物理パスのステータス(アクティブ、障害、有効)を示します。 - ルーティングポリシーの更新:
PATCH /api/v1/storage/multipath/devices/{wwid}/policyは、ルーティングポリシー(例:failoverまたはround_robin)を動的に変更します。 - マルチパスの再スキャン:
POST /api/v1/storage/multipath/rescanは、ホスト全体でのマルチパスデバイスの再評価をトリガーします。