26 Şubat 2018 Pazartesi

Vmware Workstation İçinde Vmware ESXi Lab #4


Tekrar merhaba. Yazının bu son bölümünde, önceki bölümlerde eksik kalan veya içime sinmeyen bazı yerleri değiştirip deyim yerindeyse "Bu altyapıyı ben kursam ne yapardım?" sorusunun yanıtını vermeye çalışacağım. Bunun için öncelikle bütün Windows'ları çöpe atacak ve servisleri linux'ta kuracağım. Dolayısıyla altyapı tamamen değişecek (bkz: tesisatın komple değişmesi lazım).

Önceki bölümler şu şekildeydi:
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ı

Altyapının Linux'ta Yeniden Kurulması
Altyapının fazlasıyla Windows bağımlı olması baştan beri hoşuma gitmiyordu. Radikal bir hareketle DC ve vCenter makinalarını kapattım. iSCSI servisi vCenter makinasında çalıştığından artık disklere ulaşılamayacak. Bu nedenle ESXi hostları da kaynak harcamaması için kapattım. Linux, iSCSI'yi zaten destekliyor. DNS kurmak da oldukça kolay. vSphere, linux'a kurulamıyor ama onu da Virtual Appliance olarak çalıştıracağım. Virtual Appliance (.ova dosyaları), paketlenmiş ve taşınabilir (portable) olması hedeflenmiş sanal makina dosyalarıdır. Teoride, bir ova dosyası (ova: Open Virtual Appliance) HyperV, VirtualBox, VMware ve RHV tarafından kullanılabilir. Pratikte dosya, çalıştırılmak istenen platformların desteklemediği bir özellik içeriyorsa hata alır. Örn. VMware'de oluşturulan bir ova, HyperV'de desteklenmeyen bir özellik içeriyorsa, HyperV ben bunu içeri aktaramam (import) diyip işin içinden çıkar.

Her sanallaştırma altyapısında iki önemli bileşen vardır. Biri disk dosyası, diğeri de sanal makina dosyası. Vmware için bunlar sırayla vmdk ve vmx dosyalardır. Ova ise aslında bir tar dosyasıdır ve içinde temelde vmdk disk dosyası (veya dosyaları) ve xml biçimli bir ovf dosya bulundurur. Ovf'nin içinde sanal makinanın RAM, işlemci, denetleyici vb. özellikleri ve kullanacağı disk dosyasının adı bulunur. Ova dosya tar gibi açılır, içindeki xml'e uygun bir sanal makina elle oluşturulup disk olarak da ova'dan çıkan vmdk sanal makinaya eklenirse ova'nın aktarımı yapılmış olur. Vmdk dosya başka biçimlere dönüştürülürse farklı platformlara da aynı yöntemle aktarılabilir. Benzer şekilde, desteklenmeyen bir özelliğinden dolayı hata alan ova dosyasının xml'inden desteklenmeyen özellik çıkarılırsa büyük olasılıkla makina çalışacaktır. Bazı ova dosyalarda, ova içindeki dosyaların hash'lerini tutan bir dosya daha vardır. Eğer ova dosyadaki bir dosya değiştirilecekse, hash dosyası da silinmeli veya düzenlenmelidir. 


vCenter 5.5'in ova dosyasını indirdim. Dosyanın tam adı VMware-vCenter-Server-Appliance-5.5.0.30000-3000347_OVF10.ova. Örnek olması açısından dosya adının sonuna .tar ekleyip WinRAR ile açtım (sağda). Sanal makinada iki disk olduğundan iki vmdk dosya var. .mf uzantılı dosya, yukarıda da bahsettiğim manifest dosyası, disklerin ve ovf dosyanın SHA1 hash'lerini tutuyor. .cert dosya ova dosyasının vmware tarafından imzalanmış sertifikası. Görüntüde, ovf dosya metin düzenleyiciyle açıldığında içinde vmdk dosyalara ve bir ağ kartına referanslar görünüyor.

Bu virt. appliance'a geri döneceğim ama önce bir linux makina kurmalıyım. Bunun için VMware Workstation'ı açtım. File -> New Virtual Machine'i seçtim. Kurulum türü "Custom" seçip, "I will install the operating system later."ı işaretledim. "Guest Operating System" Linux ve sürüm "RedHat Enterprise Linux 6 64-bit" seçtim. Sanal makinaya "sierra" adını verdim. Bir çekirdek ve 2 GB RAM yeterli. "Do not use a network connection"ı işaretleyip ağ kartlarını ayarlamayı sonraya bıraktım. 20 GB'lik yeni bir disk oluşturup tek dosyada saklanacak şekilde ayarladım ve sihirbazı tamamladım. Sonra sanal makina özelliklerini açıp üç ağ kartı ekledim. İlki "Custom: VMnet2" ikincisi "Custom: VMnet3" ve sonuncusu NAT. NAT, kurulacak paketlerin indirilmesi ve DNS sorgularının iletilmesi için gerekli. Minimal kalıp dosyası yerine DVD indirilirse paketler için NAT'a gerek kalmaz. Ben yine de NAT'lı bir konfigürasyon kurdum. Ses kartı ve yazıcı gibi gereksiz parçaları çıkardım, CD sürücüye Centos 6.9 x86_64 minimal kalıp dosyasını taktım. DVD'den kurulumda, kurulum türü minimal seçilmeli. Makinanın son hali aşağıdaki gibi.


Makinayı başlattım. Hostname olarak "sierra.lab.local" verdim. IP'leri makina açıldıktan sonra ayarlayacağım. Kurulumda disk bölümlendirilirken swap'e bir bölüm ve kök dizine bir bölüm ayrılıyor. Bu üretim ortamında tavsiye edilmez, en azından /home, /var ve /tmp'in ayrılması önerilir ama ben hızlıca kurup geçtim. Kurulum bitince makinayı yeniden başlattım. Konsolda ifconfig -a çıktısından kontrol ettiğimde kartlar benim eklediğim sırada listelendi (MAC adreslerinden kontrol ettim). eth0 - vmnet2'ye, eth1 - vmnet3'e ve eth2 NAT'a bağlı. /etc/sysconfig/network-scripts/ifcfg-eth2 dosyasını açtım ONBOOT=no olan satırı ONBOOT=yes yapıp dosyayı kaydettim. vi yerine sed -i -e 's/T=no/T=yes/' /etc/sysconfig/network-scripts/ifcfg-eth2 komutu da kullanılabilir. service network restart ve tekrar ifconfig sonrasında sanal makina NAT'ın DHCP'sinden bir IP aldı. Fiziksel makinamdaki putty'den bu IP'ye SSH yapıp kuruluma putty ile devam ettim.

/etc/sysconfig/network-scripts/ifcfg-eth0 dosyasını aşağıdaki gibi düzenledim:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.2.3
NETMASK=255.255.255.0

eth0, DNS için kullanılacak, bir de iptables'dan NAT yönlendirmesi yapılacak. Bu yüzden eski DNS sunucunun IP'sini buna verdim. Benzer şekilde /etc/sysconfig/network-scripts/ifcfg-eth1 dosyasının içeriğini şöyle düzenledim:

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.3.1
NETMASK=255.255.255.0

eth1, iSCSI için kullanılacak. Bu yüzden eski vCenter makinasının iSCSI IP'sini eth1'e verdim ve service network restart komutunu çalıştırınca arabirimlerin IP'leri atandı.

/etc/resolv.conf'un içeriği aşağıdaki gibi:

; generated by /sbin/dhclient-script
search localdomain lab.local
nameserver 192.168.220.2

resolv.conf, network servisi her yeniden başlatıldığında otomatik oluşturulan bir dosya. İçeriği, DHCP'den IP'sini alan arabirimin betikleri tarafından oluşturuluyor. Bundan iki paragraf sonra bahsedeceğim. nameserver'ın değeri her makinada farklı olmalı, özellikle üçüncü oktet. Ve bu dosyadan şu anlaşılmalı: kullanılan NAT ağı 192.168.220.0/24 ve bu ağdaki DNS sunucu 192.168.220.2, kendi IP'mi daha önce ipconfig çıktısından bulmuştum (192.168.220.133). DNS kurulduktan sonra makina kendi sorgularına da yanıt verecek. 

Önce yum -y install bind bind-utils komutuyla DNS servisini kurdum. Bir DNS servisi için 10 MB kabul edilebilir bir büyüklük. /etc/named.conf dosyasını açtım. Sierra sunucusu kendi DNS sorgularına kendi yanıt verecekse ayarlar şöyle olmalı (bunlar yalnızca değişmesi gereken ifadeler, forwarders ifadesi options içine eklenecek):

