python期末複習(7.2)
阿新 • • 發佈:2022-05-13
NFS共享儲存
1.NFS概述
NFS(Network File System)主要功能是通過網路來做檔案儲存。
使用NFS可以實現多臺伺服器之間資料共享,也可以實現多臺伺服器之間的資料一致
2.NFS工作原理
1.當用戶傳送請求通過使用者程序訪問NFS客戶端,會根據不同的請求來使用不同的函式對資料進行處理 2.NFS客戶端通過TCP/IP協議的方式傳遞給NFS服務端 3.NFS服務端接收到請求,會先呼叫portmap程序進行埠對映 4.rpc.nfsd程序用於判斷NFS客戶端是否擁有許可權連結NFS服務端 5.Rpc.mount程序判斷客戶端是否有對應的許可權進行驗證 6.idmap程序實現使用者對映和壓縮 7.最後NFS服務端會將對應請求的函式轉換為本地能識別的命令,傳遞至核心,再由核心驅動硬體 # Rpc.nfsd:是NFS的守護程序,主要是管理客戶端是否能夠登陸NFS伺服器 # Rpc.mount:主要是管理NFS的檔案系統。當客戶端順利通過nfsd登陸到NFS伺服器後,在使用NFS服務所提供的檔案前,還必須順利通過檔案使用許可權的驗證。它會讀取NFS的配置檔案/etc/exports來對比客戶端許可權 # Portmap:主要是進行埠對映工作 # rpc是一個遠端過程呼叫,使用NFS必須要有rpc服務,它的服務名為:rpcbind
3.安裝部署NFS
3.1.服務端
1.先安裝nfs服務:
centos5,centos6:yum install -y nfs rpcbind
centos7:yum install -y nfs-utils
2.配置NFS服務:vim /etc/exports
# 共享目錄 允許訪問NFS服務端的網段(許可權)
/data 172.16.1.0/24(rw,sync,all_squash
nfs共享引數 | 引數作用 |
---|---|
rw* | 讀寫許可權 |
ro | 只讀許可權 |
root_squash | 當NFS客戶端以root身份訪問時,對映為NFS伺服器的匿名使用者 |
no_root_squash | 當NFS客戶端以root身份訪問時,對映為NFS伺服器的root管理員 |
all_squash | 無論NFS客戶端使用什麼身份訪問,都對映為NFS伺服器的匿名使用者 |
no_all_squash | 無論NFS客戶端使用什麼身份訪問,都不進行壓縮 |
sync* | 同時將資料寫入到記憶體和硬碟中,不丟失資料 |
async | 優先將資料儲存到記憶體中,然後在寫入到硬碟中,效率高,但有可能丟失資料 |
anonuid* | 配置all_squash使用,指定NFS的使用者uid,系統中必須存在 |
anongid* | 指定NFS的使用者gid,系統中必須存在 |
3.建立共享目錄:mkdir /data 4.修改共享目錄的屬主和屬組為nfs的匿名使用者: chown nfsnobody:nfsnobody /data 5.關閉防火牆和selinux: systemctl stop firewalld setenforce 0 6.啟動服務並加入開機自啟 systemctl start nfs systemctl enable nfs 7.檢查程序:ps -ef|grep nfs 8.檢查配置檔案是否生效:cat /var/lib/nfs/etab
3.2.客戶端操作
1.安裝nfs:yum install -y nfs-utils
2.檢視服務端裡面可以掛載的目錄:
showmount -e 172.16.1.31
3.掛載共享目錄:
mount -t nfs 172.16.1.31:/data /opt
4.NFS共享儲存實戰
4.1 環境
主機名 | WanIP | LanIP | 角色 | 部署應用 |
---|---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | 網站服務(nfs客戶端) | httpd,php,nfs |
web02 | 10.0.0.8 | 172.16.1.8 | 網站服務(nfs客戶端) | htppd,php,nfs |
nfs | 10.0.0.31 | 172.16.1.31 | 共享儲存(nfs服務端) | nfs |
4.2.部署交作業網站
1.安裝apache和php:
yum install - y apache php
2.下載程式碼到站點目錄中
3.解壓程式碼:
unzip kaoshi_modify.zip
4.讓apache和nfs統一使用使用者www uid和gid為666:
建立使用者及使用者組:groupadd www -g 666
useradd www -u 666 -g 666
5.修改apache的配置檔案,將使用者和使用者組改成www:
vim /etc/httpd/conf/httpd.conf
6.將站點目錄的屬主和屬組改成www:
chown www:www /var/www/html
7.啟動apache服務:
systemctl start httpd
8.檢查程序:
ps -ef|grep httpd
9.埠檢查:
ntestat -lntup|grep httpd
10.開啟瀏覽器訪問
11.上傳檔案
12.檢視站點目錄下是否有user_data目錄,檢視該目錄下是否有上傳的檔案,並檢視它們的屬主與屬組是否是www使用者
4.3 給交作業網站部署共享儲存
1.先安裝nfs服務:
centos5,centos6:yum install -y nfs rpcbind
centos7:yum install -y nfs-utils
2.配置NFS服務:vim /etc/exports
# 共享目錄 允許訪問NFS服務端的網段(許可權)
/data 172.16.1.0/24(rw,sync,anonuid=666,anuogid=666,all_squash
3.建立www使用者:
groupadd www -g 666
useradd www -u 666 -g 666
4.建立共享目錄並修改共享目錄的屬主與屬組為nfs指定的匿名使用者:
mkdir /data
chown www:www /data
5.關閉防火牆和selinux:
systemctl stop firewalld
setenforce 0
6.啟動服務並加入開機自啟
systemctl start nfs
systemctl enable nfs
7.檢查程序:ps -ef|grep nfs
8.檢查配置檔案是否生效:cat /var/lib/nfs/etab
9.在客戶端掛載nfs服務端的目錄:
mount -t nfs 172.16.1.31:/data /var/www/html/user_data
10.上傳檔案檢視服務端是否能夠獲取到檔案
11.將第二臺客戶端掛載到服務端上,檢視是否能夠共享到檔案