NFS·SMB·iSCSI의 차이
파일을 공유하는 방식과 블록 장치를 제공하는 방식은 운영 책임이 다릅니다. 인증·권한·동시 쓰기·장애 처리를 함께 설계합니다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- 파일 공유와 블록 제공의 처리 책임을 계층으로 구분한다.
- 인증·공유 허용·파일 권한을 별도 단계로 설명한다.
- 원격 파일 실패와 원격 블록 장치 실패의 관찰 지점을 구분한다.
01파일 공유와 원격 블록 장치의 관리 책임
- ·SMB와 SMB에서는 서버가 파일 시스템을 관리하고 클라이언트가 파일 이름을 열고 읽고 쓰는 요청을 보낸다.
- ·클라이언트에서는 클라이언트가 SCSI 읽기·쓰기 명령으로 논리 블록을 접근한다.
- 따라서 initiator에는 원격 장치가 로컬 디스크와 비슷한 블록 장치로 나타나고 그 위 파일 시스템 관리는 보통 클라이언트가 맡는다.
- 서버·클라이언트서버가 이고 클라이언트가 라는 사실만으로 프로토콜이 결정되는 것은 아니다.
- SMB·서버SMB 서버의 디스크가 ext4여도 클라이언트는 SMB 파일 연산으로 이용할 수 있다.
- 클라이언트·서버클라이언트가 서버 디스크의 ext4 온디스크 형식을 직접 해석하는 것이 아니기 때문이다.
- 반대로 일반 ext4/XFS가 들어 있는 하나의 을 여러 호스트가 독립적으로 동시에 쓰기 마운트하면 각자 메타데이터 캐시와 잠금 판단을 수행하여 손상될 수 있다.
- 파일 시스템다중 쓰기에는 클러스터 파일 시스템과 적절한 동시 접근 조정이 따로 필요하다.
02NFS의 export, 사용자 식별과 마운트
- 정책 서버는 공유할 디렉터리와 허용 클라이언트·옵션을 정책으로 정한다.
- 클라이언트·클라이언트는 server://path를 로컬 디렉터리에 마운트하여 그 아래 파일을 서버에 요청한다.
- 서버 측 허용 조건서버의 허용, 서버 파일 시스템 권한, 사용자 식별 매핑이 함께 의미를 갖는다.
- 클라이언트특히 기반 접근에서는 UID/GID 일관성과 클라이언트 신뢰 범위가 중요하다.
- 인증더 강한 인증을 구성하는 경우 기반 보안 방식 등을 별도로 사용한다.
- ·클라이언트는 클라이언트가 보낸 root 자격을 서버의 익명 사용자로 매핑하여 원격 root가 그대로 서버 root 권한이 되는 것을 막는 방식이다.
- 모든 일반 사용자 요청까지 익명으로 바꾸는 와 구분한다.
- 와 파일 권한서버의 ro/rw 선택은 쓰기 허용이고 파일의 DAC/ 권한까지 없애지 않는다.
- 구성 예의 전제아래 줄은 문서용 대역만 허용하는 개념 예이며 버전과 서버 구성에 따라 마운트 경로·부가 서비스 조건을 맞춘다.
- 경로에서 파일 연산 요청클라이언트 애플리케이션이 마운트 아래 파일을 읽는다. 유효한 캐시로 처리할 수 없는 읽기라면 클라이언트가 서버와 통신해야 한다.
- 요청 전달클라이언트는 파일 핸들과 읽을 범위 등 파일 연산에 필요한 정보를 요청으로 보낸다. 사용자 식별 방식은 · 등 구성에 따라 달라진다.
- 서버의 접근 판정서버는 정책과 인증·사용자 매핑, 서버 파일 시스템 권한을 적용한다. 마운트가 성공했다고 모든 파일에 대한 읽기·쓰기가 허용되는 것은 아니다.
- 서버 파일 시스템의 읽기허용된 요청은 서버 파일 시스템에서 해당 파일 데이터를 읽는다. 클라이언트가 서버 디스크의 파일 시스템 구조를 직접 관리하는 방식이 아니다.
- 읽기 결과 반환서버가 데이터 또는 오류를 반환하고 클라이언트가 이를 파일 연산의 결과로 전달한다. 네트워크 장애 시 대기·재시도·실패는 프로토콜과 마운트 조건에 영향을 받는다.
# /etc/exports의 교육용 예시
/srv/share 192.0.2.0/24(rw,sync,root_squash)
# 서버의 현재 export 조회
exportfs -v
# 클라이언트 mount 결과 조회
findmnt -t nfs,nfs4교육용 예시. 결과와 주소는 설명용이며 실제 시스템에서 실행한 기록이 아니다.
03Samba 공유 설정과 Linux 파일 권한이 만나는 지점
- Samba·SMBSamba는 SMB 프로토콜을 구현하며 운영체제인 척해야만 동작하는 서비스가 아니다.
- ·독립 서버 구성에서는 계정과 Samba 암호 데이터베이스를 연결해 사용할 수 있다.
- SMB·인증의 nologin 셸은 대화형 셸 로그인을 제한하는 선택이고 smbpasswd로 등록한 SMB 인증 경로와는 구분한다. SMB 인증이 성공해도 서버 디렉터리의 소유권·모드··가 파일 작업을 제한할 수 있다.
- 클라이언트공유의 이름은 클라이언트가 접근하는 이름이고 path는 서버의 실제 경로다.
- 는 접근할 주체를 제한하고 read only는 공유의 기본 쓰기 정책, write list는 쓰기 허용 사용자 목록에 관여한다.
- 은 파일 작업의 그룹 해석에 영향을 주므로 접근 그룹과 함께 설계한다.
- 파일·디렉터리 생성 maskcreate mask와 directory mask는 생성 모드를 제한하는 마스크로 보아야 하며 모든 파일을 지정 숫자로 강제하는 chmod와 같지 않다.
[study]
path = /srv/study
guest ok = no
valid users = @study
read only = no
create mask = 0660
directory mask = 0770
# 별도 조회: testparm -s교육용 예시. 결과와 주소는 설명용이며 실제 시스템에서 실행한 기록이 아니다.
smbclient 전송과 CIFS 마운트를 같은 파일 서비스의 두 경로로 읽기
SMB 인증·파일 전송·로컬 마운트 표시를 구별하고 각 결과가 증명하는 접근 범위를 정한다.
실습 구성과 전제
- 첫 화면은 smbclient의 대화형 파일 전송, 두 번째는 커널 CIFS 마운트 조회 사례다. 화면의 계정과 주소를 아래에서는 실습 예시로 대체한다.
- 준비된 SMB 서버·공유·테스트 파일이 있어야 한다. 암호를 명령 인수나 본문에 적지 않고 대화형 입력 또는 별도 보호된 자격 정보 방식을 사용한다.
공유에 접속한 뒤 실제 파일 전송 결과를 읽는다
- smbclient의 로그인 성공은 을 얻었다는 뜻이다. put 이후 전송 바이트와 원격 ls 결과를 확인해야 파일 생성 권한과 결과를 연결할 수 있다.
- 화면에서는 hello.txt 업로드 뒤 목록에 6바이트 파일이 보인다. 공유 전체의 모든 경로에 쓰기가 허용된다는 뜻은 아니다.
bashsmbclient //192.0.2.20/lab-share -U labuser # smb 프롬프트에서: ls # 준비한 무해한 파일만 전송: put lab.txt주소·공유·계정을 재구성한 예시다. 암호는 프롬프트에서 입력한다.
원본 크기로 보기 ↗- smbclient의 대화형 프롬프트에서 put hello.txt가 실행된다.
- 이어지는 ls 목록에 hello.txt 6바이트와 다른 파일 2156바이트가 보인다.
확인 기준업로드가 성공했더라도 서버 파일 소유자··다른 디렉터리 권한은 별도로 확인한다.
마운트가 로컬 경로에 제공하는 인터페이스를 읽는다
- CIFS 마운트는 SMB 파일 서비스를 경로 아래에서 일반 파일 연산처럼 사용하게 한다. 서버 저장 장치의 NTFS를 ext4로 바꾸는 작업은 아니다.
- 마운트 출력의 vers는 협상된 프로토콜, rw는 해당 마운트의 읽기·쓰기 모드다. uid·gid·file_mode 등은 클라이언트가 권한을 표현·검사하는 방식과 관련되며 서버의 접근 허용을 무조건 덮어쓰지 않는다.
원본 크기로 보기 ↗- 원격 공유가 /home/win_share에 type cifs로 연결되어 있다.
- 옵션에는 rw, vers=3.1.1, uid=0, gid=0과 file_mode·dir_mode=0755가 보인다.
확인 기준rw 마운트라는 표시만으로 서버가 쓰기를 허용했다고 단정하지 않는다. 서버 공유 정책·계정 권한과 실제 연산 결과를 함께 본다.
같은 파일을 서비스와 경로 양쪽에서 대조한다
- 원격 목록과 마운트 경로의 stat를 비교하면 같은 파일이 보이는지와 크기를 확인할 수 있다. 필요하면 무해한 테스트 파일을 내려받아 해시로 내용도 대조한다.
- 인증 실패, 공유 경로 오류, 개별 파일 거부를 구별한다. 디렉터리 목록 성공과 새 파일 생성 성공은 서로 다른 요청이다.
bashfindmnt -t cifs stat /mnt/lab-share/lab.txt sha256sum /mnt/lab-share/lab.txt이미 마운트된 실습 경로를 조회하는 예시다.
확인 기준양쪽에서 크기는 같은데 내용이 의심되면 해시와 읽기 결과를 비교한다. 데이터 변경이 동시에 일어나는 환경에서는 관찰 시각도 기록한다.
실습에서 확인한 동작 원리
- SMB 클라이언트 과 CIFS 마운트는 같은 파일 서비스에 접근하는 다른 인터페이스다.
- 인증, 공유 접근, 파일별 권한, 실제 전송 결과를 따로 확인해야 성공 범위를 정확히 말할 수 있다.
설정·출력 추가로 확인하기 30장
아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.
실습 화면 묶음 01 14장
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 명령·상태 출력이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「ftpuser, user_list」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「smb」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「리눅스에서 나 윈도우야~」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 4장
원본 크기로 보기 ↗- 「storage」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「rocky 실습 (sata)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「sda, sdb 초기화」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 03 7장
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트.
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트. 원문에서 「SMB 공유폴더를 특정 디렉터리에 마운트」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트. 원문에서 「리눅스 SAMBA」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트. 원문에서 「리눅스 SAMBA」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트. 원문에서 「리눅스 SAMBA」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트. 원문에서 「시스템 작동시 자동 로드되도록 설정」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 디렉터리 접근·CIFS 마운트·자동 마운트. 원문에서 「시스템 작동시 자동 로드되도록 설정」에 배치된 그림 또는 화면이다.
실습 화면 묶음 04 1장
원본 크기로 보기 ↗- 학습 원본 · SMB 계정과 공유 설정의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 05 1장
원본 크기로 보기 ↗- 학습 원본 · SMB 계정과 공유 설정의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 06 1장
원본 크기로 보기 ↗- 수업 원본 자료 · 공유 파일시스템 마운트 시 권한 오류.
실습 화면 묶음 07 2장
원본 크기로 보기 ↗- 「전제 조건 : 포트 확인」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「전제 조건 : 포트 확인」 문맥에 삽입된 원본 실습·개념 참고 화면이다. NFS·SMB·iSCSI의 차이 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
04iSCSI target의 backstore·LUN·portal·ACL
- targettarget은 저장소를 제공하는 쪽이고 initiator는 SCSI 명령을 보내는 쪽이다.
- 는 실제 데이터를 담는 파일·블록 장치 같은 기반 객체다.
- ·target은 target 안에서 논리 장치를 식별하는 번호이며 에 연결된다.
- 은 접속할 IP와 포트 조합, 은 target 또는 initiator의 이름 형식이다.
- 의 이름 체계의 역도메인 모양은 이름 충돌을 줄이기 위한 식별 체계이며 로 직접 질의하는 호스트 주소와 다르다.
- ·target설정은 전용 준비, target 생성, target group 아래 매핑, 허용 initiator 과 인증, 연결, 저장 순서로 이해할 수 있다.
- client는 discovery로 대상을 찾고 login으로 을 만든 뒤 OS가 제공된 SCSI 장치를 탐지한다.
- target·블록 장치target의 기반 블록 장치를 로컬에서도 마운트하여 동시에 수정하면 안 된다.
- ·의 block 에 제공자 쪽 ext4 포맷은 필수 선행 단계가 아니다.
- 파일 시스템은 해당 블록 장치를 사용하는 주체가 관리한다.
- target에 장치 연결제공할 저장 자원을 로 연결하고 target의 으로 매핑한다. 은 접속 지점이며 등으로 허용할 initiator와 접근 범위를 정한다.
- 검색과 수립initiator가 target을 검색하고 필요한 인증·허용 조건을 만족하여 을 맺는다. 검색 성공과 특정 사용 권한은 같은 결과가 아니다.
- 클라이언트의 블록 장치 인식운영체제가 전달받은 을 SCSI 블록 장치로 인식한다. 이 시점의 성공은 파일 시스템이 준비되거나 마운트됐다는 뜻이 아니다.
- 파일 시스템과 소유권 설정클라이언트가 적절한 파일 시스템과 마운트를 관리한다. 일반 파일 시스템을 여러 호스트가 동시에 쓰려면 안 되며, 공유 쓰기는 이를 지원하는 별도 조정 구조가 필요하다.
- 파일 연산을 블록 명령으로 전달클라이언트 파일 시스템이 만든 블록 I/O를 의 SCSI 명령으로 전송한다. target은 제공한 에 대해 처리하고 응답을 돌려준다.
# targetcli 내부의 구조 예시
/backstores/block
/iscsi/iqn.2025-01.example.com:study/tpg1/luns
/iscsi/iqn.2025-01.example.com:study/tpg1/acls
/iscsi/iqn.2025-01.example.com:study/tpg1/portals
# 클라이언트의 현재 세션 조회
iscsiadm -m session교육용 예시. 결과와 주소는 설명용이며 실제 시스템에서 실행한 기록이 아니다.
05파일 접근의 신원·공유 정책·저장 권한 세 경계
- 접속 신원SMB 인증 또는 의 인증 방식은 요청 주체를 결정하는 입력이다. 로그인 이름과 서버에서 적용되는 숫자 UID/GID·보안 주체의 연결을 별도로 해석한다.
- 공유 선택Samba의 와 공유 쓰기 정책, 의 클라이언트·ro/rw 조건은 공유 경계다. 이 경계를 통과해도 서버 파일 시스템 권한을 자동 우회하지 않는다.
- 생성 모드 계산일반적인 Samba UNIX 모드 계산에서 create mask는 비트 AND로 후보 권한을 제한하고 force create mode는 이어서 OR로 비트를 추가한다. 디렉터리는 directory mask 계열로 따로 다룬다.
- 상속 설정의 영향 상속·inherit permissions·VFS 모듈 등 설정은 생성 정책을 바꿀 수 있다. mask 계산은 해당 경로를 사용하는 구성의 설명이지 모든 SMB 서버의 보편 결과가 아니다.
- 블록 접근의 차이 target은 의 블록 명령을 처리하며 파일의 사용자별 을 대신 판정하지 않는다. 파일 시스템·파일 권한은 이를 사용하는 initiator 쪽의 책임이다.
06Samba create mask와 force mode 계산
- 계산의 조건특별한 상속 설정이 없는 학습 예에서 UNIX 후보 모드가 0666, create mask가 0640, force create mode가 0020이라고 가정한다.
- 제한 단계0666 AND 0640=0640이다. mask에 없는 other 권한과 그룹 쓰기를 우선 제거하며 숫자를 빼는 연산이 아니다.
- 강제 비트 단계0640 OR 0020=0660이다. force create mode가 그룹 쓰기 비트를 더하므로 create mask 숫자와 최종 모드가 항상 같지는 않다.
- 파일과 디렉터리같은 계산을 directory mask에 대한 검토 없이 새 디렉터리에 그대로 대입하면 탐색 x를 놓칠 수 있다. 디렉터리를 만들고 통과하는 동작은 파일 내용을 쓰는 것과 다르다.
- 성공의 다른 조건최종 모드가 0660이라도 공유가 read only이거나 실제 요청자가 해당 그룹이 아니거나 가 거부하면 쓰기는 실패할 수 있다. 하나의 계산은 전체 접근 판정 중 한 부분이다.
| 단계 | 연산 | 결과 |
|---|---|---|
| 후보 제한 | 0666 & 0640 | 0640 |
| 강제 비트 | 0640 | 0020 | 0660 |
07보이는 공유·연결된 LUN·준비된 파일의 차이
- SMB 목록만 성공공유 목록을 조회한 성공은 특정 파일의 읽기·쓰기·삭제를 시험한 결과가 아니다. 공유 진입 뒤 요청 주체와 서버 경로 권한을 연결한다.
- 의 클라이언트 root가 보낸 요청이 익명 주체로 매핑됐다면 서버 파일 소유자 root 권한을 그대로 얻지 않는다. 서버 터미널의 root 읽기 성공과 비교하면 조건이 다른 시험이다.
- 검색만 성공discovery에서 target 이름을 얻어도 로그인·인증· 매핑·OS 장치 인식은 남아 있다. 각 경계의 결과를 파일 시스템 마운트 성공으로 합치지 않는다.
- 같은 의 동시 쓰기두 initiator가 각각 일반 파일 시스템 캐시를 관리하면 서로의 메타데이터 변경을 조정하지 못할 수 있다. 네트워크 이 둘 다 정상이라는 사실은 공유 쓰기 설계의 근거가 아니다.
- 단절 뒤 대기애플리케이션이 멈춘 것처럼 보여도 저장 I/O가 재연결을 기다리는 상태일 수 있다. ·블록 오류·마운트· 대기를 같은 시각으로 연결해 처리 경계를 찾는다.
08네트워크 장애가 파일 연산과 블록 I/O에 미치는 영향
- 파일 공유파일 공유에서는 원격 읽기·쓰기와 잠금·캐시 정책이 네트워크 왕복과 서버 상태에 의존한다.
- ·I/O는 블록 I/O가 과 경로의 영향을 받으므로 단순 웹 요청 재시도와 같은 수준으로 다룰 수 없다.
- I/O일시 단절 때 커널이 I/O를 기다리거나 실패시키는 조건은 timeout·재연결·multipath·파일 시스템 정책에 달려 있다.
- 네트워크네트워크가 연결되어 있다는 사실과 저장 요청이 영속 매체에 기록되었다는 사실도 구분해야 한다.
- SMBSMB 서명은 메시지 무결성, SMB 암호화는 전송 내용 보호와 관련된다.
- ·의 인증만으로 전송 데이터가 암호화되는 것은 아니다.
- 인증마운트 자격 증명을 명령줄이나 fstab 평문 암호로 공개하지 않고 접근 제한된 파일이나 적절한 인증 방식을 사용한다.
- 권한·인증안정적인 구성은 데이터 경로의 권한·인증과 장치 수명·네트워크 의존성을 함께 표현하며 _netdev 같은 부팅 정보는 네트워크가 준비되기 전에 블록 장치를 사용하려는 순서 문제를 줄이는 데 관여한다.
09운영에서 확인할 경계
- 지연과 단절의 영향저장소 네트워크의 지연과 단절은 애플리케이션의 멈춤이나 입출력 오류로 드러날 수 있다.
- 마운트 성공 여부 외에 실제 접근 계정, 쓰기 정책, 재연결 동작과 백업 범위를 확인한다.
- 클라이언트저장소 복제와 클라이언트 캐시가 복구 가능한 백업을 대신하지는 않는다.
| 방식 | 제공 단위 | 중요한 확인점 |
|---|---|---|
| 파일·디렉터리 | 계정 매핑과 정책 | |
| SMB | 파일·디렉터리 | 공유 권한과 파일 권한 |
| 블록 장치 | 접근과 동시 쓰기 조정 |
10파일 요청과 블록 요청의 처리 경로
- 파일 공유·클라이언트파일 공유에서는 클라이언트가 원격 파일의 이름·핸들과 작업을 프로토콜 요청으로 보낸다.
- 파일 요청 처리 주체서버는 요청 주체와 공유 정책을 확인하고 서버 측 파일 시스템을 통해 파일 내용을 읽거나 바꾼다.
- ·SMB와 SMB의 구체적 인증·상태 관리 방식은 다르지만 서버가 파일을 관리한다는 공통점이 있다.
- 공유 폴더와 파일 관리클라이언트에 원격 폴더가 디렉터리로 보인다고 그 서버 디스크의 파일 시스템을 클라이언트가 직접 동시에 관리하는 것은 아니다.
- ·initiator에서는 initiator가 SCSI 명령을 네트워크로 target에 전달하고 target이 허용된 의 블록 요청을 처리한다.
- 원격 블록의 파일 시스템클라이언트에 보이는 디스크 위에 일반 파일 시스템을 만들었다면 파일 이름과 ·저널을 해석하는 주체는 그 클라이언트다.
- ·파일 시스템두 호스트가 같은 을 각자 일반 파일 시스템으로 쓰면 서로의 캐시·메타데이터 변경을 조정하지 못해 손상될 수 있다.
- 파일 시스템공유 가능 여부는 접속 성공이 아니라 파일 시스템이나 애플리케이션의 동시 접근 설계로 판단해야 한다.
설명과 함께 보는 보조 도식
같은 파일 읽기, 다른 책임 위치
파일 공유와 블록 제공을 서로 다른 선택 경로로 비교한다. 화살표는 읽기 요청의 논리적 전달이다.
공통 시작
애플리케이션은 파일 경로로 읽기를 요청한다.
- 시작 단위
- 파일
전체 단계를 한 번에 읽기
- 01
공통 시작
애플리케이션은 파일 경로로 읽기를 요청한다.
- 시작 단위
- 파일
- 02
파일 공유 방식
NFS·SMB 요청은 원격 서버로 전달된다.
- 네트워크 단위
- 파일 프로토콜 요청
- 03
서버가 파일 해석
서버의 파일 시스템이 실제 블록을 찾는다.
- 파일 시스템 관리
- 서버
- 04
블록 제공 방식
다른 사례에서는 클라이언트 파일 시스템이 블록 요청을 만든다.
- 네트워크 단위
- SCSI 블록 요청
- 05
LUN에서 처리
target이 장치를 제공하고 파일 구조는 클라이언트가 관리한다.
- 파일 시스템 관리
- 클라이언트 측
화살표: 진행 또는 참조 방향 · 파란색: 현재 단계에서 다루는 관계
11접속 성공과 데이터 접근 성공 분리하기
- SMB·서버SMB 서버에 인증됐는데 특정 공유를 열지 못하면 공유 허용 정책과 경로를 살피고, 공유를 열었는데 특정 파일만 거부되면 파일 권한과 같은 추가 통제를 살핀다.
- ·에서는 범위와 요청 주체 매핑, 버전·인증 구성을 대조한다.
- 로 UID가 다른 비특권 주체에 매핑되는 상황을 파일 소유권과 연결해야 한다.
- 로컬·원격 권한 차이서버의 로컬 터미널에서 읽기 성공한 결과는 원격 요청자의 유효 권한을 직접 증명하지 않는다.
- 에서는 네트워크 도달성, 성립, 허용된 target·, 운영체제의 장치 인식, 파일 시스템 마운트 순서로 관찰 대상을 나눈다.
- ·이 보여도 원하는 이 매핑되지 않거나 마운트가 실패할 수 있다.
- I/O 재시도·대기네트워크 단절 뒤 입출력 오류와 재시도·대기는 데이터 계층과 애플리케이션에 다르게 드러난다.
- 저장소 식별과 재연결저장소 이름과 장치 식별자를 기록하고 재부팅 후 자동 연결·마운트가 실제로 준비된 다음 업무 서비스가 시작되는지 확인한다.
| 구성·관찰 대상 | 관찰 내용 | 해석 |
|---|---|---|
| ·SMB 인증 | 요청 주체·매핑 | 인증 성공과 파일 읽기 허용 분리 |
| 공유· | 공유 이름·허용 범위 | 잘못된 공유와 권한 제한 |
| · | 접속과 노출 장치 | 성공이나 장치 없음 |
| 파일 시스템 | 마운트·캐시·쓰기 주체 | 장치는 있지만 파일 접근 실패 |
이해했는지 확인하기
- 파일 공유와 블록 저장소의 책임 범위를 구분한다.
- 인증·공유 정책·파일 권한을 각각 확인한다.
- 여러 호스트의 동시 쓰기와 장애 시 동작을 검토한다.
