IP-KVM via QEMU



Pemecahan masalah saat memuat sistem operasi pada server tanpa KVM bukanlah tugas yang mudah. Kami membuat KVM-over-IP menggunakan gambar pemulihan dan mesin virtual.

Jika terjadi masalah dengan sistem operasi pada server jarak jauh , administrator mengunduh gambar pemulihan dan melakukan pekerjaan yang diperlukan. Metode ini berfungsi dengan baik ketika penyebab kegagalan diketahui, dan gambar pemulihan dan sistem operasi yang diinstal pada server berasal dari keluarga yang sama. Jika penyebab kegagalan belum diketahui, Anda harus memantau perkembangan pemuatan sistem operasi.

KVM jarak jauh


Anda dapat mengakses konsol server menggunakan alat bawaan seperti IPMI atau Intelยฎ vPro โ„ข, atau menggunakan perangkat eksternal yang disebut IP-KVMs. Ada situasi di mana semua teknologi yang tercantum tidak tersedia. Namun, ini bukan akhir. Jika server dapat di-reboot dari jarak jauh menjadi gambar pemulihan berdasarkan sistem operasi Linux, maka Anda dapat dengan cepat mengatur KVM-over-IP.

Gambar pemulihan adalah sistem operasi lengkap yang berada di RAM. Dengan demikian, kita dapat menjalankan perangkat lunak apa pun, termasuk mesin virtual (VM). Artinya, Anda dapat memulai VM, di mana sistem operasi server akan bekerja. Akses ke konsol VM dapat diatur, misalnya, melalui VNC.

Untuk memulai sistem operasi server di dalam VM, Anda harus menentukan disk server sebagai disk VM. Pada sistem operasi keluarga Linux, disk fisik direpresentasikan sebagai perangkat blok dari form / dev / sdX , yang dapat ditangani seperti file biasa.

Beberapa hypervisor, seperti QEMU dan VirtualBox, memungkinkan Anda untuk menyimpan data VM dalam bentuk mentah, yaitu, hanya menyimpan data tanpa metadata hypervisor. Dengan demikian, VM dapat mulai menggunakan disk fisik server.

Metode ini membutuhkan sumber daya untuk menjalankan citra pemulihan dan VM di dalamnya. Namun, dengan empat atau lebih gigabytes RAM, ini tidak akan menjadi masalah.

Persiapan lingkungan


Sebagai mesin virtual, Anda dapat menggunakan program QEMU yang ringan dan sederhana, yang paling sering bukan bagian dari gambar pemulihan, sehingga harus diinstal secara terpisah. Gambar pemulihan yang kami tawarkan kepada pelanggan didasarkan pada Arch Linux , yang menggunakan manajer paket pacman .

Pertama, Anda perlu memastikan bahwa gambar pemulihan menggunakan perangkat lunak terbaru. Anda dapat memeriksa dan memperbarui semua komponen OS dengan perintah berikut:

pacman -Suy

Setelah pembaruan, Anda harus menginstal QEMU. Perintah instalasi melalui pacman akan terlihat seperti ini:

pacman -S qemu

Periksa apakah qemu terinstal dengan benar:

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


Jika demikian, maka gambar pemulihan siap digunakan.

Startup mesin virtual


Pertama, Anda perlu menentukan jumlah sumber daya yang dialokasikan untuk VM, dan mencari tahu jalur ke disk fisik. Dalam kasus kami, kami akan mengalokasikan dua core dan dua gigabytes RAM ke mesin virtual, dan disk berada di jalur / dev / sda dan / dev / sdb . Jalankan 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


Sedikit lagi tentang arti setiap parameter:

  • -m 2048M - mengalokasikan 2 GB RAM per VM;
  • -net nic -net user - menambahkan koneksi jaringan sederhana melalui hypervisor menggunakan NAT (Network Address Translation);
  • -enable-kvm - mengaktifkan virtualisasi KVM penuh (Kernel Virtual Machine);
  • -cpu host - beri tahu prosesor virtual untuk mendapatkan semua fungsi prosesor server;
  • -M pc - jenis peralatan PC;
  • -smp 2 - prosesor virtual harus dual-core;
  • -vga std - pilih kartu video standar yang tidak mendukung resolusi layar besar;
  • File -drive = / dev / sda, format = mentah, indeks = 0, media = disk
    • file = / dev / sdX - path ke perangkat blok yang mewakili disk server;
    • format = raw - tandai bahwa dalam file yang ditentukan semua data dalam bentuk "mentah", seperti pada disk;
    • index = 0 - nomor disk, harus bertambah untuk setiap disk berikutnya dengan satu;
    • media = disk - mesin virtual harus mengenali penyimpanan ini sebagai disk;
  • -vnc: 0, kata sandi - jalankan server VNC default pada 0.0.0.0-05900, gunakan kata sandi sebagai otorisasi;
  • -monitor stdio - administrator akan berkomunikasi dengan qemu melalui aliran input / output standar.

Jika semuanya beres, maka monitor QEMU akan mulai:

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


Kami menunjukkan bahwa otorisasi dilakukan dengan kata sandi, tetapi tidak menentukan kata sandi itu sendiri. Anda dapat melakukan ini dengan mengirimkan perintah ubah kata sandi vnc ke monitor QEMU. Catatan penting: kata sandi tidak boleh lebih dari delapan karakter.

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


Setelah itu, kita dapat terhubung dengan klien VNC, misalnya, Remmina, dengan alamat IP server kami dengan kata sandi yang Anda tentukan.





Sekarang kita tidak hanya melihat kemungkinan kesalahan pada tahap pemuatan, tetapi kita juga bisa melawannya.

Di akhir pekerjaan, Anda harus menyelesaikan mesin virtual. Ini dapat dilakukan di dalam OS dengan mengirimkan sinyal shutdown, atau Anda dapat memberikan perintah system_powerdown ke monitor QEMU. Ini akan setara dengan satu tekan tombol shutdown: sistem operasi di dalam mesin virtual akan dimatikan dengan lancar.

Instalasi sistem operasi


Mesin virtual memiliki akses penuh ke disk server dan karenanya dapat digunakan untuk menginstal sistem operasi secara manual. Satu-satunya batasan adalah jumlah RAM: tidak selalu ISO-image dapat ditempatkan dalam RAM. Kami memilih empat gigabytes RAM untuk menyimpan gambar di / mnt :

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

Kami juga memuat gambar instalasi sistem operasi 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

Sekarang Anda dapat memulai 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


Bendera -boot d mengatur boot dari drive CD. Kami terhubung oleh klien VNC dan kami melihat loader FreeBSD.



Karena DHCP digunakan untuk mengakses Internet, ada kemungkinan bahwa setelah konfigurasi akan diperlukan untuk mem-boot ke sistem yang baru diinstal dan memperbaiki pengaturan jaringan. Dalam beberapa kasus, mungkin perlu menginstal driver adaptor jaringan, karena kartu jaringan yang dipasang di server dan ditiru dalam VM berbeda.

Kesimpulan


Metode pengorganisasian akses jarak jauh ke konsol server ini menghabiskan sebagian sumber daya server, namun, ini tidak memaksakan persyaratan khusus apa pun pada komponen perangkat keras server, dan karenanya dapat dilakukan di hampir semua kondisi. Menggunakan solusi ini secara signifikan dapat memfasilitasi diagnosis kegagalan perangkat lunak dan memulihkan kesehatan server jauh.

Source: https://habr.com/ru/post/id464565/


All Articles