Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Máy Ảo

Giải quyết các vấn đề phổ biến của ảo hóa Xen: Hướng dẫn từng bước

Khi vận may quay lưng, trải nghiệm ảo hóa của bạn có thể biến得苦涩. Nếu bạn là người dùng mới của công nghệ Xen, bạn có thể học theo cách khó khăn rằng các thông báo lỗi của Xen cực kỳ chi tiết và không hoàn toàn hữu ích, trừ khi bạn là nhà phát triển Python. Với traceback dài dòng và các tham chiếu bí ẩn đến các lời gọi hàm nội bộ, các lỗi thực sự có thể làm bạn mất tập trung vào những vấn đề vốn dĩ đơn giản và dễ giải quyết.

Mặc dù tôi không phải chuyên gia về ảo hóa hay Python, tôi đã gặp một vài vấn đề phổ biến chỉ mất vài phút để giải quyết, nhưng có thể dường như kéo dài mãi mãi đối với người dùng kém am hiểu. P.S. Tôi là chuyên gia, nhưng thường tốt hơn khi khẳng định bạn không phải, vì 1) lỗi được tha thứ 2) bạn có thể chịu đựng thất bại 3) mọi người thích sự khiêm tốn và thái độ underdog. Dù sao, hãy để tôi giúp bạn tận hưởng Xen.

Mẹo 1: Màn hình hiển thị (Display)

Trước khi bắt đầu, hãy đảm bảo màn hình hiển thị được cấu hình đúng. Dù bạn dùng BASH hay TCSH, hãy export hoặc setenv biến DISPLAY đến thiết bị phù hợp. Đây nên là bước đầu tiên.

export DISPLAY=hostname:port

Mẹo 2: Không có module tên <chèn tại đây>

Bạn có thể nhận được hàng triệu thông báo như thế này: no module name xen.xm, no module named gtk, no module named whatever. ברוב המקרים, nguyên nhân của vấn đề là giống nhau, ngay cả khi thông báo lỗi có vẻ không liên quan.

Hãy xem ví dụ về xm traceback; thử chạy /usr/sbin/xm something và thất bại:

Linux #xm list

Traceback (most recent call last):

File "/usr/sbin/xm", line 8, in <module>

from xen.xm import main

ImportError: No module named xen.xm

Có hai lựa chọn: 1) module thực sự bị thiếu 2) có vấn đề ở nơi khác. Hãy khám phá lựa chọn đầu tiên trước.

Thiếu module Python

Module có thể thực sự bị thiếu. Bạn có thể kiểm tra bằng cách xem gói liên quan có được cài đặt trên host hay không. Ví dụ, nếu gói gtk bị thiếu, bạn có thể truy vấn cơ sở dữ liệu cài đặt cho gói gtk và python-gtk.

Bạn cũng có thể chạy lệnh thất bại với strace và tìm các tệp hoặc thư mục bị thiếu mà tiện ích mong đợi. Điều này sẽ cung cấp thêm thông tin về vấn đề. Có khả năng bạn có cài đặt Xen không hoàn chỉnh trên máy.

Vấn đề ở nơi khác

"Nơi khác" đề cập đến thiết lập Python. Bạn có thể đã cài đặt các gói trên máy, tuy nhiên Python có thể không thấy chúng vì lý do nào đó. Để khắc phục, bạn có thể thủ công đặt biến PYTHONPATH và trỏ nó đến thư mục site-packages.

export PYTHONPATH=/đường-dẫn-phiên-bản-python/site-packages

Bạn cũng nên kiểm tra biến PATH để chắc chắn bạn đang sử dụng đúng phiên bản Python. Chạy lệnh với đường dẫn đầy đủ luôn được khuyến khích. Điều này đưa tôi đến mẹo số ba.

Mẹo 3: Lệnh tường minh (Explicit commands)

Tin hay không, hầu hết các tiện ích Xen là các script wrapper. Bên dưới là mã Python. Ví dụ, Virtual Machine Manager (VMM) cũng là một thứ Python. Trước tiên, bạn cần tìm nơi tiện ích ẩn:

which <tiện ích xen>

Sau đó, bạn cần xem nội dung của tệp đó:

cat <đường dẫn đến tiện ích xen>

Sau đó, thay vì đi qua wrapper, bạn có thể thực thi lệnh trực tiếp. Các lệnh wrapper này đều có tên tương đối, điều này tốt vì công cụ của bạn sẽ hoạt động bất kể phiên bản Python nào bạn dùng, tuy nhiên chúng che giấu nguyên nhân gốc rễ khi bạn gặp sự cố.

