NFS存儲服務

NFS存儲服務筆記
======================================================================
NFS共享存儲是什麼:
英文名-Network File System的縮寫,中文意思是網絡文件系統,主要功能是經過網絡讓不一樣的主機系統之間能夠共享文件和目錄linux

NFS共享存儲的應用:
一、將數據存儲到一臺服務器,實現數據統一性,共享訪問
二、NFS存儲服務器中主要存儲哪些信息:用戶上傳的圖片 音頻 視頻 附件等信息web

NFS共享存儲的原理:
①. nfs服務端建立共享存儲目錄
②. nfs客戶端建立遠程掛載點目錄
③. nfs客戶端進行遠程掛載
④. 實現客戶端數據信息統一一致
實現共享存儲的好處:
01. 實現數據統一
02. 節省網站磁盤資源
03. 節省網站訪問帶寬
NFS工做流程:
服務端:
1. 啓動rpcbind服務,建立中介
2. 啓動nfs服務,建立房源信息
3. 將房源信息向中介進行註冊,在nfs服務穩定運行過程當中,房源信息只註冊一次
客戶端:
1. 啓動rpcbind服務(可選)
2. 確保客戶端和服務端網絡鏈接創建成功
3. 執行mount命令進行網絡存儲掛載vim

NFS部署流程:
服務端部署:
一、檢查軟件是否安裝
[root@NFS01 ~]# rpm -qa|grep nfs-utils
[root@NFS01 ~]# rpm -qa|grep rpcbind
二、服務軟件安裝
[root@NFS01 ~]# yum install nfs-utils rpcbind -y
[root@NFS01 ~]# rpm -qa|grep nfs-utils
nfs-utils-1.2.3-78.el6_10.1.x86_64
nfs-utils-lib-1.1.5-13.el6.x86_64
[root@NFS01 ~]# rpm -qa|grep rpcbind
rpcbind-0.2.0-16.el6.x86_64
補充說明:查看安裝的軟件內容
[root@NFS01 ~]# rpm -ql nfs-utils
/etc/rc.d/init.d/nfs 服務器啓動方法
/usr/sbin/showmount 檢查nfs服務共享目錄信息愛安全

[root@NFS01 ~]# rpm -ql rpcbind
/etc/rc.d/init.d/rpcbind 啓動腳本
/usr/sbin/rpcinfo 檢查nfs服務想向rpc註冊的信息服務器

