1. 程式人生 > 其它 >python期末複習(7.2)

python期末複習(7.2)

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.將第二臺客戶端掛載到服務端上,檢視是否能夠共享到檔案