Open jldonovan3 opened 6 years ago
@jldonovan3 – did you ever figure this out? I am running into the same issue.
@jldonovAfter a bit more digging, I found this in the AWS docs:
HVM AMIs do not support the use of trailing numbers on device names, except for /dev/sda1, which is reserved for the root device, and /dev/sda2.
Changing the device naming to exclude the trailing number seems to have fixed the problem for me. See details on the commit or check out my fork, which fixes a few other things as well. I'd be happy to submit a pull request but it doesn't appear that this repo is currently being maintained.
@gwhobbs Sorry about the delayed reply, had to dig up some stuff since this was a while ago. But yes, I think you came to the same solution I think I came up with. There's an bunch of device names in brenda/utils.py, and the first one it takes is f1
, so it tries to name the device sdf1
, etc.
I removed the number from the first device name from a local branch I was messing around with:
` def blkdev(index, istore=False, mount_form=False): if istore:
devs = ('b', 'c', 'd', 'e')
else:
# EBS
devs = (
'f', 'g1', 'h1', 'i1', 'j1', 'k1', 'l1', 'm1', 'n1', 'o1', 'p1',
'f2', 'g2', 'h2', 'i2', 'j2', 'k2', 'l2', 'm2', 'n2', 'o2', 'p2',
'f3', 'g3', 'h3', 'i3', 'j3', 'k3', 'l3', 'm3', 'n3', 'o3', 'p3',
'f4', 'g4', 'h4', 'i4', 'j4', 'k4', 'l4', 'm4', 'n4', 'o4', 'p4',
'f5', 'g5', 'h5', 'i5', 'j5', 'k5', 'l5', 'm5', 'n5', 'o5', 'p5',
'f6', 'g6', 'h6', 'i6', 'j6', 'k6', 'l6', 'm6', 'n6', 'o6', 'p6',
)
if mount_form:
return '/dev/xvd' + devs[index]
else:
return '/dev/sd' + devs[index]
`
Thanks for updating the tool! I'm not a programmer by trade and only tinkered with it to get it to do what I needed. Glad to see somebody's taking it under their wing.
@jldonovan3 – thanks for the reply! I'm glad you were able to find a solution at the time. Yeah, this is a super useful tool but there are a few issues that seem to have crept up over the years.
I am requesting spot instances that have an EBS snapshot attached that contains project files to render. I get a
bad-parameters
failure on the spot request with the following state:failed: Invalid device name /dev/sdf1
The output from thebrenda-run
command gives me my Snapshot ID, and what appears to be the device mapping:Project EBS snapshot: [('snap-xxxxxxxx', '/dev/sdf1')]
Would the spot requests be failing because brenda (or boto) is device mapping to something AWS is saying is invalid? brenda is assigning
block_device_map
tobdm
, and in brenda/aws.py,bdm
is usingboto.ec2.blockdevicemapping.BlockDeviceMapping()
from brenda/aws.py:
In the file used to start up the instances, brenda/run.py,
bdm
is given as theblock_device_map
from brenda/run.py:
It seems similar to what's going on in this thread, but I'm not sure how to implement the solution in my case with brenda.
boto version: 2.49.0
Appreciate any help!