[TR] VM Essentials Ortamlarında iSCSI Multipath Kurulumunu Otomatikleştiren Pratik Bash Aracı

[TR] VM Essentials Ortamlarında iSCSI Multipath Kurulumunu Otomatikleştiren Pratik Bash Aracı

HPE VM Essentials veya KVM/libvirt tabanlı sanallaştırma ortamlarında paylaşımlı storage kullanmak, özellikle GFS2 cluster datastore hazırlanırken dikkat isteyen bir süreçtir. iSCSI initiator yapılandırması, storage NIC seçimi, MTU kontrolü, multipath ayarları, CHAP doğrulaması, node record oluşturma ve sonrasında WWID doğrulaması gibi birçok adımın eksiksiz yapılması gerekir.

Kağıt üzerinde basit görünen bu işlem birden fazla host üzerinde tekrarlandığında oldukça zahmetli hale gelir. Tek bir yanlış iface adı, hatalı portal IP’si veya eksik CHAP ayarı, kurulumun saatlerce uzamasına neden olabilir.

vme-iscsi-setup, tam olarak bu problemi çözmek için geliştirilmiş açık kaynak bir Bash aracıdır.

Projenin amacı HPE VM Essentials host’ları üzerinde iSCSI initiator ve multipath kurulumunu otomatikleştirmek GFS2 cluster storage hazırlığını daha güvenli ve tekrarlanabilir hale getirmektir.

Araç yalnızca HPE VM Essentials için değil iscsiadm, open-iscsi ve device-mapper-multipath kullanan KVM/libvirt host’lar için de kullanılabilecek şekilde tasarlanmıştır.

Github Link : https://github.com/builtbyfood/morpheus-vme-iscsi-setup

Manuel Kurulum Neden Riskli?

iSCSI multipath kurulumu genellikle birkaç komuttan ibaret gibi görünür. Ancak gerçek ortamda işler daha karmaşıktır.

  • Önce storage network için kullanılacak NIC’lerin doğru seçilmesi gerekir.
  • Ardından her NIC üzerinde IP, link durumu ve MTU değerleri kontrol edilir. Jumbo frame kullanılıyorsa sadece NIC üzerinde MTU 9000 görmek yeterli değildir switch, VLAN ve storage tarafının da aynı MTU değerini desteklediğinden emin olmak gerekir.

Bunun üzerine iSCSI discovery, iface oluşturma, node record bağlama, CHAP bilgilerini işleme, multipath servislerini hazırlama ve son olarak tüm host’larda aynı WWID bilgisinin göründüğünü doğrulama adımları gelir. Cluster storage tarafında en kritik noktalardan biri de budur: her node aynı LUN’u aynı kimlikle görmelidir. Aksi halde GFS2 gibi cluster dosya sistemleriyle çalışırken ciddi tutarsızlıklar yaşanabilir.

vme-iscsi-setup, bu süreci dört aşamalı, kontrollü ve okunabilir bir akışa dönüştürüyor. Önce yapılandırma bilgilerini topluyor, ardından read-only pre-flight kontrollerini yapıyor, daha sonra gerekli iSCSI ve multipath ayarlarını uyguluyor ve en sonunda doğrulama raporu üretiyor. Bu akış yapılandırma, pre-flight, apply ve verify olmak üzere dört ana fazdan oluşuyor.

Dört Aşamalı Kurulum Mantığı

Aracın en güçlü taraflarından biri kurulumu doğrudan başlatmak yerine önce ortamı anlamaya çalışmasıdır. İlk aşamada hedef IQN, target portal IP’leri, kullanılacak storage NIC’leri, beklenen MTU değeri, CHAP kullanımı ve initiator adı gibi bilgiler alınır.

Bu bilgiler ister config dosyasından okunabilir ister ortam değişkenleriyle verilebilir, ister tamamen interaktif şekilde girilebilir.

İkinci aşama olan pre-flight kısmı ise güvenlik açısından oldukça değerlidir. Bu bölümde paketlerin kurulu olup olmadığı servislerin durumu, NIC link bilgisi, IPv4 adresleri, MTU değerleri, ping ve jumbo ping testleri, TCP 3260 erişimi ve mevcut iSCSI oturumları kontrol edilir. Bu aşamada sistem üzerinde kalıcı değişiklik yapılmaz araç önce mevcut durumu raporlar ve kullanıcı onayını bekler.

Üçüncü aşamada artık gerçek yapılandırma uygulanır. Initiator adı ayarlanır /etc/multipath.conf dosyası cluster kullanımına uygun şekilde hazırlanır iSCSI iface kayıtları oluşturulur, discovery işlemi yapılır, node record’lar bağlanır, CHAP ayarları uygulanır ve oturumlar açılır.

Son aşamada ise iscsiadm -m session, multipath -ll ve lsblk çıktılarıyla doğrulama yapılır. Araç, Morpheus GFS2 GUI tarafında kullanılabilecek WWID bilgisini de raporlar.

Cluster Ortamları İçin En Büyük Avantaj: Tekrarlanabilirlik

