Linux kümesine erişimi olan bilgisayar mühendisliği mezunuyum. Küme, birkaç düzine bilgi işlem düğümünün bağlı olduğu çok büyük (25 TB) bir dosya sunucusundan oluşur. Her işlem düğümü, 8 - 24 Intel Xeon çekirdeğinden oluşur. Her hesaplama düğümü ayrıca yaklaşık 365 TB yerel disk içerir.
Dosya sunucusuna araştırma grubundaki bir düzine kullanıcı tarafından düzenli olarak erişildiği için, dosya sunucusu temel olarak uzun vadeli dosya depolaması için kullanılır (bu işlem gece hesaplanır, işlem noktalarının yerel diskleri hiçbir zaman yedeklenmez). Bu nedenle, sistem yöneticisi, diğer kullanıcılar için dosya sunucusunu yavaşlatmamaları için dosya diskinden daha hızlı G / Ç'ye sahip yerel diskler üzerinde simülasyonlar çalıştırmamızı istedi.
Bu yüzden, yerel diskler üzerinde simülasyonlar çalıştırıyorum ve sonra, bittikten sonra, yörünge dosyalarını kopyalarım - moleküler dinamik (MD) simülasyonları çalıştırıyorum - depolama için dosya sunucusuna. traj.trr
Bir düğümün yerel diskindeki bir dizinde adı verilen bir yörünge dosyasına sahip olduğumu varsayalım /home/myusername/mysimulation1/traj.trr
. Uzun süreli depolama için, her zaman traj.trr
dosya sunucusundaki bir dizine kopyalarım ~/mysimulation1/traj.trr
, burada dosya sunucusundaki dizimi ~
temsil eder /export/home/myusername
. Kopyaladıktan sonra, alışılmış olarak aynı dosya boyutuna sahip du -h
olduğunu doğrulamak için kullanıyorum . Bu sayede, en azından dosya sunucusuna transferin başarılı olduğundan emin olabilirim. Örneğin:/home/myusername/mysimulation1/traj.trr
~/mysimulation1/traj.trr
cd /home/myusername/mysimulation1/
cp -v traj.trr ~/mysimulation1/
du /home/myusername/mysimulation1/traj.trr -h
du ~/mysimulation1/traj.trr -h
İkisi du -h
aynı okunabilir dosya boyutunu vermek için çağrıda bulunursa, aktarımın / kopyalamanın başarılı olduğundan emin olabilirim. (Tipik traj.trr
dosyalarım, çalıştırdığım tam simülasyona bağlı olarak yaklaşık 15 - 20 GB arasında değişmektedir.) İki dosyada du
(yani, anahtarsız ) çalışırsam , bayt cinsinden boyutları genellikle çok, çok benzerdir - - genellikle sadece birkaç bayt içinde. Bu genel metodu son bir buçuk yıldır problemsiz bir şekilde kullanıyorum.-h
traj.trr
Ancak, son zamanlarda aşağıdaki sorunla karşılaştım: bazendu -h
ikitraj.trr
dosyanın birkaç GB boyutunda farklıolduğunu bildirmektedir. İşte bir örnek:
cd /home/myusername/mysimulation1/ # this is the local disk
cp -v traj.trr ~/mysimulation1/
du traj.trr -h
cd ~/mysimulation1/ # this is the fileserver
du traj.trr -h
İki çağrıdan gelen çıktı du -h
sırasıyla şöyledir:
20G traj.trr
28G traj.trr
Eski (yani traj.trr
yerel diskteki /home/myusername/mysimulation1/
) dosya boyutunun doğru olduğuna inanıyorum , çünkü simülasyon yörüngelerimin her birinin yaklaşık 15 - 20 GB olması bekleniyor. Ancak, dosya sunucusundaki dosya gerçekte nasıl daha büyük olabilir ? Nasıl olsa daha küçük olabileceğini görebiliyordum.cp
transfer başarısız . Ama aslında nasıl daha büyük olabileceğini anlamıyorum .
Yukarıdaki gibi aynı komutları yerine getirdiğimde benzer bir çıktı alıyorum, ancak -h
anahtarı vermeden du
:
20717480 traj.trr
28666688 traj.trr
Farklılığın herhangi bir sebebini düşünebiliyor musun?
Olası bir şans eseri du
bir şekilde arıza yaparsa, bununla iyi olabilirim. Ama ben sadece kopyasını emin olmak için ihtiyacım vartraj.trr
, dosya sunucusundaki yerel diskteki kaynak sürümüyle aynı ve eksiksiz . Yeni simülasyonları çalıştırmak için yeterli yerel disk alanım olacak şekilde yerel dosyayı traj.trr
silmem gerekiyor, ancak dosya sunucusundaki sürümün bozulmasını göze alamam .
(GROMACS moleküler dinamiği paketinden) .trr dosya biçimi bir ikili biçimi değil metindir. Bu nedenle, dosyaları gibi bir program tarafından güvenilir bir şekilde karşılaştırılabilir olup olmadığından emin değilim diff
.
md5sum
iki dosya üzerinde koştum . İki sağlama toplamı eşleşiyor. Yani bu iki dosya aynı olduğu anlamına gelir?
ls -l
? Komut du
, dosyanız için ne kadar büyük olduğunu değil, dosyanız için diskte ne kadar alanın kullanıldığını bildirir. Diskteki boyut dosya sisteminizden ve ayırma stratejilerinizden etkilenebilir.
ls -l -h
, her iki dosyanın da 20 GB olduğunu söylüyor. Aynı şekilde, ls -l
her iki dosyanın da 21214683940 bayt olduğunu söylüyor. Bu nedenle, dosyaların aynı boyutta olduğunu sanıyorum (aynı şekilde) aynı miktarda disk alanı kullanmıyoruz du
.
md5sum
veya çalıştırmayı deneyinsha1sum
. Eşleşiyorlar mı?