View Single Post
Tuổi 01-11-2012, 08:54 AM   #1
emailhoc
Administrator
 
Gia nhập: Jul 2009
Trả Lời: 245
Xử lý lỗi Unable to connect to xend: Connection refused. Is xend running?
Hiện tượng: khi khởi động VM hoặc gõ lệnh "xm list" thì báo lỗi "Unable to connect to xend: Connection refused. Is xend running?"

Vào kiểm tra /var/log/xen/xend.log trên máy chủ Hypervisor thì thấy báo lỗi sau:

Mã:
[2012-10-31 15:59:44 8708] ERROR (SrvDaemon:349) Exception starting xend ((13, 'Permission denied'))
Traceback (most recent call last):
  File "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvDaemon.py", line 341, in run
    servers = SrvServer.create()
  File "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvServer.py", line 251, in create
    root.putChild('xend', SrvRoot())
  File "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvRoot.py", line 40, in __init__
    self.get(name)
  File "/usr/lib64/python2.4/site-packages/xen/web/SrvDir.py", line 84, in get
    val = val.getobj()
  File "/usr/lib64/python2.4/site-packages/xen/web/SrvDir.py", line 52, in getobj
    self.obj = klassobj()
  File "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvNode.py", line 30, in __init__
    self.xn = XendNode.instance()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", line 948, in instance
    inst = XendNode()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", line 91, in __init__
    self.other_config["xen_pagesize"] = self.xeninfo_dict()["xen_pagesize"]
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", line 937, in xeninfo_dict
    return dict(self.xeninfo())
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", line 881, in xeninfo
    info['xen_scheduler'] = self.xenschedinfo()
  File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", line 871, in xenschedinfo
    sched_id = self.xc.sched_id_get()
Error: (13, 'Permission denied')


Giải quyết:

Bước 1: Kiểm tra nội dung tập tin /etc/grub.conf để chắc chắc là hệ thống đã boot vào đúng kernel của Xen. Bảo đảm dòng đầu đầu tiên trong file grub.conf của Hypervisor phải như bên dưới

Mã:
title CentOS (2.6.18-308.16.1.el5xen)
        root (hd0,0)
        kernel /xen.gz-3.4.4 dom0_mem=2061802
        module /vmlinuz-2.6.18-308.16.1.el5xen ro root=LABEL=/
        module /initrd-2.6.18-308.16.1.el5xen.img


Sau đó khởi động lại Hypervisor để cho boot vào đúng kernel

Bước 2: Nếu bước 1 không giải quyết được vấn đề thì có thể nguyên nhân là do CSDL quản lý Xenstore bị corrupt. Ta sẽ xử lý như sau:

Sao lưu thư mục /var/lib/xend:
Mã:

# mv /var/lib/xend /var/lib/xend.bak


Tạm dừng dịch vụ xend:
Mã:
# service xend stop
Tạm dừng dịch vụ libvirtd:
Mã:
# service libvirtd stop



Bảo đảm rằng thư mục /var/lib/xend không tồn tại để khi dịch vụ xend khởi động trở lại thì thư mục này sẽ tự động được tạo lại.

Khởi động dịch vụ xend và libvirtd:

Mã:
# service xend start
# service libvirtd start
Kiểm tra lại lệnh "xm list" đã không còn báo lỗi

emailhoc vắng mặt   Trả lời ngay kèm theo trích dẫn này