Ana içeriğe atla
Veri Bilimi
Veri Mühendisliği

Sanal Makine Nedir? Türleri, Faydaları ve Kullanım Alanları

Bu kapsamlı rehberde sanal makineler hakkında her şeyi öğrenin. VM’lerin nasıl çalıştığını, faydalarını, türlerini ve yaygın kullanım alanlarını; ayrıca veri bilimi, BT altyapısı ve bulut bilişimdeki rollerini keşfedin!
Tim Lu's photo
Tim Lu
Güncel · 15 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Ücretsiz Hesabınızı Oluşturun

Alıştırma and program your progress.

Google Ile Devam Edin
Devam ederek Kullanım Şartlarımızı, Gizlilik Politikamızı ve verilerinizin ABD’de saklandığını kabul etmiş olursunuz.

Sanal makineler (VM’ler), BT altyapısının temel bileşenlerindendir. Fiziksel bilgisayarların yazılım tabanlı öykünmeleridir ve lojistik ile hesaplama açısından esneklik sağlarlar.

Bu yazıda sanal makineleri, nasıl çalıştıklarını, faydalarını, yaygın kullanım alanlarını ve daha fazlasını açıklayacağım!

Sanal Makine (VM) Nedir?

Sanal makine; CPU, bellek, depolama, ağ arayüzleri ve işletim sistemi dâhil olmak üzere eksiksiz bir bilgi işlem sistemini öyküleyen bir teknolojidir. 

VM’ler bu sanal bilgisayarları oluşturmak için fiziksel bilgisayardan kaynak ödünç alır. Örneğin, bir bilgisayarda 8 CPU ve 16 GB RAM varsa, fiziksel donanımdan ayrıştırılmış 4 CPU ve 8 GB RAM’e sahip bir ortamı sanallaştırabiliriz. 

Tek bir donanım üzerinde birden fazla VM’yi yönetmek için, donanım kaynaklarının sanallaştırılmasını kontrol eden ve birden fazla sanal ortamı yöneten hiper yöneticilere (hypervisor) güveniriz.

Sanal Makineler ve Fiziksel Makineler

Bir sanal makinenin fiziksel bir makinadan nasıl farklılaşabileceğini anlamak önemlidir.

Önce donanım ve yazılım arasındaki farkı netleştirelim. Donanım; anakart, CPU, bellek, GPU ve depolama gibi bir sistemin fiziksel bileşenlerini ifade eder. İşletim sistemi veya diğer programlar gibi yazılımlar ise donanım üzerinde çalışır. 

Fiziksel makineler doğrudan donanım üzerinde çalışır. VM’ler ise “sanallaştırılmış” donanım oluşturan yazılımlar üzerinde çalışır. Daha önce belirttiğimiz gibi, temel sistem 64 GB RAM’e sahip olabilir; ancak bunun 32 GB’ını sanallaştırarak sanal makineyle paylaşabiliriz.

VM’ler donanım kaynaklarını paylaşabildiği için, bir VM’nin ihtiyaç duyduğu kadar kaynağı verimli şekilde tahsis edebiliriz. Örneğin, güçlü bir sunucuda her bir VM’nin görevini yerine getirmesi için gerekli kaynaklarla, paralel olarak birçok görev yürüten birden fazla VM çalıştırabiliriz. Bu da genel kaynak kullanımını ve maliyeti iyileştirebilir. 

Aşağıdaki tablo sanal ve fiziksel makineleri yan yana karşılaştırır:

Özellik

Sanal makineler (VM’ler)

Fiziksel makineler

Donanım bağımlılığı

Yazılım tarafından sağlanan sanallaştırılmış donanım üzerinde çalışır.

Doğrudan fiziksel donanım bileşenleri üzerinde çalışır.

Kaynak tahsisi

Diğer VM’lerle donanım kaynaklarını (ör. RAM, CPU) paylaşır.

Tamamen adanmış donanım kaynakları.

Ölçeklenebilirlik

Yüksek düzeyde ölçeklenebilir; tek bir fiziksel makinede birden çok VM çalıştırılabilir.

Fiziksel makinenin donanımıyla sınırlıdır.

Verimlilik

Yalnızca gerekli kaynakları tahsis ederek daha iyi kaynak kullanımı sağlar.

Donanımın yetersiz kullanımına yol açabilir.

Esneklik

Yeniden yapılandırması ve çoğaltması kolaydır.

Daha az esnek; fiziksel ayarlamalar veya değiştirmeler gerektirir.

Maliyet

