I/O Domain: Herhangi bir guest domaine direk olarak bir I/O device map edildiğinde o artık bir I/O domain’dir. I/O domain PCIe veriyolu veya PCIe end point devices atayarak iki şekilde oluşturabiliriz. İşlemleri nasıl yapacağımızı belirten adımlar aşağıdadır.
-
I/O Domain’e vereceğimiz PCIe veriyolu veya PCIe end point devices belirlenmesi, Control Domain tarafında herhangi bir device tarafından kullanılıp kullanılmadığının kontroü
-
PCIe veriyolu veya PCIe end point devices’ın Control Domain’den kaldırılması
-
Konfigürasyonun kaydedilmesi
-
Konfigürasyon değişikliğinin aktif etmek için Control domain yeniden başlatılması
-
I/O domain kurulumu
-
PCIe veriyolu veya PCIe end point devices’ın kurulan domain’e atanması
-
Domain Bind/Start edilmesi
Evet Şimdi resimde görüldüğü gibi PCI bus(pci_1)’i herhangi bir guest domain device olarak verdiğimizde guest domain artık bir I/O domain olacaktır. PCI bus(pci_1) üzerinde takacağınız ve taktığınız tüm kaynaklara(HBA, Ağ Kartı ) I/O domainiz direk erişebilecektir.
Primary domain’e bağlanıp, I/O device’ların kimin tarafından kullanıldığını görebilirsiniz.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary pci_1 BUS pci_1 primary ..........
Yukarıda gördüğünüz gibi primary domain pci_1 kullanıyor, şimdi pci_1’i primary’den kaldıracağız. Kaldırmadan önce bu veri yolunu kullanan bir device olup olmadığını kontrol etmelisiniz. Aşağıda kontrol etmek için örnek komutları görebilirsiniz. Sizler konfigürasyonunuza göre farklı komutlar kullanabilirsiniz.
primary# ifconfig -a primary# df / primary# ls -l /dev/nxge0 primary# ls -l /dev/rdsk/c1t0d0s0 primary# ldm start-reconf primary primary# ldm remove-io pci_1 primary
Konfigürasyon yedeği alınır.
primary# ldm add-config ioconf
Yeni konfigürasyonu aktif etmek için domain yeniden başlatılır.
primary# shutdown -i6 -g0 -y
Yeni bir domain kurulur.
primary# ldm add-domain io_ldom primary# ldm add-vcpu 8 io_ldom primary# ldm add-memory 4G io_ldom primary# ldm set-mau 1 io_ldom primary# ldm add-vnet vnet1 primary-vsw0 io_ldom
Herhangi bir domain’e tanımlanmamış pci_1 veri yolu kurmuş olduğumuz domaine verilerek, domain bin/start edilir.
primary# ldm add-io pci_1 io_ldom primary# ldm bind io_ldom primary# ldm start io_ldom
pci_1’in artık yeni domaine verildiğini görebilirsiniz.
primary# ldm list-io NAME TYPE BUS DOMAIN STATUS ---- ---- --- ------ ------ niu_0 NIU niu_0 primary niu_1 NIU niu_1 primary pci_0 BUS pci_0 primary pci_1 BUS pci_1 io_ldom ..........
Yukarıda I/O domain’i PCIe veriyolu eklyerek nasıl yaptığımız anlattık, şimdide PCIe end point device ekleyerek nasıl yapacağımızdan bahsedeceğiz. Eğer tek bir PCIe veriyoluna sahipseniz yukarıda anlattığımız yöntemi kullanmazsınız. Bu durumda PCIe end point device’ı aşağıda resimde (PCIE3) görüldüğü gibi I/O domaine atayabilirsiniz.
primary# ldm start-reconf primary primary# ldm remove-io /SYS/MB/PCIE3 primary
Konfigürasyon yedeği alınır ve Yeni konfigürasyonu aktif etmek için domain yeniden başlatılır.
primary# ldm add-config ioconf primary# reboot -- -r
ldm ls-io komutu ile değişiklik kontrol edilir. Yeni domain oluşturulup PCIe end point device yeni kuruduğumuz domain’e eklenir.
primary# ldm add-domain io_ldom primary# ldm add-vcpu 8 io_ldom primary# ldm add-memory 4G io_ldom primary-domain# ldm set-mau 1 io_ldom primary# ldm add-vnet vnet1 primary-vsw0 io_ldom primary# ldm add-io /SYS/MB/PCIE3 io_ldom primary# ldm bind io_ldom primary# ldm start io_ldom LDom io_ldom started
Sonuç olarak sisteminizde kuracağınız ldom’ların yedeklilik ve süreklilikleri açısından Control, Service ve I/O domain kavramları önemlidir. Örneğin oluşturduğunuz I/O domain üzerinde bir vds ve vsw servisi oluşturursanız, ldom’ların hem primary(control/service domain) hemde oluşturduğunuz I/O domain üzerinden hizmet almasını sağlarsınız. Gelin kısa bir örnek ile açıklayalım. Oracle T Serisi bir sunumcunuz var, 2 adet HBA ve ayrıca 2 adet ağ kartınız var. Sunumcu üzerinde logical domainler oluşturur ve servisleri(ağ, hba üzerinden sunumculara bir storage’dan verilen diskler vb.) primary üzerinden verirseniz, primary sunumcu üzerinde bir sorun yaşandığında, sunumcu kapandığında logical domain’lere erişimin kesileceği ve bunlara verilen hizmetlerin kesileceği anlamına gelir. İşte bunu önlemek için ilk olarak sunumcu donanım yapılandırmasına göre veri yolu ve bu veri yolunu kullanan kartları yedekli yapıda hem primary hemde oluşturacağınız I/O domain için yapılandırmak olacaktır. I/O domaine yaptıktan sonra örneğin pci_1 veri yolunu verdiniz buna bağlı slotlarda da bir ağ kartınız ve HBA kartınız var, bu kartlar üzerinden vds ve vsw hizmetleri oluşturarak ldom’larınızın yedeklilik ve süreklilik açısından bu hizmetleri almasını sağlayabilirsiniz. Örneğin Primary sunumcu üzerinden vsw hizmetinde bir sıkıntı olsa bile I/O domain üzerindeki vsw üzerinden ldom sunumcu erişimi açık olacaktır.