●NFS(Network File System):
: NFS 서버에서 공유한 자원들을 클라이언트에서 마운트하여 사용하는 시스템을 의미.
· NFS서비스에서 이용되는 데몬
· mountd : 클라이언트가 마운트를 요청하면 서버에서 클라이언트를 대신하여 수행해준다
· nfsd : mountd 데몬에 의해 마운트가 완료가 되면 공유디렉토리에 읽기 쓰기 작업을 대신해준다.
· lockd : 파일 잠금을 통해 여러 사용자가 동시에 한 파일을 수정하는 것을 막아준다.
· statd : nfs서버가 비정상적으로 종료되었거나 재부팅 했을 경우 복구하는 역할을 한다.
· idmapd : 서로 어떤 작업들을 하는지 알 수 있게 한다.
· portmapper : 동적포트 할당
· 동작원리
1.client 가 portmapper에게 nfs포트 번호 질의 ( 유동포트 사용하기때문 )
2.server 의 portmapper가 nfs의 포트 번호를 알려준다.
3.client 가 nfs서비스로 접근한다. (이 때 mountd가 마운트를 수행한다.)
4.idmapd 가 포트를 통해 서로의 pid를 전달해 준다.
· nfs구축순서
1.패키지 확인 : rpm -qa
2.패키지 설치 : rpm -ivh nfs*
nfs-utils-1.2.3-70.el6.x86_64.rpm
nfs-utils-lib-1.1.5-11.el6.x86_64.rpm ( 서로 의존성오류 뜨기 때문 )
3.설정파일수정 : /etc/exports 설정파일 수정
vi /etc/exports
그리고 위그림과 같이 작성
※옵션
· ro : 읽기전용(기본값)
· root_squash : 관리자 권한 막기 (기본값) -> 익명계정으로 전환
· no_all_squash : client 측에서 일반사용자가 접속시 서버측 동일한 이름의 사용자로 접속 시켜준다.(기본값)
· sync : 서버와 클라이언트 간의 동기화 (기본값)
· rw : 읽기쓰기 가능
· no_root_squash : 관리자 권한 접속가능
· anonuid=[UID] : 익명으로 접근 시 해당 계정으로 연결해준다.
· anongid=[GID] : 익명으로 접근 시 해당 그룹으로 연결해준다.
· * : 모든대역
4.설정파일 검사
exportfs -ra
별 이상 없을시 아무것도 뜨지않음.
5.방화벽 설정.
A. vi /etc/sysconfig/selinux
SELINUX=enforced →disabled
B. system-config-firewall
nfs4 체크
→ ( 2049(nfs포트번호) , 111번 포트(portmapper의 포트번호,tcp udp 둘다 적용가능) )
6. 데몬실행
/etc/rc.d/init/nfs restart
7. 클라이언트쪽에서 마운트
먼저 서버쪽의 폴더에 대응할
/client1 /client2 /client3 /client5
를 만들어주자
각 클라이언트 쪽에서 마운트할 마운트포인트 생성해야 한다.
mount -t nfs [서버ip]:/sourcedir /destinationdir
[서버] [클라이언트]
mount -t nfs 192.168.109.132:/nfs1 /client1
mount -t nfs 192.168.109.132:/nfs2 /client2
mount -t nfs 192.168.109.132:/nfs3 /client3
mount -t nfs 192.168.109.132:/nfs5 /client5
마운트가 완료 되었다.
==============================================================================
<<<<문제>>>> ★★★★★★문제 풀어보기★★★★★★
<서버쪽>
Client1 192.168.1.0 대역 (읽기 쓰기, root 접속가능, 동기화)
Client2 모든 대역 (읽기전용, 동기화)
Client3 192.168.1.10 (동기화) -> 자기아이피
<클라이언트쪽>
Client1 -> C1 에 마운트
Client2 -> C2 에 마운트
Client3 -> C3 에 마운트
C1에 123 라고 작성된 A 파일 생성
C2에 456 라고 작성된 B 파일 생성
C3에 789 라고 작성된 C 파일 생성
================================================================
·AutoFS : 자동으로 마운트를 수행 (사용자가 필요할 시)
일정시간동안 사용하지 않으면 언마운트 해준다.
1. 패키지 설치
rpm -ivh autofs
2. autofs 활성화
vi /etc/autofs.conf
36 # browse_mode - maps are browsable by default.
37 #
38 browse_mode = no → yes 로 바꾸기.
3. autofs 디렉토리 지정
vi /etc/auto.master
6 #
7 /misc /etc/auto.misc
8 /auto /etc/auto.auto -> autofs 디렉토리 , 해당디렉토리의 설정파일
9 #
autofs 디렉토리와 해당디렉토리의 설정 파일은 임의로 이름을 정한다.
4.autofs 디렉토리 설정파일
#[마운트포인트] [옵션] [마운트할대상]
C1 -fstype=nfs,rw,soft 192.168.1.20:/client1
C2 -fstype=nfs,rw,hard 192.168.1.20:/client2
C3 -fstype=nfs,rw 192.168.1.20:/client3
soft -> 서버 응답이 없을 시 에러를 발생하고 마운트 프로세스 를 종료하게끔 만들어준다.
hard -> 서버 응답이 없을 시 타임 아웃까지 재시도.
5. 데몬 실행
/etc/rc.d/init.d/autofs restart
========================================================================================================================================================================
- 확인 문제-
1.하드디스크 10G 5G 3G (SCSI) 세개를 생성후
10G 5G 로 LVM 을 이용하여 두개를 만들기.
2.master라는 계정을 서버에 만들고 홈 디렉토리를 /export/sdb/home/master가 되게 하라
그리고 계정생성시 홈디렉토리안에 항상 notice라는 디렉토리가 생성되도록 만들어라.
3. nfs서버를 구축하여 /export/sdb/home/master/notice 가 클라이언트에서 마운트할수있게 만들어라.
조건 : 192.168.1.0 C Class 대역만 허용한다.
관리자권한x , 모든사용자 o , 읽기 전용
autofs 데몬을 이용하여 마운트 할수있도록 한다.
→autofs 전용디렉토리 명 : /sevasnfs 설정파일 : /etc/auto.sevas
공유폴더 명 : nfs_share (읽기쓰기가능)
서버에 nfs 데몬 설치
vi /etc/exports
에서 위와 같이 작성
그후 exportfs -ra 로 이상이 있는지 확인
→ 그 후 vi /etc/sysconfig/selinux 에서
SELINUX=disabled로 변경해준다
그리고 system-config-firewall 에서 NFS4 를 체크 해주고 나온다.
※ disabled는 재부팅해줘야 적용된다.
그리고 재부팅해준다
그 후 클라이언트 측
-autofs 설치
-vi /etc/autofs.conf 에서 no를 yes로 바꾼다.
-vi /etc/auto.master 에서 /misk ~~ 밑에 전용 디렉토리 , 설정파일 추가
※ 주의
서버쪽의 /export/sdb/home/master 의 폴더가 현재 권한이 700 상태기 때문에 권한을 바꾸어 주어야 한다.
chmod 755 master
4. 클라이언트에서 계정추가시 /sevasnfs/nfs_share 폴더를 링크한 폴더를 항상 홈디렉토리안에 자동생성되게 만든다.
공유폴더명은 link_share 로 한다. ln -s /sevasnfs/nfs_share link_share
스켈 폴더안에 링크파일을 만들어 홈디렉토리안에 항상 링크파일이 생성될 수 있게 한다.
5.ftp 서버를 구축한다. 다만 디렉토리제한을 걸어놓는다.
설치후
vi /etc/vsftpd/vsftpd.conf
에 들어가서 :96 줄에서 위와 같은 그림 같이 주석을 다 해제해준다.
그 후 vi /etc/vsftpd/chroot_list 를 만들어 준다.
firewall 에서 FTP 체크해주고 selinux disabled 를 확인한다.
그 후 데몬 재실행 /etc/rc.d/init.d/vsftpd restart
클라이언트 쪽에서 ftp 설치 한다.
ftp [서버IP] pwd 를 해보니 최상위가 뜨는게 디렉토리 제한이 걸린상태라는걸 알수있다.
6.클라이언트에서 abc 라는 내용을 가진 test라는 파일을 생성 후 ftp 서버로 master 계정으로 접속뒤에
현재 마운트되어있는 /export/sdb/home/master/notice 에 업로드를 시켜본다.
그 후에 계정을 만들어 계정의 홈디렉토리 내에 있는 link_share 폴더안에 test 파일이 존재하는지 확인한다.
클라이언트의 아무 위치에서나 생성 후 그상태로
접속하여서 master의 홈디렉토리 내에 있는 notice로 이동하여 준다.
그후 put test 명령어를 입력하여 업로드 시키고 나가준다.
클라이언트에서 아무 계정이나 만들어 홈디렉토리를 만들고 그후 안에 있는 링크 파일에 들어가보면
test파일이 잘 있는걸 알수 있다.
'전기기사 > 리눅스' 카테고리의 다른 글
22.리눅스 DNS ( Domain Name Service/System ) (0) | 2019.01.03 |
---|---|
21.리눅스 SSH (Secure SHell) (0) | 2019.01.03 |
[리눅스1] 리눅스 FTP서버 추가내용 (0) | 2019.01.03 |
[리눅스1] 리눅스 ftp서버, vnc서버 (0) | 2019.01.03 |
[리눅스1] 리눅스 LVM (Logical Volume Manager ) (0) | 2019.01.03 |
댓글