IP-KVM qua QEMU

IP-KVM qua QEMU

Khắc phục sự cố khởi động hệ điều hành trên máy chủ không có KVM không phải là một nhiệm vụ dễ dàng. Chúng tôi tạo KVM-over-IP cho chính mình thông qua hình ảnh khôi phục và máy ảo.

Trong trường hợp có vấn đề với hệ điều hành trên một máy chủ từ xa, quản trị viên tải image khôi phục xuống và thực hiện các công việc cần thiết. Phương pháp này hoạt động hiệu quả khi biết nguyên nhân lỗi và hình ảnh khôi phục cũng như hệ điều hành được cài đặt trên máy chủ thuộc cùng một họ. Nếu vẫn chưa xác định được nguyên nhân lỗi, bạn cần theo dõi tiến trình tải hệ điều hành.

KVM từ xa

Bạn có thể truy cập bảng điều khiển máy chủ bằng các công cụ tích hợp sẵn như IPMI hoặc Intel® vPro™ hoặc thông qua các thiết bị bên ngoài có tên IP-KVM. Có những tình huống trong đó tất cả các công nghệ được liệt kê đều không có sẵn. Tuy nhiên, đây không phải là kết thúc. Nếu máy chủ có thể được khởi động lại từ xa thành hình ảnh khôi phục dựa trên hệ điều hành Linux thì KVM-over-IP có thể được tổ chức nhanh chóng.

Hình ảnh khôi phục là một hệ điều hành chính thức nằm trong RAM. Vì vậy, chúng ta có thể chạy bất kỳ phần mềm nào, kể cả máy ảo (VM). Nghĩa là, bạn có thể khởi chạy một máy ảo mà hệ điều hành máy chủ sẽ chạy trong đó. Việc truy cập vào bảng điều khiển VM có thể được tổ chức, chẳng hạn như thông qua VNC.

Để chạy hệ điều hành máy chủ bên trong máy ảo, bạn phải chỉ định các đĩa máy chủ là đĩa VM. Trong các hệ điều hành thuộc họ Linux, các đĩa vật lý được thể hiện bằng các thiết bị khối có dạng / dev / sdX, có thể được làm việc giống như các tệp thông thường.

Một số trình ảo hóa, chẳng hạn như QEMU và VirtualBox, cho phép bạn lưu trữ dữ liệu VM ở dạng "thô", tức là chỉ lưu trữ dữ liệu mà không có siêu dữ liệu của trình ảo hóa. Do đó, VM có thể được khởi chạy bằng đĩa vật lý của máy chủ.

Phương pháp này yêu cầu tài nguyên để khởi chạy ảnh khôi phục và VM bên trong ảnh đó. Tuy nhiên, nếu bạn có bốn gigabyte RAM trở lên thì điều này sẽ không thành vấn đề.

Chuẩn bị Môi trường

Bạn có thể sử dụng một chương trình nhẹ và đơn giản như một máy ảo QEMU, thường không phải là một phần của ảnh khôi phục và do đó phải được cài đặt riêng. Hình ảnh khôi phục mà chúng tôi cung cấp cho khách hàng dựa trên Arch Linux, sử dụng trình quản lý gói pacman.

Điều đầu tiên bạn cần làm là đảm bảo rằng hình ảnh khôi phục đang sử dụng phần mềm mới nhất. Bạn có thể kiểm tra và cập nhật tất cả các thành phần hệ điều hành bằng lệnh sau:

pacman -Suy

Sau khi cập nhật, bạn cần cài đặt QEMU. Lệnh cài đặt qua pacman sẽ như thế này:

pacman -S qemu

Hãy kiểm tra xem qemu đã được cài đặt đúng chưa:

root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers

Nếu mọi thứ đều như vậy thì hình ảnh khôi phục đã sẵn sàng hoạt động.

Khởi động một máy ảo

Trước tiên, bạn cần quyết định lượng tài nguyên được phân bổ cho VM và tìm ra đường dẫn đến các đĩa vật lý. Trong trường hợp của chúng tôi, chúng tôi sẽ phân bổ hai lõi và hai gigabyte RAM cho máy ảo và các đĩa được đặt trên đường đi / dev / sda и / dev / sdb. Hãy khởi động VM:

qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio

