Windows etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Windows etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Şubat 2021 Salı

UEFI Dual Boot ile Fedora Linux ve Windows'u Aynı Diske Kurmak


Merhaba. Bir gün dual boot konusunda yazacağım aklımın ucuna gelmezdi, taa ki yine aklımın ucuna gelmeyecek bir sorunla karşılaşana kadar. Dual boot'un ne olduğunu bilenler vardır ama kısaca tekrarlamak gerekirse, diskin birden fazla bölüme ayrılıp, birden çok işletim sistemi kurulmasına dual boot denir. Bu durumda doğal olarak işletim sistemlerinden yalnız biri çalışabilir.

Linux'u ilk duyduğum yıllarda, diski bölümünü FIPS ile küçültüp yeni oluşturduğumuz bölüme linux'u yüklerdik. Sanal makinalar yaygınlaştıktan sonra ikinci işletim sistemini sanal olarak çalıştırmak bana daha pratik geldiğinden daha az dual boot kullanmaya başladım. Üstelik SSD kullanmaya başladıktan sonra, bir işletim sistemini diğerine göre hep daha az kullandığımdan, disk yıpranması (wear out) konusunda kaygılarım oldu ama bir sorun yaşamadım. En sonunda ucuz yollu ikinci bilgisayarımı aldıktan sonra dual boot'a (neredeyse) gerek kalmadı; bir kaç deneme için Windows 7 kurmam gerekene kadar.

Aslında dual boot gayet kolay. En az iki disk bölümü ve bir ön yükleyici (boot loader) ile hemen hemen her işletim sistemi yüklenebilir. Buraya kadar sorun yok ancak yeni bilgisayarlarda işletim sistemini UEFI ile kurmak için fazladan bir kaç adım gerekiyor çünkü diskte ayrı bir EFI boot bölümü oluşturmak gerek. Bu yazıda amacım, diski en etkin şekilde kullanarak işletim sistemlerini yüklemek. Bu kurulumu daha önce fiziksel makinamda yaptım ama herşeyi tekrar kurmak istemediğimden, bu kez sanal makinada yapacağım.

Kuracağım işletim sistemi Fedora 33 ve Win7 olacak ama aynı işlemi Win10'la da yaptım. Adımlar zaten hemen hemen aynı. Linux kurulumunda /boot'un ayrı bir bölümde olmasını tercih ediyorum çünkü diskin geri kalanında LVM kullanacağım. Bu biraz alışkanlıktan dolayı, olmazsa olmaz değil. /boot dışında, her iki işletim sistemine bir bölüm ayıracağım.

Meraklısına ek okuma:
Is a /boot partition necessary anymore?
Is a /boot partition always necessary?
What's your recommendation on drive partitioning ... ?

Yeri gelmişken Fedora 33'ten itibaren artık varsayılan dosya sistemi btrfs. Yazının en sonunda btrfs'e de bir bölüm ayırdım. Kurulumda btrfs kullanmayacağım. Nedenini sondaki bölümde açıkladım.


