日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NFS共享储存

發布時間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NFS共享储存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • NFS
  • 為什么要使用共享存儲
  • 集群沒有共享存儲的情況
  • 集群有共享存儲
  • NFS的工作原理
  • NFS部署
  • 1.環境準備
  • 2.關閉防火墻和selinux
  • 3.部署nfs服務端
  • 4.啟動rpcbind
  • 5.檢測端口和進程
  • 6.編輯配置文件
  • 7.部署NFS客戶端
  • 8.啟動rpcbind
  • 9.查看可掛載點
  • 10.掛載目錄
  • 統一web、nfs、backup的用戶權限
  • 代碼部署步驟
  • rsync+nfs實戰,解決nfs的單點故障
  • 配置客戶端
  • 結合rsync
  • rsync服務端操作(backup)
  • web01客戶端寫腳本
    • 檢測

NFS

共享存儲,文件服務器

NFS是Network File System的縮寫及網絡文件系統。NFS主要功能是通過局域網絡讓不同的主機系統之間可以共享文件或目錄。NFS系統和Windows網絡共享、網絡驅動器類似, 只不過windows用于局域網, NFS用于企業集群架構中, 如果是大型網站, 會用到更復雜的分布式文件系統FastDFS,glusterfs,HDFS,ceph

為什么要使用共享存儲

1.實現多臺服務器之間數據共享

2.實現多臺服務器之間數據一致

集群沒有共享存儲的情況

1.A用戶上傳圖片經過負載均衡,負載均衡將上傳請求調度至WEB1服務器上。

2.B用戶訪問A用戶上傳的圖片,此時B用戶被負載均衡調度至WEB2上,因為WEB2上沒有這張圖片,所以B用戶無法看到A用戶傳的圖片。

集群有共享存儲

1.A用戶上傳圖片無論被負載均衡調度至WEB1還是WEB2, 最終數據都被寫入至共享存儲

2.B用戶訪問A用戶上傳圖片時,無論調度至WEB1還是WEB2,最終都會上共享存儲訪問對應的文件,這樣就可以訪問到資源了

NFS的工作原理

1.用戶進程訪問NFS客戶端,使用不同的函數對數據進行處理

2.NFS客戶端通過TCP/IP的方式傳遞給NFS服務端。

3.NFS服務端接收到請求后,會先調用portmap進程進行端口映射。

4.nfsd進程用于判斷NFS客戶端是否擁有權限連接NFS服務端。

5.Rpc.mount進程判斷客戶端是否有對應的權限進行驗證。

6.idmap進程實現用戶映射和壓縮7.最后NFS服務端會將對應請求的函數轉換為本地能識別的命令,傳遞至內核,由內核驅動硬件。

NFS部署

1.環境準備

主機名角色外網IP內網IP
backupnfs的客戶端10.0.0.41172.16.1.41
nfsnfs的服務端10.0.0.31172.16.1.31
web01nfs的客戶端10.0.0.7172.16.1.7

2.關閉防火墻和selinux

#1.關閉Firewalld防火墻 [root@nfs ~]# systemctl disable firewalld [root@nfs ~]# systemctl stop firewalld#2.關閉selinux防火墻 [root@nfs ~]# sed -ri '#^SELINUX=#cSELINUX=Disabled' /etc/selinux/config [root@nfs ~]# setenforce 0

3.部署nfs服務端

yum -y install nfs-utils rpcbind

4.啟動rpcbind

#啟動rpcbind [root@nfs01 ~]# systemctl start rpcbind [root@web01 ~]# systemctl start rpcbind [root@backup ~]# systemctl start rpcbind#添加開機自啟 [root@nfs01 ~]# systemctl start rpcbind [root@web01 ~]# systemctl enable rpcbind [root@backup ~]# systemctl start rpcbindll /etc/systemd/system/multi-user.target.wants/#查看開機自啟

5.檢測端口和進程

[root@nfs01 ~]# ps -ef|grep rpc rpc 11746 1 0 01:12 ? 00:00:00 /sbin/rpcbind -w root 11750 11421 0 01:15 pts/1 00:00:00 grep --color=auto rpc[root@nfs01 ~]# netstat -lntup|grep 111 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp6 0 0 :::111 :::* LISTEN 1/systemd udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd udp6 0 0 :::111 :::* 1/systemd

6.編輯配置文件

[root@nfs01 ~]# vim /etc/exports /data 172.16.1.0/24(rw,sync,all_squash)

6.1創建/data目錄

[root@nfs01 data]# mkdir /data [root@nfs01 data]# chown -R nfsnobody.nfsnobody /data

6.2啟動NFS

[root@nfs01 ~]# systemctl start nfs-server

7.部署NFS客戶端

yum install -y rpcbind nfs-utils

8.啟動rpcbind

#只啟動rpcbind [root@web01 ~]# systemctl start rpcbind [root@backup ~]# systemctl start rpcbind

9.查看可掛載點

[root@backup ~]# showmount -e 172.16.1.31

10.掛載目錄

[root@backup ~]# mount -t nfs 172.16.1.31:/data /backup#永久掛載 #編輯fstab文件 [root@nfs-client ~]# vim /etc/fstab 172.16.1.31:/data /backup nfs defaults 0 0#驗證fstab是否寫正確 [root@nfs-client ~]# mount -a

統一web、nfs、backup的用戶權限

