PowerFlex: Ana Bilgisayarda Komut Dosyası Çalıştırma (diğer adıyla İşletim Sistemi Yaması) Özelliği Açıklaması
Summary: Bu özellik, MDM veya SDS bileşenlerini barındıran sunucularda kullanıcı tarafından sağlanan komut dosyalarını çalıştırmak için kullanılır. Bu özellik, bir dizi Linux kabuk komutunu çalıştırmak, bir işletim sistemine yama uygulamak ve daha fazlası gibi PowerFlex sisteminin dışındaki herhangi bir amaç için kullanılabilir. ...
Instructions
UI - Pre-PFMP (PowerFlex 4.x)
Önkoşullar
Zorunlu - ana komut dosyası yürütme izinlerine /opt/emc/scaleio/lia/bin/ sahip bir dizinde bulunur.
- Komut adı patch_script olmalıdır
İsteğe bağlı - doğrulama komut dosyası yürütme izinlerine /opt/emc/scaleio/lia/bin/ sahip bir dizinde bulunur.
- Komut adı verification_script olmalıdır
> Bu özellik yalnızca Linux'ta (RHEL ve SLES) desteklenmektedir.
> Bu özellik, yürütme sonunda çıkış kodunun 0 (Sıfır) olup olmadığını kontrol eder.
> Çıkış kodları ve komut dosyası çalıştırma LIA günlüklerinde bulunabilir.
> Ağ geçidi kullanarak işlemi çalıştırmadan önce patch_script ve verification_script'i test etmek müşterinin sorumluluğundadır.
> Özellik konumu: Maintain → System Logs and Analysis → Run Script on Hosts.
Adımlar ve Akışlar
Komut dosyası çalıştırma:
1. Tüm Sistem - Tüm PowerFlex Düğümleri
Varsayılan olarak, komut dosyası ilk ana bilgisayarın Koruma Etki Alanında (PD) çalışır, ardından ikinciye geçer ve bu şekilde devam eder.
Farklı Koruma Etki Alanlarında paralel olarak devre dışı - varsayılan olarak onay kutusu temizlenir.
Farklı Koruma Etki Alanlarında paralel olarak etkinleştirildi - bu seçenek belirlendiğinde patch_script tüm PD'lerde paralel olarak çalışacaktır.
MDM'leri olmayan PD'ler ilk sırada ve Küme Düğümleri son sırada yer alır.
2. Koruma Alanı - belirli bir PD
MDM'leri olmayan PD'ler ilk sıradadır ve MDM küme düğümleri son sıradadır.
3. Hata Seti - belirli bir FS.
MDM'leri olmayan FS'ler ilk sıradadır ve MDM küme düğümleri son sıradadır.
4. SDS - tek bir SDS düğümü
Yapılandırma çalıştırma:
1. Komut dosyası başarısız olduğunda işlemi durdur.
1.1 Komut hatasında işlemi durdur etkinleştirildi - varsayılan olarak onay kutusu işaretlidir.
Patch_script (ve seçildiyse verification_script) 0 (Sıfır) dışında herhangi bir kodla çıktığında tüm çalışma başarısız olur ve durur.
1.2 Komut hatasında işlemi durdur devre dışı.
Patch_script'in başarısız olması durumunda, bu düğümün yürütülmesi başarısız olacak ve sistem bir sonraki düğüme geçecek ve patch_script'i bu düğümde çalıştıracaktır.
2. Komut dosyası zaman aşımı - Patch_script'in bitmesi için ne kadar süre beklenir?
Komut dosyasını çalıştırmanın kullanıcı tarafından seçilen yapılandırılabilir bir zaman aşımı vardır.
Varsayılan olarak 15 dakika olarak yapılandırılmıştır → bir hata nedeniyle, PowerFlex 3.6'dan daha eski sürümlerde zaman aşımı 15 dakikaya sabit kodlanmıştır.
Komut çalışması zaman aşımına uğradığında tüm çalışma başarısız olur ve durur.
3. Doğrulama komut dosyası- Patch_script çalıştırıldıktan sonra verification_script'i çalıştırmak istiyor musunuz?
3.1 Çalıştır- patch_script çalışacak ve tamamlandığında, patch_script son işleminin yeniden başlatılıp başlatılmayacağına bağlı olarak verification_script çalışacaktır, (bölüm #4).
3.2 Çalıştırma- patch_script çalışacak ve tamamlandığında tüm çalışma duracak ve başarıyla tamamlanacaktır.
4. Komut dosyası eylemi sonrası - patch_script çalıştırıldıktan sonra düğümü yeniden başlatmak istiyor musunuz?
4.1 Yeniden Başlat - patch_script çalışması bittikten ve 0 (Sıfır) koduyla çıkıldıktan sonra, düğüm yeniden başlatılır ve verification_script çalıştırılmak üzere seçilip seçilmediğine bağlı olarak durur veya devam eder (bölüm #3).
Ağ Geçidi yeniden başlatılacak bir düğümdeyse yeniden başlatılmaz, işlem başarılı olur ve manuel olarak yeniden başlatmamızı hatırlatan bir açılır pencere gösterilir.
4.2 Yeniden başlatma - patch_script çalışmayı bitirdikten ve 0 (Sıfır) koduyla çıktıktan sonra düğüm yeniden başlatılmaz ve verification_script çalıştırılmak üzere seçilip seçilmediğine bağlı olarak durur veya devam eder (bölüm #3).
Ana Bilgisayarlarda Komut Dosyası Çalıştır:
"Ana Bilgisayarlarda Komut Dosyası Çalıştır" öğesine tıklayın -->Doğrulama aşaması başlar.
Bu aşama, patch_script ve verification_script (seçiliyse) dosyalarının varlığını doğrulamak için düğümün LIA'larının her birine bir istek gönderir /opt/emc/scaleio/lia/bin/.
Kod mantığı, üzerinde çalışılacak düğümlerin rastgele bir listesini seçer (belirtilen koşullara göre).
Yürütme aşamasını başlat:
"Yürütme aşamasını başlat" düğmesine basın.
1. Ağ Geçidi aşağıdaki doğrulamaları yapar:
a. Arızalı kapasite olup olmadığını kontrol eder.
b. Geçerli yedek kapasiteyi kontrol eder.
c. Geçerli küme durumunu kontrol eder.
d. Bakım modunda başka bir SDS olmadığını kontrol eder.
2. SDS'yi bakım moduna geçirin.
3. patch_script'i çalıştırın - başarılı bir çalıştırmadan sonra dosya silinir ve aynı dizinde bir yedek dosyası oluşturulur.
Yedek dosyabackup_patch_script olarak adlandırılır
4. Ana bilgisayarı yeniden başlatın (seçiliyse)
5. verification_script'i çalıştırın (seçiliyse) - başarılı bir çalıştırmadan sonra dosya silinir ve aynı dizinde backup_verification_script adıyla bir yedek dosyası oluşturulur.
6. SDS'yi bakım modundan çıkarın.
7. İşlem başarıyla tamamlandı.
RESTAPI - -PFMP sonrası (PowerFlex 4.x)
- İsteğe bağlı bir yeniden başlatma ve isteğe bağlı bir doğrulama komut dosyasıyla birlikte sistem düğümlerinin tümünde veya bazılarında bir yama komut dosyası çalıştırın. İşlemde bir miktar paralellik söz konusudur.
- Kod dosyaları düğümün klasöründe saklanmalıdır: /opt/emc/scaleio/lia/bin Alternatif olarak, GW tarafından düğüme yüklenebilirler. Komut dosyaları bir GW yerel klasöründen alınabilir veya HTTP/HTTPS paylaşımından indirilebilir.
- Üzerinde çalışılacak düğümleri açıkça seçmek için bir SdsId'ler ve/veya mdmId'ler listesi sağlanabilir.
- Dosya adları sabit kodludur ve değiştirilemez: patch_script ve verification_script
REST Komutu
- /im/types/Configuration/actions/liaRunOsPatching
Gerekli Parametreler
- Şu parametrelerden biri zorunludur: pdIds/fsIds/sdsIds/mdmIds / executeOnAllSdss / executeOnAllMdms
pdIds- aşağıdaki Koruma Etki Alanlarının (PD Kimlikleri) parçası olan tüm düğümlerde ondalık biçimde çalıştırfsIds- aşağıdaki Hata Kümelerinin (FS Kimlikleri) parçası olan tüm düğümlerde ondalık biçimde çalıştırsdsIds- kimliklere göre listelenen tüm SDS'lerde ondalık biçimde çalıştırmdmIds- kimliklere göre listelenen tüm MDM'lerde ondalık biçimde çalıştırexecuteOnAllSdss- tüm SDS'lerde çalıştır (true/false)executeOnAllMdms- tüm MDM'lerde çalıştır (true/false)
İsteğe Bağlı Parametreler
isRebootRequired- yama komut dosyasını çalıştırdıktan sonra her düğüm yeniden başlatılmalı mı (değerler: true/false)isVerificationScriptRequired- doğrulama komut dosyası her düğümde çalışmalı mı (değerler: true/false)isRunningInParallelOnPds- işlem farklı PD'lere ait düğümler üzerinde paralel bir şekilde çalışmalı mı (değerler: true/false)isStopProcessingOnScriptFailure- bir kod hatası durumunda tüm işlem durmalı mı (değerler: true/false)TimeoutMs- yama komut dosyasını çalıştırmak için milisaniye cinsinden zaman aşımıisUploadFileNeeded- GW düğümlere komut dosyaları yüklemeli mi (değerler: true/false)
Aşağıdaki alanlar "true" olduğunda isUploadFileNeeded geçerlidir:
patchScriptFilePath- yama komut dosyasının yerel klasör adı veya http/https URL'siverificationScriptFilePath- doğrulama komut dosyasının yerel klasör adı veya http/https URL'simaintenanceModeType- Bakım Modu tipi (değerler: IMM/PMM)verificationScriptTimeoutSec- saniye cinsinden doğrulama komut dosyası zaman aşımırebootTimeoutSec- saniye cinsinden düğüm yeniden başlatma zaman aşımı
liaRunOsPatching komutunu çalıştırmadan önce oturum açmanız ve sistem yapılandırmasını almanız gerektiğini unutmayın, aşağıdaki örneğe bakın.
Komut Örneği
*belirteç değişkeni /auth/login veya /api/gatewayLogin'den döndürülen Keycloak belirtecini içerir.
**<ip adresi> - Çalıştırılacak komut dosyalarını içeren bir http sunucusunun IP Adresi
Yama komutunun yükü olacak bir sistem yapılandırmasının json'unu alın (liaPassword ve mdmPassword'ü manuel olarak null'dan bir dizeye değiştirmelisiniz).
Bu komutun çıktısını (sabit parolalarla birlikte) config.json dosyasına ekleyin:
curl -s -X POST -k -H "Content-Type: application/json" -d '{ "mdmIps":["1.2.3.4","5.6,7,8"], "mdmUser":"<mdm_username>", "mdmPassword":"<mdm_password>", "securityConfiguration":{ "allowNonSecureCommunicationWithMdm":"true", "allowNonSecureCommunicationWithLia":"true", "disableNonMgmtComponentsAuth":"false" } }' -H "Authorization: Bearer ${token}" https://<m&o-ip-address>/im/types/Configuration/instances
Yama komutunu çalıştırın:
curl -v -k -X -i POST -H "Content-Type:application/json" -H "Authorization: Bearer ${token}"
"https:/<m&o-ip-address>/im/types/Configuration/actions/liaRunOsPatching?executeOnAllSdss=true &isRebootRequired=true&isVerificationScriptRequired=true&patchScriptFilePath=https://<ip-address>/patch_script&verificationScriptFilePath=https://<ip-address>/verification_script&maintenanceModeType=IMM&rebootTimeoutSec=30" -d @config.json
Additional Information
Günlükler
Ağ Geçidi:
- /opt/emc/scaleio/gateway/logs/scaleio.log
- /opt/emc/scaleio/gateway/logs/scaleio-trace.log
LIA:
/opt/emc/scaleio/lia/logs/trc.x
İpucu - Sorun giderme veya test sırasında komut dosyasını düğümde tutmak için özel anahtar:
- /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/gatewayInternal.properties dosyasını düzenleyin
- "ospatching.delete.scripts=false" alanını bulun
- Sorun giderme için true olarak değiştir (Varsayılan değer false'tur)