NFS部署過程


課前回顧 及 NFS

NFS部署過程

1)安裝服務端

yum install -y nfs-utils rpcbind

2)修改配置文件

vim /etc/exports
#共享目錄       IP網段           參數
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

3)nfs自帶用戶:nfsnobody 65534,自己創建用戶

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

客戶端部署

1)安裝rpcbind和nfs

yum install -y rpcbind nfs-utils

2)啟動rpcbind

systemctl start rpcbind

3)查看可掛載點

showmount -e 172.16.1.31

4)掛載

mount -t nfs 172.16.1.31:/data /var/www/html/tupian

5)開機掛載

vim /etc/fstab
172.16.1.31:/data /var/www/html/tupian nfs defaults 0 0

6)使用mount -a 檢測

[root@backup ~]# mount -a

7)卸載

umount /var/www/html/tupian
#強制卸載
umount -lf /var/www/html/tupian

8)nfs掛載文件

[root@nfs01 ~]# cat /var/lib/nfs/etab

9)增加掛載的安全性

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

nfs配置參數

rw:共享目錄的權限是 可讀 可寫

sync:同時將數據寫入內存和磁盤,增強數據的安全性,保證數據不丟失

all_squash:無論使用什么用上傳或者訪問,一律壓縮成 nfs的匿名用戶

anonuid:指定一個匿名用戶,必須是系統存在的uid

anongid:指定一個匿名用戶組,必須是系統存在的gid

----------------------------------------------不常用--------------------------------------------

root_squash 當NFS客戶端以root管理員訪問時,映射為NFS服務器的匿名用戶(不常用)
no_root_squash 當NFS客戶端以root管理員訪問時,映射為NFS服務器的root管理員(不常用)
no_all_squash 無論NFS客戶端使用什么賬戶訪問,都不進行壓縮
async 優先將數據保存到內存,然后再寫入硬盤;這樣效率更高,但可能會丟失數據
ro 只讀權限
   

 

NFS存儲小結

  • NFS存儲優點

    • 1)NFS文件系統簡單易用、方便部署、數據可靠、服務穩定、滿足中小企業需求。

      2)NFS文件系統內存放的數據都在文件系統之上,所有數據都是能看得見。

     

    • NFS存儲局限

      • 1)存在單點故障, 如果構建高可用維護麻煩web->nfs()->backup

      • 2)NFS數據明文, 並不對數據做任何校驗。

      • 3)客戶端掛載NFS服務沒有密碼驗證, 安全性一般(內網使用)

         

3.NFS應用建議 1)生產場景應將靜態數據盡可能往前端推, 減少后端存儲壓力

2)必須將存儲里的靜態資源通過CDN緩存jpg\png\mp4\avi\css\js

3)如果沒有緩存或架構本身歷史遺留問題太大, 在多存儲也無用

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

服務器系統 角色 IP
CentOS 7.5 NfsServer(A) 172.16.1.31
CentOS 7.5 NfsClient(B) 172.16.1.41
CentOS 7.5 NfsClient(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

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

4)掛載

mount -t nfs 172.16.1.31:/data /var/www/html/tupian

結合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

[nfs]
comment = welcome to oldboyedu nfs!
path = /data

3)創建目錄並授權

[root@backup ~]# mkdir /data
[root@backup ~]# chown -R www.www /data/

4)編寫備份腳本

vim rsync.sh 
#!/bin/bash

PATH='/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=123456

mkdir -p ${BD}/${S}

tar zcf ${BD}/${S}/conf.tar.gz /etc/passwd &>/dev/null

md5sum ${BD}/${S}/conf.tar.gz  > /backup/${I}.txt

rsync -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
[root@backup ~]# systemctl enable rpcbind nfs-server

web01客戶端寫腳本

#!/bin/bash

check_nfs=`df -h|grep '/var/www/html/tupian'|wc -l`
if [ $check_nfs -eq 0 ];then
        showmount -e 172.16.1.31 &>/dev/null
        if [ $? -eq 0 ];then
                mount -t nfs 172.16.1.31:/data /var/www/html/tupian
        else
                mount -t nfs 172.16.1.41:/data /var/www/html/tupian
        fi
fi

 

5.錄視頻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM