- Server : /nfsshare
- Client : /nfs/public
- file system : xfs 보다 ext4의 안정성이 다소 높음
>> file system의 memory cache에서 실제 디스크에 write 하는 주기가 xfs보다 ext4가 더 짧아
nfs 비정상 종료 시 손실되는 데이터량이 적음
(예: ext4는 5초 주기, xfs는 1분 주기 - nfs 서버의 성능이 제한적일 경우 xfs 선택이 유리)
- nfs 마운트 옵션
noatime, nodiratime : 접근 빈도가 높은 nfs 설정 시 설정. file/dir의 수정 시간과는 다른 항목으로
audit이나 최종 접근 시간이 필요하지 않을 경우 성능 향상을 꾀할 수 있음
>> noatime : file access 시 inode table의 atime을 update하지 않도록 설정
>> nodiratime : dir access 시 inode table의 atime을 update하지 않도록 설정
>> audit이나 증분백업 설정 등의 atime 확인이 필요할 경우에는 설정하면 안됨
nosuid 옵션 : 보안을 위해 클라이언트에서 접속해서 suid 동작하지 않게 설정
1. 패키지 설치
# yum -y install nfs nfs-utils rpc-bind
2. 기본 NFS share 정책 설정
# setsebool -P nfs_export_all_rw 1
>> NFS share 디렉토리에 read/write 권한 부여
# setsebool -P nfs_export_all_ro 1
>> NFS share 디렉토리에 read only 권한 부여
# setsetbool -P use_nfs_home_dirs 1
>> 사용자 home 디렉토리의 NFS share 허용
3. 공유 디렉토리 설정
(1) 디렉토리 생성 및 속성 설정
# mkdir -p /nfsshare/wasShare
# chmod 756 /nfsshare
(2) 공유 디렉토리 설정
# ls -l -Z /nfsshare/
drwxr-xr-x. nfsnobody nobody unconfined_u:object_r:default_t:s0 wasShare
# semanage fcontext -a -t public_content_rw_t "/nfsshare/wasShare(/.*)?"
>> read/write 권한 부여
# semanage fcontext -a -t public_content_t "/nfsshare/readonly(/.*)?"
>> read only 권한 부여
# restorecon -Rv /nfsshare
# ls -l -Z /nfsshare/
drwxr-xr-x. nfsnobody nobody unconfined_u:object_r:public_content_rw_t:s0 wasShare
4. exportfs 설정 : /etc/exportfs
# vi /etc/exports
/nfsshare/wasShare 192.168.10.10/255.255.255.255(rw,no_root_squash)
>> 192.168.10.10 서버에 read/write 권한 부여, root 권한으로 접속
/nfsshare 10.100.169.0/255.255.255.0(rw,sync,no_root_squash,no_all_squash)
>> rw : write 허용
>> sync : Synchronize shared directory
>> no_root_squash : enable root privilege
>> no_all_squash : enable user's authority
5. 방화벽 설정
- server name 기준
# firewall-cmd --permanent --add-service=nfs
# firewall-cmd --permanent --add-service=mountd
# firewall-cmd --permanent --add-service=rpc-bind
# firewall-cmd --reload
- port 기준
- TCP : 111, 892, 2049, 32803
# firewall-cmd --add-port=111/tcp --permanent
# firewall-cmd --add-port=892/tcp --permanent
# firewall-cmd --add-port=2049/tcp --permanent
# firewall-cmd --add-port=32803/tcp --permanent
- UDP : 111, 892, 2049, 32803 (32769?)
# firewall-cmd --add-port=111/udp --permanent
# firewall-cmd --add-port=892/udp --permanent
# firewall-cmd --add-port=2049/udp --permanent
# firewall-cmd --add-port=32803/udp --permanent
# firewall-cmd --reload
5. 서비스 가동 및 확인
# systemctl enable nfs
# systemctl enable rpcbind
# systemctl start nfs
# systemctl start rpcbind
# exportfs -v >> share된 디렉토리 표시
# rpcinfo -p >> rpcbind가 사용하는 포트 표시
'IT > linux' 카테고리의 다른 글
X11 forwarding over SSH (0) | 2023.06.22 |
---|---|
Ansible Controller 설치 (bundle) - Trial License (0) | 2023.06.20 |
openviswitch port mirror (0) | 2022.06.15 |
tip : disk full (0) | 2022.06.10 |
extending xfs filesystem (xfs 확장) (0) | 2022.06.10 |