day34-NFS企業(yè)級(jí)存儲(chǔ)

1. 什么是NFS?

全程 network file system 網(wǎng)絡(luò)文件系統(tǒng)
什么是文件系統(tǒng)?
通過網(wǎng)絡(luò)存儲(chǔ)和組織文件的一種方法或機(jī)制

2. 為什么要用共享存儲(chǔ)

前段所有的服務(wù)器接收用戶所上傳的圖片稻轨、文件、視頻都會(huì)放到后端的NFS服務(wù)器上
為什么要共享?
所有節(jié)點(diǎn)服務(wù)器都需要將內(nèi)容存到存儲(chǔ)上羞酗,取的時(shí)候也要統(tǒng)一來取

3. 共享存儲(chǔ)種類

單一的存儲(chǔ)系統(tǒng)就是NFS,中小型企業(yè)紊服,相當(dāng)于阿里云的NAS服務(wù)檀轨。OSS對(duì)象存儲(chǔ)
NFS性能不高。
大型企業(yè)用FastDFS 欺嗤、Ceph参萄、GlsterFS、Mfs

大型存儲(chǔ)廠商:EMC煎饼、Netapp 幾十萬一臺(tái)
硬件存儲(chǔ):穩(wěn)定讹挎、得買兩臺(tái) 或者雙主機(jī)頭 幾十塊硬盤, 需要做raid 10

4. NFS 工作原理

NFS網(wǎng)絡(luò)文件系統(tǒng)吆玖,所以要啟動(dòng)服務(wù)筒溃,還需要啟動(dòng)很多端口
完成NFS功能需要很多服務(wù)。而且每個(gè)服務(wù)都有端口
如何然那個(gè)客戶端找到這些端口沾乘,不但有端口怜奖,而且經(jīng)常變化。
就需要中間有一個(gè)介質(zhì)中轉(zhuǎn)意鲸,(rpc服務(wù))
NFS服務(wù)(固定端口2049烦周,也會(huì)有其他端口):

  1. NFS服務(wù)(很多進(jìn)程的端口)把自己的端口告訴rpc
  2. RPC服務(wù)網(wǎng)(對(duì)外固定端口111)
    客戶端請(qǐng)求NFS服務(wù),先找RPC服務(wù) 111怎顾,查到NFS的端口读慎,然后發(fā)給客戶端
    NFS軟件列表
    要部署NFS服務(wù),需要安裝下面的軟件包:
  • nfs-utils:NFS服務(wù)的主程序槐雾,包括rpc.nfsd,rpc.mound這兩個(gè)daemons和相關(guān)文檔說明夭委,以及執(zhí)行命令文件等
  • rpcbind:CentOS7.6/7下面RPC主程序。NFS可視為一個(gè)RPC程序募强,在啟動(dòng)任何一個(gè)RPC程序之前株灸,需要做好端口和功能的對(duì)應(yīng)映射工作,這個(gè)映射工作就是由rpcbind 服務(wù)來完成的擎值。因此慌烧,在提供NFS服務(wù)之前必須先啟動(dòng)rpcbind服務(wù)才行。

查詢 安裝包

[root@nfs01 ~]# rpm -qa nfs-utils rpcbind

查詢不到鸠儿,yum 安裝

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

查詢安裝包已找到

