QEMU aracılığıyla IP-KVM

QEMU aracılığıyla IP-KVM

KVM'siz sunucularda işletim sistemi önyükleme sorunlarını gidermek kolay bir iş değildir. Kurtarma görüntüsü ve sanal makine aracılığıyla kendimiz için IP üzerinden KVM oluşturuyoruz.

İşletim sistemiyle ilgili sorun olması durumunda uzak bir sunucuda, yönetici kurtarma görüntüsünü indirir ve gerekli çalışmayı gerçekleştirir. Bu yöntem, arızanın nedeni bilindiğinde ve kurtarma görüntüsü ile sunucuda yüklü işletim sistemi aynı aileden olduğunda harika çalışır. Arızanın nedeni henüz bilinmiyorsa, işletim sisteminin yüklenme sürecini izlemeniz gerekir.

Uzak KVM

Sunucu konsoluna IPMI veya Intel® vPro™ gibi yerleşik araçları veya IP-KVM adı verilen harici aygıtları kullanarak erişebilirsiniz. Listelenen teknolojilerin hepsinin mevcut olmadığı durumlar vardır. Ancak bu son değil. Sunucu, Linux işletim sistemini temel alan bir kurtarma görüntüsüne uzaktan yeniden başlatılabiliyorsa, IP üzerinden KVM hızlı bir şekilde organize edilebilir.

Kurtarma görüntüsü, RAM'de bulunan tam teşekküllü bir işletim sistemidir. Böylece sanal makineler (VM'ler) dahil her türlü yazılımı çalıştırabiliriz. Yani, sunucu işletim sisteminin çalışacağı bir VM'yi başlatabilirsiniz. VM konsoluna erişim, örneğin VNC aracılığıyla organize edilebilir.

Sunucu işletim sistemini bir VM içerisinde çalıştırmak için sunucu disklerini VM diskleri olarak belirtmeniz gerekir. Linux ailesinin işletim sistemlerinde, fiziksel diskler şu formdaki blok cihazlarla temsil edilir: / Dev / SDX, normal dosyalar gibi çalışılabilir.

QEMU ve VirtualBox gibi bazı hipervizörler, VM verilerini "ham" biçimde, yani yalnızca hipervizör meta verileri olmadan depolama verilerini depolamanıza olanak tanır. Böylece VM, sunucunun fiziksel diskleri kullanılarak başlatılabilir.

Bu yöntem, kurtarma görüntüsünü ve içindeki VM'yi başlatmak için kaynaklara ihtiyaç duyar. Ancak dört veya daha fazla gigabayt RAM'iniz varsa bu bir sorun olmayacaktır.

Ortamın Hazırlanması

Hafif ve basit bir programı sanal makine olarak kullanabilirsiniz QEMUçoğunlukla kurtarma görüntüsünün bir parçası değildir ve bu nedenle ayrı olarak yüklenmesi gerekir. Müşterilere sunduğumuz kurtarma görüntüsü, Arch Linuxbir paket yöneticisi kullanan pacman.

Yapmanız gereken ilk şey, kurtarma görüntüsünün en son yazılımı kullandığından emin olmaktır. Tüm işletim sistemi bileşenlerini aşağıdaki komutla kontrol edebilir ve güncelleyebilirsiniz:

pacman -Suy

Güncellemeden sonra QEMU'yu yüklemeniz gerekir. Pacman aracılığıyla kurulum komutu şu şekilde görünecektir:

pacman -S qemu

Qemu'nun doğru kurulduğunu kontrol edelim:

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

Her şey böyleyse, kurtarma görüntüsü kullanıma hazırdır.

Sanal makine başlatma

Öncelikle VM'ye ayrılan kaynak miktarına karar vermeniz ve fiziksel disklere giden yolları bulmanız gerekir. Bizim durumumuzda sanal makineye iki çekirdek ve iki gigabayt RAM tahsis edeceğiz ve diskler yol boyunca yerleştirilecek / dev / sda и / Dev / SDB. VM'yi başlatalım:

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

