NFS的安裝配置

12月7日任務mysql

14.1 NFS介紹linux

14.2 NFS服務端安裝配置sql

14.3 NFS配置選項服務器

 

NFS介紹

NFS是網絡文件系統(Network File System)的縮寫。須要藉助網絡,實現數據的同步。網絡

NFS最先由Sun公司進行開發,分2,3,4三個版本,2和3版本有Sun公司起草開發,4.0開始由Netapp公司參與主導開發,最新版本爲4.1版本。app

NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。async

NFS的應用場景是:A,B,C三臺機器上須要保證被訪問到的文件時同樣的,A共享數據出來,B和C分別取掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致。測試


NFS服務端安裝配置

  • 軟件安裝
# 服務端安裝
[root@server etc]# yum install -y nfs-utils rpcbind

# 客戶端安裝
[root@client etc]# yum install -y nfs-utils
  • 編輯/etc/exports文件
[root@server etc]
# 格式:分享的目錄 共享的ip(掛載選項)
/home/nfstestdir 192.168.65.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
  • 建立共享目錄並賦予權限
[root@server etc]# mkdir /home/nfstestdir

# 這裏爲了測試方便給予了777權限,實際工做中須要按需求修改
[root@server etc]# chmod 777 /home/nfstestdir/
  • 服務端啓動nfs服務
[root@server etc]# systemctl start nfs
[root@server etc]# ps aux | grep nfs
root       2878  0.0  0.0      0     0 ?        S<   19:50   0:00 [nfsd4_callbacks]
root       2884  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2885  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2886  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2887  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2888  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2889  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2890  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2891  0.0  0.0      0     0 ?        S    19:50   0:00 [nfsd]
root       2896  0.0  0.0 112680   976 pts/0    S+   19:50   0:00 grep --color=auto nfs

# 啓動了nfs時會自動啓動rpc服務,二者是關聯的
[root@server etc]# ps aux | grep rpc
rpc        2644  0.0  0.0  64964  1412 ?        Ss   19:28   0:00 /sbin/rpcbind -w
rpcuser    2849  0.2  0.1  42380  1748 ?        Ss   19:50   0:00 /usr/sbin/rpc.statd
root       2850  0.0  0.0      0     0 ?        S<   19:50   0:00 [rpciod]
root       2862  0.0  0.0  19324   396 ?        Ss   19:50   0:00 /usr/sbin/rpc.idmapd
root       2868  0.0  0.0  42564   944 ?        Ss   19:50   0:00 /usr/sbin/rpc.mountd
root       2898  0.0  0.0 112680   976 pts/0    S+   19:50   0:00 grep --color=auto rpc
  • 設置服務端nfs服務開機啓動
[root@server etc]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

NFS配置選項

/home/nfstestdir 192.168.65.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
  • rw 可讀可寫ui

  • ro 只讀spa

  • sync 同步模式 內存數據實時寫入磁盤,能夠很快的將數據寫入磁盤,相應的會下降磁盤的效率。

  • async 非同步模式 每一個一段時間再將數據寫入磁盤,缺點是當某一時刻斷電,將會致使部分數據丟失。

  • no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大。當客戶端須要共享目錄的數據時,將該目錄掛載到本機的某個目錄,客戶端的root權限能夠隨意對共享目錄內的數據進行操做。

  • root_squash 相對於no_root_squash參數而言,客戶端上的root用戶在訪問時被轉換爲某個普通用戶,權限被限制。

  • all_squash 客戶端上全部用戶在使用NFS共享目錄時都會被限制以某個普通用戶的身份進行數據的操做。

  • anonuid/anongid 配合squash的參數,定義限制後的用戶身份。

客戶端掛載遠程目錄

  • showmount -e命令查看遠程的共享目錄
# 防火牆未放開rpc服務的111端口
[root@client ~]# showmount -e 192.168.65.133
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

# 服務端關閉防火牆和selinux
[root@server etc]# systemctl stop firewalld
[root@server etc]# setenforce 0

# 客戶端成功訪問
[root@client ~]# showmount -e 192.168.65.133
Export list for 192.168.65.133:
/home/nfstestdir 192.168.65.0/24
  • 掛載遠程共享目錄
[root@client ~]# mount -t nfs 192.168.65.133:/home/nfstestdir /mnt
[root@client ~]# df -h
文件系統                         容量  已用  可用 已用% 掛載點
/dev/sda3                         18G  3.6G   15G   20% /
devtmpfs                         479M     0  479M    0% /dev
tmpfs                            489M     0  489M    0% /dev/shm
tmpfs                            489M  6.7M  482M    2% /run
tmpfs                            489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                        197M  109M   88M   56% /boot
tmpfs                             98M     0   98M    0% /run/user/0
192.168.65.133:/home/nfstestdir   18G  3.4G   15G   20% /mnt
  • 客戶端/服務端文件說明
# 客戶端掛載共享目錄後,在該目錄下建立一個新用戶,其權限以下
[root@client ~]# cd /mnt/
[root@client mnt]# touch test
[root@client mnt]# ls -l 
總用量 0
-rw-r--r--. 1 mysql mysql 0 1月   9 20:45 test

# 服務器也生成一個文件,其權限以下:
[root@localhost etc]# ls -l /home/nfstestdir/
總用量 0
-rw-r--r--. 1 mysql mysql 0 1月   9 20:45 test

[root@localhost etc]# id mysql
uid=1000(mysql) gid=1000(mysql) 組=1000(mysql)

關於爲何文件的屬主和屬組是mysql的說明:因爲在/etc/exports文件內定義了all_squash,anonuid=1000,anongid=1000參數,更新目錄下新建立的文件將以服務器上uid/gid爲1000的用戶最爲屬主和屬組。一樣的客戶端共享目錄下的文件也會以uid/gid爲1000的用戶做爲其屬主和屬組。

相關文章
相關標籤/搜索