INTRO
Linux를 사용하면서 하나의 저장소를 여러 서버가 사용할 수 있게 하려면 공유 파일 시스템을 사용해야 합니다.
여러 가지의 공유 파일 시스템이 있겠지만 많이 사용하는 공유 파일 시스템의 종류는 아래와 같습니다.
아래의 공유 파일 시스템은 네트워크를 통해 공유를 하고 접근을 하기 때문에 Gbps 급의 대역폭은 보장되어 있어야 합니다.
- NFS(Network File System): 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 접근할 수 있고 사용자는 마치 로컬에 있는 것처럼 사용할 수 있음
- CFS(Clustered File System): 여러 개의 서버(클러스터 구성원)가 저장소를 공유하여 하나의 단일 논리 시스템으로 공유함
(EX. OCFS2, GFS2 등)
- CIFS(Common Internet File System): SMB 파일 공유 프로토콜의 확장된 버전으로 윈도우와 리눅스(유닉스) 환경을 동시에 지원함
NFS Server 구성
NFS 패키지를 설치합니다.
# dnf install nfs-utils
NFS 서버 데몬을 enable하고 시작합니다.
# systemctl enable --now nfs-server
공유할 디렉토리를 생성합니다.
# mkdir /data
NFS 공유를 위한 설정 /etc/exports에 작성합니다.
보안상 no_root_squash가 취약하다고 하지만 사용하는데 불편함이 있어 "no_root_squash" 설정을 많이 하는 편입니다.
# cat << EOF > /etc/exports
## <Shared Directory> <Network CIDR>(Options)
## Data Directory for 192.168.56.0/24
/data 192.168.56.*(rw,no_root_squash)
EOF
- no_root_squash: NFS 서버와 클라이언트의 root 사용자를 일치시키게 하기 위해서 사용
- root_squash: 모든 클라이언트는 root 유저가 부여한 nfsnobody와 같은 익명의 유저로 접근하게 됨
/etc/exports에 기록된 설정을 읽어오고 설정하는 작업을 진행합니다.
# exportfs -ra
공유된 리소스를 확인합니다. (옵션도 확인 가능)
# exportfs -v
/data 192.168.56.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
Client 서버에서 마운트 테스트
NFS 서버에 공유된 파일시스템이 보이는지 확인합니다.
이 작업에서 제대로 보이지 않는다면 방화벽에서 NFS 관련 Port가 Open되었는지 확인이 필요합니다.
# showmount -e 192.168.56.10
Export list for 192.168.56.10:
/data 192.168.56.0/24
NFS로 공유된 파일시스템을 마운트 할 서버에 접속하여 NFS 패키지를 설치합니다.
# dnf install nfs-utils
NFS 데몬을 시작합니다.
# systemctl start nfs-utils
NFS로 공유된 파일시스템을 마운트할 디렉토리를 생성합니다.
# mkdir /data
재부팅시 마운트가 될 수 있게 /etc/fstab에 작성합니다.
# vi /etc/fstab
..(생략)
192.168.56.10:/data /data nfs4 defaults 0 0
마운트를 시도하고 공유된 파일 및 디렉토리를 확인합니다.
# mount /data
<파일 및 디렉토리 확인>
# ls -l /data/
total 0
drwxr-xr-x 2 root root 6 Aug 1 23:59 elasticsearch
drwxr-xr-x 3 root root 22 Aug 14 22:44 os_backup
<파일시스템 확인>
# df -Th /data
Filesystem Type Size Used Avail Use% Mounted on
192.168.56.10:/data nfs4 1.9T 768G 1.1T 42% /data
NFS 구성에 대한 자세한 내용은 아래의 RedHat 문서를 참고바랍니다.
3번째 문서인 "NFS 서버 구성" 문서에는 exportfs 명령의 옵션과 /etc/exports에 많이 사용되는 기본 옵션이 설명되어 있습니다.
'Linux > Linux' 카테고리의 다른 글
Linux) Hugepages 설정 (0) | 2022.10.22 |
---|---|
Linux) 169.254.0.0이라는 Routing Table이 왜 보이는걸까? (0) | 2022.03.01 |
Linux) net-tools 패키지 없이 네트워크 정보 확인하기 (1) | 2022.01.02 |
Linux) OS 컨설팅 (3) - 시스템 보안 강화 (0) | 2021.12.30 |
Linux) OS 컨설팅 (2) - 설치 정보 작성 (0) | 2021.11.06 |