Data Domain: Data Domain Dosya Sistemi'ndeki dosyaları sfs-dump kullanılarak listeleme
Summary: Bu makalede, ayrı ayrı MTree'ler veya bir bütün olarak dosya sistemi (FS) için dosya ve dizin listelerinin dökümünü almak üzere Data Domain Komut Satırı Arayüzü'nün (CLI) kullanımı açıklanmaktadır. ...
Symptoms
Alınan protokol ne olursa olsun Data Domain FS yalnızca MTree'lerde düzenlenmiş dosyaları (dizinler içindeki) içerir. Tüm dosyalar (hem Aktif hem de herhangi bir bulut birimindeki dosyalar için) aynı kökü ve ad alanını paylaşır; tek bir ad alanı vardır; bu, dosya ve dizin listelerinin Aktif ve bulut birimlerindeki dosyaları herhangi bir ayrım olmaksızın içerdiği anlamına gelir.
Ayrıntılı bir dosya dökümü almak, aşağıdaki gibi nedenlerle yararlı olabilir:
-
Bir yedekleme uygulaması tarafından yönetilen dosyaların listesiyle karşılaştırma yaparak bu yedekleme uygulamasından artık kalan dosyaları kontrol etme.
-
Yedekleme uygulamasının yedekleme tutma cezasını uygulayıp uygulamadığını belirlemek için belirli bir yaş eşiğinin üzerindeki tüm dosyaları listeleme
Cause
Dosya listeleri oluşturmak için CLI aracı sfs_dump.
Resolution
Liste çıktısını almak için SSH Oturum Günlüğünü kullanın. Dosya listelerini toplamak için DD CLI'dan çalıştırılması gereken tam komut, kullanılan Data Domain İşletim Sistemi (DDOS) sürümüne bağlıdır.
Hızlı Bağlantılar
- 7.13.0.0, 7.10.1.15, 7.7.5.25 ve 6.2.1.110'dan önceki DDOS sürümleri için liste oluşturma
- DDOS 7.13.0.0, 7.10.1.15, 7.7.5.25 ve 6.2.1.110 veya sonraki sürümler için liste oluşturma
- DDOS 8.1.0.0, 7.13.1.10, 7.10.1.30 ve 7.7.5.40 veya sonraki sürümler için liste oluşturma
- Listeyi CSV dosyasına dönüştürme
- CSV biçimli sfs_dump çıktılarını bir e-tabloya içe aktarma
CLI'dan bir Data Domain'deki dosyaların ayrıntılı listesini almak ve nihayetinde Data Domain'de depolanan dosyalar hakkında istihbarat elde etme süreci, çalıştırılan DDOS sürümüne bağlıdır.
Dosya ayrıntılarını içeren metin çıktı dosyası toplandıktan sonra, tüm DDOS sürümlerinin çıktı biçimi aynı olduğundan (veya bir komut dosyası kullanılarak ortak bir biçime dönüştürülebildiğinden) çıktının daha kullanışlı bir biçimde işlenmesi her zaman aynıdır.
SSH Oturum Günlüğü:
Tüm DDOS sürümlerinde ortak olan şey, Data Domain'de yönetici kullanıcı olarak oturum açma ve bunu konsol çıktısının istemci tarafındaki bir metin dosyasına günlüğe kaydedilmesini destekleyen bir SSH istemcisi kullanarak yapma gereksinimidir (PuTTY bu konuda iyi çalışır). SSH istemcisini, çıktıyı istemcideki metin dosyasına kaydedecek şekilde yapılandırın (günlüğe kaydedilen satır sayısında veya tek tek satır uzunluğunda sınır olmadığından emin olun). SSH oturum günlük dosyası (ve dolayısıyla DD dosya listeleri) Data Domain'e değil, SSH bağlantısının başlatıldığı (genellikle) masaüstü istemcisine yazılır.
SSH oturumu çıktısını toplarken dosyaya anlamlı bir ad verdiğinizden (ör. dökümü alınacak Data Domain ana bilgisayar adını ve MTree adını ekleme) ve günlük dosyası için yeterli alan bulunduğundan emin olun. Bu alan, 1 milyon dosyalı Data Domain'ler için yaklaşık 200 MB olabilir.
7.13.0.0, 7.10.1.15, 7.7.5.25 ve 6.2.1.110'dan önceki DDOS sürümleri:
Bu sürümler hala se sfs_dump komutunu (ve -c Dosya ayrıntılarını başka bir işleme gerek kalmadan doğrudan CSV olarak çıktı alma seçeneği). Ancak Support Engineer (SE) moduna geçmek güvenlik nedeniyle önerilmez ve bunun yerine mevcut en son DDOS sürümüne yükseltme yapın.
Diske çıktı yazmak üzere yapılandırılmış bir SSH istemcisiyle Data Domain'de yönetici kullanıcı olarak oturum açın, SE ayrıcalık moduna geçin ve ardından dosya ayrıntılarını gerektiren her MTree için aşağıdaki komutu çalıştırın:
#### To produce the output directly as CSV # se sfs_dump -c <mtree-path> #### To produce the output as default format # se sfs_dump <mtree-path>
Bu sürümlerdeki komut ayrıca FS'deki tüm dosyaların listesini bir seferde (bir seferde bir MTree yerine) oluşturabilir. FS'deki tüm dosyaların dosya bilgileri ayrıntılarının dökümünü almak için MTree yolunu bırakın:
# se sfs_dump -c
İşlem tamamlandığında SSH istemcisinin diske kaydedilmesini durdurduğunuzdan emin olun ve dosyaları daha fazla işleme için ayırın.
Komut çıktısının biçimi, her dosya için tek bir satırdır. Şunu kullanmıyorsanız: -c, biçim sonraki sürümler için yukarıda gösterilenle aynıdır. Durumlarda -c kullanıldı (CSV çıktısı için), biçim şu şekildedir (çıktıda ilk satır olarak gösterilen bir başlık dahil):
name mtime fileid size seg_bytes seg_count redun_seg_count pre_lc_size post_lc_size /data/col1/backup/file 1656995350000000000 78 33554431 33668007 4016 0 33668007 34208564
DDOS 7.13.0.0, 7.10.1.15, 7.7.5.25 ve 6.2.1.110 veya sonraki sürümleri:
Listelenecek MTree, "MTree" anahtar sözcüğünden sonra gelir:
# filesys sfs-dump mtree <mtree-path>
filesys sfs_dum komutu, ile karşılaştırıldığında se sfs_dump:
- Yeni komut şunları desteklemez:
-cdosya bilgilerini CSV (sütun) biçiminde boşaltma seçeneği - Yeni komut aynı anda yalnızca bir MTree çalıştırabilir, tek bir çağrıda tüm FS'ye karşı çalıştırma desteği yoktur
Tüm MTree'lerin dosya ayrıntılarını dosyaya dökümü gerekiyorsa Data Domain FS'deki tüm MTree listesini yineleyin ve komutu her biri için bir kez çalıştırın. Kullanıcı, aşağıdaki komutu çalıştırarak sistemdeki MTree'lerin listesini alabilir:
# mtree list
Çıktıyı diske yazmak üzere yapılandırılmış bir SSH istemcisiyle Data Domain'de yönetici kullanıcı olarak oturum açın ve ardından dosya ayrıntılarını gerektiren her MTree için aşağıdaki komutu çalıştırın:
# filesys sfs-dump mtree <mtree-path>
Birden fazla MTree için dosya ayrıntılarına ihtiyaç duyulursa tüm dökümleri aynı çıktı dosyasına yapma seçeneğini belirleyin veya MTree'lerin her biri için komutu çalıştırmadan önce SSH istemci yapılandırmasını farklı bir dosyaya geçirin.
Alternatif olarak, SSH kullanarak komutu çalıştırarak çıktıları katılımsız bir şekilde toplayın:
#### Releases 7.13.0.0, 7.10.1.15, 7.7.5.25 and 6.2.1.110 onwards only # ssh sysadmin@DD-HOSTNAME "filesys sfs-dump mtree /data/col1/backup" > sfs-dump-DD-backup.txt
Her iki durumda da çıktı bilgilerinde her dosya için aşağıdaki biçime sahip bir satır bulunur:
/data/col1/backup/file: mtime: 1580211658000000000 fileid: 175 size: 136794 type: 9 seg_bytes: 138282 seg_count: 18 redun_seg_count: 14 (78%) pre_lc_size: 15045 post_lc_size: 8760 (58%) mode: 02000100644 start_offset: 0 end_offset: 18446744073709551615
DDOS 8.1.0.0, 7.13.1.10, 7.10.1.30 ve 7.7.5.40 veya sonraki sürümleri:
filesys fs-dump:
- Çıktının CSV benzeri biçimlendirilmiş bir sürümde yazdırılması için
-cseçeneğini ekleyebilme (alanlar sütunlarla ayrılır) - FS'deki tüm dosyalar için dosya dökümü bilgilerini bir seferde çalıştırma imkanı
- Çıktıyı toplamak için SSH oturum günlüğünü kullanın.
Komut, aşağıda açıklanan ve özetlenen geliştirmelerle birlikte hemen önceki sürümlerle aynı olmaya devam eder:
#### File listing for all the files in a given MTree path # filesys sfs-dump mtree <mtree-path> #### File listing for all the files in a given MTree path, with CSV-like output # filesys sfs-dump -c mtree <mtree-path> #### File listing for all the files in the FS # filesys sfs-dump #### File listing for all the files in the FS, with CSV-like output # filesys sfs-dump -c
Bu komut "gizli" olarak kalmaya devam eder, böylece CLI etkileşimli yardımda veya belgelerde görünmez.
sfs_dump veya filesys sfs-dump verilerini yararlı bir şeye dönüştürme:
Çıktıda raporlanan bağımsız dosyaların biçimi filesys sfs-dump veya sfs_dump şu olmadan: -c seçeneği aşağıdaki şekilde özetlenebilir:
/data/col1/backup/file: mtime: 1580211658000000000 fileid: 175 size: 136794 type: 9 seg_bytes: 138282 seg_count: 18 redun_seg_count: 14 (78%) pre_lc_size: 15045 post_lc_size: 8760 (58%) mode: 02000100644 start_offset: 0 end_offset: 18446744073709551615 Field 01 : filename with full path (/data/col1/backup/file) Field 03 : file last modification time as UNIX epoch in nanoseconds (nanoseconds since January 1st 1970 at midnight) Field 05 : file (inode) ID, inode numbers are per MTree (175) Field 07 : pre-comp size for the file in bytes (136794) Field 09 : type of file (9) Field 11 : segment store bytes (this is NOT the file size), please ignore (138282) Field 13 : segment count, or the number of segments the file consists of (18) Field 15 : number of file segments which are redundant, or not unique (14) Field 16 : percentage of non-unique segments to total segments (78%) Field 18 : combined size of the file's unique segments after deduplication (15045) Field 20 : combined size of the file's unique segments after deduplication and local compression (8760) Field 21 : ratio of post-deduplicated + post-compressed unique segments size to post-deduplicated unique segment size (58%), shows how well local compression worked Field 23 : file mode, please ignore
Yukarıdaki örnekte, orijinal dosya 136.794 bayt boyutuna sahiptir ve Data Domain FS alma işlem hattından geçirildikten sonra tekilleştirme sonrasında 15.045 bayt ve diske yazılmadan önce dosyanın benzersiz segmentleri sıkıştırıldığında 8760 bayt kullanacak şekilde hesaplanmıştır. Bu nedenle:
- Dosya tekilleştirme (diğer adıyla "
gcomp" veya genel sıkıştırma) bir faktördür x9.09 (136.794 ila 15.045 bayt) - Dosya yerel sıkıştırması (diğer adıyla "l
comp" yerel sıkıştırma için) x1.72 (15.045 ila 8760 bayt) faktörüdür - Tahmini toplam dosya boyutu azalması ("sıkıştırma oranı" olarak bilinir) x15,62 faktörüdür (136.794 ila 8760 bayt)
Alternatif olarak, sfs_dump -c çıktısı benzerdir ancak daha kısadır:
/data/col1/backup/file 1656995350000000000 78 33554431 33668007 4016 0 33668007 34208564 Field 01 : filename with full path (/data/col1/backup/file) Field 02 : file last modification time as UNIX epoch in nanoseconds (nanoseconds since January 1st 1970 at midnight) Field 03 : file (inode) ID, inode numbers are per MTree Field 04 : pre-comp size for the file in bytes (33554431) Filed 05 : segment store bytes (this is NOT the file size), please ignore (33668007) Field 06 : segment count, or the number of segments the file consists of (4016) Field 07 : number of file segments which are redundant, or not unique (0) Field 08 : combined size of the file's unique segments after deduplication (33668007) Field 09 : combined size of the file's unique segments after deduplication and local compression (34208564)
Bu örnek için, öncekiyle aynı hesaplamalar yapılabilir:
- Dosya tekilleştirme (diğer adıyla "
gcomp" veya genel sıkıştırma) x0.99 faktörüdür (33.554.431 ila 33.668.007 bayt) - Dosya yerel sıkıştırması (diğer adıyla "
lcomp", yerel sıkıştırma için) x0.98 faktörüdür (33.668.007 ila 34.208.564 bayt) - Tahmini toplam dosya boyutu azalması ("sıkıştırma oranı" olarak bilinir) x0,98 faktörüdür (33.554.431 ila 34.208.564 bayt)
Şu örnek için gösterilen dosyayla karşılaştırıldığında -c bu sefer tekilleştirme (gereksiz segment yok) veya yerel sıkıştırma elde edilemez. Bu, dosyanın sıkıştırılmış bir dosya olduğunu gösterir.
post_lc_size belirli bir miktarda olması, dosya başına dikkate alınmayan çok sayıda FS düzeyi ek yükü olduğundan, bu dosya tarafından kullanılan disk alanının bu miktarla aynı olduğu anlamına gelmez. Sınırlamalar, komut için bilinen sınırlamalarla aynıdır:
mtree show compressionYukarıdaki çıktı dosyalarındaki bilgilerden yararlanmak, sayısal verilerin kullanıcının hedeflerine uygun bir şekilde işlenmesinden oluşur. Kullanım durumlarına verilebilecek birkaç örnek şu şekildedir:
- Belirleme
gcompvelcompBelirli bir yola karşılık gelen dosyalar için (bir yol belirli bir yedekleme sunucusu, istemci, politika, iş vb. ile eşleştirilebiliyorsa) - Ne kadar veri (
pre-comp) belirli bir süreden daha eski olan belirli bir konumda depolanır (artık dosyaları belirlemek veya yedekleme uygulamasının süresi geçmiş yedeklemelerin süresini zamanında kaldırmamasıyla ilgili sorunları gidermek için) - Şunun için kullanabilecek başka herhangi bir istatistik türü
sfs_dump -c seçeneği daha yeni sürümlerde, önerilerimiz, çıktı verilerinin yukarıdaki CSV biçimine dönüştürülmesi ve ardından dosyanın daha fazla işlenmek üzere CSV biçiminde kullanılmasıdır, ancak becerilerinize bağlı olarak CSV olmayan çıktı doğrudan işlenebilir.
CSV'ye dönüştürme:
CSV olmayan bir sfs_dump çıktıyı yazdırılacak olanla aynı olacak şekilde sfs_dump -c yazdırılırdı, aşağıdaki Linux komut satırı kullanılabilir:
# cat sfs-dump-noCSV.txt | grep ^/ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size"}
{
colon_index = index($0, ":")
filename = substr($0, 1, colon_index - 1)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
n = split(substr($0, colon_index + 1), fields, " ")
print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19]
}' > sfs-dump-CSV.csv
Bu noktanın ötesindeki her şey kullanıcılara olduğu gibi sağlanır. Aşağıda paylaşılan talimatlar için Dell tarafında herhangi bir garanti veya yükümlülük bulunmamaktadır. Dosya listeleme ayrıntılarından bilgi edinmek kullanıcının görevidir ve bunun nasıl başarılacağı tamamen dosya dökümü çıktısında veri madenciliği yapmak için kullanılan araç setine, ulaşılacak hedefe ve kullanıcının yukarıda ayrıntıları verilen komut çıktısından veri işleme konusundaki kendi uzmanlığına bağlıdır. Bir kullanıcı, bazı toplamları dökmek için metin dosyalarının Linux komut satırı işlemesini kullanmayı seçebilir, diğerleri "gnuplot" kullanarak grafik değerleri için girdi üretmeyi seçebilirken, kullanıcıların çoğunluğunun analiz için CSV dosyasından bir elektronik tablo oluşturmak için daha basit (ancak sınırlı) bir yaklaşım aradığına inanılmaktadır.
Dell, aşağıdaki talimatların doğru, çalışır ve kullanıcılar için yararlı olmasını sağlamak için çaba sarf etmiştir, ancak Destek kapsamı dışında olduğu için bunların işe yarayacağını garanti edemez ve destek de sağlanmaz.
CSV biçimli sfs_dump çıktısını bir elektronik tabloya içe aktarma (Excel örneği):
Dosya ayrıntıları listesinin CSV sürümü kullanılabilir olduğunda, verilerden bilgi edinmenin bir yolu, verileri bir elektronik tablo yazılımına yüklemektir. Örnek olarak Microsoft Excel kullanılmıştır ancak talimatlar diğer yazılımlar için benzer olmalıdır. CSV metin dosyasının CSV olarak Excel'e aktarılmasını sağlamak için aşağıdaki adımları izleyin:
- Excel'i açın ve yeni bir boş elektronik tablo oluşturun
- Üstteki Veri menüsüne gidin, ardından Metinden/CSV'den adlı simgeye tıklayın
- CSV biçimindeki dosya verilerini bulmak için iletişim kutusunu kullanın (
sfs-dump-CSV.csvCSV olmayan biçimden dönüşüm komut dosyası örneğinde olduğu gibi), dosya verilerini seçin ve İçe Aktar öğesine tıklayın - Giriş dosyası biçimi doğruysa ve Excel ilk 200 satırdan biçimi çıkarabiliyorsa (çıkarması gerekir) bir iletişim kutusu oluşturulacak elektronik tablonun önizlemesini göstermelidir. İlk satırın üst bilgi olarak algılanması da dahil olmak üzere iyi göründüğünden emin olmak için bilgileri gözden geçirin
- Önizlemede her şey yolunda görünüyorsa, iletişim kutusunun altındaki Yükle düğmesini tıklayın ve yeni e-tablo güzel biçimlendirmeyle sunulur ve alan başlıkları arama ve filtre özellikli olanlara dönüştürülür.
Elektronik tablodaki veriler, boyut gibi sayısal alanlara bir Sayı Filtresi uygulamak (yalnızca belirli bir boyutun üzerindeki dosyaları göstermek için) veya ad alanına bir Metin Filtresi uygulamak gibi şeyler, yalnızca belirli bir modelle eşleşen Data Domain dosya ayrıntıları çıktısındaki dosyaların (yalnızca belirli bir MTree'nin yolu ile başlayanlar) gösterilmesi gibi şeyler zaten yararlıdır. ve bu verilerden elde edilen diğer hesaplamaları yapın.
Düzgün bir şekilde içe aktarılan bir Excel elektronik tablosu, A-I sütunlarında veri içermelidir. Veriler yalnızca A sütununda bulunuyor ancak ekrana yayılıyorsa Excel'i kapatın ve yukarıdaki 1'den 5'e kadar olan adımları yeniden deneyin.
Fazladan hesaplanan alanlar ekleyin:
Elektronik tablo, kullanıcının ihtiyaç duyduğu kadar hesaplanan alanla genişletilebilir. Eklenmesi gereken ilginç bir alan, dosyaların mtime'ına (son değişiklik zamanı, genellikle DD'ye yazıldığı zaman) karşılık gelen, kullanıcı tarafından okunabilir tarih ve saattir. Ayrıca verilerin ne için kullanıldığına bağlı olarak bazı dosya başına sıkıştırma değerlerinin hesaplanması ve gösterilmesi yardımcı olabilir. Yeni sütunlar, aşağıda açıklandığı gibi Excel formülleri kullanılarak otomatik olarak doldurulur.
Zaman damgası dönüştürme:
UNIX benzeri zaman damgasının kullanıcı tarafından okunabilir tarih ve saate dönüştürülmesini sağlamak için:
- J2 hücresine sağ tıklayın ve "Hücreleri Biçimlendir"i seçin
- Soldaki "Kategori" listesinde "Özel"i seçin.
- Henüz orada değilseniz kullanıcı tarafından okunabilir tarih-saat biçimi için biçimi oluşturun (örnek, sonunda EST dizesini içerir. Metinsel saat dilimi tanımınızla değiştirilebilir veya ilgilenmiyorsanız "EST"yi tamamen kaldırabilir): yyyy-aa-gg ss:dd:ss "EST"
- Bittiğinde "Tamam"a tıklayın. Artık, J2 hücresinin veriler için özel bir biçimi var.
- J2 hücresine aşağıdaki formülü ekleyin. Formüldeki (-6*3600) değerini, "sfs-dump" verisinin alındığı sırada Data Domain'de yapılandırılan saat dilimi için UTC'ye karşılık gelen doğru saat dilimi farkıyla değiştirin. Örneğin, Doğu ABD saati yaz aylarında UTC'nin 6 saat gerisindedir, bu nedenle burada "-6"dır.
(((B2/1000000000+(-6*3600))/86400)+25569) (((B2/1000000000)/86400)+25569)
- Formülü J2 hücresine ve ayrıca elektronik tablodaki diğer satırların her bir hücresine yapıştırma
- Tüm elektronik tablo için formülü hesaplama, tarih ve saat değerini yapılandırılan biçimde gösterme
- Sütunu mevcut olanlar gibi biçimlendirin ve başlığı Tarih Filtreleri uygulama olanağıyla Tarih olarak yapılandırın, yapılacak tek şey sütun için uygun bir ad (Tarih) ayarlamaktır
Sıkıştırma bilgileri:
Yukarıda açıklandığı gibi dosya başına sıkıştırma bilgileri için sütunlar eklenebilir. Bu sefer formüller "=" dahil olmak üzere gösterilir, bu nedenle metnin tamamı kopyalanmalı ve Özel Yapıştır metin olarak:
- Dosya başına tekilleştirme için bir sütun oluşturmak üzere aşağıdaki formülü kopyalayın ve Özel'i K2 hücresine Metin olarak yapıştırın veya
gcomp:=IF(H2=0,0,D2/H2)
- Dosya başına yerel sıkıştırma için bir sütun oluşturmak üzere aşağıdaki formülü kopyalayın ve Özel'i L2 hücresine Metin olarak yapıştırın veya
lcomp:=IF(I2=0,0,H2/I2)
- Dosya başına toplam dosya sıkıştırma oranı için bir sütun oluşturmak üzere aşağıdaki formülü kopyalayın ve M2 hücresine Metin Olarak Özel Yapıştır'ı seçin:
=K2*L2
Yeni sütunlara uygun bir ad verin. Sıkıştırma değerlerinin biçiminin başka bir değer olmasını istiyorsanız (örneğin, ondalık sayıları sınırlamak için), tarih ve saat örneğindeki gibi yapın ve formülü yapıştırmadan önce hücrenin sayısal biçimini önceden ayarlayın.
Dosya menüsüne giderek çalışmanızı güvende tutmayı unutmayın. Biçimlendirme ve filtrelemenin korunması için kaydedilen dosya türünün Excel Çalışma Kitabı (*.xlsx) olarak ayarlandığından emin olarak kaydedin.
Açıklanan işlemlerin tamamlanmasının ardından, elektronik tablonuz aşağıdaki (ilgili) sütunları içerir:
- A, bir dosya adı içerir
- B, dosyanın en son yazıldığı tarih damgasını (nanosaniye cinsinden UNIX tarihinde) içerir
- D, dosyanın orijinal boyutudur
- H, genel sıkıştırmadan sonraki boyuttur
- I, genel ve yerel sıkıştırmadan sonraki boyuttur
- J, dosyanın en son yazıldığı tarih damgasını kullanıcı tarafından okunabilir biçimde içerir
- K, dosya için genel sıkıştırmayı (tekilleştirme) içerir
- L, dosya için yerel sıkıştırmayı içerir
- M, dosya için toplam sıkıştırmayı içerir
Tüm dosya boyutları bayt cinsindendir.
Excel artık verileri raporlamak için gerektiği gibi filtreleyebilir veya sıralayabilir.
- Örneğin, MTree /data/col1/backup içinde yalnızca 30 günden eski dosyaları göstermek için:
- Ad başlığındaki aşağı oka tıklayın, Metin Filtreleri ve ardından Şununla Başlar'ı seçin ve kutuya
/data/col1/backup/yazın. Sondaki eğik çizgi önemlidir. Tamam öğesine tıklayın - Son Yazıldığı Tarih Başlığındaki aşağı oka tıklayın,Tarih Filtreleri'ni ve ardından Önce'yi seçin. 30 gün önceki bir tarihi seçmek için iletişim kutusunun sağındaki tarih seçiciyi kullanın. OK öğesine tıklayın.
Additional Information
Dosya konumunu dökme komutu (Aktif ve Bulut)
Dosyaların listesini, hangilerinin Aktif ve hangilerinin herhangi bir bulut biriminde olduğunu gösteren bir gösterge ile dökmenin bir yolu vardır:
#### For the DD FS as a whole # filesys report generate file-location #### For an individual MTree or subdirectory # filesys report generate file-location path /data/col1/test
Her iki durumda da çıktı aşağıdaki tiptedir:
------------------------- ---------------------- ---------------------- --------------------------- File Name Location(Unit Name) Size Placement Time ------------------------- ---------------------- ---------------------- --------------------------- /data/col1/test/file1.bin Cloud-Unit 200.00 GiB Sat Mar 5 13:24:10 2022 /data/col1/test/file2.bin Active 10.00 TiB Sat May 14 00:48:17 2022 ------------------------- ---------------------- ---------------------- ---------------------------
Ancak yukarıdaki komut, çoğu amaç için yetersiz olabilir. Örneğin, boyut kullanıcı tarafından okunabilir birimlerdedir (bayt veya MiB ya da ayarlanmış bir çarpan yerine) ve yerleştirme zamanı, Aktif birimindeki dosyalar için yedeklemelerin Data Domain'e yapıldığı zamanla eşleşir ancak Bulut birimindeki dosyalar için eşleşmez (buluttaki dosyalar için "Yerleştirme Zamanı", dosyanın Bulut birimine taşındığı tarih ve saattir).
Ayrıca aşağıdaki komut (ve CSV olmayandan dönüştürülen komut dosyası sfs_dump), verileri sekmelerle ayrılmış sütunlar halinde verir. Çıktıda bulunan sekme karakterleri günlük dosyasına kaydedilmelidir. Aksi takdirde CSV'yi Excel'e aktarmak için yukarıda ayrıntıları verilen adımlar, alanları doğru şekilde ayıramaz.
sfs_dump -c
Verilen talimatlarda yeterince Excel bilgisi olduğu varsayılmıştır ancak diğer elektronik tablo yazılımlarına çevrilebilir.
Excel'in modern sürümleri birçok satıra izin verir ancak çıktıda işlenecek her dosyanın sfs_dump tek bir satır olduğunu unutmayın. Bu nedenle Excel'in veri kümenizdeki dosya sayısı kadar satır içeren bir elektronik tabloyu hızlı bir şekilde işleyebilmesi ve güncelleştirebilmesi gerekir. Sabit sınır 1 milyon satırın biraz üzerindedir, ancak bunun çok altındaki dosya sayılarında bile Excel iş için uygun olmayabilir (çok yavaş).
Eğer sfs_dump çıktıda Excel sürümü için çok fazla dosya var veya performans için verileri daha küçük bitler halinde işlemek için prosedürü her MTree için bir kez çalıştırmayı deneyin, böylece sistem için birden çok elektronik tablo vardır.
Tek bir MTree bile sfs_dump çıktı Excel için çok büyük olabilir, bu durumda her seferinde bir tane işlemek için birkaç küçük CSV dosyasına sahip olmak için bölünmüş Linux komutunu (veya büyük bir metin dosyasını çevrimiçi uç sınırlarını bölmek için başka herhangi bir benzer aracı) kullanın, örneğin:
# split -b <size> <filename> <new filename prefix> (splits by file size) # split -l <size> <filename> <new filename prefix> (splits by number of lines) # split -n <size> <filename> <new filename prefix> (splits by number of pieces)
Örneğin, bir giriş metin dosyasını şundan başlayarak adlandırılacak şekilde her biri 200 MiB'lik parçalara bölmek için:
"sfs_dump.out.split"
Ardından şunu çalıştırın:
# split -b 200M sfs_dump.out sfs_dump.out.split
Dosya verisinin tüm FS dökümü için "filesys sfs-dump" kullanılacak komut dosyası.
Dosya ayrıntılarını CSV biçiminde dökme özelliğine sahip olmayan birkaç sürüm için aşağıda daha ayrıntılı olarak gösterilen komut dosyası, CSV olmayan çıktıları işleyerek benzer bir sonuç elde etmek üzere Dell tarafından kullanıcılara olduğu gibi (garanti verilmeksizin) sfs_dump sağlanır.
CSV çıktısını desteklemeyen sürümler aynı zamanda bir bütün olarak FS'deki tüm dosyalar için bilgilerin dökümünü almaya izin vermeyen sürümler olduğundan, komut dosyası MTree'lerin listesini yinelemek için hedef Data Domain'e bağlanmak üzere SSH'yi kullanır, tüm MTree'lerin dosya listesini toplamak için dosya dökümünü bir seferde bir MTree için çalıştırır ve daha fazla işlemek için yeterli olan bir CSV biçimine dönüştürür:
#!/bin/bash
#### WARNING
#### This script is provided to you by Dell Technologies with NO GUARANTEE, as best-effort sample code to get a full FS sfs-dump collected
#### for DDOS releases which do not support "se sfs-dump", or as an alternative to it, in releases which support "filesys fs-dump"
#### That this script does not work for you, or if you need help setting it up, extending it, or resolving any issues, is not entitled to support
#### This script is not part of Dell PowerProtect / Data Domain, and hence it is not supported
#### Replace values below to suit your needs
USERNAME="sysadmin"
DD_HOSTNAME="10.n.n.172"
#### NO CHANGES NEEDED BEYOND THIS POINT
clear
echo "Script collects a full FS sfs-dump from \"${DD_HOSTNAME}\", using the command \"filesys sfs-dump\", one MTree at a time"
echo " * Script has to be configured by settting the \"USERNAME\" and \"DD_HOSTNAME\" variables within the top of the script"
echo " * Script expects passwordless SSH connection as \"USERNAME\" to the \"DD_HOSTNAME\" configured"
echo " * To configure passwordless SSH login to a DataDomain, check KB at https://www.dell.com/support/kbdoc/000004033 "
echo " * Test passwordless login is configured and working prior to going ahead with this script"
echo " * If passwordless login is not configured, script will ask for the \"${USERNAME}\" password "
echo " - Once for getting the MTree list"
echo " - And once for each one of the MTrees in \"${DD_HOSTNAME}\" "
echo
echo -n "Are you sure you want to continue? (y/n) : "
read -n 1 answer
echo
if [ "${answer}" = "y" ]; then
echo "Going ahead with the script."
echo
else
echo "Stopping script now. Re-run when passwordless login to \"${DD_HOSTNAME}\" as \"${USERNAME}\" works. Bye."
exit 1
fi
echo -n "1/6 : Collecting list of MTrees from DD..."
ssh ${USERNAME}@${DD_HOSTNAME} "mtree list" 2>/dev/null | grep ^/ | awk '{print $(NF-3)}' > mtree-list.txt
echo "Done."
n_mtrees=$( wc -l mtree-list.txt | cut -d" " -f1 )
echo -n "2/6 : Collecting per-Mtree sfs-dump information for ${n_mtrees} MTrees ..."
for mtree in `cat mtree-list.txt`; do
name=$(echo $mtree | cut -d/ -f4)
ssh ${USERNAME}@${DD_HOSTNAME} "filesys sfs-dump mtree ${mtree}" 2>/dev/null | grep ^/ > sfs-dump-${name}.txt
echo -n "."
done
echo "Done."
echo -n "3/6 : Putting all the files together..."
for file in `ls sfs-dump-*.txt`; do
if [ -s "${file}" ]; then cat ${file} >> sfs-dump-noCSV.txt; fi
done
echo "Done."
echo -n "4/6 : Converting sfs-dump output to CSV format..."
cat sfs-dump-noCSV.txt | grep ^/ | grep -v ^$ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size"}
{
colon_index = index($0, ":")
filename = substr($0, 1, colon_index - 1)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
n = split(substr($0, colon_index + 1), fields, " ")
print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19]
}' > sfs-dump-CSV.csv
echo "Done."
echo -n "5/6 : Cleaning up..."
for mtree in `cat mtree-list.txt`; do name=$(echo $mtree | cut -d/ -f4); rm -f sfs-dump-${name}.txt ; done
rm sfs-dump-noCSV.txt
rm mtree-list.txt
echo "Done."
echo -n "6/6 : Summary"
echo
n_files=$( wc -l sfs-dump-CSV.csv | cut -d" " -f1 )
echo
echo "Collecting whole FS sfs-dump data from ${HOSTNAME} completed"
echo "File includes output for ${n_mtrees} MTrees, with a combined $(( ${n_files} - 1 )) files across Active and Cloud Tiers (if applicable)"
echo "Start of file shown below for your convenience :"
echo "===================="
head -5 sfs-dump-CSV.csv
echo "===================="
echo
echo "Done."
exit 0
CSV olmayan "sfs-dump" ve "filesys report generate file-location" çıktısını, yukarıdaki komut dosyasıyla aynı bilgileri ve dosya katmanı başına ve yerleştirme süresi bilgilerini içeren bir CSV dosyasında birleştirmek için komut dosyası.
Aşağıdaki komut dosyası, Dell tarafından Dell tarafından dosyanın çıktısına değer katmak amacıyla kullanıcılara olduğu gibi (hiçbir garanti verilmeksizin) sağlanır. sfs_dump ve filesys raporu yukarıdaki dosya konumu komutlarını oluşturur. Kullanıcı, çıktı CSV'sindeki her dosya girişine katman, konum ve yerleştirme zamanı bilgilerini ekleyerek katman başına dosya dağıtımı hakkında daha kesin bir içgörü elde etmek için dosyaları katmana (Aktif veya yapılandırılmış en fazla iki Bulut Biriminden herhangi biri) göre filtreleyebilir.
Komut dosyaları, sfs-dump (değil sfs_dump -c) ilk parametre olarak çıktı verir ve filesys raporu ikinci parametre olarak dosya konumu çıktısı oluşturur. Çıktı, komut dosyasının içinde değiştirilebilen, "sfs-dump-output-tiers.csv" adındaki sabit kodlanmış bir dosyaya yazılır.
Çıktı, yukarıda açıklandığı gibi Excel kullanılarak işlenebilir.
#!/bin/bash
#### WARNING
#### This script is provided to you by Dell Technologies with NO GUARANTEE, as best-effort sample code to match the output from commands :
#### * sfs-dump (in non CSV format)
#### * filesys report generate file-location
#### So that a new CSV with the file paths appearing on both is created for all the data in sfs-dump file with the added tier and placement time information from location report
####
#### This script is not part of Dell PowerProtect / Data Domain, and hence it is not supported
####
#### Usage : extend-sfs-dump-with-tier.sh sfs-dump-output.csv file-location-output.log
#### Output : static "sfs-dump-output-tiers.csv" file name (may be changed below)
#### Replace values below to suit your needs
OUTPUT_FILENAME="sfs-dump-output-tiers.csv"
#### NO CHANGES NEEDED BEYOND THIS POINT
clear
if [ ! $# == 2 ]; then
echo "Combine output from sfs-dump and tier location report into a CSV file with tier and placement time information"
echo
echo "Usage : $0 SFS-DUMP-OUTPUT-FILE REPORT-FILE-LOCATION-FILE"
echo "NOTE : SFS-DUMP-OUTPUT-FILE has to be in non-CSV format"
exit 1
fi
INPUT_SFSDUMP="$1"
INPUT_LOCATION="$2"
echo -n "1/6 : Sanity checking input files..."
if [ ! -s "${INPUT_SFSDUMP}" ]; then
echo "Input file ${INPUT_SFSDUMP} does not exist"
exit 1
fi
if [ ! -s "${INPUT_LOCATION}" ]; then
echo "Input file ${INPUT_LOCATION} does not exist"
exit 1
fi
n_files_sfsdump=`grep ^/ ${INPUT_SFSDUMP} | wc -l`
n_files_location=`grep ^/ ${INPUT_LOCATION} | wc -l`
if [ ${n_files_sfsdump} -eq ${n_files_location} ]; then
echo -n "both have the same amount of files (${n_files_location}). "
else
echo -n "sfs-dump has ${n_files_sfsdump} files whereas location report has ${n_files_location} files, this may be normal if the difference is small. "
fi
echo "Done."
echo -n "2/6 : Sanitize \"file-location\" input..."
cat ${INPUT_LOCATION} | awk 'BEGIN {rejected="temp-location-rejected.log"; accepted="temp-location-accepted.log"} { if ( $0 ~ "Missing -unit") { gsub(/Missing -unit/, "Missing-Cloud-Unit", $0); print $0 > rejected } else { if ($0 ~ "^/" ) print $0 > accepted } }'
if [ -s "temp-location-rejected.log" ]; then
REJECTS_EXIST="yes"
echo -n "Some files in location report sit in unavailable or deleted cloud units, you may need to re-run this script after fixing the issue and gathering a new location report. "
cat temp-location-rejected.log temp-location-accepted.log | sed -e 's/\t/:\t/' | sort > temp-location-report-sorted.log
rm temp-location-rejected.log
else
cat temp-location-accepted.log | sed -e 's/\t/:\t/' | sort > temp-location-report-sorted.log
REJECTS_EXIST="no"
fi
rm temp-location-accepted.log
echo "Done."
echo -n "3/6 : Sanitize \"sfs-dump\" input..."
cat ${INPUT_SFSDUMP} | grep ^/ | sort > temp-sfs-dump.log
echo "Done."
echo -n "4/6 : Merging information for sfs-dump and location report..."
join -1 1 -2 1 temp-sfs-dump.log temp-location-report-sorted.log > temp-merged-information.log
rm temp-sfs-dump.log
rm temp-location-report-sorted.log
n_files_combined=`grep ^/ temp-merged-information.log | wc -l`
if [ ${n_files_combined} -eq 0 ]; then
echo "No files matched from input files. sfs-dump output must NOT be in CSV format. Exiting."
rm temp-merged-information.log
exit 1
fi
echo -n "Input files matched on ${n_files_combined} files. "
echo "Done."
echo -n "5/6 : Converting merged sfs-dump / location-report output to CSV format..."
cat temp-merged-information.log | grep ^/ | grep -v ^$ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size\ttier\tplacement_time"}
{
colon_index = index($0, ":")
filename = substr($0, 1, colon_index - 1)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
n = split(substr($0, colon_index + 1), fields, " ")
print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19] "\t" fields[27] \
"\t" fields[length(fields)-4] " " fields[length(fields)-3] " " fields[length(fields)-2] " " fields[length(fields)-1] " " fields[length(fields)]
}' > ${OUTPUT_FILENAME}
rm temp-merged-information.log
echo "Done."
echo -n "6/6 : Summary"
echo
echo
echo "Merging information from sfs-dump (${INPUT_SFSDUMP}) and location-report ${INPUT_LOCATION} output completed."
echo "Output file (${OUTPUT_FILENAME}) includes information for a total ${n_files_combined} files, out of ${n_files_sfsdump} in input sfs-dump, and ${n_files_location} in input location report."
if [ "${REJECTS_EXIST}" == "yes" ]; then
echo "Note there are some files in disconnected or deleted cloud units, for which the \"tier\" field has been replaced with \"Missing-Cloud-Unit\"."
fi
echo
echo "Start of file shown below for your convenience :"
echo "===================="
head -5 ${OUTPUT_FILENAME}
echo "===================="
echo
echo "You may follow the instructions in https://www.dell.com/support/kbdoc/000081345 to process this CSV file in an spreadhseet"
echo
echo "Done."
exit 0
Veritas NetBackup kullanıcıları için:
Veritas NetBackup'ın (NBU), bir Data Domain'de dosya adlarının bir parçası olarak iki nokta üst üste karakterleri içeren dosyalar oluşturduğu bilinmektedir. Örneğin, Data Domain NBU için arka uç depolaması olarak kullanıldığında geçerli NBU dosya adı yolları aşağıdadır:
/data/col1/MTREE_NAME/POLICY-NAME_1400502741_C1_F1:1400502741:VM_PRD-02:4:1:: /data/col1/MTREE_NAME/POLICY-NAME_1400502741_C1_F2:1400502741:VM_PRD-02:4:1:: /data/col1/MTREE_NAME/POLICY-NAME_1400502741_C1_HDR:1400502741:VM_PRD-02:4:1::
Bu, iki nokta üst üste karakteri için bir sınırlayıcı olarak kullanıldığından, yukarıdaki örnek komut dosyalarında bir sorun oluşturur. sfs_dump komut çıktısı alırsanız ve yukarıdaki komut dosyalarını çalıştırmak yanlış sonuçlar verir.
Bu gibi durumlarda, komut dosyası aşağıdaki gibi bir şekilde düzenlenmelidir:
--- iterate-dd-for-fs-sfs-dump.sh 2024-01-23 06:32:16.521409000 -0500
+++ iterate-dd-for-fs-sfs-dump-NBU.sh 2024-02-27 03:26:42.808246000 -0500
@@ -55,11 +55,11 @@
cat sfs-dump-noCSV.txt | grep ^/ | grep -v ^$ | awk '
BEGIN {print "name\tmtime\tfileid\tsize\tseg_bytes\tseg_count\tredun_seg_count\tpre_lc_size\tpost_lc_size"}
{
- colon_index = index($0, ":")
- filename = substr($0, 1, colon_index - 1)
+ colon_index = index($0, ":::")
+ filename = substr($0, 1, colon_index + 1)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", filename)
n = split(substr($0, colon_index + 1), fields, " ")
- print filename "\t" fields[2] "\t" fields[4] "\t" fields[6] "\t" fields[10] "\t" fields[12] "\t" fields[14] "\t" fields[17] "\t" fields[19]
+ print filename "\t" fields[3] "\t" fields[5] "\t" fields[7] "\t" fields[11] "\t" fields[13] "\t" fields[15] "\t" fields[18] "\t" fields[20] "\t"
}' > sfs-dump-CSV.csv
echo "Done."
MTree başına veri çekmek için değişiklikler bir Data Domain'deki tüm MTree'lerde yinelenmek üzere komut dosyası için paylaşılırken sfs_dump değişiklikler diğer komut dosyası için aynıdır. Bununla birlikte, komut dosyalarının kendileri için de geçerli olduğu gibi, yukarıdaki değişiklikler yararlı olmaları umuduyla Dell tarafından herhangi bir garanti verilmeksizin sağlanmaktadır.