# 이중 NAS 에이전트 파일 스토리지 구조 아이디어

tags: [nas, agent, storage, sync, architecture]

## 목적
- 외부 NAS의 파일을 내부 NAS로 이중 저장 또는 동기화한다.
- 에이전트는 외부 NAS를 직접 읽지 않고, 내부 NAS만 읽는다.
- NAS는 연산 서버가 아니라 파일 스토리지로만 사용한다.

## 기본 구조
외부 NAS(public)
-> 동기화
-> 내부 NAS(LAN)
-> 네트워크 마운트
-> 에이전트 서버

핵심 원칙:
- 외부 NAS: 외부 수집/저장
- 내부 NAS: 에이전트용 파일 저장소
- 에이전트 서버: 연산/파싱/AI 처리

## 왜 이 구조인가
- 외부 NAS를 에이전트가 직접 읽게 하면 보안과 연결 안정성이 약해진다.
- 내부 NAS만 읽게 하면 에이전트는 내부망 기준 단순 파일 처리로 끝난다.
- NAS가 느려도 파일 스토리지 역할에는 적합하다.

## 권장 동기화 방식
### 1. Synology Drive ShareSync
- 외부 NAS -> 내부 NAS 단방향 동기화
- 장점: 설정이 쉽고 Synology 간 궁합이 좋다.
- 용도: 거의 실시간 파일 복제

### 2. rsync
- 외부 NAS -> 내부 NAS 주기 동기화
- 장점: 단순하고 서버 관점에서 제어가 쉽다.
- 용도: 5분/10분 주기 파일 동기화

### 3. Hyper Backup
- 외부 NAS -> 내부 NAS 백업
- 장점: 복구용으로 강하다.
- 단점: 실시간 동기화 용도에는 덜 적합하다.

## 내부 NAS를 에이전트가 읽는 방식
- 내부 NAS를 NFS 또는 CIFS로 에이전트 서버에 마운트한다.
- 에이전트는 `/mnt/agent` 같은 단일 경로만 읽는다.

권장 예시:
- `/mnt/agent/raw`
- `/mnt/agent/crawl`
- `/mnt/agent/output`
- `/mnt/agent/logs`

## NAS에 둘 것
- PDF, CSV, JSON, HTML, 이미지 같은 원본 파일
- 크롤링 결과물
- 장기 로그
- 에이전트 산출물

## NAS에 두지 말 것
- 벡터 DB
- SQLite 실시간 쓰기 경로
- 캐시
- 모델 로딩 경로
- 고빈도 랜덤 I/O가 필요한 런타임 데이터

## 현재 기준 가능 여부
### 가능한 부분
- 내부 NAS(192.168.0.101)는 현재 51123에서 실마운트 가능하다.
- Gitea LFS도 NAS 저장소로 실제 동작 검증이 끝났다.
- 따라서 내부 NAS를 에이전트 파일 스토리지로 쓰는 것은 가능하다.

### 아직 필요한 부분
- 외부 NAS(`sigongipc.synology.me:5000`)에 대한 실제 동기화 경로는 아직 미구현이다.
- 외부 NAS -> 내부 NAS 동기화 방식(Drive ShareSync / rsync / Hyper Backup) 중 하나를 고정해야 한다.
- 내부 NAS 공유 폴더를 에이전트 전용 경로로 분리해야 한다.

## 현재 판단
- 이 구조는 가능하다.
- 다만 지금 당장 완성된 것은 아니고, 핵심 선행조건은 `외부 NAS -> 내부 NAS 단방향 동기화 확정`과 `내부 NAS의 에이전트 전용 공유폴더 설계`다.
- 연산은 미니서버, 저장은 NAS로 분리하는 방향이 맞다.
