본문 바로가기

[Linux]

[Linux] 리눅스 NFS / 오토마운트(autofs)

반응형

NFS (Network File System) 

네트워크로 저장 공간을 공유해서 사용하는 것

 

대표적인 형태

NAS(Network Area Storage) >> SAN (Storage Area Network)

구축 난이도도 높고 비용도 더 많이 들지만 요즘은 SAN 환경을 더 많이 쓰는 추세

 

일반적인 네트워크 환경을 이용하여 자신의 File System을 공유하는 서비스

가장 대표적인 NAS 환경을 구출할 수 있는 서비스

역할 : NFS Server (file system 공유) / NFS Client (공유 된 file system을 사용)

공유된 file system에 접근하기 위해서는 Portmapper 사용 (rpc-bind 패키지)

 

NFS 계정 Mapping Option

실질적인 권한 부여 옵션

모든 공유 디렉토리에는 Root Mapping 옵션과 그 외 사용자를 위한 Mapping 옵션 2가지가 반드시 설정

옵션 지정하지 않을 경우 기본값(*)으로 자동 설정

root_squash (*) Client에서 Root로 접근 시 Server의 nfsnobody 계정으로 Mapping
no_root_squash Client에서 Root로 접근 시 Server의 root 계정으로 Mapping
all_squash Client에서 모든 계정으로 접근 시 Server의 nfsnobody 계정으로 Mapping
no_all_squash (*) Client에서 모든 계정으로 접근 시 Server의 동일 계정으로 Mapping (동일 계정 X : nfsnobody)

(*) - default

 


linux01 : server (hdd 1G 추가)

/dev/sdb1을 /nfs_server1에 마운트

linux01:/nfs_server1을 linux:02/nfs_client1에 type nfs로 마운트

#Server 설정

 

primary partition 250M 4개

auto mount

mount point(/nfs_server1)를 공유하는 것

client는 공유된 디렉토리에 접근하는 것

추가적인 파티션에 마운트 된 디렉토리를 공유해야하지

그냥 폴더 만들어서 공유해버리면 / 아래 디렉토리를 모두 공유해버리게 된다.

 

재부팅

오토마운트 확인

 

패키지 설치

의존성에 의해서 rpcbind도 자동으로 설치됨

 

방화벽 설정

 

vi /etc/exports

squash 옵션 보안에 취약한 옵션

no_root_squash 쓰면 안된다.

정확히 알고 사용해야한다.

 

/nfs_server1에 192.168.1.150 사용자만

/nfs_server2에 192.168.1.0/24 대역대 사용자만

/nfs_server3에 전체 공개

/nfs_server4에 192.168.1.150 사용자만

 

데몬 활성화

 

확인

동시에 여러 사용자가 작업을 허용해서는 안된다.(데이터 무결성 위배)

nlockmgr가 lock 담당

 

exportfs -ra 

누군가 데이터를 전송중에 systemctl restart하면 전송이 끊기게 된다

서비스 중지없이 exports내용을 수정할 수 있는 명령어

exportfs -v

공유 정보

sync/async(동기식/비동기식 작업)  <ㅡ> wdelay/no_wdelay(write delay)

동기식은 실시간 작업

비동기식은 캐시메모리에 버퍼공간을 만들게되고 저장된 데이터 단위씩 저장하는 작업

다중사용자가 작업하는 환경이면 async

hide

다중마운트 진행할때 사용

subtree_check

하위트리구조 확인

sec=sys 

보안설정

어떤 방식으로 인증을 할 것인지

rw/ro

읽기,쓰기 권한

secure/insecure

포트번호의 범위

secure - 1024보다 작은 포트번호만 수락

insecure - 1024보다 큰 포트번호만 수락

루트계정을 위한 mapping 옵션(root_squash)

client:root > server:root (no_root_squash) 절대 쓰면 안됨

client:root > server:nfsnobody (root_squash)

일반계정을 위한 mapping 옵션(all_squash)

client:user > server:user (no_all_squash) 잘 안씀

client:user > server:nfsnobody (all_squash)

 

nfsnobody

nfsnobody 용 계정을 미리 만들어서

vi /etc/exports에 anonuid,anongid 지정

 

 


linux02 : client

#Client 설정 및 파일생성 후 server 확인

 

데몬 실행 및 활성화

 

/nfc_server를 마운트

root 계정으로 접속(root_squash, no_root_squash)

linux02 /nfs_client1/A 생성하면 linux01 /nfs_server1에 A가  생성되어있다.

 

 

nfsnobody는 nfs_client2에 쓰기권한이 없기 때문

권한을 바꾸고 생성하면 nfsnobody 소유권으로 만들어진걸 확인할 수 있다.


itbank 계정으로 접속(all_squash, no_all_squash)

nfs_server1과 2 모두 no_all_squash이기때문에 

itbank계정으로 접속

server2는 위에서 권한을 바꿨기 때문에 잘 생성되지만 server1는 안되는걸 볼 수 있다.


nfs_server3(all_squash, root_squash, anonuid=1005, anongid=1005)

 

server PC 에 uid,gid 1005인 그룹과 계정 생성

 

/nfs_server3의 그룹소유권 설정

nfs_user로 생성된걸 확인할 수 있다.

 

vi /etc/fstab

 

재부팅 시 자동 연결 확인


autofs

(/etc/fstab 이전에 작업한 오토마운트 설정 삭제)

yum -y install autofs-*

자동으로nfs 연결

fstab을 사용안하려고 이용하는 서비스

하지만 보통 fstab을 씀

 

vi /etc/autofs.conf

8번째 줄 주석 해제

master_map_name = auto.master

auto.master들어가서 추가로 설정

15번째 줄

timeout = 30

51번째 줄 

browse_mode = yes

 

vi /etc/auto.master(마운트되는 디렉토리 설정)

mkdir /nfs

vi /etc/auto.nfs

[마운트 포인트] -rw,hard,intr [연결 대상]

 

데몬 재실행 하고 재부팅 후 오토마운트 확인

연결안됨

하지만 /etc/auto.master와 /nfs/nfs_c 위치로 접근하면 

마운트가 올라오고 아직 접근안한 nfs_c4는 아직 마운트가 안될걸 확인할 수 있다

 

cd /으로 다시 빠져나오면 .

vi /etc/autofs.conf

15번째 줄

timeout = 30 설정에 의해 30초 뒤에 다시 마운트가 해제된다.

 

반응형

'[Linux]' 카테고리의 다른 글

[Linux] ELK 실습  (0) 2022.06.20
[Linux] 리눅스 log  (0) 2022.06.16
[Linux] FTP 실습  (0) 2022.06.14
[linux] 리눅스 ftp (filezilla)  (0) 2022.06.13
[Linux] 리눅스 ssh scp  (0) 2022.06.13