DOCS/journey/research/260307_external_nas_companyx_sync_research.md

11 KiB

260307 외부 NAS -> 내부 NAS 컴퍼니엑스 동기화 리서치

tags: [nas, companyx, sync, research]

상위 원칙:

목적

  • 아이디어 문서 260307_external_nas_companyx_sync_아이디어.md의 핵심 질문, 즉 외부 NAS 파일을 내부 NAS로 단방향 동기화하고 서버는 내부 NAS만 사용하는 구조가 실제 운영 후보가 될 수 있는지 확인한다.
  • 이 문서는 구현 방법을 확정하는 문서가 아니라, 확인된 사실과 미확정 항목을 분리해 다음 plans 문서가 무엇을 고정해야 하는지 좁히는 것을 목표로 한다.

리서치 질문

  1. 외부 NAS 파일을 현재 환경에서 51123 내부 NAS 경로로 실제 가져올 수 있는가
  2. 외부 NAS를 서버가 직접 읽지 않고도 필요한 파일 접근 구조를 만들 수 있는가
  3. 외부 NAS /6.Company X 전체를 내부 NAS /mnt/nas/workspace/6.Company X로 가져오는 구조를 운영 후보로 볼 수 있는가
  4. 현재 시점에서 이미 운영 후보로 볼 수 있는 방식과, 아직 결정할 수 없는 항목은 무엇인가

Facts

1. 내부 NAS 기준 경로는 이미 복구되어 있다

  • 51123의 내부 NAS 기준 경로는 /mnt/nas다.
  • 내부 NAS 주소는 192.168.0.101이다.
  • /mnt/nas는 실제 CIFS(Common Internet File System) 마운트로 복구됐고, 쓰기 검증까지 끝났다.
  • /mnt/nas/workspace/6.Company X 경로가 실제 생성되어 있다.

근거:

2. 외부 NAS의 직접 SMB(Server Message Block) 접근은 현재 경로가 아니다

  • 외부 NAS sigongipc.synology.me:5000/5001는 Synology DSM(DiskStation Manager) 웹 경로로 응답한다.
  • 외부 SMB 139/445 직접 접근은 타임아웃으로 막혀 있다.
  • 따라서 현재 확인된 외부 접근 경로는 DSM File Station API다.

근거:

3. 외부 NAS -> 내부 NAS 파일 전송은 실제로 1회 이상 검증됐다

  • 외부 NAS 경로 /6.Company X/Thumbs.db를 내부 NAS 경로 /mnt/nas/backup/current/external-nas-test/Thumbs.db로 저장했다.
  • 저장 후 SHA256 해시 일치가 확인됐다.
  • 외부 NAS 상위 폴더 구조 일부도 내부 NAS에 동일하게 생성됐다.
  • 다만 현재 검증 경로는 /mnt/nas/backup/current/external-nas-test/...였고, 목표 운영 경로 /mnt/nas/workspace/6.Company X로의 전체 동기화는 아직 실행되지 않았다.

근거:

4. 2026-03-07 실측에서는 파일 다운로드와 내부 NAS 저장 시간이 짧았다

실행 기준:

  • 스크립트: infra/scripts/bin/companyx_external_nas_sync_probe.sh
  • 실행 시각: 2026-03-07 16:22 KST
  • 테스트 저장 경로: /mnt/nas/backup/current/external-nas-timing-test/20260307_162237

실측값:

  • DSM 로그인: 약 0.683초
  • 상위 폴더 목록 조회(/6.Company X): 약 0.067초
  • 사진 하위 폴더 목록 조회: 약 0.061초
  • Thumbs.db 12,288B: 약 0.094초
  • 엑셀 151,832B: 약 0.103초
  • JPG 457,889B: 약 0.121초
  • PDF 20,147,273B: 약 0.571초

근거:

  • 기존 리서치 초안의 2026-03-07 실측 기록

