私は、Linuxクラスターにアクセスできる計算化学の大学院生です。クラスターは非常に大きな(25 TB)ファイルサーバーで構成されており、数十の計算ノードが接続されています。各計算ノードは、8〜24個のIntel Xeonコアで構成されています。各計算ノードには、約365 TBのローカルディスクも含まれています。
ファイルサーバーは研究グループの数十人のユーザーによって日常的にアクセスされるため、ファイルサーバーは主に長期のファイルストレージに使用されます(計算ノードのローカルディスクはバックアップされませんが、夜間にバックアップされます)。したがって、システム管理者は、他のユーザーのファイルサーバーを遅くしないように、ファイルサーバーよりも高速なI / Oを持つローカルディスクでシミュレーションを実行するように指示しました。
そのため、ローカルディスクでシミュレーションを実行し、それらが終了したら、軌道ファイルをコピーします-分子動力学(MD)シミュレーションを実行しています-をファイルサーバーに保存します。traj.trr
ノードのローカルディスク上のディレクトリで呼び出されるトラジェクトリファイルがあるとします/home/myusername/mysimulation1/traj.trr
。長期保存のために、私は常にtraj.trr
ファイルサーバーのディレクトリにコピーします。~/mysimulation1/traj.trr
ここ~
で、ファイルサーバーのディレクトリを表し/export/home/myusername
ます。コピー後、ファイルサイズがと同じでdu -h
あることを確認するために習慣的に使用し/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
2つの呼び出しでdu -h
人間が読み取れるファイルサイズが同じである場合、転送/コピーが成功したことは合理的に確信できます。(私の典型的なtraj.trr
ファイルは、実行した正確なシミュレーションに応じて、サイズが約15〜20 GBの範囲です。)2つのファイルでdu
(-h
スイッチなしで)実行した場合、traj.trr
通常、バイト単位のサイズは非常に似ています- -通常、わずか数バイト以内。過去1年半、この全体的な方法を問題なく使用しています。
ただし、最近、次の問題にdu -h
遭遇しました。2つのtraj.trr
ファイルのサイズが数GB異なることが報告されることがあります。以下に例を示します。
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
への2つの呼び出しからの出力du -h
は、それぞれ次のとおりです。
20G traj.trr
28G traj.trr
私のシミュレーションの軌跡はそれぞれ約15〜20 GBであると予想されるため、前者(つまり、traj.trr
ローカルディスク内/home/myusername/mysimulation1/
)が正しいファイルサイズであると考えています。しかし、ファイルサーバー上のファイルは実際にはどのように大きくできますか?どういうわけかcp
転送が失敗した場合、それがどのように小さくなるかを見ることができました。しかし、実際にどのように大きくなるかはわかりません。
上記と同じコマンドを実行すると、同様の出力が得られますが、-h
スイッチは指定されていませんdu
。
20717480 traj.trr
28666688 traj.trr
違いの理由を考えることができますか?
万が一、du
何らかの形で誤動作している場合は、大丈夫です。ただしtraj.trr
、ファイルサーバー上ののコピーが完全であり、ローカルディスク上のソースバージョンと同一であることを確認する必要があります。新しいシミュレーションを実行するのに十分なローカルディスク領域を確保するためにローカルファイルを削除する必要がありますがtraj.trr
、ファイルサーバー上のバージョンを破損させることはできません。
(Gromacs分子動力学パッケージからの).trrファイル形式は、テキストではなくバイナリ形式です。したがって、などのプログラムでファイルを確実に比較できるかどうかはわかりませんdiff
。
md5sum
2つのファイルを実行しました。2つのチェックサムが一致します。だから、これは2つのファイルが同じであることを意味すると思いますか?
ls -l
ますか?このコマンドdu
は、ファイルの大きさではなく、ディスク上のディスクの空き容量を報告します。ディスク上のサイズは、ファイルシステムとその割り当て戦略によって影響を受ける可能性があります。
ls -l -h
は、両方のファイルが20 GBであると言います。同様に、ls -l
両方のファイルが21214683940バイトであると言います。したがって、ファイルは同じサイズであると思いますが、同じ量のディスク容量を使用しないでください(によるdu
)。
md5sum
または実行してみてくださいsha1sum
。彼らは一致しますか?