Kaynak paylaşımı sayesinde daha düşük maliyet.

Her makinenin kendi donanımına ihtiyaç duyması nedeniyle daha yüksek maliyet.

Performans

Sanallaştırma nedeniyle hafif bir ek yük bulunur.

Doğrudan donanım kullanımı sayesinde daha yüksek performans.

Sanal Makine Türleri

İki ana sanal makine türü vardır: sistem ve süreç. Biri tüm bir işletim sistemini öykülerken, diğeri tek bir uygulamayı öyküler: 

Sistem sanal makineleri

Sistem VM’leri, VM’lerden bahsederken en sık düşündüğümüz türdür. Tıpkı tam bir Linux bilgisayarı gibi tüm bir işletim sistemini simüle ederler. Bu şekilde tek bir donanım birden fazla İS örneğini simüle edebilir. Farklı şeyler yapmak için birden fazla ortama ihtiyaç duyulduğunda bu kullanışlıdır.

Bulut sanal makineleri yaygın bir örnektir. Bunlarda tüm İS ortamları barındırılır ve İnternet üzerinden uzaktan erişilir; bu da onları ölçeklenebilir altyapı için ideal kılar.

Süreç sanal makineleri

Süreç VM’leri, bir ana işletim sistemi üzerinde çalışan tekil süreçlerdir. Baştan sona bir sistem değil, ana işletim sistemine özgü olmayabilecek bir uygulamayı herhangi bir bilgisayarda çalıştırmaya imkân veren daha küçük ortamlardır. Örneğin Java Sanal Makinesi, herhangi bir makinenin Java uygulamalarını yerel olarak çalıştırmasına olanak tanır.

Süreç VM’leri, sistem VM’lerine kıyasla hafiftir ve özellikle geliştirme ve hata ayıklama senaryolarında, belirli yalıtılmış uygulamaları çalıştırmak için yaygın olarak kullanılır.

VM türü

Açıklama

Kullanım alanları

Sistem sanal makinesi

Donanım ve bir İS dâhil olmak üzere tüm bir fiziksel makineyi simüle eder.

Birden çok işletim sistemi çalıştırma, sunucu konsolidasyonu ve test.

Süreç sanal makinesi

Tek bir uygulama veya süreci çalıştırır; yalıtılmış bir ortam sağlar.

Çapraz platform uygulama çalıştırma, geliştirme ve hata ayıklama.

Bir Sanal Makinenin Bileşenleri

Her sanal makinenin birkaç temel bileşeni vardır. Tam uygulama farklılık gösterebilse de benzer parçalardan oluşurlar. Bu bölümde bunları gözden geçirelim.

Genel olarak hiper yönetici, sanal makineleri başlatan ve yöneten yazılım katmanıdır. VM ile fiziksel makine arasındaki kaynakları yönetir. 

İki tür hiper yönetici vardır:

  • Tip 1 hiper yöneticiler çıplak metal üzerinde yer alır ve doğrudan sunucuda çalışır. Genellikle sunucunun kaynaklarına doğrudan erişirler. 
  • Tip 2 hiper yöneticiler genellikle bir ana işletim sistemine kurulur. Bilgisayarın kaynakları üzerinde tam denetime sahip değildirler; bunun yerine ana işletim sistemi tarafından yönetilirler.

Hiper yönetici, VM’ye sanal donanım tahsis eder. Bu, fiziksel kaynakların makinadan mantıksal olarak ayrıştırılıp sanal ortama verilmesi anlamına gelir. RAM’in, CPU çekirdeklerinin ve diğer bilgi işlem kaynaklarının bölünmesi, VM’nin süreç çalıştırabilmesini sağlar.

Konuk işletim sistemi VM içinde çalışır. Ana sistemle aynı olmak zorunda değildir; herhangi bir işletim sistemi olabilir. Aynı hiper yönetici veya sunucu üzerindeki farklı VM’ler, kullanım alanlarına bağlı olarak farklı işletim sistemlerine dahi sahip olabilir.

VM’ler, çalışırken bilgileri geçici olarak depolamak için sıklıkla sanal diskler kullanır. Bazen sanal diskteki verileri ana bilgisayarın gerçek depolama sistemine aktarırız; ancak bu, ana sisteme zarar vermemek için dikkatle yapılır.

Başlıca bileşenlerini gösteren sanal makine mimarisi diyagramı

Üç sanal makine çalıştıran bir sunucunun mimari diyagramı. Görsel kaynağı: DataCamp.

Sanal Makineler ve Konteynerler