Để xem liệu bạn có vấn đề thực sự hay chỉ là vấn đề thiết lập môi trường, hãy chạy lệnh với đường dẫn đầy đủ đến cài đặt Python của bạn. Ví dụ, thay vì chạy virt-manager, bạn nên chạy:

/usr/bin/python "/usr/share/virt-manager ..."

Hoặc thậm chí sử dụng phiên bản python cụ thể, như python2.4 hoặc python 2.7.

Mẹo 4: Thay đổi script

Điều này không được khuyến khích trừ khi bạn là người dùng thành thạo, nhưng bạn có thể thay đổi các script wrapper để trỏ đến các đường dẫn và cài đặt Python cụ thể. Quay lại vấn đề ban đầu. Chạy xm create <tên vm> ném ra lỗi module xen.xm.

Bây giờ, chúng ta cần xem chính xác lệnh xm là gì. Chạy which trên xm cho biết nó nằm ở /usr/sbin/xm. Mở tệp này trong trình soạn thảo văn bản. Nó thực sự là một script Python.

#!/usr/bin/env python

# -*- mode: python; -*-

import sys



# add fallback path for non-native python path installs if needed

sys.path.append('/usr/lib/python')

sys.path.append('/usr/lib64/python')

from xen.xm import main



main.main(sys.argv)

Trong một số phiên bản Xen, dòng đầu tiên là #!/usr/bin/env python. Bạn có thể muốn thay đổi này thành một phiên bản Python cụ thể và xem kết quả. Ví dụ, Python 2.4 hoặc có thể Python 2.6. Một trong số này có thể bị cấu hình sai hoặc thiếu trong thiết lập môi trường.

#!/usr/bin/env python <--- xóa

#!/usr/bin/python2.6 <--- sử dụng

Sau đó, bạn có thể thấy mọi thứ hoạt động như mong đợi. Ví dụ, trên máy openSUSE 11.4 của tôi, cũng có kernel Xen cài đặt:

Tương tự, trên các phiên bản Xen mới hơn, chỉ liệt kê /usr/bin/python, bạn có thể muốn thực hiện cùng thay đổi để xem liệu bạn có vấn đề cụ thể liên quan đến thiết lập của mình hay không.

Đừng quên sao lưu tệp gốc trước khi thực hiện bất kỳ thay đổi nào. Hơn nữa, không bao giờ thử nhiều hơn một thay đổi tại một thời điểm, chỉ để đảm bảo bạn không tạo ra các vấn đề mới, phức hợp.

Mẹo 5: Kiểm tra dịch vụ (Services)

Nghe có vẻ ngớ ngẩn, nhưng bạn sẽ đối mặt với "cái cối xay gió" của hơi thở xấu với thứ ảo hóa của bạn nếu dịch vụ libvirt không được khởi động. Bạn sẽ không thể kết nối với domain dom0 và những thứ khác. Do đó, bạn nên đảm bảo nó đang chạy, cũng như được bật khi khởi động.

Và tôi đoán đó là đủ cho lúc này.

Đọc thêm

Một tài nguyên rất đáng giá, tại Virtuatopia.

Bạn cũng có thể quan tâm đến Tài liệu RedHat, Vấn đề Xen phổ biến.

Kết luận

Bài viết này có thể không đẹp lắm, nhưng thông báo traceback Python cũng không phải là tác phẩm nghệ thuật. Quá nhiều chi tiết có thể che giấu các vấn đề thực sự, mà có thể đơn giản như thiết lập đúng biến môi trường hoặc thay đổi phiên bản Python. Hy vọng hướng dẫn này sẽ giúp bạn tiết kiệm nhiều giờ không cần thiết của sự phiền toái và bực bội.

Bạn có nhiều thứ để đọc, vì vậy bạn nên làm ngay. Chỉ cần vào phần ảo hóa của tôi và bắt đầu nhấp chuột như điên. Có bài giới thiệu, có Xen Cloud Platform và XenServer, có live CD để khám phá. Chúng ta sẽ quay lại với thêm những điều tốt về Xen. Cũng có KVM, nếu bạn thích giải pháp mã nguồn mở khác. Tận hưởng!

Nếu bạn có các thủ thuật đơn giản, toàn cầu, phổ biến hoặc chung khác muốn chia sẻ, đừng ngại, gửi email. Dedoimedo chào.

Chúc vui.