1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<code>我的部落格已遷移到xdoujiang.com請去那邊和我交流</code>
<code>NFS(Network File System)即網絡檔案系統,是FreeBSD支援的檔案系統中的一種,</code>
<code>它允許網絡中的計算機之間通過TCP</code><code>/IP</code><code>網絡共享資源。在NFS的應用中,</code>
<code>本地NFS的用戶端應用可以透明地讀寫位于遠端NFS伺服器上的檔案,就像通路本地檔案一樣。</code>
<code>一、基礎環境</code>
<code>1)服務端10.1.10.117 erh0 7.8(debian) 3.2.0-4-amd64</code>
<code>2)用戶端10.1.10.160 eth0 5.0.10(debian) 2.6.26-2-amd64</code>
<code>二、安裝nfs</code>
<code>1、安裝nfs服務端</code>
<code>apt-get -y </code><code>install</code> <code>nfs-kernel-server</code>
<code>2、建立共享目錄</code>
<code>mkdir</code> <code>/opt/nfsdata</code> <code>-p</code>
<code>3、修改配置</code>
<code>cat</code> <code>/etc/exports</code>
<code>/opt/nfsdata</code> <code>10.1.10.117(rw,async,no_root_squash) 10.1.10.160(rw,async,no_root_squash)</code>
<code>4、參數說明</code>
<code>ro </code><code>#隻讀通路</code>
<code>rw </code><code>#讀寫通路</code>
<code>sync</code> <code>#将資料同步寫入記憶體緩沖區與磁盤中,效率低,但可以保證資料的一緻性</code>
<code>async </code><code>#将資料先儲存在記憶體緩沖區中,必要時才寫入磁盤</code>
<code>secure </code><code>#限制用戶端隻能從小于1024的tcp/ip端口連接配接nfs伺服器</code>
<code>insecure </code><code>#允許用戶端從大于1024的tcp/ip端口連接配接伺服器</code>
<code>wdelay </code><code>#檢查是否有相關的寫操作,如果有則将這些寫操作一起執行,這樣可以提高效率</code>
<code>no_wdelay </code><code>#若有寫操作則立即執行,應與sync配合使用</code>
<code>hide </code><code>#在NFS共享目錄中不共享其子目錄</code>
<code>no_hide </code><code>#共享NFS目錄的子目錄</code>
<code>subtree_check </code><code>#若輸出目錄是一個子目錄,則nfs伺服器将檢查其父目錄的權限</code>
<code>no_subtree_check </code><code>#即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的權限,這樣可以提高效率</code>
<code>all_squash </code><code>#将遠端通路的所有普通使用者及所屬組都映射為匿名使用者或使用者組(nfsnobody)</code>
<code>no_all_squash </code><code>#與all_squash取反</code>
<code>root_squash </code><code>#将root使用者及所屬組都映射為匿名使用者或使用者組</code>
<code>no_root_squash </code><code>#與rootsquash取反</code>
<code>anonuid=xxx </code><code>#将遠端通路的所有使用者都映射為匿名使用者,并指定該使用者為本地使用者(UID=xxx)</code>
<code>anongid=xxx </code><code>#将遠端通路的所有使用者組都映射為匿名使用者組賬戶,并指定該匿名使用者組賬戶為本地使用者組賬戶(GID=xxx)</code>
<code>5、重新開機服務</code>
<code>[ ok ] Stopping NFS kernel daemon: mountd nfsd.</code>
<code>[ ok ] Unexporting directories </code><code>for</code> <code>NFS kernel daemon....</code>
<code>[....] Exporting directories </code><code>for</code> <code>NFS kernel daemon...exportfs: </code><code>/etc/exports</code> <code>[1]: Neither </code><code>'subtree_check'</code> <code>or </code><code>'no_subtree_check'</code> <code>specified </code><code>for</code> <code>export</code> <code>"10.1.10.117:/opt/nfsdata"</code><code>.</code>
<code> </code><code>Assuming default behaviour (</code><code>'no_subtree_check'</code><code>).</code>
<code> </code><code>NOTE: this default has changed since nfs-utils version 1.0.x</code>
<code>exportfs: </code><code>/etc/exports</code> <code>[1]: Neither </code><code>'subtree_check'</code> <code>or </code><code>'no_subtree_check'</code> <code>specified </code><code>for</code> <code>export</code> <code>"10.1.10.160:/opt/nfsdata"</code><code>.</code>
<code>. ok </code>
<code>[ ok ] Starting NFS kernel daemon: nfsd mountd.</code>
<code>6、檢視共享具體資訊</code>
<code>cat</code> <code>/var/lib/nfs/etab</code>
<code>/opt/nfsdata</code> <code>10.1.10.117(rw,async,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)</code>
<code>/opt/nfsdata</code> <code>10.1.10.160(rw,async,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534)</code>
<code>7、使用showmount指令檢視共享目錄</code>
<code>showmount -e</code>
<code>Export list </code><code>for</code> <code>debian:</code>
<code>/opt/nfsdata</code> <code>10.1.10.160,10.1.10.117</code>
<code>8、使用rpcinfo指令檢視監聽的端口</code>
<code>rpcinfo -p 10.1.10.117</code>
<code> </code><code>program vers proto port service</code>
<code> </code><code>100000 4 tcp 111 portmapper</code>
<code> </code><code>100000 3 tcp 111 portmapper</code>
<code> </code><code>100000 2 tcp 111 portmapper</code>
<code> </code><code>100000 4 udp 111 portmapper</code>
<code> </code><code>100000 3 udp 111 portmapper</code>
<code> </code><code>100000 2 udp 111 portmapper</code>
<code> </code><code>100024 1 udp 56564 status</code>
<code> </code><code>100024 1 tcp 46588 status</code>
<code> </code><code>100003 2 tcp 2049 nfs</code>
<code> </code><code>100003 3 tcp 2049 nfs</code>
<code> </code><code>100003 4 tcp 2049 nfs</code>
<code> </code><code>100227 2 tcp 2049</code>
<code> </code><code>100227 3 tcp 2049</code>
<code> </code><code>100003 2 udp 2049 nfs</code>
<code> </code><code>100003 3 udp 2049 nfs</code>
<code> </code><code>100003 4 udp 2049 nfs</code>
<code> </code><code>100227 2 udp 2049</code>
<code> </code><code>100227 3 udp 2049</code>
<code> </code><code>100021 1 udp 41855 nlockmgr</code>
<code> </code><code>100021 3 udp 41855 nlockmgr</code>
<code> </code><code>100021 4 udp 41855 nlockmgr</code>
<code> </code><code>100021 1 tcp 38046 nlockmgr</code>
<code> </code><code>100021 3 tcp 38046 nlockmgr</code>
<code> </code><code>100021 4 tcp 38046 nlockmgr</code>
<code> </code><code>100005 1 udp 36619 mountd</code>
<code> </code><code>100005 1 tcp 37282 mountd</code>
<code> </code><code>100005 2 udp 54466 mountd</code>
<code> </code><code>100005 2 tcp 57293 mountd</code>
<code> </code><code>100005 3 udp 52004 mountd</code>
<code> </code><code>100005 3 tcp 40933 mountd</code>
<code>9、檢視到相應的服務都預設開機啟動了(安裝時候自動加入的)</code>
<code>ll </code><code>/etc/rc2</code><code>.d/</code>
<code>lrwxrwxrwx 1 root root 17 Aug 4 14:52 S13rpcbind -> ..</code><code>/init</code><code>.d</code><code>/rpcbind</code>
<code>lrwxrwxrwx 1 root root 20 Aug 4 14:52 S14nfs-common -> ..</code><code>/init</code><code>.d</code><code>/nfs-common</code>
<code>lrwxrwxrwx 1 root root 27 Aug 4 14:52 S16nfs-kernel-server -> ..</code><code>/init</code><code>.d</code><code>/nfs-kernel-server</code>
<code> </code>
<code>10、測試</code>
<code>1)本機挂載</code>
<code>mount</code> <code>-t nfs 10.1.10.117:</code><code>/opt/nfsdata/</code> <code>/mnt</code>
<code>2)檢視</code>
<code>df</code> <code>-Th</code>
<code>Filesystem Type Size Used Avail Use% Mounted on</code>
<code>rootfs rootfs 9.2G 703M 8.1G 8% /</code>
<code>udev devtmpfs 10M 0 10M 0% </code><code>/dev</code>
<code>tmpfs tmpfs 24M 236K 23M 1% </code><code>/run</code>
<code>/dev/disk/by-uuid/62f9f2a1-249c-41fe-b639-c5137c10bf83</code> <code>ext4 9.2G 703M 8.1G 8% /</code>
<code>tmpfs tmpfs 5.0M 0 5.0M 0% </code><code>/run/lock</code>
<code>tmpfs tmpfs 810M 0 810M 0% </code><code>/run/shm</code>
<code>/dev/sda5</code> <code>ext4 27G 172M 26G 1% </code><code>/opt</code>
<code>10.1.10.117:</code><code>/opt/nfsdata</code> <code>nfs4 27G 172M 26G 1% </code><code>/mnt</code>
<code>三、用戶端挂載(遠端)10.1.10.160</code>
<code>1、安裝nfs用戶端</code>
<code>apt-get -y </code><code>install</code> <code>nfs-common</code>
<code>2、檢視10.1.10.117共享目錄資訊</code>
<code>showmount -e 10.1.10.117</code>
<code>Export list </code><code>for</code> <code>10.1.10.117:</code>
<code>3、再挂載</code>
<code>4、檢視</code>
<code>[email protected]:~</code><code># df -Th</code>
<code>Filesystem Type Size Used Avail Use% Mounted on</code>
<code>/dev/sda1</code> <code>ext3 9.2G 801M 8.0G 9% /</code>
<code>tmpfs tmpfs 124M 0 124M 0% </code><code>/lib/init/rw</code>
<code>udev tmpfs 10M 700K 9.4M 7% </code><code>/dev</code>
<code>tmpfs tmpfs 124M 0 124M 0% </code><code>/dev/shm</code>
<code>/dev/sda5</code> <code>ext3 17G 487M 16G 3% </code><code>/opt</code>
<code>10.1.10.117:</code><code>/opt/nfsdata/</code>
<code> </code><code>nfs 27G 172M 26G 1% </code><code>/mnt</code>
<code>5、添加</code><code>/etc/fstab</code><code>開機自動挂載</code>
<code>1)在</code><code>/etc/fstab</code><code>最後1行添加</code>
<code>10.1.10.117:</code><code>/opt/nfsdata</code> <code>/mnt</code> <code>nfs defaults 0 0</code>
<code>2)使用</code><code>mount</code> <code>-a檢查</code>
<code>/dev/sda1</code> <code>ext3 9.2G 802M 8.0G 9% /</code>
<code>10.1.10.117:</code><code>/opt/nfsdata</code>
<code> </code>
<code>四、服務端檢視</code>
<code>1、在服務端上能看到用戶端10.1.10.160已連接配接上來了</code>
<code>showmount -a</code>
<code>All </code><code>mount</code> <code>points on debian:</code>
<code>10.1.10.160:</code><code>/opt/nfsdata</code>
<code>2、能看到10.1.10.160挂載刮來的資訊</code>
<code>cat</code> <code>/var/lib/nfs/rmtab</code>
<code>10.1.10.160:</code><code>/opt/nfsdata</code><code>:0x00000001</code>
<code>五、還有exportfs nfsstat等指令,暫時沒用到,可以自行體驗下</code>
<code>六、參考文章</code>
<code>http:</code><code>//nfs</code><code>.sourceforge.net/</code>
本文轉自 xdoujiang 51CTO部落格,原文連結:http://blog.51cto.com/7938217/1681697,如需轉載請自行聯系原作者