PowerFlex: GET_INFO - Destek Paketi Toplama Yardımcı Programı
Résumé: get_info.sh - Bir PowerFlex ana bilgisayardan tanılama bilgilerini toplayın ve bunları bir destek paketinde paketleyin.
Instructions
get_info.sh [SEÇENEKLER]
AÇIKLAMA
get_info.sh , bir PowerFlex (eski adıyla ScaleIO) ana bilgisayarından hata ayıklama bilgilerini toplayan ve destek personeli tarafından analiz edilmek üzere sıkıştırılmış bir paket halinde arşivleyen bir tanılama yardımcı programıdır.
Yardımcı program, aşağıdakiler de dahil olmak üzere birden çok kaynaktan veri toplar:
- PowerFlex bileşen günlükleri, yapılandırması ve izleme dosyaları
- MDM/SCLI sorgu çıktıları ve dahili hata ayıklama dökümü
- PowerFlex bileşeni dahili tanılama
- İşletim sistemi yapılandırması, günlükler ve çalışma zamanı durumu
- Donanım envanteri (depolama denetleyicileri, ağ aygıtları, NVMe, NVDIMM vb.)
- Çekirdek dökümleri (mevcut ve isteğe bağlı olarak istek üzerine oluşturulur)
- Tanılama veri toplayıcısı (
diag_coll) istatistik
Ortaya çıkan paket, daha fazla analiz için PowerFlex desteğine aktarılabilen tek bir sıkıştırılmış arşivdir (varsayılan olarak tar/gz).
Yalnızca bir örneği get_info.sh Belirli bir zamanda bir ana bilgisayarda çalışabilir. Çıktısı için yeterli boş alan yoksa çalışmayı reddeder (alan denetimi açıkça atlanmadığı sürece).
SEÇENEKLER
Genel Seçenekler
-
-a, --allTüm verileri toplayın. Bu, belirtmekle eşdeğerdir
--mdm-repository,--collect-cores,--max-cores=2,--valgrind-coresve--analyse-diag-coll. -
-A, --analyse-diag-collAnalyze tanılama veri toplayıcısı (
diag coll) verileri -
-b[COMPONENTS], --collect-cores[=COMPONENTS]Boşlukla ayrılmış kullanıcı alanı listesi için mevcut çekirdek dökümlerini toplayın
COMPONENTS. Varsayılan (COMPONENTSihmal edilmiştir): Tüm kullanıcı alanı bileşenleri
-b ve BİLEŞENLER. Uzun form için, ile ayırın =
Örnek
-b'mdm sds'
--collect-cores='mdm sds'
-
-d OUT_DIR, --output-dir=OUT_DIRElde edilen paketi dizin altında depolayın
OUT_DIR. Default: <WORK_DIR>/scaleio-getinfo(bkz.--work-dir). -
-f, --skip-mdm-loginPowerFlex MDM oturum açma kimlik bilgileri sorgusunu atlayın. Kullanıcı zaten manuel olarak oturum açmışsa kullanışlıdır.
-
-h, --helpYardım mesajını gösterip çıkın. Şunlarla birleştirildiğinde
--tech, ayrıca teknisyen seçeneklerini de görüntüler. -
-J, --xzKullanım
tar/xzToplanan paketin varsayılan biçimi yerinetar/gz.Sistemintar(1)Desteklemez--use-compress-programveyaxz(1)bulunamadı. -
-k NUM, --max-cores=NUMTopla:
NUMHer bileşenden çekirdek dosyalar. Default (Varsayılan): Tüm çekirdek dosyalar, şu anlama gelir--collect-cores -
-l, --lightHafif bir paket oluşturun. Yalnızca en yeni nesil numaralı günlük dosyaları toplanır ve bileşen yürütülebilir dosyaları veya kitaplıkları çekirdekler toplanırken dahil edilmez. Bu seçeneğin kullanılması desteklenebilirliği azaltır ve kullanılması önerilmez.
-
-m NUM, --max-traces=NUMTopla:
NUMHer bileşenden PowerFlex izleme dosyaları. Default (Varsayılan): Tüm dosyalar -
-N, --skip-space-checkVeri toplama işleminden önce boş disk alanı doğrulamasını atlayın.
-
-P PATH, --collect-path=PATHEk yolu toplayın
PATH.Yalnızca mutlak yollar kabul edilir. Joker karakterleri kabul eder; Joker karakterler alıntılanmalıdır. Bu seçenek, birden fazla yol toplamak için birden çok kez belirtilebilir. -
-q, --quiet, --silentStandart çıktıdaki mesajları bastırın.
-
-r, --mdm-repositoryMDM depo dosyalarını toplayın.
-
-s, --skip-sdbgSDBG (tanılama hata ayıklayıcısı) çıktısının toplanmasını atlayın.
-
-S, --pause-core-generationVeri toplama sırasında PowerFlex bileşenlerinin çekirdek üretimini duraklatın. Toplama işlemi tamamlandıktan sonra orijinal yapılandırma geri yüklenir.
-
-w WORK_DIR, --work-dir=WORK_DIRDizini kullan
WORK_DIRgeçici dosyalar için. Default (Varsayılan):/tmp. -
-x FILE, --output-file=FILEToplanan paketi adlı dosya olarak depolayın
FILE. Uygun dosya adı son eki (.tgz,.zip, vb.) otomatik olarak eklenir. EğerFILEdır-dir-(kısa çizgi), paketi standart çıktıya yazın (--quiet). Bir paket standart çıktıya yazıldığında, diskte paket dosyası oluşturulmaz. Default (Varsayılan):getInfoDump. -
-z, --zipKullanım
zipToplanan paketin varsayılan biçimi yerinetar/gz. Şu durumlarda yok sayılır:zip(1)sistemde bulunamadı. -
--mdm-port=PORTBağlantı noktasını kullanarak MDM'ye bağlanma
PORTSCLI komutları için. Default (Varsayılan):scli default behavior. -
--overwrite-output-fileZaten mevcutsa çıktı dosyasının üzerine yazın. Bir çıktı dosyası veya dizini açıkça belirtildiğinde (
-xveya-d), varsayılan davranış üzerine yazmayı reddetmektir; Bu seçenek bunu geçersiz kılar. -
--techYardım mesajı çıktısına teknisyen seçeneklerini dahil edin.
MDM Oturum Açma Seçenekleri
Aşağıdaki seçenekler SCLI'ya aktarılır --login yaparsınız. Davranışları ve varsayılan değerleri SCLI tarafından yönetilir.
-
-n, --use-nonsecure-communicationGüvenli olmayan modda MDM'ye bağlanın.
-
-p PASSWORD, --password=PASSWORDKullanım
PASSWORDPowerFlex MDM oturumu açmak için. Default (Varsayılan): SCLI varsayılan davranışı -
-u USERNAME, --username=USERNAMEKullanım
USERNAMEPowerFlex MDM oturumu açmak için. Default (Varsayılan): SCLI varsayılan davranışı -
--ldap-authenticationLDAP tabanlı kimlik doğrulamayı kullanarak PowerFlex MDM'de oturum açın.
-
--management-system-ip=ADDRESSŞuna bağlan:
SSO/M&OatADDRESSPowerFlex oturum açmak için. Default (Varsayılan): SCLI varsayılan davranışı -
--p12-password=PASSWORDPowerFlex oturum açma işlemini şifreleyin
PKCS#12dosya kullanmaPASSWORD. Default (Varsayılan): SCLI varsayılan davranışı -
--p12-path=FILEPowerFlex oturum açma bilgilerini kaydedin
PKCS#12DOSYA TÜRÜFILE. Default (Varsayılan): SCLI varsayılan davranışı
Teknisyen Seçenekleri
Aşağıdaki seçenekler destek teknisyenleri tarafından kullanılmak üzere tasarlanmıştır ve yalnızca aşağıdaki durumlarda yardım mesajında gösterilir: --tech belirtilmiştir.
-c[COMPONENTS], --generate-cores[=COMPONENTS]
Çekirdek dosyaları oluşturun ( gcore(1)) boşlukla ayrılmış user-land listesinin çalışan işlemleri için COMPONENTS. Varsayılan: tüm kullanıcı alanı bileşenleri, şu anlama gelir --collect-executablesve gerektirir gdb ve gcore.
-c ve COMPONENTS. Uzun form için, ile ayırın =.
Örnekler:
-c'mdm sds'
--generate-cores='mdm sds'
-
-C CORE_FILE, --reference-core-file=CORE_FILESon değişiklik zamanına göre ürün günlüklerini ve çekirdeklerini toplayın (
mtime) nın-ninCORE_FILE, yürütme başlangıç zamanı yerine. Ima--collect-cores -
-E REF_TIME, --event-time=REF_TIMEÜrün günlüklerini ve çekirdeklerini aşağıdakilere göre toplayın:
REF_TIME, yürütme başlangıç zamanı yerine. Tarafından anlaşılan herhangi bir formatı kabul ederdate(1). Ima--collect-cores. -g[COMPONENTS], --valgrind-cores[=COMPONENTS]
Toplamak valgrind Belirtilen kullanıcı alanı için çekirdek dökümleri COMPONENTS. Varsayılan: tüm kullanıcı alanı bileşenleri. Ima --collect-executables.
-b ve COMPONENTS. Uzun form için, ile ayırın =
Örnekler:
-g'mdm sds'
--valgrind-cores='mdm sds'
-
-t MIN, --minutes-before-event=MINŞu ana kadar oluşturulan ürün günlüklerini ve çekirdekleri toplayın:
MINreferans zamanından dakika önce. Default (Varsayılan): 15 -
-T MIN, --minutes-after-event=MINŞu ana kadar oluşturulan ürün günlüklerini ve çekirdekleri toplayın:
MINreferans süresinden dakika sonra. Default (Varsayılan): 5 -
-X[COMPONENTS], --collect-executables[=COMPONENTS]Belirtilen kullanıcı alanı için bileşen yürütülebilir dosyalarını ve bunların paylaşılan kitaplıklarını toplama
COMPONENTS. Default (Varsayılan): Tüm kullanıcı alanı bileşenleri
-b ve COMPONENTS. Uzun form için, ile ayırın =
Örnekler:
-X'mdm sds'
--collect-executables='mdm sds'
-
--keep-work-dirPaket oluşturulduktan sonra oluşturulan geçici çalışma dizinini koruyun (otomatik olarak temizlenir).
PAKET YAPISI
Çıktı paketi, sıkıştırılmış tek bir arşivdir.
- Paket üst düzey dizini, toplanan sistemin ana bilgisayar adıdır.
- Genel ana bilgisayar komut çıktıları,
server/Alt.
Dosya adı<command>+<arguments>+ son eki (.txtvarsayılan olarak). Boşluklar şununla değiştirilir:_, alfasayısal olmayan karakterler çıkarılmış
Örnek:server/ip_-s_addr.txt – output of ip -s addr - Ürün komutu çıktıları, bileşenin alt dizinine gider.
mdm/Içinscli,sdc/Içindrv_cfgve benzeri.
Komut adı (scli,drv_cfg, vb.) soyulur. İlk anlamlı bağımsız değişken dosya adı olur. Dosyalar ilgili son ek olarak atanır,.txtdizinindedir.
Örnekler:
-
mdm/query_cluster.txt- çıktısıscli --query_clustermdm/tgt_dump.txt- çıktısıscli --debug_action --tgt_dumpsdc/query_mdms.txt- çıktısıdrv_cfg --query_mdmssds/sdbg.txt- SDBG'nin çıktısıdumpallscreensSDS için
- Ürün bileşen dosyaları (komut çıktılarının aksine),
<component>/cfg,<component>/logsve benzeri
önek çıkarılmış olarak bileşenin dizininden kopyalanır.
Örnekler:
-
mdm/cfg/conf.txt- kopyası/opt/emc/scaleio/mdm/cfg/conf.txtsds/logs/trc.0- kopyası/opt/emc/scaleio/sds/logs/trc.0
- Ana bilgisayar dosya sistemi dosyaları, paket köküne göre dosya sistemi yollarına yerleştirilir.
Örnekler:
-
etc/os-release- kopyası/etc/os-releasevar/log/messages- kopyası/var/log/messagesproc/cpuinfo- kopyası/proc/cpuinfo
- Tanılama toplayıcısı (diag_coll) dosyaları
/optönek soyulmuş, iç yapıyı koruyarak.
Örneğin:diag_coll/logs/sar.0- kopyası/opt/diag_coll/logs/sar.0 - Gizli dosyalar (nokta önekli), baştaki nokta kaldırılarak "gösterilmez".
- Yardımcı program yürütme günlüğü,
get_info_run.log, doğrudan ana bilgisayar adının>/kökün <altına yerleştirilir
Paket dizin ağacı yapısı:
<hostname>/
|-- get_info_run.log Utility execution log
|-- server/ General command output directory
| |-- ip_-s_addr.txt
| |-- uptime.txt
| |-- uname_-a.txt
| |-- ps_-elF.txt
| |-- dmesg.txt
| +-- ... (one file per collected command)
|
|-- mdm/ PowerFlex component data (if installed)
| |-- cfg/ Configuration files (excl. PEM)
| |-- logs/ Trace and log files
| |-- rep/ Repository (if --mdm-repository)
| |-- query_all.txt SCLI query outputs
| |-- sdbg.txt SDBG screen dumps
| +-- ...
|-- sds/
|-- pds/
|-- dgwt/
|-- sdr/
|-- sdt/
|-- lia/
|-- sdc/
|-- gateway/
|
|-- diag_coll/ Diagnostic data collector (if installed)
| |-- logs/
| |-- cfg/
| +-- ...
|
|-- etc/ Host files
| |-- os-release
| |-- sysconfig/
| |-- network/
| +-- ...
|-- var/
| |-- log/
| | |-- messages
| | +-- ...
| +-- ...
|-- proc/
| |-- cpuinfo
| |-- meminfo
| +-- ...
|-- sys/
|-- ...
|
|-- scaleio-getinfo-extra/ Extra diagnostic data (if present)
+-- scaleio-getinfo-backup/ Backed-up configuration files (if any)
ÜRÜN GÜNLÜĞÜ VE ÇEKIRDEK DOSYA FILTRELEME
Bu bölümde açıklanan seçenekler, ürün günlük dosyalarının (örneğin izleme dosyaları olarak da adlandırılır) trc.0, trc.1, exp.0) ve çekirdek döküm dosyaları, toplanan pakete dahil edilmek üzere seçilir. Bunu, bir referans zamanı, etrafında bir zaman penceresi ve sayma limitleri tanımlayarak yaparlar.
Herhangi bir filtreleme seçeneği belirtilmediğinde, tüm ürün günlük dosyaları ve (çekirdek toplama etkinse) tüm çekirdek döküm dosyaları toplanır. Filtreleme seçenekleri, bu seçimi aşağıda açıklandığı gibi aşamalı olarak daraltır.
Referans Zamanı
Aşağıdakilerden biri kullanılarak bir referans zamanı ayarlanabilir: -E/--event-time veya -C/--reference-core-file.
İkisi de değilse --event-time ne de --reference-core-file verilirse, zaman penceresi filtrelemesi yapılmaz: referans zamanı varsayılan olarak geçerli saate ayarlanır ve bir sayım sınırı (-m veya -k) yürürlüktedir (aşağıdaki Sayım Sınırlarına bakın).
Her ikisi de -E ve -C göründüğünde, komut satırındaki son öğe etkili olur.
Zaman Penceresi
Bir referans zamanı ayarlandığında ( --event-time veya --reference-core-file), etrafında bir zaman penceresi kurulur. Zaman penceresi kapsamı kullanılarak ayarlanabilir -t/--minutes-before-event ve veya -T/--minutes-after-event, varsayılan olarak sırasıyla 15 ve 5 dakikadır. Yalnızca içeriği bu pencereyle çakışan dosyalar toplanmaya uygundur.
Örneğin, -E "2020-03-20 14:30" -t 10 -T 3 14:20:00 ile 14:33:00 arasındaki dönemi kapsayan dosyaları toplar.
--minutes-before-event ve --minutes-after-event hiçbiri olmadığında yok sayılır --event-time ne de --reference-core-file belirtilmiştir.
Sayım Limitleri
Dosya sayısı sınırı kullanılarak ayarlanabilir -m/--max-traces ve -k/--max-cores, sırasıyla günlük dosyaları ve çekirdek dosyalar için. Sınır, bileşen başına ölçülür.
Zaman penceresine NUM'dan fazla dosya denk geldiğinde (veya herhangi bir pencere etkin değilse kullanılabilir olduğunda), referans zamanına en yakın NUM dosyaları toplanır.
Sayı sınırı olmadan kullanıldığında --event-time veya --reference-core-file, tüm dosyalar adaydır (zaman penceresi yok) ve NUM'un en son dosyaları seçilir.
Filtreleme Mantığı
Dosya filtreleme, önce zaman aralığına, ardından sayı sınırına uygulanır:
- Adayları belirleyin. Bir bileşenin tüm ürün günlük dosyaları ve/veya çekirdek döküm dosyaları numaralandırılır.
- İçerik dönemini türetin. Ürün günlük dosyalarının içeriği bir dönemi temsil eder. İçerik döneminin, öncülünün son değişiklik zamanında başladığı kabul edilir (
mtime) veya öncülünün olmadığı UNIX dönemi; dosyanın kendisinde bitermtime. Çekirdek döküm dosyaları, dosyanınmtime. - Zaman penceresini uygula (
-Eveya-Cbelirtilen). İçeriği tamamen pencerenin dışında kalan dosyalar seçimden atılır. Ürün günlüğü dosyaları için, pencereye herhangi bir dosya girmezse, pencereye en yakın tek dosya saklanır, böylece paket bir bileşen için asla boş kalmaz. Çekirdek döküm dosyaları için böyle bir geri dönüş uygulanmaz. - Sayı sınırını uygula (eğer
-mve veya-kbelirtilen). Kalan dosyalar arasında en fazlaNUMreferans zamanına en yakın olanlar tercih edilerek seçilir. Referans zamanından önceki ve sonraki dosyalar seçim için eşit olarak yarışır.
KİMLİK DOĞRULAMA
Birincil MDM işleminin beklenen bağlantı noktasını dinlediği algılanırsa yardımcı program yerel MDM'de oturum açmayı dener (varsayılan: 6611)
MDM oturum açma seçenekleri SCLI'ye iletilir --login komutu ve onun tarafından işlenir.
Giriş başarısız olursa yardımcı program bir hata ile sonlandırılır.
Oturum açma atlandığında SCLI komutları denenmeye devam edilir (kullanıcının önceden manuel olarak oturum açtığı senaryoları desteklemek için). Üç SCLI hatasından sonra bir uyarı görüntülenir ve diğer tüm SCLI komutları atlanır.
Oturum açma şu durumlarda atlanır:
- Yerel ana bilgisayarda birincil MDM işlemi bulunamadı.
- Komutta
--skip-mdm-loginseçeneği belirtilmiştir.
Oturum açma şu durumlarda başarısız olur:
- MDM işlem sahibi yetkili kullanıcılar listesinde değil (saptanmış:
root) ve güvenli oturum açma etkinleştirilir. - SCLI (SCLI)
--loginKomut bir hata döndürür (örneğin, yanlış kimlik bilgileri).
DISK ALANI
Geçici dosyalar ve ortaya çıkan paket için disk alanı gereksinimleri önemli ölçüde farklılık gösterebilir.
Yardımcı program, geçici alan kullanımını en aza indirmeye çalışır; Komut çıktıları ve toplanan sanal dosya sisteminin kopyaları ile sınırlıdır (/proc ve /sys) dosyaları.
Paket, aşağıdakiler ile uzak bir ana bilgisayardan akışa alınabilir: --output-file=- PowerFlex ana bilgisayarında disk alanı kullanımını en aza indirmek için. Paket dosyası doğrudan standart çıktıya yazılır (stdout) akış sırasında; Diskte oluşturulmadı.
Yardımcı program, veri toplamadan önce hem geçici çalışma dizini hem de çıktı paketi için gerekli disk alanını tahmin eder.
Tahmini gerekli alan, ilgili dosya sistemlerindeki kullanılabilir alanı aşarsa yardımcı program bir hata ile sonlandırılır. Bu kontrol aşağıdakilerle atlanabilir: --skip-space-check.
Çalışma dizini ve çıktı dizini farklı dosya sistemlerinde bulunabilir; Her biri bağımsız olarak kontrol edilir.
Tahmini alan gereksinimleri yardımcı programın günlük dosyasına yazılır. get_info_run.log.
ÇIKIŞ DURUMU
| 0 | Başarıyla tamamlandı |
| 1 | Hata (geçersiz bağımsız değişkenler, yetersiz alan, oturum açma hatası, zaten çalışan başka bir örnek, paket oluşturma hatası, sinyal yakalandı vb.) |
DOSYALARI
<WORK_DIR>/get_info_run.log |
Yürütme günlüğü (pakette de) |
<WORK_DIR>/scaleio-getinfo-tmp/ |
Geçici çalışma dizini (başarılı olunca temizlenir) |
/tmp/scaleio-getinfo/getInfoDump.tgz |
Varsayılan çıktı paketi konumu |
<WORK_DIR>/scaleio-getinfo-extra/
/tmp/scaleio-getinfo-extra/ |
İsteğe bağlı ek tanılama veri dizinleri |
/tmp/scaleio-getinfo-backup/ |
Değiştirilen yapılandırma dosyalarının geçici yedeklemeleri (otomatik olarak oluşturulur) |
/opt/emc/scaleio/ |
PowerFlex kurulum dizini |
ORTAM
Önkoşullar
- Yardımcı program şu şekilde çalıştırılmalıdır:
root(veya bileşen dosyalarını okumak, tanılama komutlarını çalıştırmak ve erişmek için yeterli ayrıcalıklara sahip bir kullanıcı/proc,/sysve benzeri). - Standart yardımcı programlar:
tar,gzip,stat,find,awk,sed,getopt(1)(geliştirilmiş),nice. - İsteğe Bağlı:
zip(İçin--zip),xz(İçin--xz),gdb/gcore(İçin--generate-cores)
Eşzamanlılık
Yalnızca bir örneği get_info.sh bir seferde çalışabilir. Yardımcı program, aşağıdakileri kullanarak mevcut bir çalışan örneği kontrol eder: pidof(1) ve bir örnek bulunursa sonlandırılır.
Sinyal İşleme
Şebeke tuzakları INT, EXITve TERM veri toplama sırasındaki sinyaller. Bir sinyal aldıktan sonra:
- Yedeklenmiş yapılandırma dosyalarını geri yükler (örneğin, çekirdek oluşturma ayarları).
- Geçici dizinleri temizler
- Durum 1 ile çıkar
Yürütme günlüğü korunur ve yolu standart hataya yazdırılır.
Örnekler
Standart bir destek paketi toplayın:
get_info.sh
Uzak PowerFlex ana bilgisayarında paket dosyası oluşturmadan SSH bağlantısı üzerinden paket akışı yapın:
ssh <host> 'get_info.sh --output-file=-' > getInfoDump-<host>.tgz
Doldurmayı önlemek için farklı bir çalışma dizini kullanın /tmp:
get_info.sh --work-dir=/var/tmp
Pakete özel yollar ekleyin:
get_info.sh --collect-path=/opt/custom/app/logs --collect-path='/var/log/app*'
Yalnızca SDS ve MDM bileşenleri için en son çekirdek dökümünü toplayın:
get_info.sh --collect-cores='mdm sds' --max-cores=1
Özel bir zaman penceresiyle, bir çekirdek dosyanın değişiklik süresi etrafında toplanmış verileri toplayın:
get_info.sh --reference-core-file=/opt/emc/scaleio/sds/bin/core.1000 \
--minutes-before-event=10 \
--minutes-after-event=2