NAS基礎(chǔ)知識

一、什么是NAS

1、NAS的定義

?NAS(Network Attached Storage:網(wǎng)絡(luò)附屬存儲)按字面簡單說就是連接在網(wǎng)絡(luò)上,具備資料存儲功能的裝置,因此也稱為“網(wǎng)絡(luò)存儲器”。它是一種專用數(shù)據(jù)存儲服務(wù)器。

? ? ? ?它以數(shù)據(jù)為中心,將存儲設(shè)備與服務(wù)器徹底分離,集中管理數(shù)據(jù),從而提高性能、降低總擁有成本。其成本遠遠低于使用服務(wù)器存儲,而效率卻遠遠高于后者。

2、優(yōu)點

(1)、NAS產(chǎn)品是真正即插即用的產(chǎn)品。NAS設(shè)備一般支持多計算機平臺,用戶通過網(wǎng)絡(luò)支持協(xié)議可進入相同的文檔,因而NAS設(shè)備無需改造即可用于混合Unix/Windows NT局域網(wǎng)內(nèi)。

(2)、NAS設(shè)備的物理位置同樣是靈活的。它們可放置在工作組內(nèi),靠近數(shù)據(jù)中心的應(yīng)用服務(wù)器,或者也可放在其他地點,通過物理鏈路與網(wǎng)絡(luò)連接起來。無需應(yīng)用服務(wù)器的干預(yù),NAS設(shè)備允許用戶在網(wǎng)絡(luò)上存取數(shù)據(jù),這樣既可減小CPU的開銷,也能顯著改善網(wǎng)絡(luò)的性能。

3、局限

(1)、NAS沒有解決與文件服務(wù)器相關(guān)的一個關(guān)鍵性問題,即備份過程中的帶寬消耗。與將備份數(shù)據(jù)流從LAN中轉(zhuǎn)移出去的存儲區(qū)域網(wǎng)(SAN)不同,NAS仍使用網(wǎng)絡(luò)進行備份和恢復(fù)。NAS的一個缺點是它將存儲事務(wù)由并行SCSI連接轉(zhuǎn)移到了網(wǎng)絡(luò)上。這就是說LAN除了必須處理正常的最終用戶傳輸流外,還必須處理包括備份操作的存儲磁盤請求。

(2)、由于存儲數(shù)據(jù)通過普通數(shù)據(jù)網(wǎng)絡(luò)傳輸,因此易受網(wǎng)絡(luò)上其它流量的影響。當(dāng)網(wǎng)絡(luò)上有其它大數(shù)據(jù)流量時會嚴重影響系統(tǒng)性能;由于存儲數(shù)據(jù)通過普通數(shù)據(jù)網(wǎng)絡(luò)傳輸,因此容易產(chǎn)生數(shù)據(jù)泄漏等安全問題;

(3)、存儲只能以文件方式訪問,而不能像普通文件系統(tǒng)一樣直接訪問物理數(shù)據(jù)塊,因此會在某些情況下嚴重影響系統(tǒng)效率,比如大型數(shù)據(jù)庫就不能使用NAS。

4、NAS的應(yīng)用

? ? ? ? NAS被定義為一種特殊的專用數(shù)據(jù)存儲服務(wù)器,包括存儲器件(例如磁盤陣列、CD/DVD驅(qū)動器、磁帶驅(qū)動器或可移動的存儲介質(zhì))和內(nèi)嵌系統(tǒng)軟件,可提供跨平臺文件共享功能。NAS通常在一個LAN上占有自己的節(jié)點,無需應(yīng)用服務(wù)器的干預(yù),允許用戶在網(wǎng)絡(luò)上存取數(shù)據(jù),在這種配置中,NAS集中管理和處理網(wǎng)絡(luò)上的所有數(shù)據(jù),將負載從應(yīng)用或企業(yè)服務(wù)器上卸載下來。目前國際著名的NAS企業(yè)有Netapp、EMC、OUO等。

