【什么是NFS】????
NFS會經常用到,用于在網絡上共享存儲。這樣講,你對NFS可能不太了解,筆者不妨舉一個例子來說明一下NFS是用來做什么的。假如有三臺機器A、B、C,它們需要訪問同一個目錄,目錄中都是圖片,傳統(tǒng)的做法是把這些圖片分別放到A、B、C。但是使用NFS只需要放到A上,然后A共享給B和C即可。訪問的時候,B和C是通過網絡的方式去訪問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的用戶限定后的uid和gid,前提是本機的/etc/passwd中存在這個uid和gid。
介紹了上面的相關的權限選項后,再來分析一下筆者剛剛配置的那個/etc/exports文件。其中要共享的目錄為/home,信任的主機為10.0.2.0/24這個網段,權限為讀寫,同步,限定所有使用者,并且限定的uid和gid都為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了,它的意思是,把連接本機的NFS的client全部列出。
[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部分就講這么多,內容并不多,相信你很快就能掌握!
更多建議: