1. 程式人生 > >centos配置NFS服務和autofs自動掛載服務

centos配置NFS服務和autofs自動掛載服務

共享 nfs autofs

NFS:Network File System

網絡文件系統,基於內核的文件系統。Sun公司開發,通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件,基於RPC(Remote Procedure Call Protocol遠程過程調用)實現。

RPC采用C/S模式。客戶機請求程序調用進程發送一個有進程參數的調用信息到服務進程,然後等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然後等待下一個調用信息,最後,客戶端調用進程接收答復信息,獲得進程結果,然後調用執行繼續進行。

NFS優勢:節省本地存儲空間,將常用的數據如:home目錄,存放在一臺NFS服務器上且可以通過網絡訪問,那麽本地終端將可以減少自身存儲空間的使用。

軟件包:nfs-utils

端口:2049(nfsd), 其它端口由portmap(111)分配

配置文件:/etc/exports或/etc/exports.d/*.exports

CentOS7不支持同一目錄同時用nfs和samba共享,因為使用鎖機制不同

相關軟件包 :rpcbind(必須),tcp_wrappers

CentOS6開始portmap進程由rpcbind代替

NFS服務主要進程:

rpc.nfsd 最主要的NFS進程,管理客戶端是否可登錄

rpc.mountd 掛載和卸載NFS文件系統,包括權限管理

rpc.lockd 非必要,管理文件鎖,避免同時寫出錯

rpc.statd 非必要,檢查文件一致性,可修復文件

日誌:/var/lib/nfs/


centos 7.3配置nfs服務

2臺c73

nfs服務器配置IP-.71

1.安裝nfs服務和創建共享目錄
yum install nfs-utils
mkdir /app/nfsshare
echo 123 > abc
chmod 666 -R /app/nfsshare
2.編輯nfs配置文件
vi /etc/exports
/app/nfsshare *(insecure,rw,async,no_root_squash)
3.啟動服務
systemctl status rpcbind.service
systemctl start nfs-server
systemctl start nfs-utils
centos6.9需要先啟動rpcbind服務
service rpcbind start
service rpcbind status
service nfs start
4.加載配置和查看共享目錄
exportfs -r
exportfs -v
exportfs
5.查看端口是否開啟
rpcinfo -p
ss -tunlap | tr -s ‘ ‘   確認111和2049端口已開啟監聽

配置nfs為固定端口並配置防火墻開放nfs服務端口,防火墻除開放下面的端口,還需開放TCP和UDP的111和2049端口。

vi /etc/sysconfig/nfs

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

STATD_PORT=662

STATD_OUTGOING_PORT=2020

nfs配置文件/etc/exports中支持的主機格式

/myshare server.example.com
/myshare *.example.com    泛域名
/myshare server?.example.com
/myshare server[0-20].example.com
/myshare 172.25.11.10    IP地址
/myshare 172.25.0.0/16   網段
/myshare *(rw) 172.16.0.123(ro)   也可以添加多個
/myshare 2000:472:18:b51:c32:a21
/myshare 2000:472:18:b51::/64
/myshare *.example.com 172.25.0.0/16
/myshare desktop.example.com(ro)
/myshare desktop.example.com(ro) server[0-20].example.com(rw)
/myshare diskless.example.com(rw,no_root_squash)

默認選項:(ro,sync,root_squash)

相關選項:

ro,rw 只讀和讀寫

async 異步,數據變化後不立即寫磁盤,性能高

sync 及時同步,數據在請求時立即寫入

no_all_squash 保留共享文件的 UID 和 GID

all_squash 所有遠程用戶(包括root)都變成nfsnobody

root_squash 遠程root映射為nfsnobody,UID為65534

no_root_squash 遠程root映射成root用戶

anonuid 和anongid 匿名用戶映射為特定用戶和組,而非nfsnobody,可配合all_squash使用

rpcinfo -p hostname

rpcinfo –s hostname 查看RPC註冊程序

exportfs

–v 查看本機所有NFS共享

–r 重讀配置文件並共享目錄

–a 輸出本機所有共享

–au 停止本機所有共享


nfs客戶端配置IP-.72

1.安裝nfs服務並啟動
yum -y install nfs-utils
systemctl start nfs-utils
systemctl status nfs-utils
centos6.9需要先啟動rpcbind服務
service rpcbind start
service rpcbind status
service nfs start
2.查看遠程主機可用的共享目錄並掛載
showmount -e 192.168.10.71
mkdir /mnt/nfs
mount 192.168.10.71:/tmp/nfsshare /mnt/nfs
3.測試寫文件
cd /mnt/nfs
touch f1
echo abc >> abc
 
4.開機自動掛載
vi /etc/fstab
192.168.10.71:/tmp/nfsshare /mnt/nfs nfs defaults 0 0
mount -a
 
掛載為nfs3版本
umount /mnt/nfs
mount 192.168.10.71:/tmp/nfsshare /mnt/nfs -o vers=3

配置自動掛載autofs

可使用autofs工具按需要掛載NFS共享,在空閑時自動卸載,同/misc/cd目錄掛載

yum -y install autofs

systemctl start autofs

systemctl enable autofs

systemctl is-enabled autofs

cd /net

ls 192.168.10.71/tmp/nfsshare 註意掛載成功後會自動生成以IP地址命名的目錄

註意:自動掛載點建議為非系統默認目錄,如/misc,否則autofs自動掛載會自動覆蓋源目錄下的所有文件,相當於二次掛載,可能會影響原有的文件系統


方式一:默認,相對路徑

more /etc/auto.master

/misc /etc/auto.misc

more /etc/auto.misc 這裏的文件名必須和master定義的文件名一致

cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

方式二:推薦,絕對路徑

more /etc/auto.master

/- /etc/auto.dir

more /etc/auto.dir

/misc/cd -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom


另外還支持含通配符的目錄名

more /etc/auto.misc

* server:/export/&


基於安全考慮,建議使用nosuid,nodev,noexec 掛載選項

NFS 相關的掛載選項:

fg (默認)前臺掛載,bg後臺掛載

hard (默認)持續請求,soft非持續請求

intr 和 hard 配合,請求可中斷

rsize 和 wsize 讀和寫 block 大小,rsize=32768

_netdev 無網絡不掛載

示例:

mount nfsserver:/public /nfspublic

mount -o rw,nosuid,fg,hard,intr

172.16.0.1:/testdir /mnt/nfs/

CentOS7默認SELinux的布爾值

nfs_export_all_ro和nfs_export_all_rw都啟用,這允許NFS服務可以讀寫任意文件,基於安全考慮可關閉

對於只讀的 NFS 目錄 SELinux 安全上下文件應設為public_content_t或nfs_t

對於讀寫的 NFS 目錄 SELinux 安全上下文件應設為public_content_rw_t或nfs_t context,並且布爾值nfsd_anon_write Boolean必須啟用,以允許寫操作


本文出自 “rackie” 博客,請務必保留此出處http://rackie386.blog.51cto.com/11279229/1955865

centos配置NFS服務和autofs自動掛載服務