Sanal Makine Nedir? (Neden ve Ne Zaman Kullanılmalı)

Yazılım endüstrisinde veya çevresinde çalışıyorsanız, muhtemelen sanal makineleri duymuşsunuzdur. Değilse, bunların ne olduğunu ve ne için kullanıldığını merak ediyor olabilirsiniz.

Bir yazılım mühendisi olarak her gün sanal makineler kullanıyorum. Yazılım geliştirmede güçlü araçlardır, ancak başka kullanımları da vardır. VM’ler olarak da bilinen birçok işletme, esneklikleri, güvenilirlikleri ve maliyet etkinlikleri nedeniyle bunları kullanır; ayrıca kaçak yazılım testlerinden kaynaklanan felaketleri de önlerler.

Sanal makinelerin ne olduğuna ve neden kullanıldığına bir göz atalım.

Sanal Makine nedir?

Sanal makine, bir bilgisayarın ana işletim sistemi içinde çalışan Windows, Mac OS veya Linux gibi bir işletim sisteminin (OS) bir örneğidir.

Genellikle masaüstünüzdeki bir uygulama penceresinde çalışır. Bir sanal makine tam işlevselliğe sahiptir ve ayrı bir bilgisayar veya makine gibi davranır. Özünde, sanal makine, ana makine olarak bilinen başka bir bilgisayarın içinde çalışan sanal bir bilgisayardır.

Sanal Makine 1
Resim 1: Dizüstü bilgisayarda çalışan Sanal Makine.

Bir sanal makinede donanım (bellek, sabit sürücü, klavye veya monitör) yoktur. Ana makineden simüle edilmiş donanım kullanır. Bu nedenle, ‘misafir’ olarak da adlandırılan birden çok VM, tek bir ana makinede çalıştırılabilir.

Sanal Makine 2
Resim 2: Birden çok VM çalıştıran ana makine.

Ana bilgisayar ayrıca Linux, Mac OS ve Windows dahil olmak üzere farklı işletim sistemleriyle birden çok VM çalıştırabilir. Bu yetenek, hiper yönetici adı verilen yazılıma bağlıdır (yukarıdaki Resim 1’e bakın). Hiper yönetici, ana makinede çalışır ve sanal makineler oluşturmanıza, yapılandırmanıza, çalıştırmanıza ve yönetmenize olanak tanır.

Hiper yönetici, disk alanı ayırır, işlem süresini planlar ve her VM için bellek kullanımını yönetir. Oracle gibi uygulamalar budur VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V ve diğerleri bunu yapar: bunlar hiper yöneticilerdir.

Bir hiper yönetici bir dizüstü bilgisayarda, PC’de veya sunucuda çalışabilir. Sanal makineleri yerel bilgisayar veya bir ağ üzerinden dağıtılmış kullanıcılar için kullanılabilir hale getirir.

Farklı türde sanal makineler ve ortamlar, farklı türde hipervizörler gerektirir. Bunlardan bazılarına bir göz atalım.

Sanal Makine Türleri

Sistem Sanal Makineleri

Bazen tam sanallaştırma olarak adlandırılan sistem VM’leri, bir hiper yönetici tarafından çalıştırılır ve gerçek bir bilgisayar sisteminin işlevselliğini sağlar. Sistem kaynaklarını yönetmek ve paylaşmak için ana bilgisayarın yerel işletim sistemini kullanırlar.

Sistem sanal makineleri genellikle hızlı veya birden çok CPU’ya, büyük miktarda belleğe ve tonlarca disk alanına sahip güçlü bir ana bilgisayar gerektirir. Kişisel veya dizüstü bilgisayarlarda çalışan bazıları, büyük kurumsal sanal sunucuların ihtiyaç duyduğu bilgi işlem gücünü gerektirmeyebilir; ancak, ana bilgisayar sistemi yeterli değilse yavaş çalışırlar.

Sanal Makineleri İşleyin

Proses Sanal Makineleri, SVM’lerden oldukça farklıdır; onları makinenizde çalıştırıyor ve bunun farkında bile değilsiniz. Uygulama sanal makineleri veya yönetilen çalışma zamanı ortamları (MRE’ler) olarak da bilinirler. Bu sanal makineler, bir ana işletim sistemi içinde çalışır ve uygulamaları veya sistem işlemlerini destekler.