Sanal Makinanın Oluşturulması
Sanallaştırma için VMware Workstation v15.5 kullandım (VirtualBox EFI'yi emule edebiliyor mu bilmiyorum). Sanal makina en az iki çekirdekli olmalı ve bellek kesinlikle 2 GB'den az olmamalı, aksi halde anlamsız hatalar çıkıyor. Sanal makina oluşturmayı Vmware ESXi Lab yazısında anlatmıştım, bu nedenle yalnız farklı olan adımlara değineceğim.

Makinayı "Custom (advanced)" seçeneğiyle oluşturdum ve "I will install the operating system later."ı seçtim. "Guest Operating System", Windows 7 x64 olacak. Bu, iki adım sonra "Firmware type"ta UEFI seçmeme imkan veriyor (yanda). Bu adımda UEFI seçeneği yoksa da sorun değil. Makina oluşturulduktan sonra .vmx dosyayı açıp, "firmware" ifadesini firmware = "efi" olarak değiştirmek; bu ifade yoksa bu satırı ekleyip vmware workstation'ı kapatıp açmak gerekiyor. Win10 için "Windows 10 x64" seçeneği seçilmeli. Bildiğim kadarıyla zaten 32-bit Win10 yok (Düzeltme: varmış). VMware'de neden ayrı ayrı "Windows 10" ve "Windows 10 x64" seçeneği var anlamadım.

İşlemci olarak iki çekirdek veya iki soket ve RAM olarak 3072 MB ayarladım. Win7 için önerilen zaten 2 GB, o anki fiziksel boş belleği (mavi üçgen) geçmediği sürece sanal makinanın belleği ne kadar çoksa o kadar iyi. Ağ bağlantısı NAT ve GÇ denetleyicisi "LSI Logic SAS" olacak. Win7, "LSI Logic"i desteklese de Win10 desteklemiyor (vmware seçmenize izin vermiyor). Win10 için önerilen, NVMe disk ama Linux'a etkisini bilmediğimden SCSI seçtim (bu arada Fedora NVMe diske kurulabiliyor). 120 GB'lik bir SCSI disk oluşturdum. Fiziksel diskimde 120GB boş yer olmadığından "Allocate all disk space now."u işaretlemedim. Bu noktada sihirbazı tamamlayıp makinayı oluşturdum.


Diski Bölümlendirmek
Disk bölümleme, dikkat edilmesi gereken konulardan ilki. Şu seçeneklerim var:
  1. Fedora KDE'de KDE partition manager
  2. Diğer Fedora spinlerinde (Workstation, Cinnamon vs.) "disks" (bunu kullanmayı beceremedim)
  3. gparted: Bu ubuntu'yla kurulu geliyor. Yani makinayı ubuntu ile açabilirim veya Fedora Live çalışırken sudo dnf install gparted ile kurabilirim.
  4. fdisk: fdisk bütün dağıtımlarda bulunuyor ve güncel sürümüyle GPT bölümler de oluşturabiliyor.
Fedora 32'den beri KDE sanal makinada sorunlu çalışıyor. Bu yüzden bölümlendirme için makinayı KDE ile açmadan önce, sanal makinanın ekran ayarlarında 3B grafik hızlandırmanın kapatılması gerek (Kaynak: KDE spin issues in VMWare).

Disk bölümlemede sorun, Windows'ların EFI disk bölümünü otomatik oluşturmak istemesi. Bundan ötürü Win7 kurulumundan önce yaklaşık 256MB'lık bir boş alan bırakmak gerekiyor. Bunun 128 MB'ı EFI bölümü, 100 MB'ı da sanırım geçici dosyalar için veya windows kurtarma bölümü. Eğer boş alan 128 MB olursa, 100MB'ı EFI bölümünde kullanılıyor ve diğer bölüm oluşturulmuyor. Win 10 kurulumu için normalde 100MB'lık bir EFI bölümüyle 16MB'lik gizli bir bölüm oluşturuluyor dolayısıyla Win 10 için 128 MB bırakmak yeterli.

Diski gparted'la bölümlemek için makinayı ubuntu'yla açıp gparted'ı başlattım (ubuntu şart değil, bkz: üçüncü madde. Aşağıda KDE partition manager ile de yapılışını açıkladım). Sağ üstte doğru diskin seçili olduğuna emin oldum (fiziksel makinalar için) ve önce Device -> Create Partition Table menüsünden 'gpt' türünde bir bölümleme tablosu oluşturdum. Sonra 'unallocated' yazan alana sağ tıklayıp New'a bastım, "New size" olarak 1024 verip bir bölüm ekledim.

Sonra tekrar New'a bastım, "Free space following" olarak 41216 ve "Free space preceeding" olarak 256 girdim (bunu girince "Free space following" 40960'ya düşecek. Win10 için 40960+128 = 41088). "File system" olarak listenin en altından "unformatted"ı seçip ikinci bölümü de oluşturdum. Son olarak kalan alanda bir NTFS bölümü daha oluşturdum (en sonda 1MB'lik alan kalıyor, bu normal). Bu adımda bölümler aşağıdaki gibi görünmeli:


Ardından yeşil "tick" tuşuna basıp, bölümlemeyi diske yazdım. Bu arada disk bölümlerini oluşturma sırası GPT'de önemli. Örn. üçüncü bölümü ikinciden önce oluştursaydım, üçüncü bölümün (40 GB) GPT girdisi tabloda ikinci sırada olacağından sda2 ve ikinci bölüm (78.75 GB) sda3 olacaktı. Bölümlerin diskteki sırada değil GPT'teki sırada numaralandırılması oldukça kafa karıştırıcı.

Bölümlemeden sonra linux için LVM bölümlerini oluşturdum. Bunun için şu komutları konsoldan verdim:

sudo su -
pvcreate /dev/sda2
vgcreate vg_fedora /dev/sda2
lvcreate -L 30G -n lv_root vg_fedora
lvcreate -L 25G -n lv_home vg_fedora
lvcreate -L 2G  -n lv_swap vg_fedora
lvcreate -L 6G  -n lv_tmp  vg_fedora
lvcreate -L 10G -n lv_var  vg_fedora

Bu şablonu kendi ihtiyacıma göre oluşturdum ve 5.75GB'lık boş bir alan bıraktım. Bunu gerektiğinde eklemek için tutuyorum. Tümünü lv_var'a eklemek isteseydim:

lvcreate -l 100%FREE -n lv_var vg_fedora

komutunu kullanmam gerekirdi.

Aynı işlemi KDE Partition Manager'da yapabilirim: Makinayı Fedora KDE ile başlatırım, Applications -> System -> KDE Partition Manager'la uygulamayı başlatıp sol taraftan bölümlendireceğim diski seçerim. Yukarıda "New Partition Table"a basıp "GPT"yi seçerim. Tekrar aynı sırayla 1024 MB'lik bir bölüm oluştururum; önünde 256 MB ve arkasında 40960 MB boş olan ikinci bölümü ve son olarak kalan alanda NTFS olarak üçüncü bölümü oluştururum.


Yukarıda, bölümlemesi tamamlanmış disk görülüyor. Apply'a basıp bunu diske yazar ve yukarıda verilen komutlarla Linux için gerekli bölümlemeyi yaparım.


İşletim Sisteminin Kurulumu #1: Windows
İşletim sisteminin kurulma sırası dikkat edilecek ikinci önemli konu. Windows 10'da denemedim ama Win XP ve Win 7 her zaman mevcut ön yükleyiciyi siliyor. Diskte GRUB veya başka ön yükleyici varsa üzerine Windows MBR kodu yazılıyor. Bu yüzden kuruluma Windows'tan başlamak gerek.

Bunun için sanal makinayı Win 7 DVD'siyle başlattım. Ağ bağlantısını da bu sırada kaldırdım çünkü kurulum sırasında sanırım güncellemeler için internete bağlanmaya çalışıyor, bu da kurulumu biraz uzatıyor. Fiziksel makinada kurulum için, kalıp dosyası UNetbootin veya UUI ile USB diske yazılabilir. Bir de fiziksel makinaya kurarken, normalde Win 7 tarafından sorunsuz tanınan kızıl ötesi fare ve klavyem sorun çıkardı. O yüzden bunları önceden söküp kurmak daha iyi.


Kurulumun "type of installation" adımında "Custom (advanced)" seçip, disk seçme ekranında 40GB'lik üçüncü bölümü seçerek kurulumu tamamladım.


Kullanıcı adı ve parola gibi adımların ayrıntısına değinmeyeceğim.

Windows 10 kurulumunda, ürün anahtarı sorulacak. Bunu "I don't have a product key"e basıp geçtim ama bir ürün anahtarı almayı düşünenlerin bir sonraki adımda uygun "edition"ı seçmeleri gerek. Sonunda "N" olanlar AB yasaları gereği bazı programları bulundurmuyorlar. Ben Win 10 Pro seçtim ama sanal makinaya kurduğum için önemli değil. Win 7'deki gibi burada da "Custom Install"ı ve disk olarak üçüncü bölümü seçmek gerek.


Geri kalanlar kişisel ayarlar olduğundan yine ayrıntısına değinmeyeceğim.


İşletim Sisteminin Kurulumu #2: Linux
Kurulumdan önce, fiziksel makinalar için dikkatli olunması gereken bir konu var: Linux'un 64 bit UEFI modda başlatılması gerekiyor. Bu nasıl olacak?

Örn. Fedora'da GRUB menüleri biraz farklı. Menü renkli görünüyorsa IA32, renksiz görünüyorsa x64 modda açılıyordur:

  
UEFI x64
  
IA32 mod

Fedora'nın olduğu USB diski fiziksel makinama taktığımda, USB disk BIOS boot seçeneklerinde iki farklı şekilde görünüyordu. Doğru seçenek, deneyerek bulunabilir veya EFI kabuğunu açıp, USB'deki BOOTX64.EFI elle çalıştırılabilir. Sanal makinada herhangi birşey yapmaya gerek kalmadan doğru modda açılıyor.

Yukarıdaki görsellerden de anlaşılacağı gibi ben KDE'yi tercih ediyorum. Fedora açıldıktan sonra, masaüstündeki "Install to Hard Drive"a basmak kurulum için yeterli. Live dağıtım kurulumlarının en eğlenceli yanı, kurulum sırasında arkaplanda başka programları çalıştırabilmek ve hatta birden fazla monitör varsa, birinde kurulum sürerken aynı anda internette gezinebilmek. Bu arada Windows kurulumundan önce ağ bağlantısını kapatmıştım, bu sefer açacağım. Aksi halde kurulumdan sonra bağlantıyı elle yapılandırmak gerekiyor.

Kurulumu başlattıktan sonra dil, zaman dilimi vb. ayarları seçtim. Bunların ayrıntısına girmeyeceğim. Tek önemli konu disk bölümleri. Disk kullanımını ayarlamak üzere "Installation Destination"a basıp "Storage Configuration" altında "Custom" seçtim. Ardından, daha önce oluşturulan /boot bölümü ve diğer LVM bölümleri ilgili "mount point"lere atadım.

1- "Unknown" altındaki sda1'e (en üstte) tıklayıp, sağ tarafta "Mount Point" /boot, "File System" ext4 seçtim. "Reformat"a ve ardından "Update Settings"e bastım.


2- "EFI System Partition" (sda2, 100 MB) diskine tıklayıp "Mount Point" olarak /boot/efi seçtim ve "Update Settings"e bastım. Bu adımda kesinlikle "Reformat"a basmadan diski eklemek gerek. Bu da, kurulumda dikkat edilmesi gereken son önemli nokta. Aksi halde Windows'u yeniden kurmak gerekir. Oysa, normalde Anaconda'nın disk bölümünü formatlamadan eklediği nadir görülen bir durum.

3- Diğer disk bölümleri adlarına karşılık gelen "mount point"lere bağlanır. Bunun için önce "Reformat" işaretlenir ve "Mount Point" kutucuğuna ilgili mount point girilir. Dosya sistemi tercihe bağlı. Ben genelde /var için ext4, diğerleri için xfs tercih ediyorum. Btrfs'le ilgili düşüncelerimi yazının sonunda ayrı bir bölümde ele aldım. Aşağıda, "mount point"ler tamamlandıktan sonraki ekran görüntüsü var.


Diskler ayarlanıp, yönetici haklarına sahip bir kullanıcı oluşturulur ve kurulum başlatılır. Kurulumun güzel bir özelliği de diskteki Windows kurulumunu tanıyıp bunu GRUB menüsüne otomatik eklemesi. En son, Centos 7 kurduğumda böyle bir özellik olmadığından, Windows'u grub.cfg'ye elle eklemek gerekiyordu.

Bütün adımlar tamamlanıp makina yeniden başlatıldığında artık iki işletim sistemi de kullanıma hazırdır.


Ek: Btrfs
Fedora 33'ün, btrfs'i varsayılan dosya sistemi olarak sunması ve benim Fedora'yı fiziksel makinaya kuracak olmamdan dolayı btrfs'i bir hayli inceledim.

Öncelikle btrfs, ext ve xfs'e göre oldukça fazla özellik içeriyor. Diskin bir bölümü, snapshot özelliği sayesinde o anki haliyle saklanabiliyor. Bu oldukça güzel bir özellik. Snapshot ext'te olmadığından, bu özellik LVM ile sağlanıyordu. Subvolume özelliği sayesinde, diski bölümlere ayırmaya gerek kalmıyor. Bunun bir getirisi daha var: btrfs tekilleştirme'yi (deduplication) destekliyor. Dosyalar parçalara (chunk) ayrılıyor ve hash'leri aynı olan parçalar tek kopya olarak tutuluyor. Dolayısıyla btrfs'te bütün diski tek bölüm olarak kullanmak, dosya/veri havuzunu genişleterek tekilleştirme oranını arttırıyor ve subvolume'lar kullanılarak, dizinleri ayrı ayrı yönetmek mümkün oluyor. Son olarak RAID'in kısıtlayıcı yapısını tamamen kaldırarak farklı büyüklükteki disklerle, gruplar oluşturulmasına olanak sağlıyor. Bu son özellik masaüstü kullanıcıları için çok şey ifade etmese de sunucu diskleri için RAID'e çok daha esnek ve güzel bir alternatif sunuyor.

Öte yandan, RedHat üç yıl önce btrfs desteğini kaldırdı. SuSe, eskiden btrfs'i öneriyordu ama şu anda durum nasıl bilmiyorum. Ben o zaman btrfs'in olgunlaşmış olmadığını düşünüyordum ancak RedHat'in bu kararının arkasında ticari kaygıların da olabileceği iddiası da var: Oracle allergy could be why...

Bence btrfs, geleceğin teknolojisi ve şu an hayli stabil ama RedHat desteklese bile üretim ortamında kullanmak için erken. Bunun bir nedeni, zamanında çıkar çıkmaz FAT32'ye geçip, veri kaybettiğimde kurtaracak program bulamamış olan benim, yeni dosya sistemlerine mesafeli durmam. Diğer nedeni de mevcut sistemlerden geçiş süreci. Bu arada perfomans konusunda, Phoronix'in testleri bir fikir verecektir:

Masaüstündeyse, ben alışkanlıktan btrfs kullanmak istemedim. Yukarıdaki bölümlemenin benzerini kişisel bilgisayarımda kullanıyorum ve bu bölümlemenin tekilleştirmeden dolayı verimli olup olmayacağı benim için bir sorun. Btrfs FAQ'ya göre tek disk bölümü, tekilleştirmeden değil ama yazma optimizasyonlarından ötürü tavsiye ediliyor. Kafa karıştırıcı bir konu da boş alan hesaplaması. Örneğin unutulmuş bir snapshot önemli ölçüde yer kaplayacağı gibi, 120 GB'lik bir diskte tekilleştirmeyle 300 GB dosya bulunup yine de 40 GB boş alan olabilir. Bir diğer konu, yıllardır kullandığım için LVM komutlarını iyi biliyorum ve btrfs için konfor zonundan çıkmak istemedim.

21 Ocak 2018 Pazar

Vmware Workstation İçinde Vmware ESXi Lab #2


Tekrar merhaba, yazının bu bölümüde Windows'lar için bir domain controller (DC) kuracak sonra başka bir Windows'a vCenter kurup ESXi hostları ve sanal makinaları yöneteceğim. Yazıyı çok uzatmamak için disk altyapısının kurulumunu sonraki yazıya bıraktım. Dördüncü bir bölüm daha olacak, o bölümde de vCenter Appliance (anlatılacak) kullanarak tüm altyapıyı yeniden kuracağım. 

Bölümlerin konu başlıkları şöyle:
1. Bölüm: ESXi Hostların ve Windows Şablonunun Kurulumu
2. Bölüm: DC ve vCenter Kurulumu. Datacenter, Cluster ve Host Eklemek
3. Bölüm: Disk ve Ağların Eklenmesi. Sanal makinalar, Migration, Fault Tolerance
4. Bölüm: Altyapının Linux'ta Kurulması, vCenter Appliance Kurulumu ve Ayarları


Domain Controller'ın Kurulumu
Sanal makinadan klon almak
Bu bölümü yazmaya başlamadan önce, Microsoft'un Domain Controller'i (DC) nasıl Türkçeleştirdiğine baktım ancak bulamadım. Herneyse, sanal makinaya sağ tıklayıp Manage -> Clone seçtim (sağda). Gelen pencerede (aşağıda), sanal makina şablon işaretlendiği için yalnız snapshot'dan klon seçilebiliyor. Next diyip geçtim.

Küçük bir ara bilgi: Vmware Workstation'da çalışan makina klonlanamıyor ama ESXi'de bu mümkün (bir önceki yazıda ESXi'nin kurumsal kullanım için olduğunu belirtmiştim). Kapalı makinanın klonunu almak zaten kolay. Disk dosyalarını (vmdk) ve konfigürasyon dosyasını (vmx) kopyalayıp adını değiştirdikten sonra elle bile yapılabilir. ESXi'de, çalışan makina klonlanırken arka planda disk snapshot alınıyor ve bundan bir vmdk dosya kopyalanıyor. RedHat Enterprise Virtualization (v3.x) veya yeni adıyla RedHat Virtualization'da (v4.x) çalışan makina klonlamak için kullanıcı snapshot'ı elle alıyor ve klonu, aldığı snapshot'dan oluşturuyor.

Klon için kaynak seçimi

 Bağlı klon oluşturmak
Şimdi güzel bir özelliğe sıra geldi. Bağlı klonda (linked clone), yeni makinanın yalnız vmx dosyası (sanal donanımı) kopyalanıp özelleştiriliyor ve boş bir disk dosyası (vmdk) şablonla aradaki farkları tutuyor. Böylelikle Windows'u bir kere kurup bundan iki bağlı klon alarak şablondaki 7 GB'ı diskte bir kere (şablonda) tutmuş oluyorum. Bağlı klon alınmış sanal makinaya bir program kurulduğunda sanal makina diskte yalnız programın büyüklüğü kadar yer tutar. Yandaki gibi bağlı klon seçeneğiyle ilerledim, makinaya DC adını verip makina oluşturmayı tamamladım. Yeri gelmişken, bağlı klonun artıları olduğu kadar eksileri de var. Eğer şablon açılır ve değişiklikler yapılırsa, yapılan değişiklik buna bağlı bütün klonlara yansır hatta Windows açılmaz duruma gelebilir. Açmayı denemedim hatta makinayı şablon olarak işaretleyince açma seçeneğinin kaybolacağını düşünüyordum ama kaybolmuyor. Benzer biçimde şablonun disk dosyası bozulur veya silinirse buna bağlı bütün klonlar da kullanılmaz olur.

Klonlanan sanal makinanın adlandırılması

Makinayı açmadan önce dikkat çekici iki nokta var. Birincisi, makina bağlı klon olduğundan ikonu farklı. İkincisi, bir önceki yazıda şablonu kurarken ağ kartını vmnet2'ye bağlamış ve aslında nereye bağlı olduğunun önemi olmadığını yazmıştım. Eğer şablon vmnet2'ye bağlı olarak kurulmuşsa şimdi değişikliğe gerek olmayacak. Değilse "network adapter"a basıp oradan vmnet2 seçmek gerekiyor. Bu, DC kurulumundan sonra da yapılabilir. 


Makinayı açtım. Sysprep yapıldığından bir kere kendini yeniden başlattı. Açılışta yine dil ve klavye ayarlarını sordu ve lisans anlaşmasını gösterdi. Bunu kabul edip geçtim ve bir yönetici şifresi verdim. Bundan sonra "Initial Configuration Tasks" açılmalı, açılmazsa çalıştır'da "oobe" yazıp Enter'a basarak çalıştırılabilir.

Makinaya IP verilmesi
1) "Set time zone"dan uygun saat dilimini seçtim.
2) "Configure networking"e basıp aşağıdaki IP'yi verdim:
IP Address: 10.10.2.4
Netmask: 255.255.255.0

