- Today
- Total
프로그래밍 농장
Linux [ NFS ( network file system ) ] 본문
NFS == network file system ( 파일 공유 시스템 )
== 파일시스템 공유, 서버자원 공유
--> 리눅스 / 유닉스 환경에서 네트워크를 통한 파일시스템 공유 목적으로 개발
--> 썬마이크로 시스템즈에서 개발
--> 대부분 운영체제 사용 가능
--> 중앙 집중형 시스템 = 데이터의 일관성 확보 ( 클라이언트의 데이터들을 모두 서버쪽의 저장공간에 저장 )
==sever 와 client 의 구조로 구성되어있음
==network 연결 이후에 client 가 server 의 자원을 자신의 자원처럼 사용 가능 .
==client 가 server에 mount 해서 사용.
-------------------nfs server 에서 해야할 작업-----------------------------------
패키지 설치 : yum -y install nfs* ( 28개 정도 설치진행 )
== network 연결과는 별도로 RPC 서비스 필요 == portmapper 서비스 필요
== portmapper : 동적으로 서비스와 port 를 연결하기 위해서 필요한 서비스
5.5x 까지는 portmap 패키지 별도 작업
6.x ~ 부터는 rpcbind 패키지 사용 -- nfs 의존성 포함
주 설정 파일 : vi /etc/exports
--> 기본적으로 아무런 내용 없음.
내용 추가해주기 ex)
#[share dir] [access allow host/network](option)
#/nfs_server1 192.168.73.129(rw,no_root_squash,sync) 현재위치인server에서 연결해줄 client의 ip주소 ( .. 129)
#/nfs_server2 192.168.73.0/255.255.255.0(rw,sync)
#/nfs_server3 *(sync)
--------------------------------------------------------------------
--> 3개의 필드로 작성
[share dir] == client 에게 공유해줄 디렉토리
[access allow host/network] == 공유해줄 client 의 ip / network
(option) == 공유 옵션
ro == 읽기 전용
rw == 읽기, 쓰기
root_squash == client가 server에 접근시 , nfsnobody 적용 == 익명 nfs 사용자
no_root_squash == client가 server에 접근시 root 접근 허용
sync == 동기화 == 파일시스템 변경시 server 와 client 동기화
--------------------------------------------------------------------
--> 이후 서비스 실행
필수 !!
systemctl restart rpcbind --> portmapper 서비스 실행
systemctl restart nfs --> nfs 서비스 실행
- nfs , rpc 데몬 동작 확인 : rpcinfo -p ( 몇번 포트를 사용하는지 확인시 )
--> [ portmapper , 111 ] , [ nfs , 2049 ] port
--> 그 외 관련 데몬들은 랜덤 port 사용
- nfs 서비스 관련 명령어옵션
1. exportfs -v == nfs 서비스 설정 확인
2. exportfs -ra == 서비스 중지 없이 변경 사항 재적용
--> nfs 서비스 관련 데몬들이 랜덤 port 사용하는 이유로 서비스 중지 없이 변경사항만 재적용
--> exportfs 형식을 사용하기 위해서는 nfs 서비스가 동작하고 있어야만 가능
- 최종 정리 ( server쪽에서 해야할 일 )
1. 패키지 설치 ( nfs* )
2. 주 설정 파일 편집
3. 서비스 실행
4. 데몬 동작 여부 확인
5. 서비스 설정 확인
-------------------nfs client 에서 해야할 작업-----------------------------------
1. 데몬 동작 확인 == rpcinfo -p [server ip]
2. mount -t [파일시스템] [server ip:share dir] [mount point]
--> 위와같은 마운트를 해주면 , nfs_client1 파일을 이용해서 server의 17G만큼을 사용할수있다는 뜻이다.
( 옵션설정을 안해주었기떄문에 서버측의 모든 용량을 마운트해준것임)
--> 이와같은 마운트연결을 이용해서 server측의 저장공간을 사용하는 방식은 노멀마운트이기떄문에 재부팅시 모두 삭제된다.
-------------------------------------------------------------------------------
normal nfs 실습예제 1)
HDD 추가 ( SCSI , 1GB ) 후 파티션 구성
파티션 : 200M, 300M , 500M 구성
==200M 파티션에 auto mount 설정
== /etc/exports 에 작성한 1번 예문 형식을 적용시켜서 200M 파티션에 nfs 연결 활성화
==nfs 연결 이후에 파일 생성까지 test
==마운트 포인트 명칭은 자유
--> 먼저 1GB의 HDD를 넣어주고 부팅
--> 파티션을 위처럼 나누어주기
--> 각 파티션을 파일시스템에 맞게 포멧해주기 ( mkfs.xfs /dev/sdb1 ) ...
--> 이후 디스크 <-> server측 디렉토리 자동마운트해주기 ( vi /etc/fstab에서 작업 )
--> 재부팅해서 마운트된것 확인후 , server마운트한 디렉토리 <-> client측 디렉토리 nfs마운트해주기
--> 이후 아래의 vi /etc/exports 내의 형식을 따라서 nfs마운트를 진행한다면, 2,3번 디렉토리는 클라이언트측에서 파일이나 디렉토리생성의 허가 거부를 당할것이다 .
--> 이떄에는, vi /etc/exports 에 들어가서 권한 설정을 바꿔주거나 . 서버측에 권한설정을 이처럼 해주면 된다. chmod 757 /nfs_server
'Linux' 카테고리의 다른 글
Linux [ nfs 실습 예제 ] (0) | 2019.11.26 |
---|---|
Linux [ autofs ] (0) | 2019.11.26 |
포멧관련 ( 디스크추가 ./ 파티션 ./ 마운트 (0) | 2019.11.22 |
Linux [ 자동 마운트 ] (0) | 2019.11.22 |
Linux [ vsftpd ] (0) | 2019.11.21 |