Modern depolama mimarilerine geçiş hız kazandıkça birçok kurum elindeki SCSI tabanlı sunumları NVMe over Fabrics (özellikle NVMe/TCP) tarafına taşımak istiyor.
Tekil, clustered uygulamalar için bu geçiş nispeten doğrudan bir süreçtir çoğu zaman Storage vMotion gibi araçlarla kesintisiz biçimde tamamlanabilir. Ne var ki paylaşımlı disk kullanan clusterd uygulamalar söz konusu olduğunda tablo değişir.
Paylaşımlı diskleri (shared) SCSI’dan NVMe’ye taşımak ek adımlar gerektirir ve çoğu senaryoda belirli bir kesinti süresini kaçınılmaz kılar.
Sahada en sık karşılaşılan örneklerden biri fiziksel RDM (Raw Device Mapping) kullanan Windows Server Failover Cluster (WSFC) yapılarıdır.
Bu yapılar genellikle SQL Server Failover Cluster kurulumlarıyla birlikte gelir. Bu nedenle bu makalemde anlatımda SQL Server temel örnek olarak ele alınmıştır.
Burada anlatılanlar özellikle SCSI3-PR (SCSI-3 Persistent Reservations) gerektiren uygulamalar içindir. Oracle RAC gibi SCSI3-PR kullanmayan clusterd çözümleri farklı bir yaklaşım gerektirir ve onların NVMe’ye geçişi hem çevrimiçi hem de daha farklı bir prosedürle yürür.
SCSI3-PR ve RDM Bağımlılığının Sonu
WSFC gibi uygulamalar aynı paylaşımlı diske birden fazla node’un eriştiği senaryolarda veri bütünlüğünü korumak için SCSI-3 kalıcı rezervasyonlarına ihtiyaç duyar. Bu mekanizma hangi node’un diske yazma hakkına sahip olduğunu belirleyerek “split-brain” türü çakışmaların önüne geçer.
Uzun yıllar boyunca VMware ortamında bu gereksinimi karşılamanın yolu RDM kullanmaktı çünkü klasik VMDK diskleri kalıcı rezervasyonları desteklemiyordu.
Bu durum VMFS datastore’lar için Clustered VMDK özelliğinin gelmesiyle değişti.
Artık SCSI ya da NVMe tabanlı VMFS datastore’larda Clustered VMDK özelliği etkinleştirilmiş bir VMDK üzerinden SCSI3-PR gereksinimleri karşılanabiliyor.
Bunun pratik bir sonucu var Broadcom, NVMeoF protokolü için RDM desteği sunmuyor.
Dolayısıyla halihazırda RDM (örneğin FC ya da iSCSI üzerinden) kullanan ve NVMe/TCP‘ye geçmek isteyen kurumlar disklerini Clustered VMDK özelliği açık bir VMFS datastore üzerindeki VMDK’lere dönüştürmek zorunda. Burada kritik nokta şudur bu dönüşüm Storage vMotion ile yapılamaz. Bu yüzden WSFC benzeri uygulamalar için belirli bir kesinti penceresi planlamak gerekir.
Bu senaryoda EMC PowerMax ve EMC PowerStore arka uç olarak kullanılabilir PowerFlex 5.0 da artık desteklenen seçenekler arasındadır.
Sanal Denetleyiciler Hakkında Kritik Bir Ayrıntı
Geçiş adımlarına girmeden önce sıklıkla kafa karışıklığına yol açan bir konuyu netleştirmek faydalı olacaktır sanal makinedeki diskleri bağlayan sanal depolama denetleyicileri (storage controller’lar). VM düzenleme ekranında bu denetleyiciler şöyle görünür:
SCSI controller 0 — VMware Paravirtual
Change Type: VMware Paravirtual SCSI Bus Sharing: None

