스토리지 유형별 분류
- 블록 기반 스토리지
- 시스템에서 스토리지를 블록 장치로 취급
- DAS : Direct Attached Storage - 직접 연결된 장치
- SAN : Storage Area Network - FC(FibreChannel) - iSCSI2. 파일 기반 스토리지
- 파일 시스템이 이미 구성된 스토리지를 공유
- NAS : Network Attached Storage - NFS/CIFS
- NFS: Network File System, 리눅스/유닉스 기본 파일 공유
- CIFS : Common Internet File System = SMB
- SMB : Server Message Block. Microsoft에서 개발한 파일 공유 관련 기능
NFS(Network File System)
- 유닉스/리눅스 계열 시스템의 기본 파일 공유 형태
- Sun Microsystems(Solaris Unix, Java)
- 파일 기반의 공유 스토리지 : 공유 서버에서 설정한 공유 디렉터리를 다른 시스템이 연결하여 사용
- 현재 사용중인 NFS 버전 : NFSv4
- 관련 프로세스
- rpc.mountd : NFS 마운트 요청을 처리, 내부 RPC처리(Remote Procedure Call)
- nfs-server : NFS 공유설정에 따른 공유를 실행
- rpc.idmapd : NFSv4에서 ID와 이름 연결, UID와 GID 이름 전환
NFS 실습
- NFS 서버 관련 기능 설치
# yum search nfs-utils
# yum -y install nfs-utils
2. NFS 공유 설정
/etc/exports 파일을 사용하여 공유 설정 추가
공유 디렉터리 공유대상[(옵션)] |
1. 공유할 디렉터리 생성
# mkdir /share
# chmod 777 /share
2. 공유 설정 예시
# vi /etc/exports
/share 192.168.100.200
/share 192.168.100.0/24
/share www.example.local
/share *. example.local
/share 192.168.100.0/24 192.168.101.0/24
/share server [1-5]. example.local
3. 방화벽 설정 변경
# firewall-cmd --add-service=nfs --permanent
# firewall-cmd --add-service=rpc-bind --permanent
# firewall-cmd --add-service=mountd --permanent
# firewall-cmd --reload
4. 공유
# systemctl start nfs-server
# systemctl enable nfs-server
3) NFS 연결 (클라이언트에서 실행)
- NFS 서버의 공유 정보 확인
- showmount
# showmount -e <NFS서버 주소>
- mount <저장소 장치> <마운트 포인트>
- mount -t nfs <원격 nfs 디렉터리 정보> <마운트 포인트>
- 마운트 포인트 생성
# mkdir /mount/nfs
2. 마운트마운트
# mount -t nfs 192.168.100.100:/share /mount/nfs
4) NFS 공유 설정 변경
- 기존 공유설정 (/etc/exports) 파일의 공유 설정을 읽기/쓰기 가능으로 변경
/share 192.168.100.0/24(rw)
- 공유설정 변경 후 설정 적용
# exportfs -r // 변경 설정 적용
# exportfs -v // 설정 상태 확인
NFS 공유 시 권한 관련 옵션
- sec : 공유되는 파일의 권한 규칙
- sys : 기본값. 각 시스템의 사용자의 UID/GID를 기준으로 적용됨
- none : 모든 사용자의 권한을 nfsnobody로 처리
ex) /etc/exports 파일의 설정 수정
/share 192.168.100.0/24(rw, sec=none)
- krb5… : 통합 사용자 인증 설정(IPA) - Directory Service(LDAP…)
2. root_squash : sec=sys 설정이 되어 있더라도, root 계정에 대해서는 nfsnobody 권한을 사용하도록 설정
ex) /etc/exports 파일 설정 수정
/share 192.168.100.0/24(rw, sec=sys, no_root_squash)
3. ro, rw : 읽기 전용 or 읽기/쓰기
- 공유 시, 마운트 시 각각 ro, rw 설정 가능
- 한쪽이라도 ro로 설정되어 있을 경우, 결과적으로 읽기만 가능
=====================================================
자동 마운트 설정(Automount)
- NFS 마운트 시 mount 명령어로 연결할 경우는 지속적으로 마운트가 유지
- 자동마운트 설정 시, 설정이 적용될 때 즉시 마운트가 실행되지 않음
- 자동 마운트를 통해 연결될 위치에 접근 시, 마운트가 수행됨
- 장시간 사용하지 않을 경우, 스스로 연결을 해제함
- 자동마운트 기능을 담당하는 서비스/패키지 : autofs
- NFS 서버의 디렉터리 내 하위 디렉토리 등을 한 설정으로 마운트 되도록 할 수 있음
ex) NFS 자동 마운트를 통한 사용자 홈 디렉토리 공유
- 자동마운트 설정 시 : 마스터 맵 - 직접/간접 맵
- 마스터 맵 : 마운트 포인트, 맵 파일을 명시
- <마운트 포인트><맵 파일 경로>
- /etc/auto.master.d/<파일명>. autofs 형태로 생성된 파일만 적용
- 직접 맵 : 마운트 포인트에 지정된 경로를 자동 마운트 설정. 마운트 포인트가 절대 경로
- <마운트 포인트(절대 경로)> <마운트옵션> <NFS공유위치>
- 간접 맵 : 마운트 포인트에 대한 정보를 상대 경로로 지정. 마스터 맵에 설정된 마운트 포인트에, 간접 맵 설정에 지정된 마운트 포인트를 결합하여 마운트 위치 지정
- <마운트 포인트(상대 경로)> <마운트옵션> <NFS공유위치>
- 실제 마운트 되는 위치 : 마스터 맵의 마운트 포인트 + 간접맵 마운트포인트
자동 마운트 실습
- NFS 서버는 공유가 걸려있는 상태 (이전 실습 상태 그대로 유지)
- NFS 클라이언트에서 autofs 패키지를 설치
# yum search autofs
# yum install autofs
3. 직접 마운트 설정
/etc/auto.master.d/test.autofs 파일 생성
/- /etc/test.direct |
4. 직접 마운트 설정이 들어있는 직접 맵 파일 생성
/etc/test.direct
/mount/nfs -rw, sync 192.168.100.100:/share |
5.autofs 서비스 시작/활성화
# systemctl start autofs.service
# systemctl enable autofs.service
6.NFS 서버에서 공유 추가 설정
server# mkdir /shares
server# mkdir /shares/{alpha, bravo, charlie}
server# chmod -R 777 /shares
server# vi /etc/exports
/share 192.168.100.0/24(rw, sec=sys, no_root_squash) /shares/alpha 192.168.100.0/24(rw) /shares/bravo 192.168.100.0/24(rw) /shares/charlie 192.168.100.0/24(rw) |
server# exportfs -r
server# exportfs -v
7. 기존 직접 마운트 정보 삭제
- /etc/auto.master.d/test.autofs 파일 내용 삭제
- mount 정보 확인 후 마운트 된 경로 해제
- autofs 서비스 재시작
8. 간접 마운트 설정
/etc/auto.master.d/test.autofs 파일 설정
/mount /etc/test.indirect |
9. 간접 맵 파일 생성
indirect -rw, sync 192.168.100.100:/share |
10. 간접 마운트로 생성된 경로 접근 후 확인
# cd /mount
# ls
# cd /mount/indirect
11. 간접 맵에서 와일드카드 사용
와일드카드 : *,?
- 간접 마운트 설정 시 특정 경로 및 그 하위 디렉터리 포함
- 기존 간접 마운트 맵 파일 사용
- 마운트 포인트 경로는 마스터 맵을 사용
indirect -rw, sync 192.168.100.100:/share * -rw,sync 192.168.100.100:/shares/& |
12. 설정을 적용하기 위해 서비스 재시작
# systemctl restart autofs
*이 포스팅은 엔코아 플레이 데이터 수업 내용을 참고로 합니다.
'IT > Linux' 카테고리의 다른 글
쉘 프로그래밍 시 사용되는 쉘 기능 (0) | 2021.04.16 |
---|---|
쉘 프로그래밍의 이해 (0) | 2021.04.15 |
SSH (0) | 2021.04.13 |
소프트웨어 패키지 관리(rpm,yum) (0) | 2021.04.10 |
네트워크 관리(기초,NetworkManger,호스트이름) (0) | 2021.04.08 |
댓글