Sanallaştırmanın bir başka popüler yöntemi de konteynerleştirmedir. Benzer hedeflere sahip olsalar da sanal makineler ve konteynerler uygulama açısından oldukça farklıdır. Farklarına bakalım.

  • Sanal makineler bir aygıtın donanımı dâhil tümünü çoğaltacak şekilde tasarlanmıştır. Bu, bir VM’nin anakart, CPU, ağ aygıtı vb. bileşenleri çoğaltarak VM üzerinde çalışan uygulamaların bağımsız donanımda çalışıyormuş gibi görünmesini sağladığı anlamına gelir. 
  • Konteynerler ise ortamdan bağımsız olarak belirli yazılım uygulamalarını çalıştırmak üzere tasarlanmıştır. Kendi kaynaklarını başlatmazlar; ana bilgisayarın kaynakları üzerinde çalışırlar.

Bir konteynerin mimarisi ve başlıca bileşenleri diyagramı

Üç konteyner çalıştıran bir sunucunun mimari diyagramı. Görsel kaynağı: DataCamp.

VM’ler ne zaman, konteynerler ne zaman kullanılmalı

Aynı anda birden çok işletim sistemi çalıştırmanız ve ayrık kaynak yönetimine ihtiyaç duymanız halinde VM’leri kullanın. Süreçleriniz için tutarlı ve öngörülebilir miktarda kaynağa ihtiyaç duyduğunuzda da VM’ler tercih edilir.

Öte yandan konteynerler, hafif uygulama dağıtımı için idealdir. Konteynerler kaynakları paylaştığından, sunucunuzun aynı anda birden çok konteyneri kaldırabildiğinden ve kaynakların uygun şekilde tahsis edildiğinden emin olmak önemlidir.

Bu kavramlara yeniyseniz, kullanım alanlarını anlamanıza yardımcı olması için konteynerleştirme ve sanallaştırma kavramları kursu faydalı olabilir. VM’lerle konteynerlerin nasıl farklılaştığını daha derinlemesine incelemek için konteynerler ve sanal makineleri karşılaştıran blog yazısına göz atın.

Sanal Makinelerin Faydaları

Sanal makinelerin, artan kaynak verimliliği ve güvenlik dâhil birçok faydası vardır. VM’leri doğru kullanmak teknoloji altyapınızı basitleştirip daha sağlam hâle getirebilir. Faydalarına daha yakından bakalım:

Kaynak verimliliği ve maliyet tasarrufu

VM’ler aynı donanımı paylaştığından, fiziksel sunucularınızdan çok daha fazla verim alabilirsiniz. Farklı ortamların bir araya getirilmesi, belirli bir kullanım senaryosuna özgü donanım satın alma ihtiyacını azaltır; paylaşılan kaynak kullanımı ve genel maliyet tasarrufu sağlar.

Yalıtım ve güvenlik

Her VM, ana sistemden bağımsız çalıştığı için doğal olarak yalıtılmıştır. Bu, tek bir sistemin çökmesi veya ihlal edilmesinin sorun oluşturma riskini en aza indirerek güvenliği artırır. VM’ler arasında genellikle iletişim yoktur ve birbirlerine bağımlı değildirler; bu nedenle sorunlu VM’leri kapatmak veya güvenlik endişelerini hızla izole etmek kolaydır.

Esneklik ve taşınabilirlik

VM’ler, kolayca çoğaltılabildikleri için BT altyapıları için büyük esneklik sunar. Birden fazla ortamın aynı anda başlatılması gerektiğinde, aynı başlangıç talimatlarını paylaşabildikleri için işleri basitleştirir. Bu ayrıca kolay test, yedekleme ve felaket kurtarma imkânı sağlar.

Sanal Makineler için Yaygın Kullanım Alanları

VM’lerin daha yaygın kullanım alanlarından bazılarını tartışalım. Normal bir bilgisayarda yapılabilen her görevi yerine getirebilirler ve çeşitli operasyonlar için vazgeçilmezdirler!

Test ve geliştirme ortamları

Geliştiriciler, yeni yazılımlar veya yamalar için test ve geliştirme ortamları oluşturmak amacıyla sıklıkla VM’leri kullanır. VM’ler, ana makineyi etkilemeden bir programdaki değişiklikleri çeşitli ekosistemlerde kapsamlı biçimde test etmeyi kolaylaştırır. Tek bir betikle, test için çok çeşitli VM’lere aynı değişiklik dağıtılabilir.

Sunucu konsolidasyonu