Chi tiết hơn một chút về ý nghĩa của từng tham số:

  • -m 2048M — phân bổ 2 GB RAM cho VM;
  • -net nic -người dùng mạng — thêm một kết nối đơn giản vào mạng thông qua bộ ảo hóa bằng cách sử dụng NAT (Dịch địa chỉ mạng);
  • -kích hoạt-kvm - kích hoạt ảo hóa KVM (Máy ảo hạt nhân) đầy đủ;
  • -máy chủ CPU — chúng tôi yêu cầu bộ xử lý ảo nhận tất cả chức năng của bộ xử lý máy chủ;
  • -M PC - loại thiết bị PC;
  • -smp 2 - bộ xử lý ảo phải là lõi kép;
  • -vga tiêu chuẩn — chọn thẻ video tiêu chuẩn không hỗ trợ độ phân giải màn hình lớn;
  • -tập tin ổ đĩa=/dev/sda,format=raw,index=0,media=disk
    • tập tin=/dev/sdX — đường dẫn tới thiết bị khối đại diện cho đĩa máy chủ;
    • format = raw - chúng tôi lưu ý rằng trong tệp được chỉ định, tất cả dữ liệu đều ở dạng "thô", nghĩa là như trên đĩa;
    • chỉ số = 0 — số đĩa, phải tăng thêm một cho mỗi đĩa tiếp theo;
    • phương tiện = đĩa — máy ảo phải nhận dạng bộ lưu trữ này dưới dạng đĩa;
  • -vnc :0, mật khẩu — khởi động máy chủ VNC theo mặc định tại 0.0.0.0:5900, sử dụng mật khẩu làm ủy quyền;
  • -màn hình stdio — giao tiếp giữa quản trị viên và qemu sẽ diễn ra thông qua các luồng đầu vào/đầu ra tiêu chuẩn.

Nếu mọi thứ đều ổn, màn hình QEMU sẽ khởi động:

QEMU 4.0.0 monitor - type 'help' for more information
(qemu)

Chúng tôi đã chỉ ra rằng việc ủy ​​quyền xảy ra bằng cách sử dụng mật khẩu nhưng không chỉ ra chính mật khẩu đó. Điều này có thể được thực hiện bằng cách gửi lệnh thay đổi mật khẩu vnc tới màn hình QEMU. Lưu ý quan trọng: Mật khẩu không thể nhiều hơn tám ký tự.

(qemu) change vnc password
Password: ******

Sau này, chúng tôi có thể kết nối với bất kỳ máy khách VNC nào, chẳng hạn như Remmina, bằng cách sử dụng địa chỉ IP của máy chủ với mật khẩu chúng tôi đã chỉ định.

IP-KVM qua QEMU

IP-KVM qua QEMU

Giờ đây, chúng tôi không chỉ nhìn thấy các lỗi có thể xảy ra ở giai đoạn tải mà còn có thể xử lý chúng.

Khi hoàn tất, bạn phải tắt máy ảo. Điều này có thể được thực hiện bên trong HĐH bằng cách gửi tín hiệu tắt máy hoặc bằng cách ra lệnh hệ thống_powerdown trong màn hình QEMU. Việc này sẽ tương đương với việc nhấn nút tắt máy một lần: hệ điều hành bên trong máy ảo sẽ tắt một cách êm ái.

Cài đặt hệ điều hành

Máy ảo có toàn quyền truy cập vào đĩa máy chủ và do đó có thể được sử dụng để cài đặt hệ điều hành theo cách thủ công. Hạn chế duy nhất là dung lượng RAM: không phải lúc nào ảnh ISO cũng được đặt trong RAM. Hãy phân bổ bốn gigabyte RAM để lưu trữ hình ảnh / mnt:

mount -t tmpfs -o size=4G tmpfs /mnt

Chúng ta cũng sẽ tải xuống image cài đặt của hệ điều hành FreeBSD 12.0:

wget -P /mnt ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso

Bây giờ bạn có thể khởi động VM:

qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
-cdrom /mnt/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
-boot d

Флаг -khởi động d cài đặt khả năng khởi động từ ổ đĩa CD. Chúng tôi kết nối với máy khách VNC và xem bộ tải khởi động FreeBSD.

IP-KVM qua QEMU

Vì việc lấy địa chỉ qua DHCP đã được sử dụng để truy cập Internet nên sau khi định cấu hình, có thể cần phải khởi động vào hệ thống mới cài đặt và sửa các cài đặt mạng. Trong một số trường hợp, có thể cần phải cài đặt trình điều khiển bộ điều hợp mạng vì card mạng được cài đặt trong máy chủ và card mạng được mô phỏng trong VM là khác nhau.

Kết luận

Phương pháp tổ chức quyền truy cập từ xa vào bảng điều khiển máy chủ này tiêu tốn một số tài nguyên máy chủ, tuy nhiên, nó không áp đặt bất kỳ yêu cầu đặc biệt nào đối với phần cứng máy chủ và do đó có thể được thực hiện trong hầu hết mọi điều kiện. Sử dụng giải pháp này giúp chẩn đoán lỗi phần mềm và khôi phục chức năng của máy chủ từ xa dễ dàng hơn nhiều.

Nguồn: www.habr.com

Thêm một lời nhận xét