isca0.mpath

Mpath

iSCSIブロックストレージをマルチパスでインストール、マウント、またはアンマウントします。この方法はSoftLayerのブロックストレージでテストされていますが、他のiSCSIマルチパスストレージでも動作します。

このロールのロジックは以下の通りです:

インストール中
  • マルチパスとiSCSIを使用するためのパッケージ依存関係をインストール
  • /etc/multipath.confを設定
  • dm-multipathカーネルモジュールをプローブ
  • multipathdを有効化し、開始
  • (multipath -l)でリストしてmultipathdハンドラをトリガー
  • /etc/iscsi/initiatorname.iscsiを設定
  • /etc/iscsi/iscsid.confでchap認証を編集
  • ポータルで自動ログインを試み、失敗した場合は通常のログインを使用
  • /etc/multipath/bindingsにエイリアスを作成
  • "/dev/mapper/mydeviceid"を"/mnt/myaliasname"にマウント
  • iSCSIとiscsidを開始および有効化
  • /etc/fstabにエントリを追加
アンマウント中
  • デバイス"/dev/mapper/mydeviceid"のlsof pidを取得
  • デバイスが使用中の場合、強制的にリリース
  • デバイスを遅延方式でアンマウント (umount -l device)
  • デバイスをアンマウントし、fstabエントリを削除
  • (multipath -f device)でマルチパスをフラッシュ
  • セッションポータルターゲットからログアウト
  • ハンドラをトリガーしてiSCSI、iscsid、およびmultipathdサービスを停止および無効化

要件

iSCSIマルチパスブロックストレージとiqnのログイン情報とパスワードが必要です。また、完全なイニシエーターiqnパスとiSCSIマッパーIDも必要です。例: /dev/mapper/3600...

ロール変数

プレイブックで調整が必要な変数です。

iscsint はイニシエーターiqn名です。
例:

iscsint: iqn.1994-05.com.redhat:47c98423c167

複数のイニシエーターを配列として設定できます:

iscsint:
  - iqn.1994-05.com.redhat:47c98423c167
  - iqn.1994-05.com.redhat:47c98423c167-2
  - iqn.1994-05.com.redhat:47c98423c167-3

mpathip はターゲットのIPアドレスです。

mpathip: 10.150.10.20

filesystem: デフォルトはext4に設定されていますので、必要に応じて変更できます。
サポートされているファイルシステムはAnsibleマウントモジュールで確認してください。

map: trueに設定すると、すべてのインストールと設定タスクが実行されます。
falseに設定すると、デバイスマッパーがアンマウントされ、その後アンマウントプロセスに従います。

wwid はマルチパスデバイスのエイリアスで、バインディングファイルの設定に使用されます。
この変数は非常に重要であり、全体のロールでデバイスをマウントおよびアンマウントする際にIDに基づいて使用されます。

構文は次のようになります:

wwid:
  - { id: '360009827346', alias: 'mylun0' }
  - { id: '360782378662', alias: 'mylun1' }
 ...

packs はインストールするパッケージのリストです。iSCSI、マルチパス、およびlsofをインストールします。

credentials はログインとパスワードでプレイブックに調整する必要があります。
例:

credentials:
  - name: "My Credentials"
    login: mylogin
    pass: mypassword

注意!
loginpassword は引用符 " または シングルクォート ' なしで宣言する必要があります。

依存関係

なし

例プレイブック

以下はプレイブックのサンプルです。このプレイブックは、somehostにマルチパスデバイスをインストールおよびマウントします:

- name: "Deploy | Running isca0.mpath role"
  hosts: somehost
  become: yes
  remote_user: myuser
  vars:
    mpathip: "10.200.10.100"
    credentials:
      - name: "Multipath"
        login: MyLogin
        pass: Mypassword
    iscsint:
      - "iqn.1994-05.com.redhat:47c98423c167"
    wwid:
      - { id: '3600a0980383888835645961', alias: 'blk' }
  roles:
    - mpath

特定のホストにマウントする前に、ホストグループでデバイスをアンマウントしたい場合、最初にアンマウントプレイブックを実行し、その後「インストール/マウント」プレイブックを実行できます。

アンマウントプレイブックのサンプルは以下の通りです:

- name: "Deploy | Running isca0.mpath role"
  hosts: groupofhosts
  become: yes
  remote_user: myuser
  vars:
    map: false
    mpathip: "10.200.10.100"
    wwid:
      - { id: '3600a098038303631a35645961', alias: 'blk' }
  roles:
    - mpath

見ての通り、mapfalse に設定して、ロールがアンマウントタスクのみを実行するようにします。:wink:

今後の計画

  • 自動マウントのサポートを追加

ライセンス

LGPL-3.0

著者情報

このロールは2017年にiscaによって作成されました。

プロジェクトについて

Manage iscsi blockstorage with multipath on softlayer like a boss

インストール
ansible-galaxy install isca0.mpath
ライセンス
lgpl-3.0
ダウンロード
75
所有者