Uzmanlar, birden fazla fiziksel sunucuyu VM’ler kullanarak daha az sayıda sunucuda birleştirir. Bu, genel donanım bakım maliyetlerini düşürür ve sunucu odalarında yer tasarrufu sağlar. Ayrıca, fiziksel makineler artık tek bir ortama veya göreve bağlı olmadığından kaynak kullanımını iyileştirir.

Miras uygulamaları çalıştırma

Teknoloji değiştikçe, modern işletim sistemleri miras süreçleri artık desteklemeyebilir. Bir VM kullanmak, bu miras uygulamaları modernize edilirken de çalışır durumda tutarak operasyonların sorunsuz devam etmesini sağlar.

Felaket kurtarma ve yedeklemeler

Artan veri ve bilgi hacmiyle birlikte VM’ler, bir sistemin dayanıklılığını artırmak için tüm ortamların hızlı yedekleri olarak hizmet edebilir. Tek bir VM bir fiziksel sunucuda çökerse, aynı VM’nin diğer kopyaları çalışmaya devam edebilir veya devralabilir. Bu, bulut bilişimin temel bir bileşenidir.

Bulut bilişim

Bulutun büyük kısmı sanallaştırma üzerinde çalışır. AWS, Azure ve Google Cloud gibi bulut platformları, sanal makineleri hızlıca başlatıp kapatmanın kolay olması sayesinde ölçeklenebilir ve esnek altyapı sunabilir. Artan talebi karşılamak için tüm web sitelerinin veya programların sanal kopyalarını hızla oluşturabilir, ihtiyaç kalmadığında da kapatabilirler.

Bulut bilişimin sanallaştırmadan nasıl yararlandığını öğrenmek için bulut bilişimi anlama kursuna göz atın.

Veri Biliminde Sanal Makineler

Esneklikleri ve yararlılıkları sayesinde VM’ler veri bilimi için mükemmel araçlardır! Bu alandaki birçok kullanımından bazıları şunlardır:

Yalıtılmış geliştirme ortamları

Yazılım mühendislerinin benzersiz geliştirme ortamları oluşturmak için VM’leri kullanmasına benzer biçimde veri bilimciler de farklı veri projeleri için yalıtılmış ortamlar oluşturmak üzere VM’lerden yararlanabilir. 

Örneğin, bir VM’yi Python’da kestirimsel bir model oluşturmak, bir diğerini ise R ile veri ön işleme için kullanabilirsiniz. Bu ayrım, farklı ortamlarda aynı anda birden çok hesaplama açısından yoğun projenin yürütülmesine olanak tanır ve verimliliği artırır.

Veri bilimi deneylerinde yeniden üretilebilirlik

Veri bilimcilerin sonuçları yeniden üretebilmesi sıklıkla gerekir. Örneğin, derin öğrenme modeli eğitirken, aynı sürüm TensorFlow, kütüphaneler ve veri kümelerini içeren bir VM’yi iş arkadaşlarınızla paylaşabilirsiniz. Bu, deneylerde tutarlılık sağlar ve çevresel farklılıkların sonuçları etkileme riskini ortadan kaldırır.

Büyük veri projelerinde ölçeklenebilirlik

Projeler büyüdükçe, bulutta birden çok sanal makine kümesi gerekebilir. Terabaytlarca metin verisi üzerinde bir doğal dil işleme modeli eğittiğinizi düşünün; AWS gibi sağlayıcılar iş yükünü birden çok VM’ye otomatik olarak dağıtabilir. Örneğin Apache Spark gibi araçlar, büyük ölçekli hesaplamaları verimli şekilde yürütmek için sanal kümelerden yararlanabilir.

Popüler Sanal Makine Yazılımları

Hem bilgisayarınızda hem kurumsal ortamlarda sanal makineler çalıştırmanızı sağlayan birçok araç vardır. En popülerlerinden bazıları şunlardır:

VMware

VMware, kurumsal ortamlar için en popüler sanallaştırma araçlarından biridir. Sağlam destek ve bulut tabanlı çözümler sunar. VMware, müşterilerle birlikte ihtiyaçlarına göre masaüstü ve sunucu sanallaştırma araçları sağlar. Ana hiper yöneticileri, kolay sunucu sanallaştırma sağlayan ve kullanımı kolay HTML 5 arayüzüyle gelen VMware ESXi Tip 1 hiper yöneticisidir.

Microsoft Hyper-V

