如何使用 ansible 检查 RAID 阵列中的驱动器是否出现故障



我想编写一个 Ansible 剧本,以确定 raid 阵列中的驱动器是否md0md1md2出现故障。如果失败,请删除并重新添加驱动器。如何使用 Ansible 进行此检查。

服务器上的驱动器/dev/nvme0n1/dev/nvme1n1

没有mdadm模块(还...因此,您将不得不使用shell/command模块来执行此操作。

这可以通过 2 个任务完成。

第一个,你收集状态(你可以在StackExchange上找到关于如何grep的答案(

- name: Get mdadm status
command: >
mdadm -D {{ md_device }} …

您必须注册输出以检查是否有任何磁盘出现故障:

register: md_status

从那里您可以删除/添加磁盘:

- name: Attach/detach disk from RAID
shell: |
mdadm --manage {{ md_device }} --remove /dev/{{ drive }}
mdadm --manage {{ md_device }} --add    /dev/{{ drive }}

带有when条款。(抱歉,我不知道故障磁盘的输出(。

when: "FAILURE" in md_status

当然,您还必须处理md_device和磁盘设备上的循环。那里的逻辑将取决于mdadm的输出...

对不起,如果答案不是很准确。但是你的问题对你面临的问题太模糊了。

相关内容

最新更新