Kernel version of our Ubuntu 12.04 instance is 3.2.0-40-virtual.
I saw a comment on a aws forum saying:
"For M3 instances, you must specify instance store volumes in the block
device mapping for the instance.
When you launch an M3 instance, we ignore any instance store volumes
specified in the block device
mapping for the AMI."
We're also not seeing this error when switching instance type to M4.large.
Note, when switching instance
types (to M4) in the farm settings we get the following message:
"Number of ephemeral devices were decreased. Following devices will be
unavailable: ephemeral0"
I ssh into the failed instance and noticed that instance store volume did
get mounted to /dev/xvdb.
looking the .py code which triggers the error we see block device mappings
defined by name2device:
def name2device(name):
if not name.startswith('/dev'):
if linux.os.windows:
return re.sub(r'^sd', 'xvd', name)
name = os.path.join('/dev', name)
if name.startswith('/dev/xvd'):
return name
if os.path.exists('/dev/sda1') and linux.os.version < (6, 0):
# see [SCALARIZR-2266]
return name
name = name.replace('/sd', '/xvd')
if storage2.RHEL_DEVICE_ORDERING_BUG:
name = name[0:8] + chr(ord(name[8])+4) + name[9:]
return name
and failure occurs here:
def _ensure(self):
self._check_attr('name')
try:
url = '
http://169.254.169.254/latest/meta-data/block-device-mapping/%s' % self.name
device = urllib2.urlopen(url).read().strip()
except:
msg = "Failed to fetch device name for instance store '%s'. %s
(%s)" % (
self.name, sys.exc_info()[1], url)
raise storage2.StorageError, msg, sys.exc_info()[2]
else:
device = ebs.name2device(device)
if fact['os']['name'] != 'windows':
if not os.path.exists(device):
raise Exception((
"Instance store device {} ({}) doesn't exist. "
"Please check that instance type {} supports
it").format(
device, self.name,
__node__['platform'].get_instance_type()))
self.device = device
On Sunday, June 12, 2016 at 2:56:44 AM UTC-4, [email protected] wrote:
>
> We started getting the following error in the "Agent BeforeHostUp phase"
> on a M3.medium instance a few days ago. Running the same
> farm on a t2.medium does not cause the error (we'er using a Ubuntu 12.04
> Precise image). Seems to have something to do with instance store
> volumes on M3 instances and blocking device mappings. Any idea how to fix
> this? We have RIs so we don't want to move to T2 or other
> instance types.
>
> 2016-06-11 17:37:46,940+00:00 - ERROR - scalarizr.ops.system.init -
> Operation "system.init" (id: 412be8be-66a7-4c98-83ac-0dd6ef2da89b) failed.
> Reason:
> Instance store device /dev/sdb (ephemeral0) doesn't exist. Please check
> that instance type m3.medium supports it
> Traceback (most recent call last):
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/api/operation.py",
>
> line 273, in _in_progress
> self._completed(self.func(self, *self.func_args, **self.func_kwds))
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/handlers/lifecycle.py",
>
> line 441, in handler
> bus.fire("host_init_response", message)
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/libs/bases.py",
>
> line 33, in fire
> ln(*args, **kwargs)
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/handlers/block_device.py",
>
> line 103, in on_host_init_response
> self._plug_new_style_volumes(volumes)
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/handlers/block_device.py",
>
> line 127, in _plug_new_style_volumes
> vol.ensure(mount=bool(vol.mpoint), mkfs=True)
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/storage2/volumes/base.py",
>
> line 88, in ensure
> self._ensure()
> File
> "/opt/scalarizr/embedded/lib/python2.7/site-packages/scalarizr-4.6.0-py2.7.egg/scalarizr/storage2/volumes/ec2_ephemeral.py",
>
> line 44, in _ensure
> device, self.name, __node__['platform'].get_instance_type()))
>
--
You received this message because you are subscribed to the Google Groups
"scalr-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.