Burada anlaşılması gereken temel şey bu denetleyicilerin altta yatan depolama türüyle doğrudan bir bağ taşımadığıdır.
Örneğin ekranda “SCSI” olarak görünen 0 numaralı denetleyici aslında NVMe/TCP destekli bir datastore üzerindeki bir VMDK ile kullanılıyor olabilir. Evet bu bir SCSI denetleyicisidir ancak sanal bir denetleyicidir. Bu yüzden VMDK’nizin altındaki gerçek depolama NVMe/TCP olsa bile, ona SCSI ya da NVMe denetleyici atamanız teknik olarak fark etmez.
VMware genel olarak SCSI denetleyicileri daha kararlı bulur ve özellikle VMware Paravirtual (PVSCSI) türünü önerir çoğu kullanım senaryosunda daha iyi performans verir.
Bu nedenle bu anlatımda, SCSI Bus Sharing değeri Physical olarak ayarlanmış PVSCSI denetleyiciler kullanılacaktır.
Tercihiniz buysa NVMe denetleyiciler de kullanabilirsiniz; geçiş her iki şekilde de çalışır.
RDM’leri VMDK’lere Dönüştürmek
Küme kararlılığını korumak adına WSFC geçişi tek seferde bir disk olacak şekilde yürütülür. Büyük veritabanlarında bu süreç zaman alır çünkü kopyalama işlemi host üzerinden yani robocopy ile gerçekleştirilen bir veri kopyalamasıdır.
Ön Koşullar
Geçişe başlamadan önce hem VMware hem de WSFC tarafında belirli koşulların sağlanması zorunludur.
VMware tarafında VM donanım sürümünün Clustered VMDK’yi desteklemesi NVMe/TCP üzerinde bir VMFS datastore bulunması ve bu datastore’da Clustered VMDK özelliğinin etkin olması gerekir.
Diskler Thick Provision Eager Zeroed biçiminde sağlanmalı cluster VM’lerinde hiçbir snapshot bulunmamalı ve Storage DRS devre dışı bırakılmalıdır.
WSFC tarafında ise kümenin sağlıklı olması cluster doğrulamasının temiz sonuç vermesi (uyarılar kabul edilebilir) ve her diskin tek bir sahip node’lara ait olması beklenir.
Yeni Paylaşımlı VMDK’lerin Oluşturulması
Her RDM diski için aşağıdaki adımlar izlenir.
Önce NVMe/TCP datastore üzerinde, mevcut diskle aynı boyutta ya da daha büyük Thick Provision Eager Zeroed biçiminde yeni bir VMDK oluşturulur ve Clustered VMDK gereksinimi karşılanır.
Ardından bu VMDK her iki clustered node’a bağlanır.
Bağlama yapılırken her iki node’da da aynı denetleyici türü (SCSI ve PVSCSI önerilir)
Aynı denetleyici numarası ve aynı SCSI ID kullanılmalıdır.
Son olarak ilgili denetleyicide SCSI fiziksel bus paylaşımı (physical bus sharing) etkinleştirilir.
Diskin Hazırlanması
Disk hazırlığı yalnızca o anki sahip düğümde yapılır. Bu node’da yeni disk çevrimiçi getirilir GPT olarak başlatılır ve NTFS biçiminde formatlanır.
Örneğin PowerMax için 128 KB ayırma birimi boyutu en iyi performansı verir.
Ardından diske geçici bir sürücü harfi atanır.
İkincil node için ise disk çevrimdışı bırakılır.
Verinin Disk Bazında Taşınması
Bir SQL Server veri diski için tipik akış şöyledir. Önce SQL rolü sahip node alınır ve eski RDM’i kullanan SQL kaynakları durdurulur, ancak disk çevrimiçi kalır. Veri R sürücüsü eski RDM’i ve V sürücüsü yeni VMDK’yi temsil edecek şekilde aşağıdaki komutla kopyalanır.
robocopy R:\ V:\ /MIR /COPYALL /DCOPY:T /R:0 /W:0
Kopyalama tamamlandıktan sonra veri bütünlüğü doğrulanır.
Yeni disk eski sürücü harfini alacak şekilde sürücü harfleri değiştirilir cluster kaynak bağımlılıkları yeni diske işaret edecek biçimde güncellenir ve kaynaklar çevrimiçi getirilir.
Test amacıyla sahiplik başka bir node’a taşınır.
Geçiş başarıyla doğrulandığında eski diske (RDM) yönelik bağımlılık kaldırılır.
Bu süreç her veri diski için ayrı ayrı tekrarlanır.
Aynı işlem log diskleri ve TempDB diskleri için de uygulanır.
Cluster Disk Kaynağının Değiştirilmesi
Doğrulama tamamlandıktan sonra eski RDM diski cluster rolünden çıkarılır yerine yeni VMDK diski eklenir. Sahiplik ve bağımlılıklar teyit edilir ve test için sahiplik başka bir node’a taşınır.
Quorum Diskinin Taşınması
Quorum diski kullanılıyorsa kazara bir clusterdaki kesintisini önlemek için sırayı doğru kurmak gerekir.
Önce quorum geçici olarak disk yerine node çoğunluğuna alınır:
Set-ClusterQuorum -NodeMajority
Ardından yukarıdaki “Diskin Hazırlanması” bölümündeki adımlar izlenerek yeni bir disk eklenir.
Disk arayüzden ya da Add-ClusterDisk komutuyla kümeye dahil edilir.
Yeni disk arayüzden veya aşağıdaki komutla quorum diski olarak ayarlanır.
Set-ClusterQuorum -DiskWitness "Cluster Disk X"
Son olarak eski RDM diski çevrimdışı bırakılır ve kaldırılır.
RDM’lerin Kaldırılması
Tüm doğrulamalar başarıyla tamamlandıktan sonra RDM eşlemeleri her iki VM’den de kaldırılır.
İlgili LUN’lar ESXi host’larından ayrılır (detach) ve birimler depolama tarafında unmap/unmask edilir.
Bu geçişte en yaygın hatalar genellikle birkaç noktada toplanır. İlki diskleri Eager Zeroed Thick yerine başka bir biçimde sağlamaktır buradaki cluster çözümü EZT gerektirir ve thin ya da zeroedthick disklerle çalışmaz.
İkinci yaygın sorun denetleyici yapılandırmasındaki uyumsuzluklardır. İki node’unda denetleyici türü, denetleyici numarası ve SCSI ID birebir aynı olmalıdır. Bunlardan herhangi birindeki uyumsuzluk diskin cluster içinde doğru çalışmasını engeller.
Son olarak WSFC için ilgili denetleyicide fiziksel bus paylaşımının ayarlanmaması da işlevsel bir aksaklığa yol açar.

RDM tabanlı SCSI3-PR gerektiren cluster uygulamaları NVMe/TCP üzerindeki paylaşımlı VMDK’lere taşımak zaman alıcı olabilir ancak burada anlatılan disk bazında, kontrollü yaklaşım bu geçişi gerçekleştirmenin en güvenli yoludur.
Doğru ön koşullar tutarlı denetleyici yapılandırması ve adım adım doğrulama ile cluster bütünlüğünü riske atmadan modern NVMe mimarisine geçmek mümkündür.

