Computer >> Máy Tính >  >> Phần mềm >> Máy ảo

Khắc phục sự cố phổ biến của Xen

Khi nghiệp chướng trở nên tồi tệ nhất, trải nghiệm ảo hóa của bạn có thể trở nên tồi tệ. Nếu bạn là người mới sử dụng công nghệ Xen, bạn có thể khó hiểu rằng các thông báo lỗi Xen cực kỳ dài dòng và không thực sự hữu ích, trừ khi bạn là nhà phát triển Python. Với một dấu vết dài dòng và các tham chiếu khó hiểu đến các lệnh gọi hàm nội bộ, các lỗi thực sự có thể khiến bạn không chú ý đến 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 là chuyên gia về ảo hóa hay Python, nhưng tôi đã gặp phải một số vấn đề phổ biến chỉ mất vài phút ngắn ngủi để giải quyết nhưng có vẻ như là vô tận đối với những người dùng kém hiểu biết. Tái bút Tôi là một chuyên gia, nhưng tốt hơn hết là bạn nên khẳng định rằng bạn không phải là chuyên gia, bởi vì 1) sai sót thì được tha thứ 2) bạn có thể thất bại 3) mọi người yêu thích sự khiêm tốn và tất cả những thái độ kém cỏi đó. Dù sao đi nữa, hãy để tôi giúp bạn tận hưởng Xen.

Mẹo 1:Hiển thị

Trước khi bạn bắt đầu, hãy đảm bảo rằng màn hình của bạn được định cấu hình đúng cách. Cho dù bạn sử dụng BASH hay TCSH, hãy xuất hoặc đặt biến HIỂN THỊ cho thiết bị phù hợp. Đây phải là bước đầu tiên.

xuất HIỂN THỊ=tên máy chủ:cổng

Mẹo 2:Không có mô-đun nào có tên

Bạn có thể nhận được hàng triệu thông báo như thế này:không có tên mô-đun xen.xm, không có mô-đun có tên gtk, không có mô-đun nào có tên gì cả. Trong hầu hết các trường hợp, nguồn gốc của sự cố giống hệt nhau, ngay cả khi các thông báo lỗi có thể xuất hiện không liên quan.

Hãy xem một ví dụ về truy nguyên xm; thử chạy /usr/sbin/xm gì đó và thất bại:

Linux #xm danh sách

Traceback (cuộc gọi gần đây nhất cuối cùng):

Tệp "/usr/sbin/xm", dòng 8, trong

từ xen.xm nhập chính

ImportError:Không có mô-đun nào có tên xen.xm

Có hai tùy chọn:1) mô-đun thực sự bị thiếu 2) có gì đó không ổn ở một nơi khác. Trước tiên, chúng ta hãy bắt đầu bằng cách khám phá tùy chọn đầu tiên.

Thiếu mô-đun Python

Mô-đun thực sự có thể bị thiếu. Bạn có thể xác minh điều này bằng cách kiểm tra xem gói có liên quan đã được cài đặt trên máy chủ của bạn chưa. Ví dụ:nếu thiếu gói gtk, bạn có thể truy vấn cơ sở dữ liệu cài đặt cho các gói gtk và python-gtk.

Bạn cũng có thể chạy lệnh bị lỗi bằng strace và tìm kiếm các tệp hoặc thư mục bị thiếu mà tiện ích đang mong đợi. Điều này sẽ cung cấp cho bạn thêm thông tin về vấn đề hiện tại. Rất có thể bạn có cài đặt Xen chưa hoàn chỉnh trên hộp của mình.

Đã xảy ra lỗi

Một cái gì đó 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 của mình, tuy nhiên Python có thể không nhìn thấy chúng vì một lý do nào đó. Để khắc phục sự cố này, bạn có thể đặt biến PYTHONPATH theo cách thủ công và trỏ nó vào thư mục gói trang web.

xuất PYTHONPATH=/path-to-python-version/site-packages

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

Mẹo 3:Lệnh rõ ràng

Dù bạn có tin hay không, hầu hết các tiện ích Xen đều là các tập lệnh bao bọc. Bên dưới, bạn nhận được mã Python. Ví dụ:Trình quản lý máy ảo (VMM) cũng là một thứ của Python. Trước tiên, bạn cần tìm nơi ẩn tiện ích:

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 trình bao bọc, bạn có thể thực thi các lệnh trực tiếp. Tất cả các lệnh bao bọc này đều có tên tương đối, đây là một điều tốt, vì các công cụ của bạn sẽ hoạt động bất kể bạn đang sử dụng phiên bản Python nào, 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ó thực sự gặp sự cố hay không với thiết lập môi trường của mình, hãy chạy các lệnh có đường dẫn đầy đủ đến bản cài đặt Python của bạn. Chẳng hạn, thay vì thực thi virt-manager, bạn nên chạy:

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

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

Mẹo 4:Thay đổi tập lệnh

Điều này không được khuyến nghị trừ khi bạn là người dùng có kỹ năng, nhưng bạn có thể thay đổi tập lệnh trình bao bọc để trỏ đến các đường dẫn và cài đặt Python cụ thể. Hãy quay lại vấn đề ban đầu của chúng ta. Chạy xm create gây ra lỗi mô-đun xen.xm.

Bây giờ, chúng ta cần xem lệnh xm chính xác là gì. Chạy which đối với xm cho chúng ta biết nó ẩn dưới /usr/sbin/xm. Bây giờ, hãy mở tệp này trong trình soạn thảo văn bản. Nó thực sự là một tập lệnh Python.

#!/usr/bin/env con trăn

#  -*- chế độ:trăn; -*-

nhập khẩu hệ thống



# thêm đường dẫn dự phòng cho các lượt cài đặt đường dẫn python không bản địa nếu cần

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

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

từ xen.xm nhập chính



main.main(sys.argv)

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

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

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

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

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 thay đổi tương tự để xem liệu bạn có gặp sự cố cụ thể liên quan đến thiết lập của mình hay không.

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

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

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

Và tôi đoán bây giờ là đủ.

Đọc thêm

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

Bạn cũng có thể quan tâm đến Tài liệu RedHat, Các vấn đề về Xen thường gặp.

Kết luận

Bài viết này có thể không phải là bài viết hay nhất, tuy nhiên, một lần nữa, các thông báo truy xuất nguồn gốc của Python cũng không hẳn là một tác phẩm đẹp. Quá nhiều chi tiết có thể che giấu các vấn đề thực sự, có thể đơn giản như đặt biến môi trường chính xác hoặc thay đổi phiên bản Python. Hy vọng rằng, hướng dẫn này sẽ giúp bạn tiết kiệm nhiều giờ với những rắc rối và thất vọng không cần thiết.

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

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

Chúc mừng.