안녕하세요.
이번 시간에는 Ncloud에서 Linux NFS 서버를 구축해서 다른 Linux 서버에 마운트 하는 실습을 진행하겠습니다.
실습에 앞서 두 대의 서로 다른 Linux 시스템이 있어야 하고 네트워크 통신이 되어야 합니다.
0. 실습 배경
Ncloud에서 NAS 상품군은 1개의 볼륨에 최대 10TB까지 설정이 가능합니다. 이 얘기는 10TB를 넘기면 추가적으로 볼륨을 생성한 후 다른 경로로 마운트해야 하는 경우가 생기는데 이 경우 NAS 서버를 만들어서 디스크 확장을 통해 1개의 경로에 대용량의 저장 공간을 확보할 수 있습니다.
요즘은 기업 규모에서 10TB는 작은 용량이기 때문에 Ncloud에서는 NAS 서버를 만들어서 사용하실 수도 있습니다.
(1) Windows 공유 폴더를 Linux에 마운트
https://eveningdev.tistory.com/212
Windows 공유 폴더를 Linux에 마운트 하는 실습은 위 게시글에서 확인할 수 있습니다.
(2) Linux 공유 폴더를 Windows에 마운트
https://eveningdev.tistory.com/213
Linux 공유 폴더를 Windows에 마운트 하는 실습은 위 게시글에서 확인할 수 있습니다.
(3) Windows 공유 폴더를 Windows에 연결하기
https://eveningdev.tistory.com/215
Windows 공유 폴더를 Windows에 연결하는 실습은 위 게시글에서 확인할 수 있습니다.
1. NFS(Network File System)란?
NFS는 Network File System의 약자로, 컴퓨터 네트워크에서 파일 및 디렉터리를 공유하기 위한 프로토콜과 시스템입니다. 이는 다양한 운영 체제 간에 파일을 공유하고 액세스 하는 데 사용됩니다. 파일 및 디렉터리를 원격 위치에서 마치 로컬 파일 시스템처럼 읽고 쓸 수 있습니다.
이를 통해 여러 사용자가 파일을 공유하고, 여러 시스템에서 동일한 파일을 사용할 수 있습니다. 이는 특히 큰 규모의 네트워크 환경에서 파일 공유 및 리소스 공유를 간단하게 만들어 줍니다.
Samba / CIFS | Linux - Windows |
CIFS | Windows - Windows |
NFS | Linux - Linux |
2. NFS Server 설정하기
(1) nfs-kernal-server 패키지 설치하기
apt update
apt install nfs-kernal-server
nfs-kernel-server는 Linux 시스템에서 NFS 서버 역할을 수행하는 패키지입니다. 이 패키지는 커널 수준에서 NFS 서비스를 제공하며, 클라이언트로부터의 요청을 처리하여 파일 및 디렉터리를 공유합니다.
(2) 공유 폴더 생성 후 소유권 지정하기
mkdir <공유 폴더 이름>
chown -R <사용자>:<사용자> <공유 폴더 이름>
다음과 같이 공유 폴더를 생성한 후 폴더 소유권을 해당하는 사용자에게 부여합니다.
(3) 공유 폴더에 대한 권한 설정하기
vi /etc/exports
//전체 허용
/root/nfs_dir *(rw,sync,no_root_squash,no_subtree_check)
//특정 IP 대역 허용
/root/nfs_dir 192.168.100.0/24(rw,sync,no_root_squash,no_subtree_check)
//특정 IP 허용
/root/nfs_dir 192.168.100.x/32(rw,sync,no_root_squash,no_subtree_check)
옵션 | 설명 |
rw | 공유 폴더에 읽기/쓰기 권한 |
ro | 공유 폴더에 읽기 권한 |
sync | 데이터 변경 사항에 동기 처리 |
async | 데이터 변경 사항에 비동기 처리 |
root_squash | 클라이언트 서버의 root 사용자를 일반 권한으로 부여 |
all_squash | 모든 클라이언트 서버의 사용자를 일반 권한으로 부여 |
no_root_squash | 클라이언트 서버의 root 사용자에 관리자 권한 부여 |
no_subtree_check | 클라이언트 서버의 사용자가 작업한 내용에 대해 무결성 검사를 하는 하위 트리 검사를 하지 않음 |
noaccess | 디렉토리에 접근하지 못하게 제한하는 옵션 특정 하위 디렉토리에 대한 접근을 제한할 때 사용 |
다음과 같이 공유 폴더에 대해 여러 가지 옵션을 줄 수 있고 특정 IP, 특정 IP 대역, 전체 허용 등 공유 폴더에 대한 접근을 제한할 수 있습니다.
(4) 설정 파일을 적용하기
exportfs -a
systemctl restart nfs-kernal-server.service
systemctl status nfs-kernal-server.service
exportfs 명령어로 설정 파일을 적용하고 nfs-kernal-server를 재시작합니다.
3. NFS Client 설정하기
(1) nfs 패키지 설치하기
// ubuntu
apt update
apt install nfs-common
// centos
yum update
yum install nfs-utils
ubuntu에서는 nfs-common, centos에서는 nfs-utils를 설치해 주시면 됩니다.
(2) 공유 폴더 마운트하기
mount 192.168.100.9:/root/nfs_dir /root/nfs_dir
// mount <NFS Server IP>:/<shared directory> <mount point>
마운트 명령어를 통해 NFS 서버의 공유 폴더를 클라이언트 서버에 마운트 시켜줍니다.
(3) fstab 설정하기
vi /etc/fstab
192.168.100.9:/root/nfs_dir /root/nfs_dir nfs defaults 0 0
서버 재기동 후에도 공유 폴더가 정상적으로 마운트 되게 하기 위해 다음과 같이 fstab 설정을 해줍니다.
(4) 서버 재기동 후 마운트 확인하기
reboot
df -h
서버 재기동 후 df -h 명령어를 통해 공유 폴더가 정상적으로 마운트 되었는지 확인합니다.
(5) 파일 생성해 보기
cd nfs_dir
touch test1 test2
클라이언트 서버에서 공유 폴더로 이동해서 테스트 파일을 작성합니다.
NFS 서버에서 공유 폴더에 들어가 파일이 생겼는지 확인합니다.
4. NFS 마운트 해제하기
umount /root/nfs_dir
// umount <mount point>
df -h
다음과 같이 마운트 되었던 공유 폴더를 해제해 줄 수 있습니다.
5. NFS 설정 시 문제가 발생한 경우
(1) NFS 마운트 시 Access Denied ~ Error가 발생 시
NFS 마운트 시 해당 에러가 발생하는 것은 exports 파일을 설정할 때 클라이언트 서버의 유저가 해당 공유 폴더에 대해 접근 권한이 없을 때 발생합니다. 따라서 exports 파일에서 설정할 때 권한이 있는지, 쓰기 권한은 있는지 확인해 보시면 됩니다.
(2) 방화벽 문제 (Port: 2049)
기본적으로 NFS는 포트를 2049 포트를 사용하고 있습니다. 2049 포트가 방화벽에 막혀 있어서 NFS 통신이 되지 않는 경우가 있습니다. 다음과 같이 ACG에서 Inbound/Outbound에서 2049 포트를 허용해 주면 됩니다.
이번 시간에는 Ncloud에서 Linux NFS 서버를 구축해서 다른 Linux 서버에 마운트 하는 실습을 진행해 봤습니다.
감사합니다.
'Cloud > Naver Cloud' 카테고리의 다른 글
[Ncloud] 쉽게 따라할 수 있는 VPC 간 IPsec VPN 구성하는 실습 가이드 (0) | 2024.04.22 |
---|---|
[Ncloud] Windows 공유 폴더를 다른 Windows 서버에서 접속하기 (0) | 2024.04.22 |
[Ncloud] Samba를 이용한 Linux 공유 폴더 Windows 서버에 마운트하기 (0) | 2024.04.18 |
[Ncloud] Samba를 이용한 Windows 공유 폴더 Linux에 마운트하기 (0) | 2024.04.17 |
[Ncloud] Windows 환경에서 추가 스토리지 마운트하는 방법 알아보기 (0) | 2024.04.16 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!