【问题标题】:EC2 Volume Attachment Error (Unix)EC2 卷附件错误 (Unix)
【发布时间】:2016-06-13 20:01:55
【问题描述】:

我正在尝试关注10gen documentation for standing up MongoDB on an EC2 instance。尝试将新创建的卷附加到我的实例时遇到错误。

我正在尝试运行命令

$ ec2-attach-volume vol-dac9c92f  -i i-19f359db -d /dev/sdh2

我收到的错误如下

Client.InvalidParameterValue:参数设备的值(/dev/sdh2)无效。 /dev/sdh2 不是有效的 EBS 设备名称。

文档的相关部分是这个

$ (i=0; \
> for vol in $(awk '{print $2}' vols.txt); do \
>   i=$((i+1)); \
>   ec2-attach-volume $vol -i i-11eee072 -d /dev/sdh${i}; \
> done)

此命令执行成功(注意id号缺失)

$ ec2-attach-volume vol-dac9c92f  -i i-19f359db -d /dev/sdh

如果有人能指出我可能做错了什么,我将不胜感激。

-詹姆斯

【问题讨论】:

  • sdh2 将是设备 sdh 上的分区 #2。您正在附加一个卷,该卷对应于整个存储设备,您可以稍后对其进行分区。

标签: mongodb amazon-web-services amazon-ec2 attachment volume


【解决方案1】:

附加到实例的设备会根据虚拟化类型映射到不同的设备名称。

如果实例是 PV(准虚拟),则卷可以映射为 /dev/sdXY,其中 X 是设备字母,Y 是数字(分区使用) - 所以您可以使用 @987654325 @。

但是,对于 HVM 实例,Y 数字格式是不可接受的 - 它需要是没有分区号命名语法的卷 ID,即 /dev/sdh/dev/sdi 等。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html - 请参阅“EBS 卷的推荐值”列。

* 编辑 * 为 HVM 实例提供 bash sn-p 等效于:

$ (i=0; \
> for vol in $(awk '{print $2}' vols.txt); do \
>   i=$((i+1)); \
>   ec2-attach-volume $vol -i i-11eee072 -d /dev/sdh${i}; \
> done)

您可以使用基于字母的增量循环(将 volmap 设置为一组字母 fi 并遍历该数组,而不仅仅是递增计数器)

$ (volmap=({f..i}); i=0; \
> for vol in $(awk '{print $2}' vols.txt); do \
>   ec2-attach-volume $vol -i i-11eee072 -d /dev/xvd${volmap[i++]}; \
> done)

这会将/dev/xvdf 附加到/dev/xvdi。我使用了xvdX 而不是sdX,因此AWS 卷附件与设备的内核寻址相匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 2014-11-05
    • 2018-12-29
    • 2015-08-17
    相关资源
    最近更新 更多