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 进程 ID
  • 如果设备正在使用,强制释放设备
  • 以懒惰方式卸载设备 (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

警告!
登录名密码必须不加引号 " 或单引号 '。

依赖关系

示例剧本

以下是一个示例剧本。该剧本将在某个主机上安装和挂载多路径设备:

- 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

如您所见,只需将 map 设置为 _false_,即可使角色仅执行卸载任务。

待办事项

  • 添加自动挂载支持

许可证

LGPL-3.0

作者信息

此角色由 isca 于2017年创建。

关于项目

Manage iscsi blockstorage with multipath on softlayer like a boss

安装
ansible-galaxy install isca0.mpath
许可证
lgpl-3.0
下载
75
拥有者