Kısaca hatırlayalım: Ağ kartına sağ tıkla -> Properties -> "Internet Protocol Version 4" (çift tıkla veya Properties). Ayarlar sağdaki gibi olmalı. Def. GW veya DNS sunucuya gerek yok.



3) "Provide computer name and domain"e basınca çıkan pencerede "Change"e bastım. "Computer name"i dc yaptım, "Workgroup"u olduğu gibi bıraktım. Her iki pencerede tamama basınca makina yeniden başlatıldı.


Makina açıldıktan sonra '"çalıştır"a "dcpromo" yazıp Enter'a bastım. "Active directory" sihirbazı açıldı. İlk adımda birşey değiştirmeden iki defa "Next"e bastım. "Create a new domain in a new forest" seçip ilerledim ve FQDN olarak "lab.local" verdim (aşağıda).


"Forest functional level" Windows Server 2008 R2 olsun ve sonraki adımda "DNS Server" seçili olsun zaten başka seçenek aktif değil.


"Next -> Yes -> Next -> Next" diyerek ilerleyip sihirbazı tamamladım ve makinayı yeniden başlattım. Makalede makinaya DHCP rolü verilmiş, bence gereksiz. Bu arada bağlı klon sayesinde makina kapalıyken diskte 577 MB yer kaplıyor.