#創建www用戶和組 [root@backup html]# groupadd www -g 666 [root@backup html]# useradd www -u 666 -g 666---------------------------------WEB----------------------------------- #修改httpd的配置文件 yum -y install httpd php vim /etc/httpd/conf/httpd.conf User www Group www[root@web01 html]# systemctl restart httpd ps -ef|grep httpd ------------------------------------NFS-------------------------------------- #修改nfs的配置文件 [root@nfs01 data]# vim /etc/exports /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)[root@nfs01 data]# systemctl restart rpcbind nfs-server#重新授權 [root@nfs01 data]# chown -R www.www /data

代碼部署步驟

1.安裝服務,httpd(apache)和php

yum install -y httpd php

2.查找httpd的站點目錄

[root@web01 html]# rpm -ql httpd|grep html [root@web01 html]# rz windows-提交作業代碼.zip [root@web01 html]# yum install -y unzip [root@web01 html]# unzip windows-提交作業代碼.zip

3.修改上傳目錄

[root@backup ~]# vim /var/www/html/upload_file.php $wen="/var/www/html/tupian";#修改背景圖片 vim /var/www/htmlindex.html

排錯:

rpm -ql httpd ll tail -f +加路徑

4.啟動服務
systemctl start httpd

#查看權限 ll ps -ef|grep httpd

5.掛載

#兩臺客戶端重新掛載,實現共享 mount -t nfs 172.16.1.31:/data /var/www/html/tupian

rsync+nfs實戰,解決nfs的單點故障

服務器系統角色IP
CentOS 7.5NfsServer(A)172.16.1.31
CentOS 7.5NfsClient(B)172.16.1.41
CentOS 7.5NfsClient(C)172.16.1.7

1)安裝服務端

yum install -y rpcbind nfs-utils

2)編輯服務端的配置文件

vim /etc/exports /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

3)創建用戶

groupadd www -g 666 useradd www -u 666 -g 666 -s /sbin/nologin -M

4)創建目錄并授權

mkdir /data chown -R www.www /data

5)啟動服務

systemctl start rpcbind nfs-server#centos6先停nfs-server后停rpcbind,rpcbind類似于中介

6)檢查

cat /var/lib/nfs/etab /data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)

配置客戶端

1)安裝客戶端服務

yum install -y rpcbind nfs-utils

2)啟動rpc

systemctl start rpcbind

3)查看掛載點

showmount -e 172.16.1.31#安裝httpd yum -y install httpd #修改權限 vim /etc/httpd/conf/httpd.conf #重啟httpd systemctl restart httpd

4)掛載

mount -t nfs 172.16.1.31:/data /var/www/html/tupian #通過mount -o指定掛載參數,禁止使用suid,exec,增加安全性能 [root@nfs-client ~]# mount -t nfs -o nosuid,noexec,nodev 172.16.1.31:/data /mnt

結合rsync

1)NFS安裝rsync

yum install -y rsync

2)客戶端與服務端的關系

3)使用免密的方式

export RSYNC_PASSWORD=123456

rsync服務端操作(backup)

1)創建www用戶

groupadd www -g 666 useradd www -u 666 -g 666 -s /sbin/nologin -M

2)統一rsync服務的用戶和用戶組(修改配置文件)

vim /etc/rsyncd.conf uid = www gid = www port = 873 fake super = yes use chroot = no max connections = 200 timeout = 600 ignore errors read only = false list = false auth users = rsync_backup secrets file = /etc/rsync.passwd log file = /var/log/rsyncd.log ##################################### [zls] comment = welcome to oldboyedu backup! path = /backup[naonao] comment = welcome to oldboyedu nfs! path = /data

3)創建目錄并授權

[root@backup ~]# mkdir /data [root@backup ~]# chown -R www.www /data/ systemctl start rsync export RSYNC_PASSWORD=123 #測試推 rsync -avz --delete /data rsync_backup@172.16.1.41::naonao

4)編寫備份腳本

vim rsync.sh #!/bin/bashPATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin' H=`hostname` I=`ifconfig eth1|awk 'NR==2{print $2}'` D=`date +%F` S=${H}_${I}_${D} BD=/backup export RSYNC_PASSWORD=123456mkdir -p ${BD}/${S}tar zcf ${BD}/${S}/conf.tar.gz /etc/passwd &>/dev/nullmd5sum ${BD}/${S}/conf.tar.gz > /backup/${I}.txtrsync -az ${BD}/ rsync_backup@172.16.1.41::zls rsync -az --delete /data/ rsync_backup@172.16.1.41::nfs find ${BD} -type d -mtime +7|xargs rm -fr

5)安裝nfs服務端

[root@backup ~]# yum install -y rpcbind nfs-utils

6)編輯配置文件

[root@backup ~]# vim /etc/exports /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

7)啟動服務

[root@backup ~]# systemctl start rpcbind nfs-server rsyncd [root@backup ~]# systemctl enable rpcbind nfs-server rsyncd

web01客戶端寫腳本

#!/bin/bashcheck_nfs=`df -h|grep '/var/www/html/tupian'|wc -l` if [ $check_nfs -eq 0 ];thenshowmount -e 172.16.1.31 &>/dev/nullif [ $? -eq 0 ];thenmount -t nfs 172.16.1.31:/data /var/www/html/tupianelsemount -t nfs 172.16.1.41:/data /var/www/html/tupianfi fi

檢測

systemctl stop nfs-server df -h

轉載于:https://www.cnblogs.com/1naonao/p/11305568.html

總結

以上是生活随笔為你收集整理的NFS共享储存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。