三、編寫nfs服務配置文件(文件默認存在)
[root@NFS01 ~]# ll /etc/exports
-rw-r--r--. 1 root root 0 Jan 12 2010 /etc/exports
[root@NFS01 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync)
~說明:文件格式以下
指定共享目錄 指定共享目錄訪問控制網段或主機信息 (參數信息,也就是權限)
例: /data 172.16.1.0/24(rw,sync)
四、建立服務共享文件並受權
[root@NFS01 ~]# mkdir /data
[root@NFS01 ~]# chown -R nfsnobody.nfsnobody /data
五、啓動nfs和rpc服務
先啓動rpcbind再啓動nfs
[root@NFS01 ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
[root@NFS01 ~]# /etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
六、服務配置檢查
先檢查房源(nfs)信息是否進行註冊
[root@NFS01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100005 1 udp 36801 mountd
100005 1 tcp 38864 mountd
100005 2 udp 46577 mountd
100005 2 tcp 63877 mountd
100005 3 udp 19847 mountd
100005 3 tcp 5988 mountd
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 37579 nlockmgr
100021 3 udp 37579 nlockmgr
100021 4 udp 37579 nlockmgr
100021 1 tcp 31145 nlockmgr
100021 3 tcp 31145 nlockmgr
100021 4 tcp 31145 nlockmgr
檢查是有共享目錄
[root@NFS01 ~]# showmount -e localhost
Export list for localhost:
/data 172.16.1.0/24網絡


客戶端部署
一、檢查是否安裝nfs服務
[root@web01 ~]# rpm -qa |egrep "rpcbind|nfs-utils"
rpcbind-0.2.0-16.el6.x86_64
nfs-utils-1.2.3-78.el6_10.1.x86_64
nfs-utils-lib-1.1.5-13.el6.x86_64
二、進行安裝
yum install rpcbind nfs-utils -y
三、進行掛載目錄共享
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.5G 17G 9% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
172.16.1.31:/data 19G 1.5G 17G 9% /mnt
[root@web01 mnt]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
四、nfs服務應用檢查
[root@web01 mnt]# touch {1..4}
[root@NFS01 ~]# ll /data/
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 1
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 2
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 3
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 4
[root@web02 ~]# ll /mnt/
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 1
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 2
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 3
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan 10 21:35 4app


NFS服務部署進程信息:
[root@oldboy ~]# ps -ef|egrep "rpc|nfs"
rpc 1564 1 0 09:32 ? 00:00:00 rpcbind
rpc 1065 1 0 09:32 ? 00:00:00 rpc statd <- 檢查數據存儲一致性
root 4736 2 0 21:31 ? 00:00:00 [rpciod/0]
root 5363 1 0 21:47 ? 00:00:00 rpc.rquotad <- 磁盤配額進程(remote quote server)
root 5368 1 0 21:47 ? 00:00:00 rpc.mountd <- 權限管理驗證等(NFS mount daemon)
root 5375 2 0 21:47 ? 00:00:00 [nfsd4]
root 5376 2 0 21:47 ? 00:00:00 [nfsd4_callbacks]
root 5377 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主進程
root 5378 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主進程
root 5379 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主進程,管理登入,ID身份判別等。
root 5380 2 0 21:47 ? 00:00:00 [nfsd]
root 5381 2 0 21:47 ? 00:00:00 [nfsd]
root 5382 2 0 21:47 ? 00:00:00 [nfsd]
root 5383 2 0 21:47 ? 00:00:00 [nfsd]
root 5384 2 0 21:47 ? 00:00:00 [nfsd] <- NFS主進程
root 5415 1 0 21:47 ? 00:00:00 rpc.idmapd <- name mapping daemon
用戶壓縮/用戶映射(記錄)
root 5512 4670 0 22:02 pts/0 00:00:00 egrep rpc|nfsasync

NFS啓動方式:
/etc/init.d/nfs reload ---平滑重啓
/etc/init.d/nfs restart ---重啓tcp

NFS服務配置參數:
rw--可讀可寫網站

ro--只讀

sync--數據同步寫入內存緩衝區與磁盤中,雖然這樣作效率較低,但能夠保證數據的一致性(適合於小文件傳輸)

async--數據先暫時放於內存,而非直接寫入硬盤,等到必要時才寫入磁盤(適合於大文件傳輸)

no_root_squash--使用nfs時,若是用戶是root,不進行權限壓縮,即root用戶在nfs上建立的文件 屬組和屬主仍然是root(不安全,不建議使用)

root_squash--使用nfs時,若是用戶是root,則進行權限壓縮,即把root用戶在nfs上建立的文件 屬組和屬主修改成nfsnobody

all_squash--全部的普通用戶使用nfs都將使用權限壓縮,即:將遠程訪問的全部普通用戶及所屬用戶組都映射爲匿名用戶或者用戶組(通常均爲nfsnobody)

no_all_squash--全部的普通用戶使用nfs都不使用權限壓縮,即:不將遠程訪問的全部普通用戶及所屬用戶組都映射爲匿名用戶或者用戶組(默認設置)

anonuid=XXX--anon即anonymous(匿名者),前面關於*_squash提到的匿名用戶的uid的設置值,一般爲nobody或者nfsnobody,使用這個參數能夠自行設定這個uid值,這個uid必須存在 於/etc/passwd

anongid=XXX--將遠程訪問的全部用戶組都映身爲匿名用戶組帳戶,並指定該匿名用戶組帳戶爲本地用戶組帳戶(GID=XXX)

insecure--容許客戶端從大於1024的TCP/IP端口連NFS服務器

secure--限制客戶端只能從小於1024的TCP/IP端口鏈接NFS服務器(默認設置)

wdelay--檢查是否有相關的寫操做,若是有則將這些寫操做一塊兒執行,這樣可提升效率(默認設置)

no_wdelay--有寫操做則當即執行(應與sync配置)

subtree_check--若輸出目錄是一個子目錄,則NFSW:務器將檢查其父目錄的權限(默認設置)

no_subtree_check--即便輸出目錄是一個子目錄,NFS服務器也不檢查其父目錄的權限,這樣作可提升效率

使用實例:
/home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40)
當*.linux.org(加入域linux.org的全部主機) 登錄此NFS主機,而且在/home/linux下面寫入檔案時,該檔案的全部人與全部組,就會變成NFS服務器上的/etc/passwd文件裏面對應的UID爲40的那個身份的使用者了(由於指定了參數:all_squash,anonuid=40,anongid=40)

NFS服務用戶映射原理:(能夠畫圖)


NFS服務相關重要文件:

/etc/exports nfs服務主配置文件 /usr/sbin/showmount 查看nfs服務共享目錄信息 /usr/sbin/rpcinfo 查看rpc服務中是否有房源註冊信息 /var/lib/nfs/etab 用於查看nfs服務默認配置信息 /proc/mounts nfs客戶端mount掛載參數(能夠查看默認掛載參數信息)

相關文章
相關標籤/搜索