listen-on port 53 { 10.10.2.3; 192.168.220.133; };
allow-query       { 10.10.2.0/24; 192.168.220.133; };
forwarders        { 192.168.220.2; };
dnssec-enable no;
dnssec-validation no;

ve resolv.conf'un içeriği

search lab.local
nameserver 192.168.220.133

olmalı. Ancak bu dosyada bir değişiklik yapmadım. resolv.conf'taki değişiklikleri kalıcı olarak yansıtabilmek için /etc/sysconfig/network-scripts/ifcfg-eth2 dosyasının sonuna

DNS1=192.168.220.133
SEARCH=lab.local

ifadesini ekledim. DNS1 değeri nameserver'a, SEARCH değeri de search ifadesine aktarılıyor. Bu arada named.conf içindeki listen-on-v6 ifadesini, ipv6 kullanılmayacağından başına '//' eklenerek kapattım. network servisini yeniden başlattım, resolv.conf'daki değişiklikler dhclient betikleri tarafından uygulandı. Eğer sunucu DNS sorgularını NAT'ın DNS'ine soracaksa, ifcfg-eth2'de DNS1 ile başlayan satırın girilmesine gerek yok. Aynı zamanda named.conf'ta da "listen-on" ve "allow-query" ifadelerinden sunucunun kendi IP'si çıkarılmalı. Ben ilk konfigürasyonu tercih ettim, herhangi bir nedeni veya üstünlüğü yok.

Sonrasında, named.conf'ta içerilen /etc/named.rfc1912.zones dosyasına aşağıdaki satırları ekleyerek düz ve ters DNS zonları için iki dosya belirttim: 

zone "lab.local" IN {
   type master;
   file "/var/named/lab.local.zone";
   allow-update { none; };
};

zone "2.10.10.in-addr.arpa" IN {
   type master;
   file "/var/named/2.10.10.reverse";
   allow-update { none; };
};

Yukarıdakiler zon tanımları. Zonların içeriği belirttiğim dosyalarda olacak. /var/named/lab.local.zone dosyası aşağıdaki gibi:

$TTL 86400
@  IN  SOA  sierra.lab.local.  sierra.lab.local. (
            2018011701 ; serial
            21600      ; refresh after 6 hours
            3600       ; retry after 1 hour
            604800     ; expire after 1 week
            86400 )    ; minimum TTL of 1 day

    IN  NS  sierra.lab.local.
    IN  MX  10  sierra.lab.local.

esxi5-01  IN  A    10.10.2.1
esxi5-02  IN  A    10.10.2.2
sierra    IN  A    10.10.2.3
vcenter   IN  A    10.10.2.4

/var/named/2.10.10.reverse dosyası da şöyle:

$TTL 86400
@  IN  SOA  sierra.lab.local.  sierra.lab.local. (
            2018011701 ; serial
            21600      ; refresh after 6 hours
            3600       ; retry after 1 hour
            604800     ; expire after 1 week
            86400 )    ; minimum TTL of 1 day

    IN  NS  sierra.lab.local.

1   IN   PTR   esxi5-01.lab.local.
2   IN   PTR   esxi5-02.lab.local.
3   IN   PTR   sierra.lab.local.
4   IN   PTR   vcenter.lab.local.


Son olarak DNS'e iptables'da izin vermek için şu iki komutu çalıştırdım.

iptables -I INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
iptables -I INPUT -i eth0 -p tcp -m tcp --dport 53 -j ACCEPT


Ve elbette service iptables save komutuyla kuralları kaydettim. Sonra service named start ile DNS sunucuyu başlattım ve chkconfig named on komutuyla başlangıçta açılmasını sağladım. Denemek için nslookup esxi5-01 komutunu çalıştırdığımda doğru IP kaydı döndü. 

