十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
打開NAS的管理工具(IBM NASAdmin) 選擇File System,然后打開Service for Unix選項(xiàng) 選擇Server for NFS,確認(rèn)Computer Name是localhost 選擇Server for PCNFS,然后選擇Group 增加需要訪問NAS的UNIX用戶組。這些用戶組察睜的信息可以在UNIX服務(wù)器的/etc/group文件中查到。在AIX中,文件的格式是staff:!:1:pemodem,ipsec,netinst,protcs。第一項(xiàng)是用祥瞎戶組名,第三項(xiàng)是組ID,要將這兩項(xiàng)記錄并填入NAS的用戶組中。在增加完用戶組后,按Apply。 選擇User增加需要訪問NAS的UNIX用戶名。這些用戶名的信息可謹(jǐn)沒空以在UNIX服務(wù)器的/etc/passwd文件中查到。在AIX中,文件的格式是user3135:!:3135:1:User 3135:/home/user3135:/bin/ksh。第一項(xiàng)是用戶名,第三項(xiàng)是用戶ID,第四項(xiàng)是組ID,記錄這些信息并填入NAS的用戶創(chuàng)建信息中。在增加完用戶后,按Apply。 再次選擇Groups,選擇要添加的用戶組,完成添加。 選擇用戶名影射(User Name Mapping)選擇PCNFS在Password file path and name中,填入c:\winnt\system32\drivers\etc\passwd;在Group file path and name中填入c:\winnt\system3\drivers\etc\group,然后按Apply。 選擇Synchronize Now 選擇Maps,確認(rèn)Simple Maps被選擇,NAS的主機(jī)名在Windows domain name中 然后要?jiǎng)?chuàng)建NFS目錄共享: 打開Windows Explorer 選擇要共享的目錄或創(chuàng)建新的共享目錄 在要共享的目錄上點(diǎn)擊右鍵,選擇Properties 選擇NFS Sharing 選擇Share this folder,選擇Allow Anonymous Access 在Security中,選擇適當(dāng)?shù)臋?quán)限,確認(rèn)Everyone組有至少list權(quán)限
渾南網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),渾南網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為渾南上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的渾南做網(wǎng)站的公司定做!
1.1 搭建NFS服務(wù)器
NFS(Network FileSystem,網(wǎng)絡(luò)文件系統(tǒng))是由SUN公司發(fā)展,并于1984年推出的技術(shù),用于在不同機(jī)器,不同操作系統(tǒng)之間通過網(wǎng)絡(luò)互相分享各自的文件。NFS設(shè)計(jì)之初就是為了在不同的系統(tǒng)間使用,所以它的通訊協(xié)議設(shè)計(jì)與主機(jī)及操作系統(tǒng)無關(guān)。
NFS分服務(wù)器和客戶機(jī),當(dāng)使用遠(yuǎn)端文件時(shí)只要用mount命令就可把遠(yuǎn)端NFS服務(wù)器上的文件系統(tǒng)掛載在本地文件系統(tǒng)之下,操作遠(yuǎn)程文件與操作本地文件沒有不同。NFS服務(wù)器所共享文件或目錄記錄在/etc/exports文件中。
嵌入式Linux開發(fā)中,會(huì)經(jīng)常使用NFS,目標(biāo)系統(tǒng)通常作為NFS客戶機(jī)使用,Linux主機(jī)作為NFS服吵皮務(wù)器。在目標(biāo)系統(tǒng)上通過NFS,將服務(wù)器的NFS共享目錄掛載到本地,可以直接運(yùn)行服務(wù)器上的文件。在調(diào)試系統(tǒng)驅(qū)動(dòng)模塊以及應(yīng)用程序,NFS都是十分必要的,并且Linux還支持NFS根文件系統(tǒng),能直接從遠(yuǎn)程N(yùn)FS root啟動(dòng)系統(tǒng),這對嵌入式Linux根文件系統(tǒng)裁剪和集成也是十分有必要的。
安裝nfs-kernel-server:
ky@ubuntu:~$ sudo apt-get install nfs-kernel-server
設(shè)置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS服務(wù)器目錄。 一個(gè)NFS服務(wù)器可以共享多個(gè)NFS目錄,在/etc/exports文件中,每個(gè)目錄的設(shè)置獨(dú)占一行,編寫格式如下:
NFS共享目錄路徑 客戶機(jī)IP或者名稱(參數(shù)1,參數(shù)2,...,參數(shù)n)
說明:
q NFS共享目錄可以是主機(jī)的任何一個(gè)目錄,為了方便使用,最好將權(quán)限設(shè)置為777。
q 客戶機(jī)指的是可以訪問共享目錄的客戶機(jī)的IP或者主機(jī)名,可以是指定的IP或者主機(jī)名。如果使用IP,可以使用通配符。假如指定高吵IP為192.168.1.x的客戶機(jī)可以訪問,可以寫成192.168.1.*,如果設(shè)置為*,則表示任何客戶機(jī)都可以訪問。
q 訪問參數(shù)可以是一個(gè),也可以是多個(gè),用逗號分開。可能的參數(shù)和說明如 REF _Ref286733518 \h 表 5.108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。
表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS設(shè)置參數(shù)和說明
參數(shù)
說明
ro
只讀訪問
rw
讀寫訪問
sync
所有數(shù)據(jù)在請求時(shí)寫入共享
async
nfs在寫入數(shù)據(jù)前可以響應(yīng)請求
secure
nfs通過1024以下的安全TCP/IP端口發(fā)送
insecure
nfs通過1024以上的端口發(fā)送
wdelay
如果多個(gè)用戶要寫入nfs目錄,則歸組寫入(默認(rèn))
no_wdelay
如果多個(gè)用戶要寫入nfs目錄,則立即寫入,當(dāng)使用async時(shí),無需此設(shè)置
hide
在nfs共享目錄中不共享其子目錄
no_hide
共享nfs目錄的子目錄
subtree_check
如果共享/usr/bin之類的子目錄時(shí),強(qiáng)制nfs檢查父目錄的權(quán)限(默認(rèn))
no_subtree_check
不檢查父目錄權(quán)限
all_squash
共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄
no_all_squash
保留共享文件的UID和GID(默認(rèn))
root_squash
root用戶的所有請求映射成如anonymous用戶一樣的權(quán)限(默認(rèn))
no_root_squash
root用戶具有戚碰侍根目錄的完全管理訪問權(quán)限
anonuid=xxx
指定nfs服務(wù)器/etc/passwd文件中匿名用戶的UID
anongid=xxx
指定nfs服務(wù)器/etc/passwd文件中匿名用戶的GID
假定NFS共享目錄是/home/ky/nfs,允許所有客戶機(jī)訪問,/etc/exports文件可寫為:
/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)
啟動(dòng)NFS服務(wù)器。啟動(dòng)portmap(如果有必要)和nfs-kernel-server服務(wù):
ky@ubuntu:~$ sudo service portmap start
ky@ubuntu:~$ sudo service nfs-kernel-server start
本地驗(yàn)證NFS服務(wù)器。將NFS服務(wù)器目錄掛載到本機(jī)另外一個(gè)目錄下,可以看到掛載點(diǎn)目錄下可以看到NFS服務(wù)器目錄中的文件。
ky@ubuntu:~$ ls /home/ky/nfs/
aaaa
ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt
ke@ubuntu:~$ ls /mnt
aaaa
ky@ubuntu:~$ sudo umount /mnt/
用開發(fā)板驗(yàn)證NFS服務(wù)器是否可用。啟動(dòng)開發(fā)板,進(jìn)入系統(tǒng),配置好開發(fā)板的IP地址后,用mount命令掛載NFS服務(wù)器的NFS目錄:
target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock
target# ls /mnt
kingyee
target# umount /mnt/
掛載成功后,可以在開發(fā)板的/mnt目錄下看到NFS服務(wù)器上的文件。
說明,使用開發(fā)板與虛擬機(jī)安裝的客戶系統(tǒng)進(jìn)行NFS掛載,需要將虛擬網(wǎng)卡設(shè)置為Bridged模式,并建議使用靜態(tài)IP地址。
如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件后,可以不用重啟NFS服務(wù),用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:
exportfs [-aruv]
選項(xiàng)說明:
-a:全部掛載(或卸載) /etc/exports的設(shè)置;
-r:重新掛載/etc/exports的設(shè)置;
-u:卸載某一個(gè)目錄;
-v:在輸出的時(shí)候,把共享目錄顯示出來。
如果NFS已經(jīng)啟動(dòng),修改了/etc/exports文件,執(zhí)行如下命令,新的設(shè)置即可生效:
ky@ubuntu:~$ exportfs -ra
NFS文件系唯攜統(tǒng)本來是liunx的服務(wù)想在win7下實(shí)現(xiàn)需要用軟件,如果想在不想用軟件會(huì)很麻煩?。。?!
Windows 7中加入了NFS 客戶端功能,可以通過控制面板中的“程序和功能”-“打開和關(guān)閉Windows功能”- "NFS服務(wù)"
來開啟,當(dāng)然默認(rèn)下Telnet客戶端也是無效的,也可以在這里打開。判山芹安裝完成后,就可以在Windows的命令行窗口中通過mount
以及showmount命令使用NFS的共享了。
C:\showmount /?
用法: showmount -e [server]
showmount -a [server]
showmount -d [server]
C:\mount /?
用法: mount [-o options] [-u:username] [-p:password | *] \\computername\sharename devicename | *
-o rsize=size 設(shè)置讀取緩沖區(qū)的大小(以 KB 為單位)。
-o wsize=size 設(shè)置寫入緩沖區(qū)的大小(以 KB 為單位)。
-o timeout=time 設(shè)置 RPC 調(diào)用的超時(shí)值(以秒為單位)。
-o retry=number 設(shè)置軟裝載的掘畢重試次數(shù)。
-o mtype=soft|hard 設(shè)置裝載類型。
-o lang=euc-jp|euc-tw|euc-kr|shift-jis|big5|ksc5601|gb2312-80|ansi
指定用于文件和目錄名稱的編碼。
-o fileaccess=mode 指定文件的權(quán)限模式。
這些模式用于在 NFS 服務(wù)器上創(chuàng)建的
新文件。使用 UNIX 樣式模式位指定。
-o anon 作為匿名用戶裝載。
-o nolock 禁用鎖定。
-o casesensitive=yes|no 指定在服務(wù)器上執(zhí)行區(qū)分大小寫的文件查找。
-o sec=sys|krb5|krb5i
簡單的例子:
C:\Windows\SUA\binshowmount -enfs_serv1
導(dǎo)出列表在nfs_serv1:
/vol/volz 所有計(jì)算機(jī)
/vol/volx 所有計(jì)算機(jī)
/vol/Do_NOT_Delete 所有計(jì)算機(jī)
/vol/vol7 所有計(jì)算機(jī)
/vol/vol0 nfs_cli1
/vol/vol0/home 所有計(jì)算機(jī)
/vol/isan 所有計(jì)算機(jī)
/vol/vsc 所有計(jì)算機(jī)
/vol/nfs_smvi nfs_cli1
/vol/vol_t1 所有計(jì)算機(jī)
C:\mount \\nfs_serv1\vol\vol0 Z:
Z: 現(xiàn)已成功連接到 \\nfs_serv1\vol\vol0
需要注意的是,mount point和Linux和UNIX有所不同,不是使用一個(gè)目錄作為掛載點(diǎn),而是使用一個(gè)未使用的盤符。
例如上例中的"Z:"。這樣就可以通過Z:盤訪問你的共享了。非常方便。比起CIFS的方式更加快捷。
使用完后,可以用umount命令卸載共享。
C:\Users\leizumount
用法: [-f] -a | drive_letters | network_mounts
-a 刪除所有 NFS 網(wǎng)絡(luò)裝入點(diǎn)
-f 強(qiáng)制刪除 NFS 網(wǎng)絡(luò)裝入點(diǎn)
C:\Users\leizumount Z:
正在斷開 Z: \\nfs_serv1\vol\vol0
連接上存在打開的文件和/或未完成的目錄搜索。
要繼續(xù)此操作嗎? (Y/N) [N]:y
命令已成功完成。
C:\Users\leizmount
本地 遠(yuǎn)程 屬性
-------------------------------------------------------------------------------
Z: \\10.128.132.175\vol\vol0 UID=-2, GID=-2
rsize=32768, wsize=32768
mount=soft, timeout=1.6
retry=1, locking=yes
fileaccess=755, lang=GB2312-80
casesensitive=no
由于阿里云線上有NAS存儲(chǔ),又不能公網(wǎng)訪問,所以本地通過軟件構(gòu)建一個(gè)NAS以供戚友測試。
NFS的掛載原理
NFS分為客戶端與服務(wù)器端,一般設(shè)置為一個(gè)Server端,多個(gè)客戶端,也可設(shè)置為多對多,當(dāng)服務(wù)器端設(shè)置好共享目錄/data后,客戶端通過相應(yīng)的訪問權(quán)限,將共享目錄掛載到本地系統(tǒng)的某個(gè)目錄下,就可以透明的看到共享目錄里的文件了,依據(jù)服務(wù)器制定的相應(yīng)權(quán)限做操模仔敬作
NFS服務(wù)器與客戶端的通信原理
客戶端NFS和服務(wù)端NFS通訊過程
1)首先服務(wù)器端啟動(dòng)RPC服務(wù),并開啟111端口
2)啟動(dòng)NFS服務(wù),并向RPC注冊端口信息
3)客戶端啟動(dòng)RPC(portmap服務(wù)),向服務(wù)端的RPC(portmap)服務(wù)請求服務(wù)端的NFS端口
4)服務(wù)端的RPC(portmap)服務(wù)反饋NFS端口信息給客戶端。
5)客戶端通過獲取的NFS端口來建立和服務(wù)端的NFS連接并進(jìn)行數(shù)據(jù)的傳輸。
NFS系統(tǒng)守護(hù)進(jìn)程
nfsd:它是基本的NFS守護(hù)進(jìn)程,主要功能是管理客戶端是否能夠登錄服務(wù)器;
mountd:它是RPC安裝守護(hù)進(jìn)程,主要功能是管理NFS的文件系統(tǒng)。
當(dāng)客戶端順利通過nfsd登錄NFS服務(wù)器后,在使用NFS服務(wù)所提供的文件前,還必須通過文件使用權(quán)限的驗(yàn)證。它會(huì)讀取NFS的配置文件/etc/exports來對比客戶端權(quán)限。
portmap:主要功能是進(jìn)行端口映射工作。當(dāng)客戶端嘗試連接并使用RPC服務(wù)器提供的服務(wù)(如NFS服務(wù))時(shí),portmap會(huì)將所管理的與服務(wù)對應(yīng)的端口提供給客戶端,從而使客戶可以通過該端口向服務(wù)器請求服務(wù)。
環(huán)境:
新建一個(gè)虛擬機(jī),系統(tǒng)安裝使用最小化安裝,可參照我前面的文章,有詳細(xì)介紹。一般情況是系統(tǒng)盤是和數(shù)據(jù)盤分開。系統(tǒng)盤在線上我一般情況是分配20G,如果是容器等應(yīng)用系盤我會(huì)分配50G,當(dāng)然如果是有很多鏡像的容器環(huán)境,那么我會(huì)系統(tǒng)將/var/lib/docker等用單獨(dú)的數(shù)據(jù)盤來掛載。
安裝配置NAS文件共享存儲(chǔ)
1、服務(wù)端安裝
2、關(guān)閉防火墻
3、配置nas
配置文件:/etc/exports
共享目錄創(chuàng)建:
4. 本地NAS存儲(chǔ)目錄 192.168.230.0/24(授權(quán)訪問客戶端的地址段)
5. 重新加載NFS配置
參數(shù)說明:
rw:可讀寫的權(quán)限
ro:只讀的權(quán)限 anonuid:可以自行設(shè)定這個(gè)UID的值,這個(gè)UID必需要存在于你的/etc/passwd當(dāng)中anongid:同anonuid,但是變成groupID就是了 sync:資料同步寫入到內(nèi)存與硬盤當(dāng)中 async:資料會(huì)先暫存于內(nèi)存當(dāng)中,而非直接寫入硬盤 insecure:允許從這臺(tái)機(jī)器過來的非授權(quán)訪問
no_root_squash:登入NFS主機(jī),使用該共享目錄時(shí)相當(dāng)于該目錄的擁有者,如果是root的話,那么對于這個(gè)共享的目錄來說,旦慎他就具有root的權(quán)限,這個(gè)參數(shù)『極不安全』,不建議使用
root_squash:登入NFS主機(jī),使用該共享目錄時(shí)相當(dāng)于該目錄的擁有者。但是如果是以root身份使用這個(gè)共享目錄的時(shí)候,那么這個(gè)使用者(root)的權(quán)限將被壓縮成為匿名使用者,即通常他的UID與GID都會(huì)變成nobody那個(gè)身份
all_squash:不論登入NFS的使用者身份為何,他的身份都會(huì)被壓縮成為匿名使用者,通常也就是nobody
6. 啟動(dòng)服務(wù)
7. 設(shè)置開機(jī)啟動(dòng)
8. 查看端口占用,以便開著防火墻的時(shí)候設(shè)置,如果閑麻煩,可以通過限制訪問IP
Linux nfs客戶端安裝
vi /ettc/hosts
在末尾加入
開機(jī)自動(dòng)掛載
vi /etc/fstab
##尾行下面新增加一行寫入
注:_netdev表示設(shè)備需要網(wǎng)絡(luò)