Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags more
Archives
Today
Total
관리 메뉴

holssi 님의 블로그

[Linux] 리눅스 파일시스템과 /etc/exports 본문

SERVER

[Linux] 리눅스 파일시스템과 /etc/exports

holssi 2026. 4. 19. 14:48

리눅스는 윈도우와 달리 Ext(Extended File System)을 사용함. 

 

Boot Sector는 MBR과 부트로더(LILO나 GRUB)가 저장되어 있는 구간이다

MBR는 컴퓨터가 부팅될때 가장 먼저 읽는 디스크의 첫번째 영역(섹터)이다. OS가 어디에 위치해있고 어떻게 위치해있는지 식별해서 주기억장치에 적재될 수 있게 해주는 정보이고 하드디스크가 포맷될때 나뉘어지는 각 파티션의 위치에 관한 정보를 가지고 있음

부트로더는 부팅되기까지의 부팅의 전과정을 진행하고 MBR에 저장된다

 

Block Group은 블록들의 모임으로 super block ~ data blocks으로 구분된다. 모든 블록 그룹은 super block 및 group descroptors의 복제본을 가져서 파일 시스템의 메타데이터 정보를 보호한다

 

* super block: 파일 시스템에서 사용되는 주요 설정 정보들이 기록되는 영역(블록 크기, block group 개수, inode 개수, 총 블록의 개수)

* group descriptors: 파일 시스템 내의 모든 블록 그룹들에 대한 정보 기록

* inode: 파일 또는 디렉토리를 기술하는 데이터 구조, 파일의 데이터 블록이 파티션에서 어디에 위치해있는지 주요 데이터를 가지고 있ㄷ으므로 ls -il을 치면 나옴

 

파일 시스템 종류

* 저널링 시스템: 파일 시스템의 저널(로그)에 기록하는 방식을 사용하는 파일 시스템, 파일의 정확성 체크가 매우 빠르고 정확하게 이루어짐

 

EXT3

- 저널링 기능이 도입되어 데이터 복구 기능 강화

- 데이터를 디스크에 기록하기 전에 저널에 수정 사항 기록

- 디스크에 데이터 기록전에 시스템 크래쉬나 갑자기 전원이 나가도 저널의 기록을 보고 복구 가능함

- 볼륨 크기는 2~32TB까지 지원함

- 서브 디렉토리 수는 32000개까지 지원함

 

EXT4

- 1EB(엑사바이트) 이상의 볼륨 지원

- 파일 시스템의 축소, 확장이 자유로움

- 서브 디렉토리 수는 64000개까지 지원함

- 온라인 디스크 조각모음 기능이 추가됨

* 온라인 디스크 조각모음 기능: 컴퓨터를 사용중인 상태에서도 디스크 조각 모음을 수행하는 기능

HDD(하드디스크)는 파일을 저장할때 공간이 비어있는 곳에 나눠서 저장하기 때문에 파일이 여러 군데 흩어져 저장되는 것을 조각화라고 하고, 파일을 읽을때 여러 위치를 왔다갔다해야해서 속도가 느려질 수 있다

디스크 조각 모음은 흩어진 파일을 한 곳에 모아서 연속된 공간에 정리해주는 작업이다. 이 작업으로 읽기 속도가 빨라질 수 있다.

예전에는 디스크 조각 모음을 하려면 시스템을 재부팅하거나 해당 드라이버를 사용하지 않았어야 했다. 하지만 온라인 방식은 운영체제가 실행중인 상태에서 사용자가 작업을 하는 동안에도 백그라운드에서 조각 모음을 진행하는 기능이다

 

XFS

- Extent 기반이 탄탄해진 상태로 고성능 대용량 파일 시스템에 가장 적합함

- RHEL7부터 default 파일 시스템으로 지정되어 있음

- EXT4가 가지고 있는 모든 기능 지원 가능

- 증설은 가능한데 축소는 불가능

- 최대 용량은 8EB까지 지원함

 

파일시스템의 축소, 확장이 자유롭다고 해도 파일 시스템을 축소하는 작업은 권하지 않음

redhat에서도 파일 시스템의 축소로 인한 메타 데이터 불일치 가능성을 열어둠

 

리눅스에서 /etc/exports 파일로 NFS(Network File System)에서 어떤 디렉토리를 누구에게, 어떤 권한으로 공유할지를 정의하는 설정파일이다. 즉, NFS 서버의 공유 정책을 정하는 파일이다

NFS는 네트워크를 통해 디렉토리를 공유하는 파일 시스템 프로토콜이고, 서버의 특정 디렉토리를 다른 서버가 마치 자기 디스크처럼 마운트해서 사용할 수 있게 해준다

 

공유 대상이 되는 서버에서 해야할 작업

1. 공유하려는 디렉토리 권한 변경

chmod 707 [디렉토리]

 

2. vi로 /etc/exports 열어서 공유하려는 디렉토리와 서버 설정

vi /etc/exports

 

no_root_squash는 NFS 클라이언트의 root 사용자를 서버에서도 root로 인정해주는 옵션

/usr/local 192.168.0.1(ro) 192.168.0.2(ro)

/usr/local 192.168.1.0/24(rw)

 

3. nfs 재시작

service nfs restart

 

4. 설정 정상적으로 되었는지 확인

eportfs -v

 

클라이언트 장치에서 해야할 작업

1. nfs 서버에 공유된 디렉토리 확인

showmount -e [서버IP]

 

2. 공유된 디렉토리를 마운트할 로컬 디렉토리 생성

mkdir [디렉토리명]

 

3. 마운트

mount -t nfs [서버IP]:[디렉토리] [로컬디렉토리]

t 옵션은 파일 시스템 타입을 지정하는 옵션

 

우분투 NFS 설정 파일(/etc/exports)

1. 서버에 nfs 서버 설치

sudo apt-get install nfs-kernel-server (서버)
sudo apt-get install nfs-common (클라이언트)

 

2. 서버에 nfs 서버 설치후 exports 파일 오픈

sudo vi /etc/exports

 

3. 서버 아래에 내용 추가

/home/kaeunlee *(rw,no_root_squash,async) // 모든 접속 허용
/home/kaeunnlee 192.168.0.*(rw,no_root_squash, async) // ip 필터링

 

4. 서버 데몬 restart

/etc/init.d/nfs-kernel-server restart

 

5. 클라이언트 nfs mount

mount -t nfs -o nolock 192.168.0.1:/home/kaeunlee /mnt/nfs