網(wǎng)絡文件共享服務
1、FTP文件傳輸協(xié)議
1.1 FTP工作原理
FTP的20和21端口的區(qū)別
-
20端口是用來傳輸數(shù)據(jù)的
-
21端口是客戶端用來連接FTP服務器
-
主動模式(PORT):
- 客戶端連接到FTP服務端的21號端口,發(fā)送用戶名和密碼
- 當客戶端成功登陸FTP服務后要list列表或者讀取FTP服務上的數(shù)據(jù)時,客戶端會隨機開放一個端口(1024以上),發(fā)送PORT(主動模式)命令到FTP服務器,告訴服務器,客戶端采用主動模式和客戶端開放的端口
- FTP服務器收到PORT主動模式命令和端口號后,通過FTP服務器自身的20端口和客戶端開放的端口互相連接,發(fā)送數(shù)據(jù)(FTP-server的20端口---------------->(連接)客戶端(隨機開放的端口)
- 被動模式(PASV):
FTP客戶端連接FTP服務器的21端口,發(fā)送用戶名和密碼,登錄成功后要list列表或者讀取數(shù)據(jù)時,客戶端發(fā)送PASV命令到FTP服務器,F(xiàn)TP服務器會隨機開放一個端口(1024以上),然后把開放的端口告訴客戶端,客戶端在連接FTP服務器開放的端口來進行數(shù)據(jù)的傳輸
- 主動模式和被動模式的區(qū)別
主要區(qū)別在兩者傳輸數(shù)據(jù)上,主動模式下FTP傳輸數(shù)據(jù)是:服務端的20端口連接客戶端隨機開放的端口;被動模式下FTP傳輸數(shù)據(jù)是:客戶端連接FTP服務器開放的隨機端口。
因主動模式需要客戶端必須開放端口給服務器,很多客戶端都是在防火墻內,開放端口給FTP服務器訪問比較困難。
被動模式只需要服務器端開放端口給客戶端連接就行了。所以通常使用FTP的被動模式讀取數(shù)據(jù)
1.2FTP服務狀態(tài)碼
125:數(shù)據(jù)連接打開
200:命令成功
230:登錄成功
331:用戶名正確
4xx:客戶端錯誤 425:不能打開數(shù)據(jù)連接
5xx:服務器錯誤 530:服務器無法登錄
2、NFS服務
2.1概念
NFS:網(wǎng)絡文件系統(tǒng),基于內核的文件系統(tǒng)。用戶和程序可以像訪問本地文件一樣訪問遠端系統(tǒng)上的文件,基于RPC(Remote Procedure CallProtocol 遠程過程調用)實現(xiàn)。
RPC采用C/S 模式,客戶機請求程序調用進程發(fā)送一個有進程參數(shù)的調用信息到服務進程,然后等待應答信息。在服務器端,進程保持睡眠狀態(tài)直到調用信息到大為止。當一個調用信息到達,服務器獲得進程參數(shù),計算結果,發(fā)送答復信息,然后等待下一個調用信息,最后,客戶端調用進程接收答復信息,獲得進程結果,然后調用執(zhí)行繼續(xù)進行。
2.2NFS軟件介紹
- 軟件包:nfs-utils
- NFS服務主要進程:
- rpc.nfsd 最主要的NFS進程,管理客戶端是否可登錄
- rpc.mountd 掛載和卸載NFS文件系統(tǒng),包括權限管理
- rpc.lockd 非必要,管理文件鎖,避免同時寫出錯
- rpc.statd 非必要,檢查文件一致性,可修復文件
- NFS日志文件:/var/lib/nfs/
- NFS配置文件:/etc/exports 或者 /etc/exports.d/*.exports
2.3 NFS共享配置文件格式
/dir (共享目錄) 主機
1、ro,rw #只讀和讀寫
2、async #異步,數(shù)據(jù)變化后不立即寫入磁盤,先寫入緩沖區(qū)中,過一段時間再寫入磁盤,性能高,安全性低
3、sync #同步,數(shù)據(jù)再請求時立即寫入共享存儲磁盤,性能低,安全性高
4、root_squash #(默認)遠程root映射為nfsnobody,UID為65534,CentOS8 為nobody,CentOS7以前的版本為nfsnobody
5、no_root_squash #遠程root映射成NFS服務器的root用戶
6、all_squash #所有遠程用戶(包括root)都變成nfsnobody,CentOS8 為nobody
7、no_all_squash (默認)保留共享文件的UID和GID
8、anonuid和anongid 指明匿名用戶映射為特定用戶UID和組GID,而非nobody,可配合all_squash使用
2.4 NFS工具
2.4.1 exports:可用于管理NFS導出的文件系統(tǒng)
-v #查看本機所有NFS共享
-r #重讀配置文件,并共享目錄
-a #輸出本機所有共享
-au #停止本機所有共享
2.4.2 showmount
showmount -e hostname #查看遠程主機的NFS共享
#實例:
[root@centos7 ~]#showmount -e 10.0.0.8
Export list for 10.0.0.8:
/data/wordpress *
2.4.3mount.nfs
[root@centos7 ~]#mkdir /mnt/nfs
[root@centos7 ~]#mount 10.0.0.8:/data/wordpress /mnt/nfs
[root@centos7 ~]#ls /mnt/nfs
index.html
[root@centos7 ~]#df -T /mnt/nfs
Filesystem Type 1K-blocks Used Available Use% Mounted on
10.0.0.8:/data/wordpress nfs4 52403200 398336 52004864 1% /mnt/nfs
2.5 自動掛載
- 軟件包:autofs
- 服務文件:/usr/lib/systemd/system/autofs.service
- 配置文件:/etc/auto.mster
3、數(shù)據(jù)同步
在生產(chǎn)環(huán)境,有時會需要兩臺主機的特定目錄實現(xiàn)實時同步。比如,將NFS共享目錄的數(shù)據(jù)文件,自動
實時同步到備份服務器特定目錄中
- 實現(xiàn)實時同步的方法
- inotify + rsync 方式實現(xiàn)數(shù)據(jù)同步
- sersync
- 工作原理:
- 要利用監(jiān)控服務(inotify),監(jiān)控同步數(shù)據(jù)服務器目錄中信息的變化
- 發(fā)現(xiàn)目錄中數(shù)據(jù)產(chǎn)生變化,就利用rsync服務推送到備份服務器上
3.1inotify
概念:
異步的文件系統(tǒng)事件監(jiān)控機制,利用事件驅動機制,而無須通過諸如cron等的輪詢機制來獲取事件,
linux內核從2.6.13起支持 inotify,通過inotify可以監(jiān)控文件系統(tǒng)中添加、刪除,修改、移動等各種事件。
- 實現(xiàn)inotify軟件:
- inotify-tools
- sersync
- lrsyncd
- inotify + rsync使用方式
- inotify對同步數(shù)據(jù)目錄信息的監(jiān)控
- rsync完成對數(shù)據(jù)的同步
- 利用腳本進行結合
實現(xiàn)notify
-
內核是否支持
Linux支持inotify的內核最小版本為 2.6.13,參看man 7 inotify
-
inotify 內核參數(shù)說明:
- max_queued_events:inotify 事件隊列最大長度,如值太小會出現(xiàn) Event Queue Overflow 錯
誤,默認值:16384, 生產(chǎn)環(huán)境建議調大,比如:327679 - max_user_instances:每個用戶創(chuàng)建inotify實例最大值,默認值:128
- max_user_watches:可以監(jiān)視的文件的總數(shù)量(inotifywait 單進程),默認值:8192,建議調大
[root@data-centos8 ~]#vim /etc/sysctl.conf fs.inotify.max_queued_events=66666 fs.inotify.max_user_watches=100000 [root@centos8 ~]#sysctl -p fs.inotify.max_queued_events = 66666 fs.inotify.max_user_watches = 100000
- max_queued_events:inotify 事件隊列最大長度,如值太小會出現(xiàn) Event Queue Overflow 錯
-
inotify-tools工具
- inotifywait: 在被監(jiān)控的文件或目錄上等待特定文件系統(tǒng)事件(open ,close,delete等)發(fā)生,
常用于實時同步的目錄監(jiān)控 - inotifywatch:收集被監(jiān)控的文件系統(tǒng)使用的統(tǒng)計數(shù)據(jù),指文件系統(tǒng)事件發(fā)生的次數(shù)統(tǒng)計
- inotifywait: 在被監(jiān)控的文件或目錄上等待特定文件系統(tǒng)事件(open ,close,delete等)發(fā)生,
3.2 rsync
概念:
rsync 常用于做為 linux系統(tǒng)下的數(shù)據(jù)鏡像備份工具,實現(xiàn)遠程同步,支持本地復制,或者與其他SSH、
rsync主機同步數(shù)據(jù),支持增量備份,配合任務計劃,rsync能實現(xiàn)定時或間隔同步,配合inotify或
sersync,可以實現(xiàn)觸發(fā)式的實時數(shù)據(jù)同步
rsync工作工作方式:
-
本地文件系統(tǒng)上實現(xiàn)同步。命令行語法格式為上述"Local"段的格式
-
本地主機使用遠程shell和遠程主機通信。命令行語法格式為上述"Access via remote shell"段的格式
-
本地主機通過網(wǎng)絡套接字連接遠程主機上的rsync daemon。命令行語法格式為上述"Access viarsync daemon"段的格式
工作方式的區(qū)別:
前兩者的本質是通過本地或遠程shell,而第3種方式則是讓遠程主機上運行rsyncd服務,使其監(jiān)聽在一
個端口上,等待客戶端的連接。文章來源:http://www.zghlxwxcb.cn/news/detail-434998.html
實驗
remote shell"段的格式
-
本地主機通過網(wǎng)絡套接字連接遠程主機上的rsync daemon。命令行語法格式為上述"Access viarsync daemon"段的格式
工作方式的區(qū)別:
前兩者的本質是通過本地或遠程shell,而第3種方式則是讓遠程主機上運行rsyncd服務,使其監(jiān)聽在一
個端口上,等待客戶端的連接。
實驗
電腦內存不夠無法開啟這么多服務器,后面補上。文章來源地址http://www.zghlxwxcb.cn/news/detail-434998.html
到了這里,關于回爐重造十二----網(wǎng)絡文件共享服務的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!