Bir konu özellikle dikkat çekici. İlk yazıda oluşturduğum şablon 6.92 GB'ydi. Buna ek olarak DC 581 MB, vCenter 18 GB'dı (10 GB'ı thick provision disk). Bu arada hile yapmıyorum, bu büyüklükler sanal makinaların diskleri "clean-up" yapıldıktan sonraki değerler ve makinalar kapalı. Yani RAM disk hariç. Bir DNS ve LDAP servisi için 581 MB alan hiç mantıklı değil. Oysa, sierra makinasına baktığımda işletim sistemi ve DNS, toplam 693 MB.


Depolama servisleri oluşturulmadan önce makinaya iki disk eklenmeli. Büyüklük olarak 15 GB yeterli, thin veya thick olması önemli değil. Eğer diskte yer varsa thick olabilir. Bunlar datastore olacağından thick olması performans sağlayacaktır. Ben yer kazanmak için thin olarak ekledim. Diskler eklendiğinde linux diskleri algılamadı. fdisk -l yeni diskleri listeleyemedi. Aşağıdaki betiği çalıştırdım:

for HOST in /sys/class/scsi_host/*; do echo "- - -" \
> $HOST/scan ; echo $HOST/scan; done

Tekrar fdisk -l ile baktığımda /dev/sdb ve /dev/sdc olmak üzere iki disk bulundu. /dev/sdb diskini NFS datastore için ekledim. NFS'i ayarlamak kolay. Fakat NFS'te fiziksel disk paylaştırılamıyor yalnızca dizin paylaştırılabiliyor. Bu nedenle dosya sistemi oluşturulmalı. Önce diskte bir bölüm oluşturdum:

echo -ne "n\np\n1\n\n\nw\nq\n" | fdisk /dev/sdb

fdisk komutlarıyla tek tek uğraşmamak için komutları echo ile verdim. Merak eden okuyucu komutları elle tek tek girebilir. Diski ext4'le biçimlendirip bir "mount point" oluşturdum:

mkfs.ext4 /dev/sdb1
mkdir /NFSexport

/etc/fstab dosyasının sonuna şu satırı ekledim:

/dev/sdb1    /NFSexport    ext4    defaults    0 0

ve diski mount -a komutuyla bağladım. Komutun herhangi bir hata almaması ve df -hP komutunun çıktısında şu satırın bulunması gerek:

/dev/sdb1    15G   38M   14G   1% /NFSexport

Sonra NFS paketlerini yükledim:

yum install nfs-utils nfs-utils-lib

/etc/exports dosyasına aşağıdaki satırı ekledim:

/NFSexport 10.10.3.0/24(rw,no_root_squash,sync)

Son olarak servisi başlatıp, açılışta da başlayacak şekilde ayarladım:

chkconfig nfs on
service rpcbind start
service nfs start

Herşey düzgün çalıştıysa showmount -e 10.10.3.1 komutunun çıktısında export edilen kaynak görünüyor olmalı. Ancak bununla bitmedi, aşağıdaki komutlarla* NFS portlarını iptables'dan da açtım (birinci komuta dikkat, yazının sonundaki önemli nota bakınız):

iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp -m tcp --dport 49356 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p udp --dport 111 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp --dport 111 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp --dport 2049 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp --dport 32803 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p udp --dport 32769 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp --dport 892 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p udp --dport 892 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp --dport 875 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p udp --dport 875 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p tcp --dport 662 -j ACCEPT
iptables -I INPUT -s 10.10.3.0/24 -m state --state NEW \
-p udp --dport 662 -j ACCEPT

Kalıcı olmaları için tekrar service iptables save komutunu çalıştırdım. NFS kurulumu bu kadar.

Sıra iSCSI servisine geldi. Bunun ayarları için internetteki en iyi kaynaktan yararlandım. Kaynakta komutların açıklamaları var bu nedenle aşağıda yalnız komutları yazdım:

yum -y install scsi-target-utils
iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT
service iptables save
service tgtd start
chkconfig tgtd on

echo -ne "n\np\n1\n\n\nw\nq\n" | fdisk /dev/sdc

/etc/tgt/targets.conf dosyasında "default-driver iscsi" ifadesinin hemen altına aşağıdaki satırları ekledim:

<target iqn.2018-01.local.lab.sierra:target1>
        backing-store /dev/sdc1
        initiator-address 10.10.3.0/24
</target>

ve service tgtd restart komutuyla servisi yeniden başlattım. tgt-admin --show komutuyla eklediğim kaynağı kontrol ettim. Kurulumun hepsi bu ama eksik olduğunu düşündüğüm bir konu daha var. İlk bölümde ESXi hostların def. gw.'leri DC makinası olarak verilmişti. Normalde makinalar internete çıkmadıklarından bunun önemi yok ama internete çıkmayan bir makinanın da def. gw.'i olması anlamsız. O halde makinalar sierra üzerinden NAT'la internete çıksın. Normalde böyle bir kurulumda iptables servisini kapatırdım ama baştan beri NAT kurmayı planladığımdan açık bıraktım.

NAT aşağıdaki dört komutla yapılır*:

iptables -I FORWARD -i eth0 -j ACCEPT
iptables -I FORWARD -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables kurallarının kalıcı olması için service iptables save komutunu verdim ve IP forwarding'in açık olması için /etc/sysctl.conf içerisinde net.ipv4.ip_forward değerini 1 olarak değiştirdim ( sed -i -e 's/ip_forward = 0/ip_forward = 1/' /etc/sysctl.conf ).

Bunu da tamamladığıma göre altyapı tamamen hazır. O halde vCenter kuruluma geçebilirim.


vCenter Server Appliance Kurulumu ve Ayarları

Vmware Workstation'da, File -> Open'dan ova dosyasını açtım. Dosyanın adı VMware-vCenter-Server-Appliance-5.5.0.30000-3000347_OVF10 .ova. Eski vCenter makinasını silmediğim için buna "vCenterAppliance" adını verdim. Import'a bastığımda vmdk dosya sanal makinanın dizinine kopyalandı, xml dosya vmx'e dönüştürüldü. Makinanın özelliklerini kendi ortamım için biraz değiştirdim. Öncelikle 8 GB bellek fazla. Önceki vCenter gibi 4 GB'a indirdim, aslında 2 GB bile yeterli. Ağ kartı "Bridged" olarak geliyor. Bunu "Host-only" yaptım ve bir kart daha ekleyip bunu da Vmnet2'ye bağladım. Son durumda donanım aşağıdaki gibi olması gerek. Sonrasında makinayı açtım.





Host-only ağında da DHCP bulunduğundan kendiliğinden bir IP aldı. Makina'nın konsolunda mavi bir ekranda bu IP yazıyor ve yapılması gerekenler anlatılıyor. Alt tarafta "Login" seçiliyken "Enter"a basıp komut satırına geçilebilir. Kullanıcı adı "root" ve parolası "vmware". Makina SuSe tabanlı olduğundan RedHat'e benziyor. Mümkün olduğu kadar komut satırından kaçınmaya çalıştım. (Eski) vCenter makinasının web arayüzüne girmek için sanal makinaya Chrome kurmuştum. Bu yapıda tarayıcı kurabileceğim makina olmadığından vCenter appliance'ın arayüzüne fiziksel makinamdaki tarayıcıyla ulaştım.


Önce konsolda yazdığı gibi https://192.168.189.130:5480/ adresine gittim. Aldığım sertifika hatasını geçip sonraki ekranda kullanıcı adı "root", şifre "vmware" girdim ve kuruluma başladım. Lisans anlaşmasını kabul edip "Next"e basar basmaz Vmware ile ilgili servislerin başladığı konsolda görülebilir. Geçici bir kurulum olduğundan veri toplanmasını kabul etmeden "Next"e bastım, "Configure with default settings"i seçip tekrar "Next" bastım ve son adımda "Start"a basıp otomatik ayarlarla vCenter'in kurulumunu başlattım. "Configuring SSO" adımı uzun sürebilir. Beş madde tamamlanıp kurulum bitince "Close"a bastım. Kurulum neredeyse bitti. Appliance'ın en güzel yanı hemen hemen hiçbir ayar gerektirmemesi. "SSO" altsekmesinde administrator@vsphere.local kullanıcısının şifresi ayarlanabiliyor. Normalde şifre "vmware".


Asıl önemli ayarlar "Network" sekmesinin "Address" alt sekmesinde. "Failed to read network interface (eth1) information" hatası alınması normal çünkü henüz bir ifcfg-eth1 dosyası oluşmadı ve ne yazık ki sihirbaz bu dosyayı kendiliğinden oluşturamıyor. Bu nedenle konsola gidip touch /etc/sysconfig/network/ifcfg-eth1 komutuyla boş bir dosya oluşturdum ve web arayüzüne geri döndüm. Altsekmeye geçtikten sonra hem "eth0"a hem de "eth1"e ait "IPv4 Address Type"ı DHCP'den "Static"e çektim. Tüm ayarlar yukarıdaki gibi olmalı. "Preferred DNS Server"daki IP'yi "Alternate DNS Server"a kaydırdım. Otomatik alınan IP adresini de eth0'a elle verdim. Bu IP'ler de (özellikle üçüncü oktet) her makinada farklı olacak.


"Save Settings"e basıp ayarları kaydettim. Konsola geri dönüp oluşturduğum boş dosyaya baktığımda girdiğim ayarları gördüm. Def. GW de düzgün ayarlanmış ve bu makina sierra üzerinden internete çıkıyor. Hazır konsol açıkken /etc/resolv.conf'a "search lab.local" ifadesini ekledim. Tekrar web arayüzüne dönüp "vCenter Server" altında "Time" sekmesini açtım, "NTP synchronization"ı seçip http://www.pool.ntp.org/zone/tr adresindeki NTP sunucuları virgülle ayırarak "NTP Servers" bölümüne yazdım ve "Save Settings"e basarak kaydettim.


vCenter kurulumu bu kadar ama IP ayarları özellikle Def. GW değiştiği için yapılması gereken birşey daha var. Server Appliance yönetim ekranında "Admin" sekmesine geçtim, "Certificate regeneration enabled: Yes" olarak işaretleyip "Submit"e bastım, sonra da "System" sekmesinden "Reboot"a bastım. Bu yapılmazsa bir sonraki yeniden başlatmada web istemcisi sertifika uyuşmazlığından SSO servisine bağlanamıyor. Böyle bir durumda şu hata alınıyor: Failed to connect to VMware Lookup Service https://[hostname]:7444/lookupservice/sdk – SSL certificate verification failed (Kaynak)


Makina açıldıktan sonra https://192.168.189.130/ adresinden web istemcisine ulaştım. Bu arada sunucu hemen kendine gelemiyor, biraz bekleyip tekrar denemek gerekebilir. Web istemcisi açılınca administrator@vsphere.local ile vCenter'a girdim. Bu arada bir yandan ESXi hostları da açtım. Onları vCenter'a eklemeye sıra gelene kadar açılmış olacaklar.

Bundan sonraki işler ilk vCenter ile aynı, sadece arayüz farklı. "DataCenter" oluşturmak için vCenter'a ve sonra "Hosts and Clusters"a basınca dört adımlı bir sihirbaz çıktı. "localhost"a sağ tıklayıp "New Datacenter"a bastım ve "DC-Lab" diye bir "Datacenter" oluşturdum. Ardından, yeni "Datacenter"a sağ tıklayıp "New Cluster..."ı seçtim, "Prod" adında bir "cluster" oluşturdum. DRS ve "vSphere HA" gibi özellikleri daha önce anlatmıştım. İhtiyaca göre açılabilir. Bundan sonra "Add a host"a bastım. "Host name" olarak "esxi5-01.lab.local" yazıp "Next"e bastım. Sonraki adımda ESXi'nin kullanıcı adı ve şifresini girip "Next"e basınca hostun parmak izi geldi, bunu "Yes" diyip geçtim. Parmak iziyle ilgili mesaj gelmiyorsa önce ESXi hostun açılıp açılmadığına ve açıksa vcenter appliance konsolundan ping çıktısına bakmak gerekir. Sonraki adımları "Next" diyip geçtim ve ilk hostu ekledim. Aynı şekilde ikinci makinayı da ekledim. Web istemcisinde "Unknown (inaccessible)" adlı sanal makinalar çıktı. Bunlara sağ tıkladım, "Remove from Inventory" diyip sildim. Bunlar eski CentOS makinaları (FT için oluşturduğum) ama eski datastore olmadığından kayıtlarına ulaşılamıyor.

ESXi hostların ilk kurulumunda DNS'e 10.10.2.4 IP'sini vermiştim ama bu kurulumda DNS'i 10.10.2.3'te ayağa kaldırdım. Hostun DNS'ini düzeltmek için konsoldan F2'ye iki kere basıp şifremi girdim. Çıkan menüde "Configure Management Network"ü seçtim ve sonraki adımda "DNS Configuration"a girdim. "Primary DNS Server" alanına 10.10.2.4 yerine 10.10.2.3 yazdım ve Enter'a basarak çıktım. Esc'e basıp "Test Management Network"ü seçince bütün denemeler sorunsuz tamamlandı.




Tarayıcıdaki vSphere'e geri döndüm. Eski vCenter'dan yapılan ağ ayarları hostlar üzerinde kayıtlı olduğu için burada onları tekrar yapmam gerekmedi. Hostlardan birine bastım (sağda 1), "Manage" sekmesinden (2) "Storage" alt sekmesini açtım (3). Altta "Storage Devices"a bastığımda (4) 15 GB'lik iSCSI diski listede gördüm (5). Diskin üstüne bastığımda diskin 2 ayrı "path"den (iki farklı vmnic'ten) geldiğini ve bu diski sunan makinanın iqn.2018-01.local.lab.sierra... olduğunu gördüm (6).



Diski eklemek için sol çerçevenin üstündeki disk simgesine (solda 1) bastım. Oradan DC-Lab "datacenter"ını seçtim (2), "Related Objects" sekmesine geçip (3) onun altında "Datastores"a bastım (4). Soldan ilk simgeye bastığımda (5) disk ekleme sihirbazı açıldı. "Next"e basarak devam ettim (6). Sonraki adımda "VMFS"i seçili bıraktım. Üçüncü adımda "Datastore name: sharedstorage" ve "Select a host to view..."da hostlardan birini seçtim. Altta 15 GB'lik disk listelendi. Onu seçip "Next"e bastım. Diğer tüm adımlarda da "Next"e basıp sihirbazı tamamladım ve disk eklendi. Bir disk daha eklemek için disk ekleme sihirbazını tekrar başlattım. Bu sefer ikinci adımda NFS seçip "Next"e bastım.


NFS ayarlarını yukarıdaki gibi yaptım. Datastore name: nfsdatastore, Server: 10.10.3.1, Folder: /NFSexport olarak girip sonra "Next"e bastım. Her iki sunucuyu da seçtim, tekrar "Next"e ve "Finish"e basıp NFS diski de ekledim.

Önemli Not: NFS servisi (özel olarak mountd), makina her yeniden başlatıldığında başka portları kullanır. mountd portları sierra makinasında rpcinfo -p localhost komutuyla listelenir ve vSphere'de NFS paylaşımına erişilemiyorsa iptables'da bu portlar açılır. Daha hızlı (ve güvensiz) çözüm portlar yerine hostların IP'lerine iptables kuralı yazılmasıdır:

iptables -I INPUT -s 10.10.3.11 -m state --state NEW \
-j ACCEPT
iptables -I INPUT -s 10.10.3.12 -m state --state NEW \
-j ACCEPT
iptables -I INPUT -s 10.10.3.21 -m state --state NEW \
-j ACCEPT
iptables -I INPUT -s 10.10.3.22 -m state --state NEW \
-j ACCEPT

veya ileride başka hostlar da ekleneceği gözönüne alınarak daha geniş bir kuralla o arabirimden gelen bütün paketler kabul edilebilir.

iptables -I INPUT -i eth1 -m state --state NEW -j ACCEPT

Yazının ortalarında 49356/tcp'yi açtığım iptables kuralı, makina yeniden başlatıldığında geçersiz olacak ve her defasında doğru portla değiştirilmesi gerekecektir. Bir başka çözüm, tek port tanımlamaktansa mountd servisinin port aralığına izin verilmesidir. 


Hem NFS hem iSCSI olmak üzere iki farklı datastore ekledim. Normalde NFS'in yüksek GÇ gerektiren işlerde kullanılması pek tavsiye edilmez. NFS, daha çok depolama ve sık erişim gerektirmeyen dosyaların saklanmasında kullanılır. Üretim ortamında bile yavaş kalacağı düşünülen bir sistemin lab ortamında da pek verimli olması beklenmemelidir. Üstelik de NFS'in altındaki diskler Thin provision olarak eklenmişse.


Son...
Bundan başka benim anlatacağım veya ekleyeceğim birşey kalmadı. Sanal makina kurulumunu daha önce yaptığım için burada değinmiyorum. FT özellikleri de benzer şekilde kurulup denenebilir.

Buraya kadar uzun ama benim için hayli eğitici olan bir yazı oldu, umarım okuyucular da benimle aynı fikri paylaşıyordur. Buraya kadar okuyan kaldıysa sabrına çok teşekkür ediyorum. Bundan sonraki yazıda yine daha düşük seviye konuları ele almak istiyorum. Bundan sonraki yazılarda C ve Fortran'daki iki matematik kütüphanesinden bahsedecek ve gcc'nin yaptığı derleme optimizasyonlarına değineceğim. 

Hiç yorum yok:

Yorum Gönder