프로그래밍 농장

Linux [ NFS ( network file system ) ] 본문

Linux

Linux [ NFS ( network file system ) ]

Tennessee201 2019. 11. 25.
728x90

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 서비스 설정 확인 

좀전에 위 vi  /etc/exports 경로에서 server1만 (#)주석을 뗴어서 활성화 하였기 떄문에 server1 만 서비스 활성화중이다. 

 

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) 을 하나만들어주고 이파일을 서버측 파일로 마운트해준결과 

--> 위와같은 마운트를 해주면 , 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

 

 

728x90

'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