Hi,

What is your Scalr version?

Regards,
Igor

On 13 June 2016 at 18:50,  <[email protected]> wrote:
> 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.

-- 
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.

Reply via email to