LDOM Oracle VM for SPARC: Creating I/O Domain

LDOM Oracle VM for SPARC

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.

ldom_iodomain_pcibuses

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.

ldom_iodomain_pci_end_point_devices

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.

Hakkında G. KELEŞ

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.