Merhabalar,
Bu makalemde açık kaynak kod ve ücretsiz bir sanallaştırma teknolojisi olan KVM hakkında bilgiler aktaracağım.
KVM (Kernel-based Virtual Machine) Linux için sanallaştırma çözümüdür. Linux Çekirdeğinin bir Hipervizör olarak çalışmasını sağlayan, yüklenebilir bir Çekirdek modülünden oluşur. KVM, çok çeşitli guest işletim sistemleri için donanım destekli sanallaştırma sağlar. Ayrıca hem açık kaynak olması hem de ücretsiz olması dolayısıyla, basit ortamlardan enterprise seviye ortamlara kadar birçok yerde kullanılmaktadır. Sadece KVM’e özel, detaylı bir makale de paylaşacağım ilerleyen günlerde.
Bu makalede, CentOS 8 üzerinde KVM sanallaştırma sunucumuzu kuracağız. Ayrıca, grafik arayüzü aracılığıyla KVM Sanallaştırma ortamımızı yönetmek için de cockpit kuracağız.
Bu makalede şu bölümler olacaktır:
- Sistem gereksinimleri
- Kullanılacak sunucu özellikleri
- CentOS 8 üzerinde Cockpit Web Interface kurulumu
- CentOS 8 üzerinde KVM Virtualization Host kurulumu
- KVM sanal sunucu oluşturma
Sistem Gereksinimleri:
KVM için önerilen, minimum sistem gereksinimleri aşağıdaki gibidir:
- CPU – 1 CPU core or thread per virtual machine
- Memory – 2 GB RAM virtualization host için (+2 GB RAM her bir guest için
- Storage – 6 GB alan (virtualization host için + 6 GB her bir guest için)
Kullanılacak Sunucu Özellikleri:
Aşağıdaki özelliklerde, CentOS 8.1 (minimal) kurulmuş bir sunucu kullanacağım.
- CPU – 6 core CPU
- Memory – 32 GB
- Storage – 40 GB
- Operating System – CentOS 8.1
- Hostname – kvm-01.isleyen.net
- IP Address – 20.20.20.118/24
Öncelikle sunucu ismini ayarlayalım.
Ayrıca KVM kullanabilmek için, kullandığımız donanımın sanallaştırma destekli bir donanım olması gerekmektedir. Bunu öğrenmek için aşağıdaki komutları kullanabiliriz.
CPU tarafından Sanallaştırma Teknoloji desteğini sorgulamak için:
lscpu | grep Virtualization
Yukarıdaki komutun çıktısı, kvm-01.isleyen.net sunucumuzun, sanallaştırmayı desteklediğini göstermektedir.
Ancak, yukarıdaki komut herhangi bir sonuç göstermezse,
- Bare-metal donanım üzerinde, VT desteğini sistem BIOS’undan etkinleştirmeniz gerekir.
- Sanal makineler üzerinde, VT desteğini VM’nin CPU Ayarları’ndan etkinleştirmeniz gerekir.
CentOS 8 üzerinde Cockpit Web Interface kurulumu
Cockpit yönetim konsolu, linux ortamlarının grafik arabirimden yönetilmesini sağlayan pratik kullanıma sahip bir uygulamadır. Ayrıca KVM sanal sunucularımızın da web arabiriminden yönetilmesinde oldukça kullanışlıdır.
KVM komut satırı araçları, bir sanallaştırma ortamını yönetmek için yeterlidir. Ancak sanal makineleri, bir grafik arayüz aracılığıyla yönetmek için CentOS 8 yerel Web kullanıcı arayüzünü, yani Cockpit’i de kullanabiliriz. Açıkçası benim önerim de grafik ortam olacaktır. Böylece yeni başlayan ya da giriş seviye bilgiye sahip kullanıcılar da rahatlıkla bu ortamı yönetebilirler.
KVM için Epel repository’e ihtiyacımız olacak. Sisteminizde yüklü olup olmadığını aşağıdaki komut ile kontrol edebilirsiniz.
yum repolist
Eğer yoksa aşağıdaki komut ile, epel repository yüklemesi yapıyoruz.
yum install -y epel-release
Şimdi cockpit kurulumuna başlayabiliriz.
dnf install -y cockpit
ya da
yum install -y cockpit
Sanal makineleri, cockpit aracılığıyla yönetme desteğini eklemek için, cockpit-machines paketini de kurmamız gerekiyor.
dnf install -y cockpit-machines
ya da
yum install -y cockpit-machines
Cockpit servislerini başlatıyoruz ve enable ediyoruz.
systemctl start cockpit
systemctl enable cockpit.socket
Cockpit hizmetine, varsayılan olarak CentOS 8 güvenlik duvarında izin verilir. Dolayısıyla şu anda web arabiriminden https://kvm-01.isleyen.net:9090 yazdığımızda erişilebilir durumdadır. Ben host dosyama sunucu ismini ve IP adresini kaydetmiştim. Eğer isimle ulaşmak istiyorsanız host kaydını, kullandığınız PC üzerinde açın. Kayıt açmazsanız IP ile erişim sağlayın.
Komut satırından, cockpit servisine firewall üzerinden izinlerin nasıl verildiğini görmeniz açısından, aşağıda komutları da paylaşıyorum. Normalde bu servisler izinli ve bu komutları yazmanıza gerek yoktur.
firewall-cmd –add-service=cockpit
firewall-cmd –add-service=cockpit –permanent
Gördüğünüz gibi, zaten enable durumda olduğuna dair çıktı alıyoruz.
Root kullanıcımızla web arabiriminden login oluyoruz.
Sanal makinelerimizi Virtual Machines tabından yöneteceğiz. Bu taba geçtiğimizde, servisi başlatmamız için uyarı göreceğiz. Boot aşamasında start olması için kutucuğu işaretliyoruz ve Start libvirt ile devam ediyoruz.
Henüz KVM yüklemesi yapmadık ve Virtual machines altında herhangi birşey göremiyoruz normal olarak. Sonraki adımımız KVM yüklemek…
CentOS 8 üzerinde KVM Virtualization Host kurulumu
KVM kurulumunu web arabiriminden de kolaylıkla yapabiliyoruz. Fakat ben komut satırından da nasıl yapılacağını göstermek istiyorum. Az önceki cockpit kurulum adımlarında cockpit-machines pakedini yüklediğimiz için, aşağıda Machines uygulaması yüklü olarak görünüyor.
Normalde grafik arabirimden uygulamaların kurulumunu yapmak için Applications tabına geçiyoruz ve öncelikle update’leri kontrol ediyoruz.
Bakınız update sonrası, yeni uygulamalar bulunmuş oldu. Buradan da istenen uygulamalar yüklenebiliyor. Az önce machines uygulamasını komut satırından yüklememiş olsaydık, buradan da yükleyebilirdik. Container tabanlı işlemler için de ileride bu bölümleri kullanacağız.
Şimdi komut satırından KVM yüklemesine başlıyoruz.
CentOS 8 / RHEL 8’de, KVM ve QEMU hipervizörlerini içeren sanallaştırma bileşenleri, virt modülünde paketlenmiştir. Bu nedenle, CentOS 8’de bir KVM sanallaştırma hostu yapılandırmak için bu yüklemeleri yapacağız.
dnf install -y @virt
Ayrıca, virt-install paketini de kuruyoruz, çünkü bazı çok kullanışlı komut satırı araçlarını sağlamaktadır.
dnf install -y virt-install
Daha önce yüklediğimiz paketler içinde zaten yüklenmiş. 🙂
KVM hostumuzdaki tüm bileşenlerin, sanallaştırmayı destekleyebileceğini doğrulayalım şimdi de.
virt-host-validate
Görünüşe göre IOMMU (giriş-çıkış bellek yönetim birimi) desteği henüz CentOS 8 Çekirdeğinde etkinleştirilmemiş.
Çözüm için, çekirdek komut satırı seçeneklerine aşağıdaki parametreleri ekliyoruz.
grub2-editenv – set “$(grub2-editenv – list | grep kernelopts) intel_iommu=on”
Yukarıdaki değişikliğin etkili olması için makinenizi yeniden başlatın.
systemctl reboot
Yeniden başlattıktan sonra, virt-host-validate komutunu tekrar çalıştırın. Bu komut çıktısında warning ya da error grmemeniz gerekli.
KVM ve QEMU hipervizörleri de böylece CentOS 8 üzerine kurulmuş oldu.
KVM sanal sunucu oluşturma
Şimdi de sistemi test amaçlı bir VM oluşturalım. Create VM seçeneği ile devam ediyoruz.
Sanal sunucu ismini-özelliklerini-sistem tipini ve yükleme medyası gibi ayarlarımızı yapıyoruz. Ben ISO dosyaları için /root/ISO klasörü oluşturup kurulum ISO dosyasını da bu klasöre kopyalamıştım. Installation source olarak bu klasörü gösteriyorum.
RAM ve disk değerlerini de ayarlayarak create seçeneği ile devam ediyoruz.
Konsol tipini Console Type menüsü altından seçebilirsiniz.
Gördüğünüz gibi kurulum başlamış oldu. Bundan sonrası, tipik bir CentOS linux kurulum adımları gibi olacak. Bloğumda, CentOS kurulumuyla ilgili detaylı makaleler yer almaktadır. Bunları da inceleyebilirsiniz kurulum için.
KVM virtualization host kurulum işlemleri şimdilik bu kadar. İlerleyen makalelerde, KVM cluster kurulumlarına ve daha ileri seviye konulara da yer vereceğim.
Yararlı olması dileğiyle.
Yusuf İşleyen