Reverse Lookup Zone
Hazır bu makinadayken DNS kayıtlarını ekledim. DNS için Windows'ta "DNS Manager" kullanılıyor. En kolay, çalıştır'a dnsmgmt.msc yazıp Enter'a basarak ulaşılabilir. İlk yaptığım, bir ters zon eklemek. 'DNS manager'da DC ağacının içinden "Reverse Lookup Zones"a bastım (yanda) ve "Action" menüsünden "New Zone"u seçtim. Dört kere "Next"e basıp geçtikten sonra yapılması gereken tek ayar ters sorgulamanın yapılacağı alt-ağı girmek. Buraya 10.10.2 girip (aşağıda) iki kere daha "Next"e basınca ters zonun eklenmesi tamamlandı. Ters zon IP'den alan adı (domain name) sorgulaması yapılacağında kullanılacak olan liste. Windows'u bilmemekle birlikte Linux'ta makinaya alan adıyla SSH yaparken istemci DNS sunucudan dönen IP'nin ters kaydını sorgulayıp karşılaştırır ki olası bir "DNS spoof" vb. saldırının önüne geçilebilsin.


Yeni DNS kaydı
Ters zonu ekledikten sonra "Reverse Lookup Zones" altında 2.10.10.in-addr.arpa zonu oluşacak. Buna bastım ve sağ tarafta boş bir yere sağ tıklayıp "New Pointer (PTR)"ı seçtim. "Host IP Address" 10.10.2.4 ve "Host name" dc.lab.local olmalı. Bu arada host, "Browse" diyip şu adımlar takip edilerek de seçilebilir: DC -> Forward Lookup Zones -> lab.local -> dc