? ? ? ? NAS是功能單一的精簡型電腦,因此在架構(gòu)上不像個人電腦那么復(fù)雜,像鍵盤、鼠標(biāo)、熒幕、音效卡、喇叭、擴充漕、各式連接口等都不需要;在外觀上就像家電產(chǎn)品,只需電源與簡單的控制鈕。NAS在架構(gòu)上與個人電腦相似,但因功能單純,可移除許多不必要的連接器、控制晶片、電子回路,如鍵盤、鼠標(biāo)、USB、VGA等。

5、NAS支持的協(xié)議-NFS

? ? ? ? NFS:(網(wǎng)絡(luò)文件系統(tǒng))是由sun開發(fā)的Unix系統(tǒng)間實現(xiàn)磁盤文件共享的一種方法,支持應(yīng)用程序在客戶端通過網(wǎng)絡(luò)存取位于服務(wù)器磁盤中數(shù)據(jù)的一種文件系統(tǒng)協(xié)議。常用于Unix操作系統(tǒng)平臺(比如:AIX,HP-UX等Linux系統(tǒng))的訪問協(xié)議??梢允褂胢ount進行掛載。也可用于windows系統(tǒng)。NFS提供了除Samba之外,Windows與Linux及UNIX與Linux之間通信的方法。

? ? ? ? NFS(網(wǎng)絡(luò)文件系統(tǒng))是Unix系統(tǒng)間實現(xiàn)磁盤文件共享的一種方法,支持應(yīng)用程序在客戶端通過網(wǎng)絡(luò)存取位于服務(wù)器磁盤中數(shù)據(jù)的一種文件系統(tǒng)協(xié)議。其實它包括許多種協(xié)議,最簡單的網(wǎng)絡(luò)文件系統(tǒng)是網(wǎng)絡(luò)邏輯磁盤,即客戶端的文件系統(tǒng)通過網(wǎng)絡(luò)操作位于遠端的邏輯磁盤,如IBM SVD(共享虛擬盤)。現(xiàn)一般在Unix主機之間采用Sun開發(fā)的NFS(Sun),它能夠在所有Unix系統(tǒng)之間實現(xiàn)文件數(shù)據(jù)的互訪,逐漸成為主機間共享資源的一個標(biāo)準。相比之下,SAN采用的網(wǎng)絡(luò)文件系統(tǒng),作為高層協(xié)議,需要特別的文件服務(wù)器來管理磁盤數(shù)據(jù),客戶端以邏輯文件塊的方式存取數(shù)據(jù),文件服務(wù)器使用塊映射存取真正的磁盤塊,并完成磁盤格式和元數(shù)據(jù)管理。由Sun公司開發(fā),通過網(wǎng)絡(luò),NFS支持在不同的文件系統(tǒng)之間共享文件.用戶不必關(guān)心計算機的型號,以及使用的操作系統(tǒng),如果想使用遠程計算機上的文件,只要用mount命令將遠程的目錄。接在本地文件系統(tǒng)下,就可以如同使用本地文件一樣使用這個資源。


(1)節(jié)約使用的磁盤空間:客戶端經(jīng)常使用的數(shù)據(jù)可以集中存放在一臺機器上,并使用NFS發(fā)布,那么網(wǎng)絡(luò)內(nèi)部所有計算機可以通過網(wǎng)絡(luò)訪問,不必單獨存儲.

(2)節(jié)約硬件資源:NFS還可以共享軟驅(qū),CDROM和ZIP等的存儲設(shè)備,減少整個網(wǎng)絡(luò)上的可移動設(shè)備的數(shù)量.

(3)用戶主目錄設(shè)定:對于特殊用戶,如管理員等,為了管理的需要,可能會經(jīng)常登錄到網(wǎng)絡(luò)中所有的計算機,若每個客戶端,均保存這個用戶的主目錄很繁瑣,而且不能保證數(shù)據(jù)的一致性.實際上,經(jīng)過NFS服務(wù)的設(shè)定,然后在客戶端指定這個用戶的主目錄位置,并自動掛載,就可以在任何計算機上使用用戶主目錄的文件。