Neden bir PVM kullanmalısınız? Belirli işletim sistemlerine veya donanıma bağımlı olmadan hizmetleri gerçekleştirirler. Yalnızca ihtiyaç duydukları kaynaklarla kendi küçük işletim sistemlerine sahipler. MRE ayrı bir ortamdadır; Windows, Mac OS, Linux veya başka bir ana makinede çalışıp çalışmadığı önemli değil.

En yaygın İşlem Sanal Makinelerinden biri, muhtemelen duymuş olduğunuz ve bilgisayarınızda çalışırken görmüş olabileceğinizdir. Java uygulamalarını çalıştırmak için kullanılır ve kısaca Java Sanal Makinesi veya JVM olarak adlandırılır.

Hiper Yönetici Türleri

İlgilendiğimiz sanal makinelerin çoğu, tüm bir bilgisayar sistemini taklit ettikleri için bir hiper yönetici kullanır. İki farklı hiper yönetici türü vardır: Bare Metal Hiper Yöneticileri ve Barındırılan Hiper Yöneticiler. İkisine de hızlıca bir göz atalım.

Çıplak Metal Hiper Yönetici

BMH’ler ayrıca yerel hipervizörler olarak da adlandırılabilir ve ana bilgisayarın işletim sistemi içinde çalışmak yerine doğrudan ana bilgisayarın donanımı üzerinde çalışırlar. Aslında, her sanal makine tarafından donanım kullanımını planlayarak ve yöneterek, ana bilgisayarın işletim sisteminin yerini alırlar, böylece süreçteki ‘aracı adamı’ (ana bilgisayarın işletim sistemi) ortadan kaldırırlar.

Yerel hipervizörler normalde şirketlerin çalışanlara sunucu kaynakları sağlamak için kullandığı büyük ölçekli kurumsal VM’ler için kullanılır. Microsoft Azure veya Amazon Web Services, bu tür mimaride barındırılan VM’lerdir. Diğer örnekler KVM, Microsoft Hyper-V ve VMware vSphere’dir.

Barındırılan Hiper Yönetici

Barındırılan hipervizörler, tıpkı makinelerimizde çalıştırdığımız diğer tüm uygulamalar gibi, standart işletim sistemlerinde çalışır. Kaynakları yönetmek ve dağıtmak için ana bilgisayarın işletim sistemini kullanırlar. Bu tür hiper yönetici, makinelerinde birden çok işletim sistemi çalıştırması gereken bireysel kullanıcılar için daha uygundur.

Bunlara Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop ve diğerleri gibi uygulamalar dahildir. Barındırılan hipervizörler hakkında daha detaylı bilgiyi yazımızda bulabilirsiniz, En İyi Sanal Makine Yazılımı.

Neden Sanal Makineler Kullanılır?

Artık bir sanal makinenin ne olduğu hakkında temel bir anlayışa sahip olduğunuza göre, muhtemelen bazı mükemmel uygulamalar düşünebilirsiniz. İşte insanların sanal makineleri kullanmasının en önemli nedenlerinden bazıları.

1. Uygun Maliyetli

Sanal makineler birçok durumda uygun maliyetlidir. En önemlilerinden biri kurumsal dünyada. Çalışanlara kaynak sağlamak için fiziksel sunucuları kullanmak çok pahalı olabilir. Donanım ucuz değildir ve bakımı daha da maliyetlidir.

Sanal makinelerin kurumsal sunucular olarak kullanılması artık norm haline geldi. MS Azure gibi bir sağlayıcının VM’leri ile ilk donanım satın alımı ve bakım ücreti yoktur. Bu sanal makineler, saatte yalnızca birkaç kuruşa kurulabilir, yapılandırılabilir ve kullanılabilir. Ayrıca kullanılmadıklarında kapatılabilirler ve hiçbir ücret ödemezler.

Makinenizde bir VM kullanmak da büyük bir para tasarrufu sağlayabilir. Birden çok işletim sisteminde veya farklı donanım konfigürasyonlarında çalışmanız gerekiyorsa,
tek bir ana bilgisayarda birden çok sanal makine kullanın; dışarı çıkıp her görev için ayrı bir bilgisayar satın almanıza gerek yok.

