1、硬盤:sas/ssd磁盤,買多塊,硬件raid5/raid0,網卡吞吐量要大,至少千兆(多網卡bond0)
2、nfs客戶端掛載說明:
文件系統有自己的權限,掛載是建立在文件系統之上的,然后更改掛載的權限,一般不會更改掛載nfs的權限,使用默認值就好,也可以做相應的優化;
掛載權限是對文件權限的一個過濾,一個文件有多個權限,用戶在使用文件時調用的是它們之間最小的權限;
3、客戶端查看掛載:
df -hT
cat /proc/mounts
172.16.1.31:/data/ /mnt nfs4rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,
clientaddr=172.16.1.8,minorversion=0,local_lock=none,addr=172.16.1.31 0 0
4、nfs掛載參數:
5、nfs服務器端配置:
/data 10.0.0.1(rw,rsync,all_squash,anonuid=65534,anongid=65534)
6、nfs客戶端掛載配置:
(1)性能和安全兼顧:
mount -t nfs -o nosuid,noatime,nodiratime,nodev,noexec,rsize=131072,wsize=131072 10.0.0.1:/data/ /mnt/
(2)禁止更新目錄及文件時間戳掛載-性能優化:
mount -t nfs -o noatime,nodirtime 10.0.0.8:/data
(3)安全優化的掛載方式(並發會很差,安全代表着性能的降低):
mount -t nfs -o nosuid,nodev,noexec,noatime,nodirtime,intr,rsize=131072,wsize=131072 10.0.0.8:/data
(4)默認的掛載方式(已經很好了,可以不用更改)
mount -t nfs 10.0.0.8:/data
(5)本地文件系統的優化 (一般不會優化的)
(6)如果是nodirtime會報錯:
mount /dev/sda1 -o defaults,noatime,async /mnt
7、fstab修改錯誤導致系統無法啟動故障修復:
(1)救援模式或是維護模式:
修改 /etc/fstab :可能不讓操作
mount -o rw,remount / #可 (以rw的模式重新掛載分區,不會影響分區的掛載點和其它的屬性設置)
(2)文件系統只讀故障(文件系統內部自動一致性(只讀),async bug):
mount :查看掛載的硬盤的寫入格式,找到只讀的分區
mount -o rw,remount /
8、對nfs進行內核的優化:
#接收套接字緩沖區的默認值和最大值
[root@nfs01 ~]# cat /proc/sys/net/core/rmem_default
124928
[root@nfs01 ~]# cat /proc/sys/net/core/rmem_max
124928
#發送套接字緩沖區的默認值和最大值
[root@nfs01 ~]# cat /proc/sys/net/core/wmem_default
124928
[root@nfs01 ~]# cat /proc/sys/net/core/wmem_max
124928
vim /etc/syctl.conf
net.core.rmem_default=8388608 #8M
net.core.rmem_max=16777216 #16M
net.core.wmem_default=8388608
net.core.wmem_max=16777216
[root@nfs01 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
9、nfs卸載知識點:
強力卸載分區:
umount -lf /dev/sda1
如果卸載nfs掛載文件出現“umount:/mnt device is busy”需要退出掛載目錄再進行卸載;
如果nfs server宕機了則需要用使用命令“umount -lf /mnt/” 進行強制的卸載;
10、nfs的優缺點:
nfs是集群中后端的共享存儲,確保數據的一致性;
(1)nfs的優點:
nfs文件系統內數據是在文件系統之上的,即數據是能看的見得
部署快速,維護簡單方便,且可控,能滿足需求
可靠,從軟件層面上來看,數據可靠性高,經久耐用,數據是在文件系統之上的
服務非常的穩定
(2)nfs的缺點:
存在單點故障,如果nfs server宕機了,所有的客戶都不能訪問共享目錄。
在大數據高並發的場合,nfs效率低(cdn服務器,95%發數據被消化了,web緩存)
客戶端認證是基於ip和主機名的,權限根據id識別,安全性一般(用於內網,則問題不大)
nfs數據是明文的,nfs本身不對數據完整性進行驗證
多台客戶機器掛載一個nfs服務器時,連接管理麻煩(耦合度高),尤其當nfsServer出現問題時
所有的nfs客戶端都處於掛掉狀態,可以使用強制卸載進行修復;
nfs服務端和客戶端相對來說就是耦合性有些高,擴展性不是很好
11、應用建議:
大中小型網站(2000萬/日pv以下)線上應用,門戶網站也可以使用,生產場景應該多把數據的訪問
往前推,即盡量把靜態存儲里的資料通過cdn或緩存服務器提供服務,如果沒有緩存服務或者是架構不好
存儲服務器數量再多也抗不住壓力的,而且用戶的體驗會很差;
對於大型網站,nfs網絡文件系統的替代軟件為分布式文件系統mfs,glusterFS,fastDFS;