|
第7章 Ceph 整合OpenStack 遇到问题解决
7.1 一个日志引发的错误追踪
1)Ceph 问题起因 http://bbs.ceph.org.cn/question/161 错误日志
2)找到 vim nova/virt/libvirt/driver.py 代码处 3090 行
************************
def _get_guest_disk_config(self, instance, name, disk_mapping, inst_type,
image_type=None):
if CONF.libvirt.hw_disk_discard:
if not self._host.has_min_version(MIN_LIBVIRT_DISCARD_VERSION,
MIN_QEMU_DISCARD_VERSION,
REQ_HYPERVISOR_DISCARD):
msg = (_('Volume sets discard option, but libvirt %(libvirt)s'
' or later is required, qemu %(qemu)s'
' or later is required.') %
{'libvirt': MIN_LIBVIRT_DISCARD_VERSION,
'qemu': MIN_QEMU_DISCARD_VERSION})
raise exception.Invalid(msg)
else:
pass
image = self.image_backend.image(instance,
name,
image_type)
disk_info = disk_mapping[name]
return image.libvirt_info(disk_info['bus'],
disk_info['dev'],
disk_info['type'],
self.disk_cachemode,
inst_type['extra_specs'],
self._host.get_version())
************************
对比之后的代码修改
************************
def _get_guest_disk_config(self, instance, name, disk_mapping, inst_type,
image_type=None):
image = self.image_backend.image(instance,
name,
image_type)
disk_info = disk_mapping[name]
return image.libvirt_info(disk_info['bus'],
disk_info['dev'],
disk_info['type'],
self.disk_cachemode,
inst_type['extra_specs'],
self._host.get_version())
********************************
3)继续创建云主机,看是否报其他错误信息
2015-08-11 01:47:10.456 82044 ERROR nova.virt.libvirt.driver [req-27f7ade9-3142-4ec6-815d-84488c6e0201 - - - - -] Error launching a defined domain with XML:
instance-000000d9
4b525800-3e00-4b48-a997-c104f919cde3
exta
2015-08-10 17:47:09
8192
120
0
50
8
root
admin
8388608
8388608
8
8192
Fedora Project
OpenStack Nova
2015.1.0-3.el7
09c6f9d1-825f-43e2-8774-5ed6705af12b
4b525800-3e00-4b48-a997-c104f919cde3
hvm
destroy
restart
destroy
/usr/libexec/qemu-kvm
2015-08-11 01:47:10.457 82044 ERROR nova.compute.manager [req-27f7ade9-3142-4ec6-815d-84488c6e0201 - - - - -] [instance: 4b525800-3e00-4b48-a997-c104f919cde3] Instance failed to spawn
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] Traceback (most recent call last):
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2442, in _build_resources
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] yield resources
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2314, in _build_and_run_instance
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] block_device_info=block_device_info)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2354, in spawn
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] block_device_info=block_device_info)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4380, in _create_domain_and_network
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] power_on=power_on)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4311, in _create_domain
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] LOG.error(err)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 85, in __exit__
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] six.reraise(self.type_, self.value, self.tb)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4301, in _create_domain
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] domain.createWithFlags(launch_flags)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 183, in doit
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] result = proxy_call(self._autowrap, f, *args, **kwargs)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 141, in proxy_call
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] rv = execute(f, *args, **kwargs)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 122, in execute
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] six.reraise(c, e, tb)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 80, in tworker
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] rv = meth(*args, **kwargs)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] File "/usr/lib64/python2.7/site-packages/libvirt.py", line 996, in createWithFlags
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] libvirtError: 内部错误:无法获得对 ACL 技术驱动程序 'ebiptables' 的访问
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3]
2015-08-11 01:47:10.460 82044 INFO nova.compute.manager [req-210e07f7-cba3-4dec-b2d5-b7be95c2f559 95a96f0ddcf449239c6682a3c310857e be27eb2862904a0f9c636c337f66709c - - -] [instance: 4b525800-3e00-4b48-a997-c104f919cde3] Terminating instance
问题分析: 在程序中打断点,手动启动云主机:
vim nova/virt/libvirt/driver.py:4284行
***********************************************
def _create_domain(self, xml=None, domain=None,
instance=None, launch_flags=0, power_on=True):
"""Create a domain.
Either domain or xml must be passed in. If both are passed, then
the domain definition is overwritten from the xml.
"""
import ipdb;ipdb.set_trace()
err = None
try:
if xml:
err = _LE('Error defining a domain with XML: %s') % xml
domain = self._conn.defineXML(xml)
if power_on:
err = _LE('Error launching a defined domain with XML: %s') \
% encodeutils.safe_decode(domain.XMLDesc(0),
errors='ignore')
domain.createWithFlags(launch_flags)
if not utils.is_neutron():
err = _LE('Error enabling hairpin mode with XML: %s') \
% encodeutils.safe_decode(domain.XMLDesc(0),
errors='ignore')
self._enable_hairpin(domain.XMLDesc(0))
***********************************************
关闭nova-compute 服务器,启用ipdb
service opensack-nova-compute stop
ipdb /usr/bin/nova-compute --config-file=/etc/nova/nova.conf
获取UUID ,查看ceph vms pool 池,是否创建images
[root@athcontroller103210 nova]# rbd ls vms
175dc9db-2409-4b34-b6ca-efc0a1788687_disk
175dc9db-2409-4b34-b6ca-efc0a1788687_disk.local
5220f145-73d1-4831-872f-cfd32b09dd20_disk
5220f145-73d1-4831-872f-cfd32b09dd20_disk.local
847c6dea-a887-4fad-8acd-36f13bc29b57_disk
847c6dea-a887-4fad-8acd-36f13bc29b57_disk.local
d0adb3ea-7c4d-44d5-b4d6-a9a02a3c3468_disk
d0adb3ea-7c4d-44d5-b4d6-a9a02a3c3468_disk.local
手动启动云主机,进入/data/nova/instances/UUID/中
virsh create libvirt.xml
virsh create 启动报错
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)
2015-08-11 01:47:10.457 82044 TRACE nova.compute.manager [instance: 4b525800-3e00-4b48-a997-c104f919cde3] libvirtError: 内部错误:无法获得对 ACL 技术驱动程序 'ebiptables' 的访问
根据错误信息提示,去除nwfilter
去除instanes nwfilter 问题,写入log,后期解决ebiptables 功能
***********************************************
vim nova/virt/libvirt/config.py : 1196 行
1196 if self.filtername is not None:
1197 filter = etree.Element("filterref", filter=self.filtername)
1198 for p in self.filterparams:
1199 filter.append(etree.Element("parameter",
1200 name=p['key'],
1201 value=p['value']))
1202 #dev.append(filter)
1203 LOG.info("Add William: Delete nwfilter rule %s" %filter)
***********************************************
重新进入ipdb 模式,创建3台太云主机
2015-08-11 03:06:39.834 122763 INFO nova.scheduler.client.report [-] Compute_service record updated for ('athcontroller103210.sjz.autohome.com.cn', 'athcontroller103210.sjz.autohome.com.cn')
2015-08-11 03:06:39.956 122763 INFO nova.scheduler.client.report [-] Compute_service record updated for ('athcontroller103210.sjz.autohome.com.cn', 'athcontroller103210.sjz.autohome.com.cn')
2015-08-11 03:06:40.064 122763 INFO nova.scheduler.client.report [-] Compute_service record updated for ('athcontroller103210.sjz.autohome.com.cn', 'athcontroller103210.sjz.autohome.com.cn')
2015-08-11 03:07:23.798 122763 INFO nova.virt.libvirt.config [req-0de0fe4b-7c21-4e4f-9172-a63c65c26bd8 - - - - -] Add William: Delete nwfilter rule
2015-08-11 03:07:23.814 122763 INFO nova.virt.libvirt.firewall [req-0de0fe4b-7c21-4e4f-9172-a63c65c26bd8 - - - - -] [instance: 175dc9db-2409-4b34-b6ca-efc0a1788687] Called setup_basic_filtering in nwfilter
2015-08-11 03:07:23.815 122763 INFO nova.virt.libvirt.firewall [req-0de0fe4b-7c21-4e4f-9172-a63c65c26bd8 - - - - -] [instance: 175dc9db-2409-4b34-b6ca-efc0a1788687] Ensuring static filters
> /usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py(4292)_create_domain()
4291 import ipdb;ipdb.set_trace()
-> 4292 err = None
4293 try:
ipdb> c
2015-08-11 03:08:02.499 122763 INFO nova.compute.resource_tracker [req-28fc26e5-9ded-4394-a211-494c3cd20d87 - - - - -] Auditing locally available compute resources for node athcontroller103210.sjz.autohome.com.cn
2015-08-11 03:08:02.922 122763 INFO nova.compute.resource_tracker [req-28fc26e5-9ded-4394-a211-494c3cd20d87 - - - - -] Total usable vcpus: 40, total allocated vcpus: 8
2015-08-11 03:08:02.923 122763 INFO nova.compute.resource_tracker [req-28fc26e5-9ded-4394-a211-494c3cd20d87 - - - - -] Final resource view: name=athcontroller103210.sjz.autohome.com.cn phys_ram=257680MB used_ram=25088MB phys_disk=30137GB used_disk=510GB total_vcpus=40 used_vcpus=8 pci_stats=
2015-08-11 03:08:02.939 122763 INFO nova.scheduler.client.report [req-28fc26e5-9ded-4394-a211-494c3cd20d87 - - - - -] Compute_service record updated for ('athcontroller103210.sjz.autohome.com.cn', 'athcontroller103210.sjz.autohome.com.cn')
2015-08-11 03:08:02.939 122763 INFO nova.compute.resource_tracker [req-28fc26e5-9ded-4394-a211-494c3cd20d87 - - - - -] Compute_service record updated for athcontroller103210.sjz.autohome.com.cn:athcontroller103210.sjz.autohome.com.cn
2015-08-11 03:08:03.071 122763 INFO nova.virt.libvirt.config [req-3a9ea8b7-a740-4f02-a094-dabd8b2d96b3 - - - - -] Add William: Delete nwfilter rule
2015-08-11 03:08:03.072 122763 INFO nova.virt.libvirt.firewall [req-3a9ea8b7-a740-4f02-a094-dabd8b2d96b3 - - - - -] [instance: 5220f145-73d1-4831-872f-cfd32b09dd20] Called setup_basic_filtering in nwfilter
2015-08-11 03:08:03.073 122763 INFO nova.virt.libvirt.firewall [req-3a9ea8b7-a740-4f02-a094-dabd8b2d96b3 - - - - -] [instance: 5220f145-73d1-4831-872f-cfd32b09dd20] Ensuring static filters
2015-08-11 03:08:03.109 122763 INFO nova.virt.libvirt.config [req-871ea11a-af06-4944-ab84-101babc1351d - - - - -] Add William: Delete nwfilter rule
2015-08-11 03:08:03.110 122763 INFO nova.virt.libvirt.firewall [req-871ea11a-af06-4944-ab84-101babc1351d - - - - -] [instance: 847c6dea-a887-4fad-8acd-36f13bc29b57] Called setup_basic_filtering in nwfilter
2015-08-11 03:08:03.110 122763 INFO nova.virt.libvirt.firewall [req-871ea11a-af06-4944-ab84-101babc1351d - - - - -] [instance: 847c6dea-a887-4fad-8acd-36f13bc29b57] Ensuring static filters
2015-08-11 03:08:03.260 122763 INFO nova.compute.manager [req-e26e03ea-5ed6-4a47-8c18-15fa343eb505 - - - - -] [instance: 175dc9db-2409-4b34-b6ca-efc0a1788687] VM Started (Lifecycle Event)
2015-08-11 03:08:03.287 122763 INFO nova.virt.libvirt.driver [-] [instance: 175dc9db-2409-4b34-b6ca-efc0a1788687] Instance spawned successfully.
> /usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py(4292)_create_domain()
4291 import ipdb;ipdb.set_trace()
-> 4292 err = None
4293 try:
ipdb> c
2015-08-11 03:08:05.152 122763 INFO nova.compute.manager [req-e26e03ea-5ed6-4a47-8c18-15fa343eb505 - - - - -] [instance: 175dc9db-2409-4b34-b6ca-efc0a1788687] During sync_power_state the instance has a pending task (spawning). Skip.
> /usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py(4292)_create_domain()
4291 import ipdb;ipdb.set_trace()
-> 4292 err = None
4293 try:
ipdb> c
2015-08-11 03:08:06.597 122763 INFO nova.compute.manager [req-e26e03ea-5ed6-4a47-8c18-15fa343eb505 - - - - -] [instance: 5220f145-73d1-4831-872f-cfd32b09dd20] VM Started (Lifecycle Event)
2015-08-11 03:08:06.613 122763 INFO nova.virt.libvirt.driver [-] [instance: 5220f145-73d1-4831-872f-cfd32b09dd20] Instance spawned successfully.
2015-08-11 03:08:06.670 122763 INFO nova.compute.manager [req-e26e03ea-5ed6-4a47-8c18-15fa343eb505 - - - - -] [instance: 5220f145-73d1-4831-872f-cfd32b09dd20] During sync_power_state the instance has a pending task (spawning). Skip.
2015-08-11 03:08:07.438 122763 INFO nova.compute.manager [req-e26e03ea-5ed6-4a47-8c18-15fa343eb505 - - - - -] [instance: 847c6dea-a887-4fad-8acd-36f13bc29b57] VM Started (Lifecycle Event)
2015-08-11 03:08:07.453 122763 INFO nova.virt.libvirt.driver [-] [instance: 847c6dea-a887-4fad-8acd-36f13bc29b57] Instance spawned successfully.
2015-08-11 03:08:07.529 122763 INFO nova.compute.manager [req-e26e03ea-5ed6-4a47-8c18-15fa343eb505 - - - - -] [instance: 847c6dea-a887-4fad-8acd-36f13bc29b57] During sync_power_state the instance has a pending task (spawning). Skip.
云主机创建完成
附件:http://down.运维网.com/data/2366019
|
|