5. 2026-03-11 기준 목표 운영 경로 샘플 동기화도 성공했다

  • 실행 시각: 2026-03-11 18:24:47 KST
  • 목표 경로 /mnt/nas/workspace/6.Company X/Thumbs.db로 외부 NAS /6.Company X/Thumbs.db를 직접 내려받았다.
  • 파일이 실제 생성됐고, 같은 시각 프로브 경로에 저장한 파일과 SHA256 해시가 일치했다.

검증값:

  • /mnt/nas/workspace/6.Company X/Thumbs.db
  • SHA256: d858dd42f76a21f74cb2c1de0de55379de5cbb6deb2ac1805181e35c8971e346

6. 2026-03-11 기준 대표 하위 폴더 전체 동기화도 성공했다

  • 대상 폴더: /6.Company X/7. 사진/220308_X코스_5기 발표 사진
  • 내부 NAS 목표 경로: /mnt/nas/workspace/6.Company X/7. 사진/220308_X코스_5기 발표 사진
  • 결과: 파일 20개, 총 6,505,335B 동기화
  • 소요 시간: 약 2.907초

해석에 필요한 사실:

  • 샘플 1건이 아니라, 실제 하위 폴더 1개 전체 파일 집합도 목표 운영 경로로 내려받을 수 있었다.
  • 이 시점 검증 기준으로는 대표 사진 폴더 1개 전체 동기화가 실패 없이 끝났다.

7. 2026-03-11 기준 재실행 시 같은 크기 파일은 모두 건너뛸 수 있었다

  • 같은 대표 폴더를 다시 점검했다.
  • 확인 파일 수: 20개
  • 같은 크기로 이미 존재해 재다운로드 불필요 판정된 파일: 20개
  • 다시 받아야 하는 파일: 0개
  • 점검 시간: 약 0.0142초

주의:

  • 이 검증은 현재 파일 크기 동일 기준의 단순 건너뛰기 가능성만 확인한 것이다.
  • 수정시각이나 해시까지 포함한 최종 증분 정책이 확정된 것은 아니다.

8. 인증서 문제는 아직 남아 있다

  • 외부 DSM HTTPS 인증서는 만료 상태였다.
  • 실제 인증서 정보:
    • notAfter=Dec 17 03:05:26 2021 GMT
    • subject=CN = tnsipc.synology.me
  • 현재 접속 호스트는 sigongipc.synology.me이므로, 만료뿐 아니라 호스트명 불일치도 있다.
  • 현재 스크립트는 -k 옵션으로 인증서 검증을 우회했다.

근거:

  • 기존 리서치 초안의 2026-03-07 실측 기록

Interpretation

1. 아이디어의 핵심 구조 자체는 이미 성립 가능성이 높다

  • 외부 NAS 직접 SMB 접근이 막혀 있어도, DSM API를 통해 파일을 내려받아 내부 NAS에 저장하는 경로는 실제로 동작했다.
  • 따라서 외부 NAS를 서버가 직접 마운트해서 읽는다가 아니라 외부 NAS에서 파일을 가져와 내부 NAS에 적재한 뒤 서버는 내부 NAS만 읽는다는 구조는 현재 환경과 충돌하지 않는다.
  • 목표 경로 /mnt/nas/workspace/6.Company X에도 샘플 파일 직접 동기화와 해시 일치가 확인됐으므로, 이 경로 자체도 단순 가정이 아니라 실제 동작 경로다.
  • 대표 하위 폴더 1개 전체 동기화도 성공했으므로, 단일 파일 가능 수준을 넘어 실제 폴더 단위 동기화 가능까지는 확인됐다.

2. 지금 닫을 수 있는 질문과 아직 닫을 수 없는 질문을 구분해야 한다

지금 닫을 수 있는 질문:

  • 외부 NAS 파일을 내부 NAS로 가져올 수 있는가: 예
  • 내부 NAS를 서버 측 기준 저장소로 삼을 수 있는가: 예
  • 외부 NAS를 서버 런타임 경로에서 분리하는 구조가 가능한가: 예
  • /6.Company X를 내부 NAS /mnt/nas/workspace/6.Company X로 받는 구조가 가능한가: 예, 샘플 파일 직접 동기화와 해시 일치까지 확인
  • 대표 하위 폴더 1개를 실제로 끝까지 받을 수 있는가: 예, 20개 파일 전체 동기화 확인
  • 같은 경로 재실행 시 단순 증분 건너뛰기 후보를 만들 수 있는가: 예, 크기 기준으로는 20/20 건너뛰기 확인

아직 닫을 수 없는 질문:

  • 어떤 동기화 정책이 최종 운영안인가
  • /6.Company X 전체 폴더 재귀 동기화에서 총 소요 시간과 실패율이 어느 정도인가
  • 삭제 전파, 수정시각 역전, 해시 재검증을 포함한 최종 증분 규칙을 무엇으로 확정할 것인가

3. 이 아이디어는 이제 가능한가 단계는 통과했고, 어떻게 운영할 것인가 단계로 넘어갔다

  • 이 리서치 기준으로 보면 아이디어 문서의 가설은 부정되지 않았다.
  • 남은 문제는 아이디어의 존립 여부가 아니라, 운영 정책과 자동화 방식의 확정이다.
  • 따라서 다음 문서는 새로운 아이디어 문서가 아니라, 운영안을 고정하는 plans 또는 그 전 단계 보강 리서치가 맞다.

Unresolved

  1. 동기화 대상 범위
  • 현재 아이디어는 /6.Company X 전체를 대상으로 하지만, 실제 계획에서 정말 전체를 한 번에 받을지 단계적으로 받을지는 아직 고정되지 않았다.
  1. 실패 복구 기준
  • 중간 실패 시 어디서부터 재시도할지, 실패 목록을 어떤 파일 형식으로 남길지 정해지지 않았다.
  1. 인증서 처리
  • -k 우회를 계속 허용할지, 외부 DSM 인증서를 별도로 정리할지 결정이 필요하다.
  1. 대량 폴더 실측
  • 샘플 파일과 대표 하위 폴더 1개는 검증됐다.
  • 하지만 /6.Company X 전체 트리 기준 총 시간, 총 파일 수, 장시간 실행 안정성은 추가 검증이 필요하다.
  1. 목표 경로 전체 동기화 검증
  • /mnt/nas/workspace/6.Company X에 샘플 파일 1건과 대표 하위 폴더 1개는 검증됐지만, /6.Company X 전체 파일 트리를 끝까지 동기화하는 검증은 아직 수행되지 않았다.

아이디어를 닫는 현재 결론

  • 외부 NAS -> 내부 NAS 단방향 동기화 후 서버는 내부 NAS만 사용이라는 아이디어는 현재 근거 기준으로 유효한 운영 후보다.
  • 대상 경로 외부 NAS /6.Company X -> 내부 NAS /mnt/nas/workspace/6.Company X도 샘플 파일 기준으로는 이미 동작이 확인됐다.
  • 대표 하위 폴더 1개 전체 동기화와 재실행 건너뛰기 후보까지 확인됐으므로, 이 구조는 아이디어 수준을 넘어 부분 운영 검증이 된 구조로 볼 수 있다.
  • 사용자 결정 기준으로 증분 정책은 수정시각 + 파일 크기, 삭제 전파는 비활성화로 방향이 정리됐다.
  • 즉, 이 아이디어는 불가능하거나 근거 없는 제안 상태가 아니라, 실제 검증된 접근 경로가 있는 가설로 닫을 수 있다.
  • 다만 이 문서만으로 최종 운영안을 확정할 수는 없으므로, 다음 단계는 정책과 적용 순서를 고정하는 plans 문서다.

다음 단계

  1. plans에서 먼저 고정할 항목
  • 대상 루트
  • 실패 기록 방식
  • 인증서 처리 방침
  1. plans 전 추가 검증이 필요하면 좁혀서 할 항목
  • /6.Company X 전체 트리 1회 동기화
  • 수정 파일 1건 발생 상황에서 재실행 검증
  • 실패 후 재시도 기준 검증

관련 문서