Bu işlem tamamlandığında sağda 10.10.2.4 kaydı eklenmiş olacak. Artık komut satırından makinanın IP'sini sorguladığımda adını döndürüyor.

nslookup

İki ESX host ve vCenter makinası olmak üzere eklenecek üç kayıt var. "DNS Manager"da DC -> Forward Lookup Zones -> lab.local'e basıp yine sağda boş bir yere sağ tıkladım ve "New Host (A or AAAA)"ya bastım (sağda). "New Host" penceresinde ilk host için "Name: esxi5-01" ve "IP Address: 10.10.2.1" ve "Create associated pointer (PTR) record" kutusu da işaretli olmalı. İlk makinanın kaydı için ekran görüntüsü aşağıdaki gibi.


Diğer makinalar şu şekilde:
Name: esxi5-02
IP Address: 10.10.2.2

Name: vcenter
IP Address: 10.10.2.3

DNS kayıtları tamamladığında böyle görünmeli

Pencereyi kapatıp çıktım ve bu makinayla işim bitti ama vcenter makinası için bu makinaya gerek olacak. Bu nedenle açık bıraktım.


vCenter Makinasının Kurulumu
Yazının son ve en önemli makinası vCenter. Kurulum için Windows şablonundan bir sanal makina aldım. Nasıl yapılacağını yukarıda DC için anlattım. Sırayla;