2. Ölçeklenebilir ve Esnek

İster kurumsal sunucular ister dizüstü bilgisayarınızda çalışan sanal makineler olsun, sanal makineler ölçeklenebilir. Kaynakları ihtiyaçlarınıza göre ayarlamak kolaydır. Daha fazla belleğe veya sabit disk alanına ihtiyacınız varsa, hiper yöneticiye gidin ve VM’yi daha fazlasına sahip olacak şekilde yeniden yapılandırın. Yeni donanım satın almaya gerek yoktur ve süreç hızla tamamlanabilir.

3. Hızlı kurulum

Yeni bir VM hızla kurulabilir. Yeni bir VM kurulumuna ihtiyaç duyduğum, onları yöneten iş arkadaşımı aradığım ve bir saatten kısa sürede kullanıma hazır hale getirdiğim durumlar oldu.

4. Olağanüstü Durum Kurtarma

Veri kaybını önlemeye ve olağanüstü durum kurtarmaya hazırlanmaya çalışıyorsanız, VM’ler harika bir araç olabilir. Yedeklemeleri kolaydır ve gerektiğinde farklı konumlara dağıtılabilirler. Microsoft veya Amazon gibi bir üçüncü taraf sanal makineleri barındırıyorsa, bunlar saha dışında olacaktır; bu, ofisiniz yanarsa verilerinizin güvende olduğu anlamına gelir.

5. Yeniden Üretilmesi Kolay

Çoğu hiper yönetici, bir VM’nin bir kopyasını veya görüntüsünü oluşturmanıza izin verir. Görüntüleme, her durum için aynı temel VM’nin tam reprodüksiyonlarını kolayca döndürmenize olanak tanır.

Çalıştığım ortamda her geliştiriciye geliştirme ve test için kullanması için bir VM veriyoruz. Bu işlem, gerekli tüm araçlar ve yazılımlarla yapılandırılmış bir görüntüye sahip olmamızı sağlar. Yeni bir geliştiriciyi işe aldığımızda, tek yapmamız gereken o görüntünün bir kopyasını çıkarmak ve çalışmak için ihtiyaç duydukları her şeye sahipler.

6. Geliştirme/Test için Mükemmel

Sanal makineleri kullanmanın en iyi avantajlarından biri, yazılım geliştirme ve test etme için mükemmel bir araç olmalarıdır. VM’ler, geliştiricilerin tek bir makinede birden çok platform ve ortamda geliştirmelerine olanak tanır. Bu VM bozulursa veya yok edilirse, hızla yeni bir tane oluşturulabilir.

Bir test cihazının her test döngüsü için temiz ve yeni bir ortama sahip olmasını sağlar. Yeni bir VM oluşturan, en son yazılım sürümünü yükleyen, gerekli tüm testleri çalıştıran ve testler tamamlandıktan sonra VM’yi silen otomatik test komut dosyaları oluşturduğumuz projeler üzerinde çalıştım.

VM’ler, burada TechFewer.com’da yaptığımız gibi ürün testi ve incelemeleri için harika bir şekilde çalışır. Uygulamaları makinemde çalışan bir sanal makineye yükleyebilir ve birincil ortamımı karıştırmadan bunları test edebilirim.

Testi bitirdiğimde, sanal makineyi her zaman silebilir, ardından ihtiyacım olduğunda yeni bir tane oluşturabilirim. Bu işlem aynı zamanda yalnızca bir Windows makinem olmasına rağmen birden fazla platformda test yapmamı sağlıyor.

Final Kelimeler

Gördüğünüz gibi sanal makineler, birçok uygulama için kullanılabilecek uygun maliyetli, çok yönlü bir araçtır. Artık testçiler, geliştiriciler ve diğerleri için sunucu erişimi sağlamak için pahalı donanım satın almamız, kurmamız ve bakımını yapmamız gerekmiyor. VM’ler, ihtiyacımız olan işletim sistemlerini, donanımı ve ortamları herhangi bir zamanda kolay ve hızlı bir şekilde oluşturma esnekliği sağlar.