Microsoft’un Hyper-V’si, Windows Server ortamına özel bir hiper yöneticidir. Bu, tüm sanallaştırmanın çalışmak için bir Windows İS gerektirdiği ve disk bölümlerini kullandığı anlamına gelir. Windows Server ortamında sanal masaüstlerinin kolay sanallaştırılmasını sağlar ve Windows ekosisteminde veya hatta Azure’da kalmak isteyenler için mükemmel bir çözümdür.

VirtualBox

VirtualBox, en popüler açık kaynak sanallaştırma yazılımlarından biridir. Kullanıcıların kendi bilgisayarlarında her türden sanal masaüstleri oluşturmalarına olanak tanır. Basit bir arayüz sunar ve kolay yeniden üretilebilirlik için disk imajlarını kullanabilir. Sanallaştırma dünyasına harika bir giriş aracıdır ve pratik ile deneyim için şiddetle tavsiye edilir.

KVM (Çekirdek tabanlı sanal makine)

Linux çekirdeği, KVM adı verilen makineler oluşturmanıza olanak tanır. Modern her Linux sistemi KVM ile gelir ve kullanıcıların herhangi bir Linux tabanlı donanımı bir hiper yöneticiye dönüştürmesine imkân verir. Mevcut donanımdan yararlanır ve sıklıkla Red Hat gibi sanallaştırma yazılımlarıyla yönetilir.

Sonuç

Sanal makineler, tek bir sunucudan hızla birden fazla sanal ortam oluşturmanıza imkân tanıyarak BT ekosisteminin ayrılmaz bir parçasıdır. Genellikle gerekli oldukça kaynakları oluşturan ve tahsis eden hiper yönetici yazılımları tarafından yönetilirler.  Bu da özellikle birden çok sürecin paralel çalışması gerektiğinde daha yüksek kaynak kullanımı, yeniden üretilebilirlik, dayanıklılık ve verimlilik sağlar.

Bu kavramları keşfetmek ve VM’lerin konteyner gibi teknolojilerle nasıl karşılaştırıldığını anlamak için konteynerleştirme ve sanallaştırma kavramları kursuna göz atın. Bu temel teknolojileri derinlemesine anlamak için harika bir yoldur!

SSS

VM’ler çok fazla kaynak tüketebilir mi?

Bir VM’ye aşırı kaynak tahsis etmek mümkündür. Böyle bir durumda, yönetim yazılımınızı kullanarak VM’yi daha az kaynakla yeniden oluşturun.

VM’lerle ilgili güvenlik endişeleri var mı?

VM’ler genellikle sistemin geri kalanından tamamen yalıtılacak şekilde tasarlandığından, kullanımına ilişkin güvenlik riski genellikle minimum düzeydedir.

Bir VM için başlıca kullanım alanları nelerdir?

Genellikle VM’leri, makine öğrenimi algoritmaları, web sitesi yönetimi ve bulut tabanlı programlama gibi çok çeşitli görevlerde doğru kaynak tahsisini sağlamak için kullanırız. Bunlar bir VM’nin nasıl kullanılacağına dair sadece birkaç örnektir.

Bir VM oluşturmanın en iyi yolu var mı?

Tüm amaçlara uyacak tek bir en iyi VM yoktur. Belirli ihtiyaçlara göre uyarlanmak üzere tasarlanırlar ve her şeyi yapabilen bir VM oluşturmaktansa VM’nizi belirli hedefe göre uyarlamak daha iyidir.

Sanallaştırmayı denemek için hangi popüler VM yazılımlarını kullanabilirim?

Başlamak için VMware’i denemenizi şiddetle tavsiye ederim.


Tim Lu's photo
Author
Tim Lu
LinkedIn

Mekânsal analiz, makine öğrenimi ve veri hatları konusunda deneyime sahip bir veri bilimciyim. GCP, Hadoop, Hive, Snowflake, Airflow ve diğer veri bilimi/mühendisliği süreçleriyle çalıştım.

Konular
Veri Bilimi
Veri Mühendisliği

Bu kurslarla sanallaştırma hakkında daha fazla bilgi edinin!

Kurs

Konteynerleştirme ve Sanallaştırma Kavramları

2 sa
22.3K
VM'ler, konteynerlar, Docker ve Kubernetes'in temellerini öğrenin. Başlamak için aralarındaki farkları anlayın!
Ayrıntıları GörüntüleKursa Başla

Ücretsiz Hesabınızı Oluşturun

Alıştırma and program your progress.

Google Ile Devam Edin
Devam ederek Kullanım Şartlarımızı, Gizlilik Politikamızı ve verilerinizin ABD’de saklandığını kabul etmiş olursunuz.
Devamını Gör
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını Gör