Parametrelerin her birinin ne anlama geldiği hakkında biraz daha ayrıntılı bilgi:

  • -m 2048M — VM'ye 2 GB RAM tahsis edin;
  • -net nic -net kullanıcısı — NAT (Ağ Adresi Çevirisi) kullanarak bir hiper yönetici aracılığıyla ağa basit bir bağlantı eklemek;
  • -kvm'yi etkinleştir — tam KVM (Çekirdek Sanal Makinesi) sanallaştırmasını etkinleştirin;
  • -cpu ana bilgisayarı — sanal işlemciye, sunucu işlemcisinin tüm işlevlerini almasını söylüyoruz;
  • -M PC — PC ekipmanının türü;
  • -smp2 — sanal işlemci çift çekirdekli olmalıdır;
  • -vga std — büyük ekran çözünürlüklerini desteklemeyen standart bir video kartı seçin;
  • -drive dosyası=/dev/sda,format=raw,index=0,media=disk
    • dosya=/dev/sdX — sunucu diskini temsil eden blok aygıtının yolu;
    • biçim=ham - belirtilen dosyada tüm verilerin "ham" formda, yani bir diskte olduğu gibi olduğunu not ediyoruz;
    • indeks = 0 - disk numarası, sonraki her disk için bir adet artmalıdır;
    • medya=disk — sanal makinenin bu depolamayı bir disk olarak tanıması gerekir;
  • -vnc :0, şifre — VNC sunucusunu varsayılan olarak 0.0.0.0:5900'de başlatın, yetkilendirme olarak bir şifre kullanın;
  • -monitör stdio — yönetici ile qemu arasındaki iletişim standart giriş/çıkış akışları aracılığıyla gerçekleşecektir.

Her şey yolundaysa QEMU monitörü başlayacaktır:

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

Yetkilendirmenin bir şifre kullanılarak gerçekleştiğini belirttik ancak şifrenin kendisini belirtmedik. Bu, vnc şifresini değiştir komutunun QEMU monitörüne gönderilmesiyle yapılabilir. Önemli not: Şifre sekiz karakterden fazla olamaz.

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

Bundan sonra belirlediğimiz şifre ile sunucumuzun IP adresini kullanarak Remmina gibi herhangi bir VNC client’a bağlanabiliyoruz.

QEMU aracılığıyla IP-KVM

QEMU aracılığıyla IP-KVM

Artık sadece yükleme aşamasında olası hataları görmüyoruz, aynı zamanda onlarla da ilgilenebiliyoruz.

İşiniz bittiğinde sanal makineyi kapatmanız gerekir. Bu, işletim sisteminin içinde kapatmaya bir sinyal gönderilerek veya komut verilerek yapılabilir. sistem_güç kapatma QEMU monitöründe. Bu, kapatma düğmesine bir kez basmaya eşdeğer olacaktır: sanal makinenin içindeki işletim sistemi sorunsuz bir şekilde kapanacaktır.

İşletim sistemi kurulumu

Sanal makinenin sunucu disklerine tam erişimi vardır ve bu nedenle işletim sistemini manuel olarak kurmak için kullanılabilir. Tek sınırlama RAM miktarıdır: ISO görüntüsü her zaman RAM'e yerleştirilemez. Görüntüyü depolamak için dört gigabayt RAM ayıralım / mnt:

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

FreeBSD 12.0 işletim sisteminin kurulum görüntüsünü de indireceğiz:

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

Artık VM'yi başlatabilirsiniz:

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

Bayrak -önyükleme d CD sürücüsünden önyüklemeyi yükler. Bir VNC istemcisine bağlanıyoruz ve FreeBSD önyükleyicisini görüyoruz.

QEMU aracılığıyla IP-KVM

İnternete erişim için DHCP üzerinden adres alınması kullanıldığından, konfigürasyondan sonra yeni kurulan sisteme ön yükleme yapılması ve ağ ayarlarının düzeltilmesi gerekebilir. Bazı durumlarda, sunucuya takılı ağ kartı ile VM'de taklit edilen ağ kartı farklı olduğundan ağ bağdaştırıcısı sürücülerinin yüklenmesi gerekebilir.

Sonuç

Sunucu konsoluna uzaktan erişimi organize etmenin bu yöntemi, sunucu kaynaklarının bir kısmını tüketir, ancak sunucu donanımına herhangi bir özel gereksinim getirmez ve bu nedenle hemen hemen her koşulda uygulanabilir. Bu çözümü kullanmak, yazılım hatalarını teşhis etmeyi ve uzak sunucunun işlevselliğini geri yüklemeyi çok daha kolay hale getirir.

Kaynak: habr.com

Yorum ekle