gpt4 book ai didi

linux - 如何在Linux上将标签正确添加到AWS EBS卷设备的文件系统中?

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:05 24 4
gpt4 key购买 nike

我有一个任务要替换AWS ec2实例的现有外部设备,以在实例之间移动数据。
该任务将停止目标ec2实例,通过分离现有设备并附加另一个ec2实例的设备来替换外部设备,然后再次启动ec2实例。自动化这些步骤没有问题,但是在完成上述操作后,我在安装设备时遇到了一些问题。

我尝试将文件系统标签添加到设备,然后挂载它。但是,在这种情况下,使用e2label命令添加标签无法正常工作。

我有一个Ansible任务,如下所示:

- name: Ensure external device has correct label
become: true
shell: e2label /dev/xvdf "dev-external" && e2label /dev/xvdf
register: device_label
retries: 15
delay: 5
until: device_label.stdout == "dev-external"

- name: Debug external device label soon after adding label
debug:
msg: "{{ device_label.stdout }}"

- name: Get external device label subsequently
become: true
shell: e2label /dev/xvdf
register: device_label_subsequently

- name: Debug external device label subsequently
debug:
msg: "{{ device_label_subsequently.stdout }}"


结果如下:

TASK [label-external-device : Ensure external device has correct label] ***
changed: [<host_ip>]

TASK [label-external-device : Debug external device label soon after adding label] ***
ok: [<host_ip>] => {
"msg": "dev-external"
}

TASK [label-external-device : Get external device label subsequently] ***
changed: [<host_ip>]

TASK [label-external-device : Debug external device label subsequently] ***
ok: [<host_ip>] => {
"msg": ""
}


如您所见,使用 e2label命令添加标签似乎成功,并且在作为单个shell命令调用时将设备的标签返回为 dev-external。但是,当再次查询时,设备标签消失,甚至实际上拒绝在文件系统上设置。

重新启动ec2实例并再次尝试时,不会发生此问题。

我知道还有其他一些通过设备名称或 UUID挂载设备的方法,但是出于兼容性原因,我想通过它们的文件系统标签挂载设备。

如何在Linux上将标签正确添加到AWS EBS卷设备的文件系统中?

最佳答案

在添加标签和检查标签状态之间添加sleep可能有助于确保文件系统标签状态。

更改命令;

e2label /dev/xvdf "dev-external" && e2label /dev/xvdf


至;

e2label /dev/xvdf "dev-external" && sleep 1 && e2label /dev/xvdf


另外,设备可能由 udev自动安装,并且可能是 failure to add label的原因。因此,在运行 e2label添加标签之前,可能需要确保已卸载设备。

关于linux - 如何在Linux上将标签正确添加到AWS EBS卷设备的文件系统中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54248985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com