Bir host üzerinde iSCSI multipath yapılandırması yapmak yönetilebilir bir iştir. Ancak üç, beş veya daha fazla node’dan oluşan bir cluster ortamında aynı işlemleri birebir tekrarlamak hem zaman alır hem de hata riskini artırır.

vme-iscsi-setup burada devreye girerek SSH üzerinden multi-host rollout desteği sunar. Config dosyası hazırlandıktan sonra araç script ve yapılandırma dosyasını uzak host’lara kopyalayabilir, non-interactive modda çalıştırabilir ve sonuçları merkezi olarak raporlayabilir. Bu modun çalışması için host’larda passwordless SSH ve passwordless sudo gereklidir.

Bu yaklaşım özellikle production cutover pencerelerinde önemli avantaj sağlar. Çünkü bakım süresinde manuel komut yazmak yerine, daha önce test edilmiş bir config ile aynı işlemi tüm cluster üzerinde tutarlı şekilde çalıştırmak mümkündür. Böylece her node’un aynı hedef storage’a, aynı multipath mantığıyla ve aynı WWID görünümüyle bağlandığından emin olunabilir.

CHAP ve Secret Yönetimi

Storage ortamlarında CHAP kullanımı yaygın bir güvenlik katmanıdır. Ancak CHAP bilgilerini manuel olarak her host üzerinde doğru node record’a işlemek hata yapılmaya açık bir adımdır. vme-iscsi-setup, CHAP kullanıcı adı ve parolasını üç farklı yöntemle alabilir: ortam değişkenleri, config dosyası veya terminalde no-echo interaktif prompt. Eğer CHAP bilgileri config dosyasında tutuluyorsa dosyanın chmod 600 ile korunması önerilir ve araç bu konuda kullanıcıyı uyarır.

Araç ayrıca bazı iscsi-initiator-utils sürümlerinde görülebilen önemli bir davranışı da ele alıyor.

Bazı yapılarda sendtargets discovery işlemi, kayıtları discovery sırasında kullanılan iface altına bağlamak yerine default iface altına yazabiliyor. Bu durumda CHAP ayarı yapılırken iscsiadm: No records found hatası alınabiliyor.

Script bu problemi discovery sonrasında her iface için açıkça node record oluşturarak çözüyor. Bu işlem idempotent çalıştığı için kayıt varsa dokunmuyor, yoksa oluşturuyor.

Multipath ve GFS2 İçin Kritik Noktalar

Cluster storage tarafında multipath yapılandırması sadece performans için değil, tutarlılık için de önemlidir.

Özellikle GFS2 gibi cluster dosya sistemleriyle çalışırken her host’un aynı LUN’u aynı WWID ile görmesi gerekir. Bu nedenle user_friendly_names yes gibi host bazlı değişebilen isimlendirmeler risklidir.

vme-iscsi-setup, mevcut multipath yapılandırmasında bu tarz uyumsuzluklar gördüğünde ilerlemeyi durduracak şekilde tasarlanmıştır.

Proje dokümantasyonunda da GFS2 için her node’un aynı /dev/mapper/<wwid> yolunu görmesinin kritik olduğu belirtilir.

Bu ayrıntı, aracı sıradan bir kurulum script’inden ayırıyor. Amaç yalnızca iSCSI oturumu açmak değil; cluster storage için doğru, güvenli ve tekrarlanabilir bir temel hazırlamak.

Performans ve iSCSI Tuning Desteği

Modern all-flash array’lerde varsayılan iSCSI queue değerleri zaman zaman yetersiz kalabilir. Projede ISCSI_TUNING_PROFILE desteği de bulunuyor. Bu özellik sayesinde varsayılan değerler korunabilir, daha dengeli bir profil seçilebilir veya hızlı flash array’ler için daha yüksek cmds_max ve queue_depth değerleri uygulanabilir. Araç bu ayarları hem /etc/iscsi/iscsid.conf tarafında güncelleyebilir hem de ilgili node record’lara işleyebilir.

Bu özellik, özellikle yüksek I/O beklentisi olan ortamlarda faydalı olabilir. Yine de bu tarz tuning değerleri uygulanmadan önce storage üreticisinin önerileri, workload tipi ve host kaynakları dikkate alınmalıdır.

Kurulum Öncesi Gereksinimler

Script’i çalıştırmadan önce bazı hazırlıkların tamamlanmış olması gerekir. Host üzerinde root veya passwordless sudo yetkisi bulunmalıdır.

Storage NIC’leri işletim sistemi seviyesinde önceden yapılandırılmış olmalıdır yani IP, VLAN ve MTU ayarları netplan, NetworkManager veya ifcfg gibi araçlarla hazır hale getirilmelidir.

Script bu değerleri kontrol eder ancak NIC yapılandırmasını kendisi yapmaz. Remote host modu kullanılacaksa config dosyasının hazır olması ve uzak makinelerde passwordless SSH ile sudo erişiminin sağlanmış olması gerekir.

Bu ayrım önemlidir. vme-iscsi-setup bir network provisioning aracı değildir; iSCSI ve multipath katmanını güvenli şekilde hazırlayan bir otomasyon aracıdır.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *