종류
FTP
- File Transfer Protocol
- 말 그대로 파일을 전송하는게 목적임
- 클라이언트-서버 간 파일을 복제 (전송) 함
- 서버에 있는 파일을 클라이언트로 가져와서 작업하는게 일반적임
- TCP 기반
- 두 가지 포트를 사용함 (데이터 포트, 커맨드 포트)
- 능동모드와 수동모드가 있음
- 대용량 파일 이동에 유리함
NFS
- Network File System
- 원래 리눅스에서 쓰려고 나옴
- 파일 시스템이 네트워크 상에 있는 것
- 클라이언트가 서버의 디렉토리를 통째로 마운트해서 사용함
- 굳이 파일을 일일히 복제할 필요가 없음
- 원격 프로시저 호출 (RPC) 를 활용 (TCP/UDP 둘 다 가능한 듯)
- 한 사람이 파일을 수정하면, 다른 사람은 그 파일을 읽기 전용으로만 볼 수 있음
SMB/CIFS
- Server Message Block / Common Internet File System
- SMB가 먼저 나왔는데, 원래는 윈도우에서 쓰려고 나왔음
- SMB 를 확장해서 나온게 CIFS
- NFS처럼 클라이언트-서버 구조
- NFS랑 다르게 클라이언트가 서버를 중재자로 써서 다른 클라이언트에 통신 가능함
- 다만 NFS보다 오버헤드가 큼
- 파일 공유 뿐만 아니라 인쇄, 가상 머신 스토리지 등 좀 더 다양한 네트워크 리소스를 공유할 수 있음
iSCSI
- internet SCSI (Small Computer System Interface)
- NFS, SMB/CIFS 처럼 로컬에 마운트해서 쓰는거는 “파일 스토리지” 형태인데,
- iSCSI는 이들과는 좀 다른 특성을 가지고 있음
- NFS, SMB/CIFS 는 서버 측에서 파일 시스템 자체를 이미 가지고 있기 때문에, 이기종 OS간 데이터 공유가 가능하다는 특징이 있음
- 그러나 iSCSI는 디스크(꼭 물리적으로 하나가 아닐수 있음) 자체를 공유한다고 생각하면 됨
- 그 얘기는, 파일 시스템은 iSCSI의 공유 대상이 아님
- 따라서 어느 OS에서 iSCSI를 구축하고 받냐에 따라서 파일 시스템 설정이 달라질 수 있음
- 같은 iSCSI여도 서로 다른 파일 시스템으로 사용하면 내부 데이터가 손상됨
- iSCSI는 NFS, SMB처럼 그것 자체로 바로 공유해서 마운트하고 사용할 수 있는게 아님
RAID / LVM 과 다른 점
- 역할 자체는 꽤 비슷해 보임
- RAID 와 유사성 : iSCSI도 여러 디스크를 하나로 합칠 수 있음
- LVM 과 유사성 : iSCSI도 여러 디스크를 하나로 합치거나 쪼갤 수 있음
- 그렇지만 다른 점 : 결국 iSCSI는 디스크를 “외부로 보내기” 위해 씀. 작용하는 위치가 다름
구성 예시
- 서버가 있음
- 서버에 물리적 디스크가 2TB * 2 = 4TB 있음
- RAID 1 구성을 해서 2TB를 만듬
- LVM 구성을 해서 1TB * 2 개의 LV를 만듬. 이를 iSCSI는 두 개의 LUN으로 인식할 것
- iSCSI로 두 개의 LUN를 각각 다른 PC에게 공유함
- 그래서 공유받은 각 PC가 원하는대로 파일시스템을 만들고 사용
[Storage Server]
2TB Disk ┐
├─ RAID1 → 2TB
2TB Disk ┘
↓
LVM
┌───────┐
│ LV_A │ → iSCSI → PC_A → FS
│ LV_B │ → iSCSI → PC_B → FS
└───────┘
참고 자료