Saya seorang mahasiswa pascasarjana kimia komputasi dengan akses ke cluster Linux. Cluster ini terdiri dari server file yang sangat besar (25 TB), yang terhubung dengan beberapa lusin node. Setiap node komputasi terdiri dari 8 hingga 24 core Intel Xeon. Setiap node komputasi juga mengandung disk lokal sekitar 365 TB.
Karena fileserver diakses secara rutin oleh selusin pengguna dalam grup riset, fileserver terutama digunakan untuk penyimpanan file jangka panjang (didukung setiap malam, sedangkan disk lokal node komputasi tidak pernah dicadangkan). Dengan demikian, administrator sistem telah menginstruksikan kami untuk menjalankan simulasi pada disk lokal - yang memiliki I / O lebih cepat dari server file - agar tidak memperlambat server file untuk pengguna lain.
Jadi, saya menjalankan simulasi pada disk lokal dan kemudian, setelah selesai, saya menyalin file lintasan - saya menjalankan simulasi dinamika molekul (MD) - ke server file untuk penyimpanan. Misalkan saya memiliki file lintasan yang dipanggil traj.trr
dalam direktori pada disk lokal sebuah node /home/myusername/mysimulation1/traj.trr
,. Untuk penyimpanan jangka panjang, saya selalu menyalin traj.trr
ke direktori di server file ~/mysimulation1/traj.trr
,, di mana ~
merupakan direktori saya di server file /export/home/myusername
,. Setelah menyalinnya, maka biasanya saya gunakan du -h
untuk memverifikasi yang /home/myusername/mysimulation1/traj.trr
memiliki ukuran file yang sama ~/mysimulation1/traj.trr
. Dengan cara ini, setidaknya saya cukup yakin bahwa transfer ke server file berhasil. Sebagai contoh:
cd /home/myusername/mysimulation1/
cp -v traj.trr ~/mysimulation1/
du /home/myusername/mysimulation1/traj.trr -h
du ~/mysimulation1/traj.trr -h
Jika dua panggilan untuk du -h
memberikan ukuran file yang dapat dibaca oleh manusia yang sama, maka saya dapat cukup yakin bahwa transfer / salinan berhasil. ( traj.trr
Ukuran file tipikal saya berkisar dari sekitar 15 hingga 20 GB, tergantung pada simulasi persis yang telah saya jalankan.) Jika saya menjalankan du
(yaitu, tanpa -h
saklar) pada dua traj.trr
file, ukurannya dalam byte biasanya sangat, sangat mirip - - Biasanya hanya dalam beberapa byte. Saya telah menggunakan metode keseluruhan ini selama satu setengah tahun terakhir, tanpa masalah.
Namun, baru-baru ini saya mengalami masalah berikut: kadang-kadangdu -h
melaporkan bahwa keduatraj.trr
file berbeda ukurannya beberapa GB. Berikut ini sebuah contoh:
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
Output dari dua panggilan ke du -h
adalah sebagai berikut, masing-masing:
20G traj.trr
28G traj.trr
Saya percaya bahwa yang pertama (yaitu, traj.trr
dalam disk lokal, /home/myusername/mysimulation1/
) adalah ukuran file yang benar, karena lintasan simulasi saya masing-masing sekitar 15 hingga 20 GB. Tapi bagaimana mungkin file di server file sebenarnya lebih besar ? Saya bisa melihat bagaimana itu bisa lebih kecil, jika entah bagaimana cp
transfer gagal. Tapi saya tidak melihat bagaimana sebenarnya bisa lebih besar .
Saya mendapatkan output yang sama ketika saya menjalankan perintah yang sama seperti di atas, tetapi tanpa -h
saklar diberikan kepada du
:
20717480 traj.trr
28666688 traj.trr
Bisakah Anda memikirkan alasan untuk perbedaan itu?
Jika, karena kebetulan, du
entah bagaimana tidak berfungsi, saya bisa setuju dengan itu. Tapi saya hanya perlu memastikan bahwa salinan traj.trr
pada fileserver lengkap dan identik dengan versi sumbernya pada disk lokal. Saya perlu menghapus file lokal sehingga saya memiliki cukup ruang disk lokal untuk menjalankan simulasi baru, tetapi saya tidak mampu membuat versi traj.trr
pada fileserver rusak.
The format file .trr (dari Gromacs dinamika molekul paket) adalah format biner, tidak teks. Jadi, saya tidak yakin apakah file dapat dibandingkan secara andal oleh program seperti diff
.
md5sum
di dua file. Kedua pertandingan checksum. Jadi saya kira ini berarti kedua file itu sama?
ls -l
? Perintah du
melaporkan berapa banyak ruang pada disk yang digunakan untuk file Anda, bukan seberapa besar file Anda. Ukuran pada disk dapat dipengaruhi oleh sistem file Anda dan strategi alokasinya.
ls -l -h
mengatakan bahwa kedua file berukuran 20 GB. Demikian juga, ls -l
mengatakan bahwa kedua file tersebut adalah 21214683940 byte. Jadi saya kira file memiliki ukuran yang sama, tetapi jangan menggunakan jumlah ruang disk yang sama (sesuai dengan du
).
md5sum
atausha1sum
pada file. Apakah mereka cocok?