NFS 服務配置

2018-08-12 21:29 更新

NFS 服務配置

什么是NFS????

NFS會經常用到,用于在網絡上共享存儲。這樣講,你對NFS可能不太了解,筆者不妨舉一個例子來說明一下NFS是用來做什么的。假如有三臺機器A、B、C,它們需要訪問同一個目錄,目錄中都是圖片,傳統(tǒng)的做法是把這些圖片分別放到A、B、C。但是使用NFS只需要放到A上,然后A共享給BC即可。訪問的時候,BC是通過網絡的方式去訪問A上的那個目錄的。

配置NFS

???????? NFS配置起來還是蠻簡單的,只需要編輯配置文件/etc/exports即可。下面筆者先創(chuàng)建一個簡單的NFS服務器。

[root@localhost ~]# cat /etc/exports

/home/? 10.0.2.0/24(rw,sync,all_squash,anonuid=501,anongid=501)

這個配置文件就這樣簡單一行。共分為三部分,第一部分就是本地要共享出去的目錄,第二部分為允許訪問的主機(可以是一個IP也可以是一個IP段)第三部分就是小括號里面的,為一些權限選項。關于第三部分,筆者簡單介紹一下:

rw :讀寫;

ro :只讀;

sync :同步模式,內存中數據時時寫入磁盤;

async :不同步,把內存中數據定期寫入磁盤中;

no_root_squash :加上這個選項后,root用戶就會對共享的目錄擁有至高的權限控制,就像是對本機的目錄操作一樣。不安全,不建議使用;

root_squash :和上面的選項對應,root用戶對共享目錄的權限不高,只有普通用戶的權限,即限制了root;

all_squash :不管使用NFS的用戶是誰,他的身份都會被限定成為一個指定的普通用戶身份;

anonuid/anongid :要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用戶限定后的uidgid,前提是本機的/etc/passwd中存在這個uidgid。

介紹了上面的相關的權限選項后,再來分析一下筆者剛剛配置的那個/etc/exports文件。其中要共享的目錄為/home,信任的主機為10.0.2.0/24這個網段,權限為讀寫,同步,限定所有使用者,并且限定的uidgid都為501

使用NFS

當編輯完配置文件/etc/exports后,就該啟動NFS服務了。啟動方法為:

[root@localhost ~]# service portmap start; service nfs start

NFS是依托portmap的,所以首先要啟動portmap,然后啟動NFS才能是剛才的配置生效。啟動完NFS后,就該使用NFS服務了。

[root@localhost ~]# showmount -e 127.0.0.1 (用在client上)

Export list for 127.0.0.1:

/home 10.0.2.0/24

shoumount -e IP就可以查看NFS的共享情況,上例中,就可以看到127.0.0.1的共享目錄為/home,信任主機為10.0.2.0/24這個網段。另外這個showmount 命令還有一個常用的選項就是-a了,它的意思是,把連接本機的NFSclient全部列出。

[root@localhost ~]# mount -t nfs 10.0.2.69:/home /mnt client上)

[root@localhost ~]# showmount -a nfs服務器上)

All mount points on localhost:

10.0.2.69:/home

前面的mount 命令為掛載NFS共享目錄,相信你能看懂這個格式。showmount -a 命令列出所有的clinet。

NFS服務中還有一個常用的命令那就是exportfs,它的常用選項為[-aruv]。

-a :全部掛載或者卸載;

-r :重新掛載;

-u :卸載某一個目錄;

-v :顯示共享的目錄;

使用exportfs命令,當改變/etc/exports配置文件后,不用重啟nfs服務直接用這個exportfs即可。

[root@localhost ~]# cat /etc/exports

/tmp/?? 10.0.2.0/24(rw,sync,no_root_squash)

[root@localhost ~]# exportfs -arv nfs服務器上)

exporting 10.0.2.0/24:/tmp

更改目錄后,直接exportfs -arv即可生效。

在上面使用到了mount命令來掛載nfs,其實mount這個nfs服務還是有些說法的。首先是用-t nfs 來指定掛載的類型為nfs。另外在使用nfs時,常用一個選項就是nolock了,即在掛載nfs服務時,不加鎖。

[root@localhost ~]# mount -t nfs -o nolock 10.0.2.69:/tmp /mnt/

[root@localhost ~]# showmount -a

All mount points on localhost:

10.0.2.69:/home

10.0.2.69:/tmp

另外我們還可以把要掛載的nfs目錄寫到client上的/etc/fstab文件中,掛載時只需要mount -a即可。

[root@localhost ~]# cat /etc/fstab

LABEL=/???????????????? /?????????????????????? ext3??? defaults??????? 1 1

LABEL=/boot???????????? /boot?????????????????? ext3??? defaults??????? 1 2

tmpfs?????????????????? /dev/shm??????????????? tmpfs?? defaults??????? 0 0

devpts????????????????? /dev/pts??????????????? devpts? gid=5,mode=620? 0 0

sysfs?????????????????? /sys??????????????????? sysfs?? defaults??????? 0 0

proc??????????????????? /proc?????????????????? proc??? defaults??????? 0 0

LABEL=SWAP-hda2???????? swap????? ??????????????swap??? defaults??????? 0 0

10.0.2.69:/tmp????????? /mnt??????????????????? nfs???? nolock????????? 0 0

寫完/etc/fstab文件后,只需要mount -a即可掛載nfs服務的共享目錄。

[root@localhost ~]# umount /mnt/ 首先把剛才掛載的nfs卸載掉

[root@localhost ~]# mount -a

[root@localhost ~]# df -h

Filesystem??????????? Size? Used Avail Use% Mounted on

/dev/hda3???????????? 7.3G? 3.7G? 3.3G? 53% /

/dev/hda1????????????? 99M?? 12M?? 83M? 12% /boot

tmpfs????????????????? 84M???? 0?? 84M?? 0% /dev/shm

10.0.2.69:/tmp??????? 7.3G? 3.7G? 3.3G? 53% /mnt

關于NFS部分就講這么多,內容并不多,相信你很快就能掌握!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號