?6、NAS支持的協(xié)議-CIFS

? ? ? ? CIFS:? (Common Internet File System/通用Internet文件系統(tǒng))由微軟開發(fā)的,用于連接Windows客戶機和服務(wù)器。經(jīng)過Unix服務(wù)器廠商的重新開發(fā)后,它可以用于連接Windows客戶機和Unix服務(wù)器,執(zhí)行文件共享和打印等任務(wù)。CIFS最典型的應(yīng)用是windows用戶能夠從“網(wǎng)上鄰居”中找到網(wǎng)絡(luò)中的其他主機并訪問其中的共享文件夾。

? ? ? ? CIFS是由微軟開發(fā)的,用于連接Windows客戶機和服務(wù)器。經(jīng)過Unix服務(wù)器廠商的重新開發(fā)后,它可以用于連接Windows客戶機和Unix服務(wù)器,執(zhí)行文件共享和打印等任務(wù)。它最早的由來是NetBIOS,這是微軟開發(fā)的在局域網(wǎng)內(nèi)實現(xiàn)基于Windows名稱資源共享的API。之后,產(chǎn)生了基于NetBIOS的NetBEUI協(xié)議和NBT(NetBIOS OVER TCP/IP)協(xié)議。NBT協(xié)議進一步發(fā)展為SMB(Server Message Block Potocol)和CIFS(Common Internet File System,通用互聯(lián)網(wǎng)文件系統(tǒng))協(xié)議。其中,CIFS用于Windows系統(tǒng),而SMB廣泛用于Unix和Linux,兩者可以互通。SMB協(xié)議還被稱作LanManager協(xié)議。CIFS可籍由與支持SMB的服務(wù)器通信而實現(xiàn)共享。微軟操作系統(tǒng)家族和幾乎所有Unix服務(wù)器都支持SMB協(xié)議/SMBBA軟件包。在windows主機之間進行網(wǎng)絡(luò)文件共享是通過使用微軟公司自己的CIFS服務(wù)實現(xiàn)的。

CIFS可以使您達到以下功能:

(1)訪問服務(wù)器本地文件并讀寫這些文件

(2)與其它用戶一起共享一些文件塊

(3)在斷線時自動恢復(fù)與網(wǎng)絡(luò)的連接

(4)使用統(tǒng)一碼(Unicode)文件名:文件名可以使用任何字符集,而不局限于為英語或西歐語言設(shè)計的字符集。

? ? ? ? ?一般來說,CIFS使用戶得到比FTP更好的對文件的控制。它提供潛在的更直接地服務(wù)器程序接口,這比使用HTTP協(xié)議的瀏覽器更好。CIFS最典型的應(yīng)用是windows用戶能夠從“網(wǎng)上鄰居”中找到網(wǎng)絡(luò)中的其他主機并訪問其中的共享文件夾。CIFS是開放的標(biāo)準而且已經(jīng)被作為Internet應(yīng)用程序標(biāo)準被提交到IETF。用于Java與DCom通信的開源第三方庫J-Interop就是利用CIFS協(xié)議實現(xiàn)的。

7、CIFS和NFS的對比

(1)CIFS面向網(wǎng)絡(luò)連接的共享協(xié)議,對網(wǎng)絡(luò)傳輸?shù)目煽啃砸蟾?,常使用TCP/IP;NFS是獨立于傳輸?shù)?,可使用TCP或UDP;

(2)NFS缺點之一,是要求client必須安裝專用軟件;而CIFS集成在OS 內(nèi)部,無需額外添加軟件;

(3)NFS屬無狀態(tài)協(xié)議,而CIFS屬有狀態(tài)協(xié)議;NFS受故障影響小,可以自恢復(fù)交互過程,CIFS不行;從傳輸效率上看,CIFS優(yōu)于NFS,沒用太多冗余信息傳送;

(4)兩協(xié)議都需要文件格式轉(zhuǎn)換,NFS保留了unix的文件格式特性,如所有人、組等等;CIFS則完全按照win的風(fēng)格來作。

8、NAS支持的協(xié)議-SAMBA

? ? ?SAMBA: 是在Linux和UNIX系統(tǒng)上實現(xiàn)SMB協(xié)議的一個免費軟件,由服務(wù)器及客戶端程序構(gòu)成。SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計算機之間提供文件及打印機等資源的共享服務(wù)。SMB協(xié)議是客戶機/服務(wù)器型協(xié)議,客戶機通過該協(xié)議可以訪問服務(wù)器上的共享文件系統(tǒng)、打印機及其他資源。通過設(shè)置“NetBIOS over TCP/IP”使得Samba不但能與局域網(wǎng)絡(luò)主機分享資源,還能與全世界的電腦分享資源。用于windows系統(tǒng)平臺的文件系統(tǒng)訪問協(xié)議。

9、NAS支持的協(xié)議-FTP

? ? ? ? FTP:FTP 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱,而中文簡稱為“文傳協(xié)議”。用于Internet上的控制文件的雙向傳輸。同時,它也是一個應(yīng)用程序(Application)?;诓煌牟僮飨到y(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以傳輸文件。在FTP的使用當(dāng)中,用戶經(jīng)常遇到兩個概念:"下載"(Download)和"上傳"(Upload)。"下載"文件就是從遠程主機拷貝文件至自己的計算機上;"上傳"文件就是將文件從自己的計算機中拷貝至遠程主機上。用Internet語言來說,用戶可通過客戶機程序向(從)遠程主機上傳(下載)文件。無法直接修改主機上面的檔案數(shù)據(jù)

10、區(qū)別

NFS:主要用于UNIX/LINUX,通過mount進行掛載

CIFS:主要用于windows,如網(wǎng)絡(luò)鄰居

SAMBA:類UNIX系統(tǒng)和windows系統(tǒng)共用,可以直接修改上面的文件

FTP:類UNIX系統(tǒng)和windows系統(tǒng)共用,不可以直接修改上面的文件

二、NAS相關(guān)命令

1、mount

mount命令格式:mount? [-t ?vfstype]? [-o ?options] ?device ?dir [if ppt]u[endif]

-t vfstype 指定文件系統(tǒng)的類型,通常不必指定。mount會自動選擇正確的類型。常用類型有:

(1)光盤或光盤鏡像:iso9660

(2)DOSfat16文件系統(tǒng):msdos

(3)Windows9x fat32文件系統(tǒng):vfat

(4)WindowsNT ntfs文件系統(tǒng):ntfs

(5)MountWindows文件網(wǎng)絡(luò)共享:smbfs

(6)UNIX(LINUX) 文件網(wǎng)絡(luò)共享:nfs

-o options 主要用來描述設(shè)備或檔案的掛接方式。常用的參數(shù)有:

(1)loop:用來把一個文件當(dāng)成硬盤分區(qū)掛接上系統(tǒng)

(2)ro:采用只讀方式掛接設(shè)備

(3)rw:采用讀寫方式掛接設(shè)備

(4)iocharset:指定訪問文件系統(tǒng)所用字符集

device要掛接(mount)的設(shè)備。

dir設(shè)備在系統(tǒng)上的掛接點(mount point)

2、umount

? ? ? ? ?umount命令用于卸載已經(jīng)加載的文件系統(tǒng),利用設(shè)備名或掛載點都能umount文件系統(tǒng),不過最好還是通過掛載點卸載,以免使用綁定掛載(一個設(shè)備,多個掛載點)時產(chǎn)生混亂。

語法? umount(選項)(參數(shù))

選項:

-a:卸除/etc/mtab中記錄的所有文件系統(tǒng);

-h:顯示幫助;

-n:卸除時不要將信息存入/etc/mtab文件中;

-r:若無法成功卸除,則嘗試以只讀的方式重新掛入文件系統(tǒng);

-t<文件系統(tǒng)類型>:僅卸除選項中所指定的文件系統(tǒng);

-v:執(zhí)行時顯示詳細的信息;

-V:顯示版本信息。

參數(shù):文件系統(tǒng):指定要卸載的文件系統(tǒng)或者其對應(yīng)的設(shè)備文件名。

實例:下面兩條命令分別通過設(shè)備名和掛載點卸載文件系統(tǒng),同時輸出詳細信息: 通過設(shè)備名卸載umount-v /dev/sda1 /dev/sda1umounted 通過掛載點卸載umount -v /mnt/mymount/ /tmp/diskboot.img umounted 如果設(shè)備正忙,卸載即告失敗。卸載失敗的常見原因是,某個打開的shell當(dāng)前目錄為掛載點里的某個目錄:umount -v /mnt/mymount/ umount: /mnt/mymount: device is busy umount: /mnt/mymount: device is busy 有時,導(dǎo)致設(shè)備忙的原因并不好找。碰到這種情況時,可以用lsof列出已打開文件,然后搜索列表查找待卸載的掛載點:lsof | grep mymount 查找mymount分區(qū)里打開的文件 bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount 從上面的輸出可知,mymount分區(qū)無法卸載的原因在于,francois運行的PID為9341的bash進程。 對付系統(tǒng)文件正忙的另一種方法是執(zhí)行延遲卸載: umount-vl /mnt/mymount/ 執(zhí)行延遲卸載 延遲卸載(lazy unmount)會立即卸載目錄樹里的文件系統(tǒng),等到設(shè)備不再繁忙時才清理所有相關(guān)資源。卸載可移動存儲介質(zhì)還可以用eject命令。下面這條命令會卸載cd并彈出CD:eject/dev/cdrom 卸載并彈出CD

3、showmount

showmount命令用于查詢網(wǎng)絡(luò)服務(wù)器的“mountd”守護進程,以顯示NFS服務(wù)器加載的信息。

?語法showmount(選項)(參數(shù))

選項

-d:僅顯示已被NFS客戶端加載的目錄;

-e:顯示NFS服務(wù)器上所有的共享目錄。

?-a:以host:dir這樣的格式來顯示客戶主機名和掛載點目錄

-v:顯示版本信息

參數(shù):NFS服務(wù)器:指定NFS服務(wù)器的ip地址或者主機名。


顯示NFS客戶端信息# showmount?

顯示指定NFS服務(wù)器連接NFS客戶端的信息?#showmount192.168.1.1 ?#此ip為nfs服務(wù)器的

顯示輸出目錄列表#showmount -e

顯示指定NFS服務(wù)器輸出目錄列表(也稱為共享目錄列表)?#showmount -e 192.168.1.1

顯示被掛載的共享目錄#showmount -d??

顯示客戶端信息和共享目錄#showmount -a

顯示指定NFS服務(wù)器的客戶端信息和共享目錄#showmount -a 192.168.1.1

4、fuser

可以顯示出當(dāng)前哪個程序在使用磁盤上的某個文件、掛載點、甚至網(wǎng)絡(luò)端口,并給出程序進程的詳細信息。fuser只把PID輸出到標(biāo)準輸出,其他的都輸出到標(biāo)準錯誤輸出。

fuser -km /data1/nfs/

fuser上面用到的幾個參數(shù)的意義如下:

-a 顯示所有命令行中指定的文件,默認情況下被訪問的文件才會被顯示。

-k 殺掉訪問文件的進程。

-i 殺掉進程之前詢問用戶,如果沒有-k這個選項會被忽略。

-m name 指定一個掛載文件系統(tǒng)上的文件或者被掛載的塊設(shè)備(名稱name)。

-c 和-m一樣,用于POSIX兼容,代表當(dāng)前目錄。

-u 在每個PID后面添加進程擁有者的用戶名稱。

-f 打開的文件。默認不顯示。

三、常見問題


1、windows掛載網(wǎng)絡(luò)硬盤


2、NAS掛載后用戶及群組為nobody

??? Redhat和solaris默認使用的nfs-v4版本,其提供了稱為rpc.idmapd的守護進程,并使用/etc/idmapd.conf的配置文件。當(dāng)請求加載nfsv4時,該守護進程將處理 UID和 GID映射。默認使用nis,沒有nis它會自動映射成nobody用戶。,導(dǎo)致無法對NAS進行操作。需使用如下命令進行掛載:

mount -o vers=3 10.10.24.28:/vol/test/home/test

mount –t nfs –o vers=3 10.10.24.28:/vol/test /home/test

3、NAS無法umount

如出現(xiàn)NAS無法umount的情況,報錯device

is busy

(1)檢查當(dāng)前用戶處于NAS掛載的目錄中;

(2)fuser -km /data1/nfs/結(jié)束使用進程

(3)使用fuser命令,先確認有那些進程需要殺掉

[root@localhost/]# fuser -cu /mnt?

/mnt:? ? ? ? ? ? ? 15060c(root)

其次向進程發(fā)出SIGKILL信號

[root@localhost/]# fuser -ck/mnt

/mnt:? ? ? ? ? ? ? ? 15060c

確認

[root@localhost/]# fuser -c /mnt

[1]+? ? ? Killed? ? ? ? ? ? ? ? ? ?dd? ? if=1g of=/dev/null? bs=1M? ?(wd:? ?/mnt)

(4)用lsof列出已打開文件,然后搜索列表查找待卸載的掛載點,如:

lsof?|?grep?mymount?查找mymount分區(qū)里打開的文件

bash???9341??francois??cwd???DIR???8,1???1024????2?/mnt/mymount?

從上面的輸出可知,mymount分區(qū)無法卸載的原因在于,francois運行的PID為9341的bash進程。對付系統(tǒng)文件正忙的另一種方法是執(zhí)行延遲卸載:

#?umount?-vl?/mnt/mymount/?????執(zhí)行延遲卸載?

延遲卸載(lazy unmount)會立即卸載目錄樹里的文件系統(tǒng),等到設(shè)備不再繁忙時才清理所有相關(guān)資源

4、NAS掛載后檢查事項

(1)檢查NAS可讀可寫權(quán)限是否正確;

(2)檢查NAS掛載目錄所屬用戶及群組是否正確;

(3)檢查目錄權(quán)限設(shè)置是否正確;

(4)測試NAS雙方是否均訪問到NAS上的資源。

5、設(shè)置開機自動掛載

設(shè)置自啟動項,在LINUX啟動時自動掛載NFS

創(chuàng)建文件/root/mount.sh

里面寫著mount xxx xxxx

然后開機自啟動:

在/etc/rc.d/after.local里面加入sh /root/mount.sh

6、linux掛載windows共享文件夾

[root@tzyyserveryg~]# mount -t cifs -o username=administrator,password=****? //172.17.99.198/ezbak /testzzh/

7、mount上分區(qū)后顯示不了中文文件為問號/亂碼

顯示問號表明你的系統(tǒng)中沒有可識別使用的中文字體,請先安裝中文字體。確保你的系統(tǒng)已經(jīng)可以很好的顯示中文。顯示為亂碼一般是mount默認使用的文件系統(tǒng)編碼和文件系統(tǒng)中文件的實際編碼不一致造成的。要想正常顯示中文文件,mount時需要用到-o 參數(shù)里的codepage和iocharset選項。codepage指定文件系統(tǒng)的代碼頁,簡體中文中文代碼是936;iocharset指定字符集,簡體中文一般用cp936或gb2312。

#mount –o iocharset=gb2312 codepage=936 /dev/hda5 /mnt/hda5

一般來說 mount –o iocharset=cp936 /dev/hda5 /mnt/hda5就可以解決問題了。如果這樣做了以后還有問題,請嘗試UTF-8編碼:

#mount –o iocharset=utf8 /dev/hda5 /mnt/hda5

8、查看nfs服務(wù)器信息

掛接nfs server的client端執(zhí)行nfsstat -m命令,可以得出nfs server端nfs版本


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容