一,檔案系統介紹:
1,檔案系統是對乙個儲存裝置上的資料和元資料進行組織的一種機制
2,分割槽必須格式建立檔案系統才能存放資料,不同的分割槽只能有一種檔案系統
3,linux下常見檔案系統 ext2 , ext3 , ext4 , zfs , xfs 和 reiserfs;windows常見的檔案系統ntfs, fat32
linux主要關注 ext2 , ext3 , ext4
二,檔案系統選型介紹:
1,sas/sata硬碟檔案系統選擇
1)大量小檔案業務首選 reiserfs
2) 資料庫業務(例如:mysql),門戶選 xfs
4)藍汛的cache業務(cdn**加速)也在用ext2 (ext2沒有日誌功能)
常規應用:
centos 5.x 系統用 ext3
centos 6.x 系統用 ext4
小結:1)centos預設的檔案系統都是比較優秀的。
2)xfs、reiserfs 這兩個檔案都需要單獨安裝。預設不支援的,維護可能不方便。
3)大併發並不是過多的做磁碟的優化,而是在前面增加快取
2,ssd檔案系統選擇
ext4/reiserfs 都可以作為ssd檔案系統
三,中小公司用nfs(network file system),大公司除了用nfs外,可能還會用mfs、gfs、fastfs(51cto)、tfs等分布式檔案系統;
nfs用在企業集群架構中做網路資料共享的,儲存靜態資源(使用者上傳的、檔案等),lvs - > 多台web伺服器 - >nfs檔案伺服器
四,nfs掛載原理
mount 遠端ip位址 本地目錄;
ntf服務會啟動多個隨機不同的埠,給客戶端帶來困擾,客戶端不知道啟動了哪些埠,所以產生了rpc(遠端過程呼叫)服務來解決這個問題,rpc服務主要的作用是記錄每個nfs服務使用的埠;
nfs原理流程:
1,伺服器端啟動rpc服務(c5: portmap ;c6: rpcbind)
2,伺服器端啟動nfs服務(nfs向rpc註冊埠)
3,客戶端啟動rpc服務,並向伺服器端rpc請求埠
4,伺服器端rpc向客戶端rpc返回埠
5,客戶端拿到埠向nfs伺服器端請求資料
(vmware轉殖後,新vm網絡卡和舊的一樣的解決辦法:/etc/udev/rules.d/70-persistent-net.rules
刪除後重啟機器就可以了,因為這個檔案繫結了網絡卡和
mac位址,所以換了網絡卡以後
mac位址變了,所以不能正常啟動)
五,nfs安裝(1臺伺服器端 + 1臺客戶端)
1,nfs軟體:要部署nfs服務,需要安裝下面的軟體包
1)nfs-utils :這個nfs服務主程式
包括rpc.nfsd 、rpc.mountd 兩個daemons 和相關文件說明及執行命令檔案等。
2)portmap:c5下面的rpc的主程式(c6下名字為 rpcbind)
在提供nfs服務之前必須先啟動rpcbind
2, 伺服器端和客戶端 查詢是否安裝:rpm -qa nfs-utils rpcbind ,沒有則安裝(工作中只用一種):
1) yum groupinstall "nfs file server" -y
2)或 yum install rpcbind nfs-utils -y
3,伺服器端配置
1)啟動rpc服務:/etc/init.d/rpcbind start
2)用乙個命令可以檢視本機nfs服務可用的埠:rpcinfo -p localhost :(rpc服務對外使用111埠,所以本機沒有可用的nfs埠)
3)伺服器端啟動nfs服務:/etc/init.d/nfs start
4)再檢視服務端rpc服務,會發現很多埠:rpcinfo -p localhost
5)伺服器端設為開啟啟動:
chkconfig nfs on
chkconfig rpcbind on
6)客戶端啟動rpc服務
/etc/init.d/rpcbind start
chkconfig rpcbind on
7)伺服器端nfs的配置檔案:/etc/exports
/data 192.168.1.0/24(rw,sync)
(sync:把資料從buffer寫入到磁碟中;rw:讀寫;ro:唯讀)
8)伺服器端重啟nfs: /etc/init.d/nfs reload (平滑重啟nfs服務,不要用restart,restart會馬上重啟,而reload是不影響其他操作情況下進行重啟,更平滑安全)
本機檢查是否共享出來:showmount -e localhost
10)客戶端掛載:mount -t nfs [ 伺服器端ip ]:/data /mnt (重啟失效,需要把掛載操作放到/etc/rc.local 或 /etc/fstab;例如:echo "mount -t nfs [ 伺服器端ip ]:/data /mnt" >> /etc/rc.local)
11) 當客戶端往伺服器端寫資料時,伺服器端接收到資料後,是以nfsnobody(安裝nfs時自動建立的乙個使用者)使用者的身份寫資料的,所以需要將伺服器端共享目錄及子目錄的屬主改為nfsnobody
chown -r nfsnobody.nfsnobody [ 共享目錄 ]
六,1臺伺服器端 , 2臺(多台)客戶端
1) 建立乙個nfs共享使用者,所有機器都存在並且uid,gid相同;
useradd -u 555 oldboy
2)伺服器端/etc/exports配置;
/data 192.168.1.0/24(rw,sync,all_squash,anonuid=555,anongid=555) #引數可以參考 /var/lib/nfs/etab
3)客戶端進行掛載
七,企業生產環境nfs客戶端掛載建議
1,把nfs rpc服務的啟動命令和掛載命令都放入到/etc/rc.local,然後再通過nagios監控軟體監控開機後的掛載情況。
2,如果決定考慮把掛載命令放入到/etc/fstab裡,那麼關鍵是第5,6列的數字要為0,即不備份,不做磁碟檢查(經驗:/或/boot 這兩個才做磁碟檢查)
經驗:為什麼要把開機啟動的服務放到/etc/rc.local呢,規範,統一開機啟動的位置。相當於把/etc/rc.local當作伺服器的檔案。所有伺服器的啟動配置都放到檔案裡,做好注釋。這是乙個規範的態度;或者寫好啟動指令碼都用chkconfig管理。
八,生產場景nfs共享儲存優化:
1,硬體方面:磁碟優化,選擇sas/ssd磁碟,買多塊,raid10安全效能高;網絡卡好
2,伺服器端:all_squash,async(效率高、不可靠),sync(效率一般,可靠)
3,客戶端:rsize,wsize,noatime,nodiratime,nosuid,noexec,soft(hard,intr)
例如:mount -t nfs -o nosuid,noexec,noatime,nodiratime,rsize=131072,wsize=131072 [ 伺服器ip位址 ]:/[ 共享目錄 ] /[ 掛載目錄 ]
4,核心的優化:
net.core.wmen_default = 8388608
net.core.rmen_default = 8388608
net.core.rmen_max = 16777216
net.core.wmen_max = 16777216
需要退出掛載目錄再進行解除安裝,或者是nfs server宕機了,需要強制解除安裝 mount -lf /mnt
工作中共享儲存一般在企業內網,一般無需開防火牆iptables
九,學習方法,學習習慣:
在使用中記憶,每天睡覺前,想下今天講過的和總結過的,過電影;
每天早晨醒來後,想下幾天要做的事情,計畫;
學會做小結,得出實踐後的結論;
通過例子,案例來記憶對應的理論;
學習知識盡量用man,看官方幫助,找到知識的源頭;
畫邏輯圖來表達知識容易記憶,讓知識變得更簡單,容易記憶;
用資料說話,用實際測試得出結論;
檔案管理 1 1 檔案與檔案系統
1.1.1 檔案及其分類 一 對比 以前認識和現在認識 1 old 檔案是最小單元,不能再細分。new 域是最小單元。域 記錄 檔案 2 old 域 記錄 檔案,該格式以為是資料庫檔案的獨創。new 該格式是檔案的先創,資料庫檔案在此基礎上的推演。再次體現大道理 任何新生事物都以以前事物為基礎,在其...
6 檔案系統
root edaserver1 ls bin boot dev etc home lib lib64 lost found media misc mnt net opt proc root sbin selinux srv sys tftpboot tmp usr var bin所有賬號命令,二進位...
4 14 檔案系統
為了說明檔案鏈結的概念,先要介紹unix檔案系統的基本結構。同時,了解i節點和指向i節點的目錄項之間的區別也是很有益的。目前,正在使用的unix檔案系統有多種實現。例如,solaris支援多種不同型別的磁碟檔案系統 傳統的基於bsd的unix檔案系統 稱為ufs 讀 寫dos格式軟盤的檔案系統 稱為...