저는 Linux 클러스터에 액세스 할 수있는 전산 화학 대학원생입니다. 클러스터는 수십 개의 컴퓨팅 노드가 연결된 매우 큰 (25TB) 파일 서버로 구성됩니다. 각 컴퓨팅 노드는 8 ~ 24 개의 Intel Xeon 코어로 구성됩니다. 각 컴퓨팅 노드에는 약 365TB의 로컬 디스크도 포함됩니다.
파일 서버는 리서치 그룹의 12 명 정도의 사용자가 일상적으로 액세스하므로, 파일 서버는 주로 장기 파일 저장에 사용됩니다 (이는 야간에 백업되는 반면 컴퓨팅 노드의 로컬 디스크는 백업되지 않음). 따라서 시스템 관리자는 파일 서버보다 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
du -h
사람이 읽을 수있는 동일한 파일 크기 를 제공 하기 위해 두 번 호출 하면 전송 / 복사에 성공한 것으로 합리적으로 확신 할 수 있습니다. ( traj.trr
내가 실행 한 정확한 시뮬레이션에 따라 일반적인 파일 크기는 약 15 ~ 20GB입니다.) 두 파일에서 실행하는 경우 du
(예 : -h
스위치 없이 ) traj.trr
바이트 단위의 크기는 일반적으로 매우 유사합니다. -보통 몇 바이트 이내 나는 지난 1 년 반 동안이 전체적인 방법을 문제없이 사용해왔다.
그러나 최근에 다음과 같은 문제가 발생했습니다. 때로는du -h
두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
두 호출의 출력은 du -h
각각 다음과 같습니다.
20G traj.trr
28G traj.trr
시뮬레이션 궤적이 각각 약 15 ~ 20GB이기 때문에 전자 (예 : traj.trr
로컬 디스크 /home/myusername/mysimulation1/
)는 올바른 파일 크기라고 생각합니다. 그러나 파일 서버의 파일이 실제로 어떻게 더 클 수 있습니까? 어떻게 든 cp
전송이 실패 하면 어떻게 더 작을 수 있는지 알 수 있습니다 . 그러나 실제로 어떻게 더 클 수 있는지 알 수 없습니다 .
위와 동일한 명령을 실행할 때 비슷한 출력을 얻지 만 -h
스위치가 주어지지 않았습니다 du
.
20717480 traj.trr
28666688 traj.trr
차이가 나는 이유를 생각할 수 있습니까?
만일 우연히도 du
오작동을한다면 괜찮습니다. 그러나 traj.trr
파일 서버 의 사본 이 완전하고 로컬 디스크의 소스 버전과 동일해야합니다. 새 시뮬레이션을 실행하기에 충분한 로컬 디스크 공간이 있도록 로컬 파일을 삭제해야하지만 traj.trr
파일 서버 의 버전 이 손상 될 수는 없습니다 .
Gromacs 분자 역학 패키지 의 .trr 파일 형식 은 텍스트가 아닌 이진 형식입니다. 따라서와 같은 프로그램에서 파일을 안정적으로 비교할 수 있는지 확실하지 않습니다 diff
.
md5sum
두 파일을 실행 했습니다. 두 개의 체크섬이 일치합니다. 그래서 이것은 두 파일이 동일하다는 것을 의미한다고 생각합니다.
ls -l
됩니까? 이 명령 du
은 파일의 크기가 아니라 디스크에서 파일에 사용 된 공간을보고합니다. 디스크의 크기는 파일 시스템 및 할당 전략에 영향을받을 수 있습니다.
ls -l -h
는 두 파일이 모두 20GB 라고 말합니다. 마찬가지로 ls -l
두 파일 모두 21214683940 바이트라고 말합니다. 따라서 파일의 크기는 같지만 같은 크기의 디스크 공간을 사용하지는 않습니다 (에 따라 du
).
md5sum
또는sha1sum
파일에. 일치합니까?