* Sanal makinadan klon almak
* Klon için kaynak seçimi
* Bağlı klon oluşturmak
* Klonlanan sanal makinanın adlandırılması

altbaşlıklı görsellerde görülüyor. Sanal makinaya vCenter adını verdim ve "Finish"e bastım.



Sanal makinayı açmadan önce donanımda yapılması gereken değişiklikler var. Devices altındaki herhangi bir bileşene basmak donanım özelliklerini açıyor. Ben de bu şekilde yaptım. Önce "Memory"e basıp sağda 4 GB'a basarak belleği 4 GB'a çıkarttım. CD/DVD'ye bastım, "Use ISO image file:" seçip vCenter'ın kalıp dosyasını [ VMware-VIMSetup-all-5.5.0-3000346-20150901-update03.iso ] dosyasını gösterdim. Eğer şablonun ağ kartı Vmnet2 seçilmişse vCenter'ın da ilk ağ kartı Vmnet2'ye bağlı olacak. Değilse 'Vmnet2' olarak düzeltilmeli. Bu arada MAC adresini not ettim (Advanced'e basınca çıkan pencerede yazıyor). İki ağ kartı daha ekledim (Add -> Network Adapter (Next)). İlk kartın bağlantısı Custom: Vmnet3 olmalı. "Finish"e basıp kartı ekledim. İkinci kartın bağlantısı NAT olmalı. Sanal makinadan internete bağlanmanın engellendiği veya güvenliği kısıtlanmış bir ağdaysanız "Device status" altındaki "Connect at power on" kapatılabilir ama ileride internetten bazı dosyaları indirmek için bu bağlantıya gerek var. İş bittiğinde sanal donanımlar sağ üstteki gibi görünecek. Tamama basıp makinayı hazırlamayı bitirdim ve "Power on this virtual machine"a bastım.


Konusu açılmışken Vmware'deki ağ bağlantıları şöyle:
Bridged: Bağlantı "bridged" seçildiğinde, hostun fiziksel ethernet kartı doğrudan sanal makinaya bağlanır. Ethernet kartında ikinci bir MAC adresi daha oluşur ve sanal makina fiziksel bir makina gibi hostun bağlı olduğu ağda görünür. Dış ağa bağlanabilir ve sanal makinada çalışan bir servisle bu ağdaki makinalar haberleşebilir. Bunun bazı dezavantajları olabilir. Örn. fiziksel makinanın bağlı olduğu switch'te MAC adres kısıtlaması varsa, fiziksel makinayla birlikte ağdan düşebilir (Cisco'larda switchport port-security violation). Eğer sanal makinada dhcpd çalışıyorsa dış ağdaki makinalara IP dağıtmaya çalışabilir. DNS çalıştırıyorsa, DNS spoof yapmaya aday bir makina gibi algılanabilir. Uzaktan bağlantı servisleri (sshd, rdp) çalışıyorsa dışarıdan biri şifreyi tahmin ederek makinaya bağlanabilir. Uzun lafın kısası eğer yukarıdakilerden biri amaçlanmıyorsa Bridged yapmamakta yarar var. 

NAT: Adı üzerinde olarak bağlantı NAT seçilirse sanal makina fiziksel makinanın bağlı olduğu ağa NAT'lanarak çıkar. Bu durumda sanal makina dışarıdan erişilemez (istenirse port forwarding ile eriştirilebilir) ama fiziksel makina internete bağlıysa sanal makina da internete çıkabilir. Ağda bazı şüpheli paketler algılanabilir ama daha az dikkat çekecek bir yöntemdir. Vmware Workstation kurulduğunda Vmnet8 vSwitch'i NAT için ayrılmıştır. Yani ağ bağlantısı olarak NAT seçmek, sanal makinayı Vmnet8'e bağlamakla aynıdır. Fiziksel makinada Vmnet8'e bağlı bir ağ kartı varsa fiziksel makina dış ağa çıkmadan sanal makinaya erişebilir.


Host-only: Bu bağlantı türünde sanal makina hiçbir şekilde dışarıya çıkamaz. Fiziksel makinada "host-only" ağa bağlı bir kart varsa fiziksel makina bu ağdan sanal makinaya ulaşır. Vmware Workstation kurulduğunda Vmnet1 vSwitch'i "host-only" olarak ayrılmıştır.

Custom: Bu bağlantı host-only'e benzer ama ayarları "Virtual Network Editor"le özelleştirilebilir. Örn. ağda DHCP kapatılabilir veya NAT açılabilir.

Bu ayarları öğrendikten sonra "Virtual Network Editor"le daha bilinçli çalışılabilir.


Makina açıldı, klavye ve hesap ayarlarını tamamladım. "Initial Configuration Tasks"da "Set time zone"a basıp uygun zaman dilimini seçtim. Bu sefer "Configure networking"e basınca ağ bağlantıları penceresi gelecek. Kartların sıralaması benim eklediğim sırada olmalı, emin olmak için MAC adreslerini kullandım. İlk kart (Local Area Connection) Vmnet2'ye bağlı, buna "Management" adını verdim. İkinci kart (Local Area Connection 2) Vmnet3'e bağlı. Buna "iSCSI" adını verdim. Son kart NAT'a bağlı, buna da ayırd edici bir ad verdim. Bu arada, diğer iki kart "Unidentified network" olarak görünürken NAT'lı kart "Network" olarak görünüyor. Çünkü vmware'in DHCP'si NAT'a bağlı karta bir IP verip ağ bağlantısını sağlıyor. Management'a sağ tıklayıp "Properties"e bastım. "Internet Protocol Version 4"e çift tıkladım. vCenter makinasında IP ayarları aşağıdaki gibi olmalı.



