리눅스(CentOS) 파일기반 공유 스토리지
파일기반 공유 스토리지
- 블록 기반 스토리지
- DAS : Direct Attached Storage
- SAN : Storage Area Network - FC(FibreChannel) - iSCSI
- 파일 기반 스토리지
- NAS : Network Attached Storage - NFS/CIFS
NFS(Network FIle System)
- 유닉스/리눅스 계열 시스템의 기본 파일 공유 형태
- Sun Microsystems(Solaris Unix, Java)
- 파일 기반의 공유 스토리지 : 공유 서버에서 성정한 공유 디렉토리를 다른 시스템이 연결하여 사용
NFS 실습
NFS 서버관련 기능 설치
# yum search nfs-utils # yum -y install nfs-utils
NFS 공유 설정
/etc/exports 파일을 수정하여 공유 설정 추가
공유 디렉토리 공유대상 ([옵션])
공유할 디렉토리 생성
mkdir /share chmod 777 /share
공유 설정 예시
# vi /etc/exports /share 192.168.100.0/24 #/share 192.168.100.200 #/share www.example.local #/share *.example.local #/share 192.168.100.0/24 192.168.101.0/24 #/share server[1-5].example.local
방화벽 설정 변경
# firewall-cmd --add-service=nfs --permanent # firewall-cmd --add-service=rpc-bind --permanent # firewall-cmd --add-service=mountd --permanent # firewall-cmd --reload
- NFS 연결(클라이언트에서 실행)
- 일반 저장장치 : mount <저장소장치> <마운트포인트>
- NFS 연결 : mount -t nfs [원격 nfs 디렉토리 정보] [마운트 포인트]
마운트포인트 생성 및 마운트
```
# mkdir /mount/nfs
# mount -t nfs 192.168.100.100:/share /mount/nfs
```
- NFS공유 설정 변경
- 기존 공유 설정(/etc/exports) 파일의 공유 설정을 읽기/ 쓰기 가능으로 변경
```
# vi /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...)
root_squash : sec=sys 설정이 되어 있더라도, root계정에 대해서는 nfsnobody 권한을 사용하도록 설정
nfsnobody 권한을 사용하도록 설정
ex) /etc/exports 파일의 설정 수정
/share 192.168.100.0/24(rw,sec=sys,no_root_squash)
ro, rw : 읽기 전용 or 읽기/쓰기
- 공유 시, 마운트 시 각각 ro, rw 설정 가능
- 한쪽이라도 ro로 설정되어 있을 경우, 결과적으로 읽기만 가능
- 공유 시, 마운트 시 각각 ro, rw 설정 가능
자동마운트 설정(Automount)
NFS 마운트 시 mount 명령어로 연결할 경우는 지속적으로 마운트가 유지
자동마운트 설정 시 설정이 적용될 떄 즉시 마운트가 실행되지 않음
자동마운트를 통해 연결될 위치에 접근 시, 마운트가 수행됨
장기간 사용하지 않을 경우, 스스로 연결을 해제함
NFS 서버의 디렉토리 내 하위 디렉토리 등을 한 설정으로 마운트 되도록 할 수 있음
ex) NFS 자동마운트를 통한 사용자 홈 디렉토리 공유
자동마운트 설정 시 : 마스터 맵 - 직접/ 간접 맵
마스터 맵 : 마운트 포인트, 맵 파일을 명시
- [마운트 포인트] [맵 파일 경로]
- /etc/auto.master.d/[파일명].autofs 형태로 생성된 파일만 적용
직접 맵 : 마운트포인트에 지정된 경로를 자동마운트 설정, 마운트포인트가 절대경로
<마운트포인트(절대경로)> <마운트옵션> <NFS공유위치>
간접 맵 : 마운트포인데에 대한 정보를 상대경로로 지정, 마스터 맵에 설정된 마운트포인트에 간접맵설정에 지정된 마운트포인트를 경합하여 마운트 위치 지정
<마운트포인트(상대경로)> <마운트옵션> <NFS공유위치>
자동마운트 실습
NFS 서버는 공유가 걸려있는 상태 (이전실습 상태 그대로 유지)
NFS 클라이언트에서 autofs 패키지를 설치
# yum search autofs
# yum install autofs
직접마운트 설정
직접마운트 설정 - /etc/auto.master.d/test.autofs파일 생성
#vi /etc/auto.master.d/test.autofs /- /etc/test.direct
직접 마운트 설정이 들어있는 직접 맵 파일 생성 - /etc/test.direct 파일생성
#vi /etc/test.direct /mount/nfs -rw,sync 192.168.100.100:/share
autofs 서비스 시작/활성화
# systemctl start autofs.service # systemctl enable autofs.service
간접마운트 설정
NFS 서버에서 공유 추가 설정
server# mkdir -p /shares/{alpha,beta,gamma} 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/beta 192.168.100.0/24(rw) /shares/gamma 192.168.100.0/24(rw) server# exportfs -r server# exportfs -v
간접마운트 설정 - /etc/auto.master.d/test.autofs파일 생성
#vi /etc/auto.master.d/test.autofs /mount /etc/test.indirect
간접 맵 파일 생성 - /etc/test.indirect 파일 생성
#vi /etc/test.indirect indirect -rw,sync 192.168.100.100:/share
간접마운트로 생성된 경로 접근 후 확인
# cd /mount # ls # cd /mount/indirect
간접 맵에서 와일드 카드 사용
와일드 카드 : *, ?
간접 마운트 설정 시 특정 경로 및 그 하위 디렉토리 포함
기존 간접마운트 맵 파일 사용
마운트 포인트 경로는 마스터맵 사용
```
#vi /etc/test.indirect
indirect -rw,sync 192.168.100.100:/share-rw,sync 192.168.100.100:/&
설정을 적용하기 위해 서비스 재시작
#systemctl restart autofs.service