[root@nfs01 ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.61.el7.x86_64
rpcbind-0.2.0-47.el7.x86_64

啟動(dòng)rpc服務(wù)

[root@nfs01 ~]# systemctl start  rpcbind.service 

開機(jī)自啟動(dòng)rpc服務(wù)

[root@nfs01 ~]# systemctl enable  rpcbind.service 

查看是否開啟

[root@nfs01 ~]# systemctl status  rpcbind.service 
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-04-17 11:30:58 CST; 19s ago
 Main PID: 8098 (rpcbind)
   CGroup: /system.slice/rpcbind.service
           └─8098 /sbin/rpcbind -w

Apr 17 11:30:58 nfs01 systemd[1]: Starting RPC bind service...
Apr 17 11:30:58 nfs01 systemd[1]: Started RPC bind service.
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
   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

重啟NFS服務(wù)屹蚊,并設(shè)置開機(jī)自啟動(dòng)

[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs01 ~]# systemctl status  nfs
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since Wed 2019-04-17 11:33:06 CST; 15s ago
 Main PID: 8244 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Apr 17 11:33:06 nfs01 systemd[1]: Starting NFS server and services...
Apr 17 11:33:06 nfs01 systemd[1]: Started NFS server and services.
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
   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
    100024    1   udp   7872  status
    100024    1   tcp  37897  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  37144  nlockmgr
    100021    3   udp  37144  nlockmgr
    100021    4   udp  37144  nlockmgr
    100021    1   tcp  34275  nlockmgr
    100021    3   tcp  34275  nlockmgr
    100021    4   tcp  34275  nlockmgr

查看rpc和nfs端口是否開啟

[root@nfs01 ~]# netstat -lntup|egrep "rpc|nfs"
tcp        0      0 0.0.0.0:37897           0.0.0.0:*               LISTEN      8189/rpc.statd      
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      8242/rpc.mountd     
tcp6       0      0 :::16170                :::*                    LISTEN      8189/rpc.statd      
tcp6       0      0 :::20048                :::*                    LISTEN      8242/rpc.mountd     
udp        0      0 0.0.0.0:20048           0.0.0.0:*                           8242/rpc.mountd     
udp        0      0 0.0.0.0:641             0.0.0.0:*                           8098/rpcbind        
udp        0      0 0.0.0.0:7872            0.0.0.0:*                           8189/rpc.statd      
udp        0      0 127.0.0.1:733           0.0.0.0:*                           8189/rpc.statd      
udp6       0      0 :::20048                :::*                                8242/rpc.mountd     
udp6       0      0 :::641                  :::*                                8098/rpcbind        
udp6       0      0 :::31068                :::*                                8189/rpc.statd      

查看 rpc和nfs進(jìn)程是否開啟

ps -ef|egrep "rpc|nfs"
root       6245      2  0 19:04 ?        00:00:00 [rpciod]
rpc        6576      1  0 19:04 ?        00:00:00 /sbin/rpcbind -w
root       7208      2  0 19:04 ?        00:00:00 [nfsiod]
root       7242      2  0 19:04 ?        00:00:00 [nfsv4.1-svc]
rpcuser    7287      1  0 19:04 ?        00:00:00 /usr/sbin/rpc.statd
root       7775   7694  0 20:55 pts/0    00:00:00 grep -E --color=auto rpc|nfs
image.png

NFS配置文件/etc/exports
查看這個(gè)文件man exports
可以找到書寫文件的格式

EXAMPLE
       # sample /etc/exports file
       /               master(rw) trusty(rw,no_root_squash)
       /projects       proj*.local.domain(rw)
       /usr            *.local.domain(ro) @trusted(rw)
       /home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
       /pub            *(ro,insecure,all_squash)
       /srv/www        -sync,rw server @trusted @external(ro)
       /foo            2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
       /build          buildhost[0-9].local.domain(rw)

待共享的目錄 訪問的主機(jī)(權(quán)限)

  1. 待共享的目錄 存東西的目錄 取東西的目錄例如:/data
  2. 訪問的主機(jī)
    172.16.1.7 單個(gè)主機(jī)
    172.6.1.0/24 網(wǎng)段
    172.16.1.* 代表所有
    master主機(jī)名 可以用主機(jī)名厕氨,域名
  3. 權(quán)限
    rw 可讀寫 read write
    ro 只讀 resd only
    sync 寫到磁盤 安全 慢
    async 異步寫到遠(yuǎn)程緩沖區(qū) 快,不安全
    編輯/etc/exports文件
共享/data目錄給主機(jī)
/data 172.16.1.0/24(rw,sync) 10.0.0.0/24(ro)
/data 172.16.1.0/24(rw,sync)

文件配置完成之后創(chuàng)建/data文檔

[root@nfs01 /]# cat /etc/passwd|grep nfs
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

更改文件的UID屬主和組

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

查看

[root@nfs01 /]# ls -ld /data/
drwxr-xr-x 2 nfsnobody nfsnobody 6 Apr 17 11:52 /data/

平滑重啟 (工作中必須平滑重啟)

[root@nfs01 /]# systemctl reload nfs

在本地自我驗(yàn)證汹粤,檢查結(jié)果
出來下列文件之后表示成功

[root@nfs01 /]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24

客戶端的配置

需要安裝rpc服務(wù)
因?yàn)榉?wù)端和客戶端是通過rpc服務(wù)通訊才知道服務(wù)端nfs對(duì)應(yīng)的端口號(hào)
使用下方命令驗(yàn)證客戶端是否能訪問到服務(wù)端

[root@backup ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/backup 172.16.1.0/24
/data1  10.0.0.0/24
/data   172.16.1.0/24

然后創(chuàng)建一個(gè)掛載在點(diǎn)
mkdir -p 目錄名
作為掛載點(diǎn)
使用命令把共享目錄掛載到客戶端

mount -t nfs 服務(wù)端的IP:服務(wù)端的共享目錄 客戶端掛載點(diǎn)

最后查看是否掛載上

df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda3             18G  2.1G   16G  12% /
devtmpfs             476M     0  476M   0% /dev
tmpfs                487M     0  487M   0% /dev/shm
tmpfs                487M  7.7M  479M   2% /run
tmpfs                487M     0  487M   0% /sys/fs/cgroup
/dev/sda1            197M  162M   36M  82% /boot
172.16.1.31:/data     18G  2.1G   16G  12% /data
172.16.1.31:/backup   18G  2.1G   16G  12% /nfsbackup
10.0.0.31:/data1      18G  2.1G   16G  12% /data1
tmpfs                 98M     0   98M   0% /run/user/0
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末命斧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嘱兼,更是在濱河造成了極大的恐慌国葬,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芹壕,死亡現(xiàn)場(chǎng)離奇詭異汇四,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)哪雕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門船殉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斯嚎,你說我怎么就攤上這事利虫。” “怎么了堡僻?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵糠惫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我钉疫,道長(zhǎng)硼讽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任牲阁,我火速辦了婚禮固阁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘城菊。我一直安慰自己备燃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布凌唬。 她就那樣靜靜地躺著并齐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪客税。 梳的紋絲不亂的頭發(fā)上况褪,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音更耻,去河邊找鬼测垛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛秧均,可吹牛的內(nèi)容都是我干的赐纱。 我是一名探鬼主播脊奋,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼疙描!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讶隐,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤起胰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后巫延,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體效五,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年炉峰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畏妖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡疼阔,死狀恐怖戒劫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情婆廊,我是刑警寧澤迅细,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站淘邻,受9級(jí)特大地震影響茵典,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宾舅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一统阿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧筹我,春花似錦扶平、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至袁串,卻和暖如春概而,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背囱修。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工赎瑰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人破镰。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓餐曼,卻偏偏與公主長(zhǎng)得像压储,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子源譬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容