iSCSI kartı ayarları
vCenter makinası DNS olarak DC makinasını kullanacak. ESXi'lerin kayıtları o makinada. Ağ bağlantıları penceresi açıkken iSCSI kartına 10.10.3.1 IP'sini ve 255.255.255.0 alt-ağ maskesini verdim. Bu kartta Def GW. ve DNS ayarı girilmemesi gerekiyor.

Ağ ayarlarını tamamlayıp "Initial Configuration Tasks"a döndüm ve makinayı lab.local domain'ine almak üzere "Provide computer name and domain"e bastım. Açılan pencerede "Change"e bastım. Bir sonraki pencerede bilgisayar adı olarak "vcenter", "Member of" bölümünde "Domain" seçip "lab.local" girdim. Tamama basınca ağdaki DC bulunacak ve domain'e girmek için DC yöneticisinin şifresini soracak. Bunları girdim ve vcenter makinasını domain'e kattım. "Welcome to the lab.local domain" iletisi geldiyse herşey yolundadır. Bundan sonra Windows, makinayı yeniden başlattırdı.

Makinanın domain'e alınması

Makina domain'e katıldığında artık kullanıcılar, poliçeler vb. DC'den yönetilebiliyor.

Kalıp dosyası makina kurulurken takılıydı. Bilgisayarım'ı açıp DVD sürücüden autorun.exe'yi çalıştırdım, vSphere 5.5 kurulumu açıldı. "Simple Install" seçili olduğundan bana yalnız "Install"a basmak kaldı. Bu seçenek ekranda yazdığı gibi dört bileşeni kuracak:

1. vCenter Single Sign-on
2. vSphere Web Client
3. vCenter Inventory Service
4. vCenter Service

vCenter Installer


Önce lisans anlaşmasını kabul ettim. "Add lab.local as a native Active Directory identity source" seçeneğini işaretli bıraktım. "Single Sign-on Information" adımında bir şifre verdim. Ardından "Site name" olarak "vCenter-Site" verdim. Bunun çok önemi yok, bu yalnızca LDAP ağacının bir parçası. 5.x serisiyle gelen "Single Sign-on" (SSO) aslında vSphere paketine bağlı bir LDAP olarak düşünülebilir (aşağıda).




HTTPS portunu (7444) ve kurulum dizini olduğu gibi bıraktım ve "Install"a bastım. Bir süre sonra SSO kurulumu bitti ve "vSphere Web Client" kurulumu başladı. Yandaki uyarıyı evet diyip geçtim. Bu bileşende herhangi bir seçenek yok. Herhangi birşey yapmaya gerek olmadan "Inventory" de kuruldu ve vCenter kurulumu başladı.

Kurulumda ilk olarak lisans anahtarını soruyor. Deneme sürümü olacağından boş bırakıp geçtim. Sonraki adımda veritabanı olarak kendi veritabanını kullandım (aşağıda). Kurulum, gömülü bir MS SQL Server 2008 Express ile geliyor ve en fazla 5 ESXi hosta kadar sorunsuz kullanılabiliyor. Fazlası tavsiye edilmiyor.

vCenter veri tabanı olarak MS SQL Express kullanıyor.


Veritabanı seçiminden sonra vcenter'i yerel Windows hesabıyla çalışması için ayarladım. Portları değiştirmeksizin sonraki adıma geçtim. Fiziksel ve sanal makina kaynaklarını "Small" olarak seçtim. vCenter'ın kullandığı JVM miktarı bu değişkene göre ayarlanıyor. "Small" aslında bir çok kurum için bile yeterli. Bu adımı da geçip "Install" dedim. Kuruluma başlamadan bir sertifika uyarısına daha evet dedim ve kurulum başladı. Bu kurulum on dakika kadar sürdü. vCenter kurulduktan sonra bir de istemcisini kuracağım*. "vCenter Installer"da "VMware vSphere Client"a (vCenter Installer altbaşlıklı görüntü) ve sağ tarafta 'Install'a bastım. Dili İngilizce seçtim, lisans anlaşmasını kabul edip başka bir değişiklik yapmadan istemciyi kurdum. Artık ESXi hostlara da gereksinimim var. Onları açtım, bu arada artık makina zorlanmaya başlayacak. Bu nedenle onları açmadan önce kullanmadığım bir Firefox vardı, onu da kapattım.


* vCenter istemcisi yüklenmek zorunda değil. Vmware, vSphere 5.5'ten itibaren klasik istemcinin yeni özellikleri desteklemeyeceğini duyurdu ve kullanıcıları Web istemcisine yönlendirdi. Örn. SSO ve kullanıcı yetki ayarlarına klasik istemciden ulaşılamıyor. Kurulumda Web istemcisi yüklenmişti. Başlat menüsünde kısayolu var. Kısayol, tarayıcıda https://localhost:9443/vsphere-client adresini açıyor. Bunu kullanacaksanız önce Internet Explorer yerine Chrome veya Firefox yüklenmesini tavsiye ederim. İkinci olarak SSO biraz kafa karıştırıcı olabilir, şöyle ki şu anda vCenter kullanıcıları üç ayrı yerden yetkilendiriliyor:

1) vsphere.local domain: Buradan Administrator@vsphere.local kullanıcısı geliyor.
2) vcenter makinası yerel kullanıcı veritabanı: Buradan da Administrator@vcenter kullanıcısı geliyor.
3) lab.local domain: Buradan henüz kullanıcı gelmiyor ama LDAP kullanıcıları eklenebilir. Bunun nasıl yapılacağını sonraki yazıya bıraktım.

Administrator@vsphere.local'in hem istemciden hem de web arayüzünden vCenter'a girme yetkisi var. Administrator@vcenter'ın yalnız web arayüzünden girme yetkisi var ve bu kullanıcı vmware'de SSO yöneticisi olmadığından, başka bir deyişle yetkisiz bir kullanıcı olduğundan kullanıcıları görüntüleyemiyor.

vSphere login

Güvenlik uyarısı
vCenter makinasının masaüstüne gidip "VMware vSphere Client"ı çalıştırdım. Sunucu adı "localhost", kullanıcı adı: Administrator@vsphere.local ve şifre kurulumda verilen SSO şifresi olmalı (yukarıda). Kullanıcı adındaki vsphere.local, daha önce de bahsettiğim gibi aslında SSO'nun vCenter içinde bir LDAP içerdiğini gösteriyor. SSO kurulumunda aslında bunu gösteriyor ama ilgili metin kutusu aktif olmadığından çok dikkat çekmiyor. 'Login'e basınca bir güvenlik uyarısı gelecek. Buna 'Ignore' dedikten sonra vSphere istemci arayüzü önüme geldi. Lisans girmediğimden 60 günlük deneme sürümü uyarısı çıkıyor, buna "Ignore" diyip geçtim.

vSphere istemci arayüzü
vSphere arayüzü açıldıktan sonra ilk olarak sol üstteki "vcenter.lab.local"e sağ tıklayıp "New Datacenter" diyerek yeni bir Datacenter ekledim. Adının ne olduğunun önemi yok. Yeni oluşturduğum "Datacenter"a sağ tıklayıp "New Cluster"a bastım ve yeni bir "Cluster" (küme) oluşturdum. Bunun da adının önemi yok ancak küme önemli bir kavram. Çoğunlukla aynı komut setli işlemcilere sahip ESXi makinalardan oluşması gerekiyor. Bu bir kural değil ancak farklı komut setli iki makina aynı kümede olursa sanal makinaları bu iki makina arasında canlı taşımak için (live migration) bazı kısıtlar var. Eğer küme yeni bir komut setini destekleyecek şekilde ayarlanırsa, bu komut setini desteklemeyen hostlar bu kümeye eklenemez. Eğer küme eski bir komut setini destekleyecek şekilde ayarlanırsa bu durumda yeni işlemci komutları sanal makinanın çalıştırılmasında kullanılamaz. Yeni işlemcili hostlar düşük kapasiteyle çalıştırılmış olur. Eski komut setli hostta çalışan bir sanal makina, yeni komut setli hostlardan oluşmuş kümedeki bir makinaya taşınırsa kapanıp açılana kadar uyumluluk modunda çalışır. Tersine, yeni komut setli hostta çalışan bir sanal makina kapatılmadan eski komut setli hostlara taşınamaz.

Bu arada yukarıdaki açıklama vmware için biraz orta seviye bir konu. Anlaşılmadıysa geçilebilir. Bu konuyu fiziksel makina olmadan örneklendirmek olanaksız.

Cluster (küme) ayarları

Add Host
Yeni kümeyi oluştururken ilk ekranda (yukarıda) "Turn On vSphere HA" ve "Turn On vSphere DRS" işaretledim. Geri kalan herşeye "Next" diyip geçtim ve sihirbazı tamamladım. Sözünü ettiğim komut seti uyumluluk özelliklerinin "VMware EVC"den ayarladığını not düşeyim. Bu ortamda EVC modu kapalı. Kümeyi oluşturduktan sonra hostlar eklenebilir. Yalnız önce kontrol amaçlı komut satırından ESXi hostu ping'leyin. Eğer ping'e yanıt gelmiyorsa hostta bir sorun olabilir. Benim iki makinamdan birinde oldu. ESXi hostun konsolundan F2'ye bastım, şifreyi girip tekrar F2'ye bastım. Sırayla Configure Management Network -> Network Adapters altında vmnic1'in yanındaki X'i boşluk tuşuna basıp kaldırdım, Enter, Esc ve Y'ye basarak kartlardan birini bond'dan çıkardım. Bunu yaptıktan sonra "Test Management Network"ü seçip denediğimde sorun olmaması gerek. Aynı adımları tekrarlayıp vmnic1, bond'a eklendiğinde sorun tekrar etmiyorsa devam edilebilir. Sorun tekrarlıyorsa vmnic1 şimdilik bond'un dışında kalsın. Gereken ayarları vCenter'dan yapacağız. Vmnic0 yalnız kaldığı halde ping'e yanıt vermiyorsa sorun başka bir yerde olabilir, örn. yanlış seçilmiş bir vswitch gibi.

ESXi host ekleme


Kümeye sağ tıklayıp "Add Host"u seçtim (yukarıda "Add Host" altbaşlıklı görüntü). Host kutusuna hostun alan adını ve ilgili alanlara hostun kullanıcı adıyla şifresini yazdım (yukarıda). Next'e bastığımda bir güvenlik uyarısı geldi, Yes diyip geçtim. Diğer adımları da okumadan Next'e basarak geçtim ve ilk hostu ekledim. Hostun vCenter yönetimine girmesi ve tam anlamıyla eklenmesi bir dakika kadar sürüyor.


İkinci makina da eklendiyse artık ikisinin yanında da uyarı bulunması gerekiyor. Hosta basıp sağda  "Summary"e basınca "Configuration Issues" altında;
* This host currently has no management network redundancy
* This number of vSphere HA heartbeat datastores for this host is 0, which is less than required: 2

Bunlardan en azından ikincisinin olması gerekir.


Buraya kadar anlattıklarımla vCenter'ın kurulumu kabaca yapmış oldum. Yapılacaklar bitmedi ama uzun yazıları takip etmek zor olduğu için burada bir ara vereceğim. Bundan bir sonraki yazıda makinalara paylaşımlı bir disk (datastore) ekleyecek, ağ ayarlarını yapacak ve sanal makina oluşturacağım.