一、什么是NAS
1、NAS的定义
NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。
它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而提高性能、降低总拥有成本。其成本远远低于使用服务器存储,而效率却远远高于后者。
2、优点
(1)、NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内。
(2)、NAS设备的物理位置同样是灵活的。它们可放置在工作组内,靠近数据中心的应用服务器,或者也可放在其他地点,通过物理链路与网络连接起来。无需应用服务器的干预,NAS设备允许用户在网络上存取数据,这样既可减小CPU的开销,也能显著改善网络的性能。
3、局限
(1)、NAS没有解决与文件服务器相关的一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍使用网络进行备份和恢复。NAS的一个缺点是它将存储事务由并行SCSI连接转移到了网络上。这就是说LAN除了必须处理正常的最终用户传输流外,还必须处理包括备份操作的存储磁盘请求。
(2)、由于存储数据通过普通数据网络传输,因此易受网络上其它流量的影响。当网络上有其它大数据流量时会严重影响系统性能;由于存储数据通过普通数据网络传输,因此容易产生数据泄漏等安全问题;
(3)、存储只能以文件方式访问,而不能像普通文件系统一样直接访问物理数据块,因此会在某些情况下严重影响系统效率,比如大型数据库就不能使用NAS。
4、NAS的应用
NAS被定义为一种特殊的专用数据存储服务器,包括存储器件(例如磁盘阵列、CD/DVD驱动器、磁带驱动器或可移动的存储介质)和内嵌系统软件,可提供跨平台文件共享功能。NAS通常在一个LAN上占有自己的节点,无需应用服务器的干预,允许用户在网络上存取数据,在这种配置中,NAS集中管理和处理网络上的所有数据,将负载从应用或企业服务器上卸载下来。目前国际著名的NAS企业有Netapp、EMC、OUO等。
NAS是功能单一的精简型电脑,因此在架构上不像个人电脑那么复杂,像键盘、鼠标、荧幕、音效卡、喇叭、扩充漕、各式连接口等都不需要;在外观上就像家电产品,只需电源与简单的控制钮。NAS在架构上与个人电脑相似,但因功能单纯,可移除许多不必要的连接器、控制晶片、电子回路,如键盘、鼠标、USB、VGA等。
5、NAS支持的协议-NFS
NFS:(网络文件系统)是由sun开发的Unix系统间实现磁盘文件共享的一种方法,支持应用程序在客户端通过网络存取位于服务器磁盘中数据的一种文件系统协议。常用于Unix操作系统平台(比如:AIX,HP-UX等Linux系统)的访问协议。可以使用mount进行挂载。也可用于windows系统。NFS提供了除Samba之外,Windows与Linux及UNIX与Linux之间通信的方法。
NFS(网络文件系统)是Unix系统间实现磁盘文件共享的一种方法,支持应用程序在客户端通过网络存取位于服务器磁盘中数据的一种文件系统协议。其实它包括许多种协议,最简单的网络文件系统是网络逻辑磁盘,即客户端的文件系统通过网络操作位于远端的逻辑磁盘,如IBM SVD(共享虚拟盘)。现一般在Unix主机之间采用Sun开发的NFS(Sun),它能够在所有Unix系统之间实现文件数据的互访,逐渐成为主机间共享资源的一个标准。相比之下,SAN采用的网络文件系统,作为高层协议,需要特别的文件服务器来管理磁盘数据,客户端以逻辑文件块的方式存取数据,文件服务器使用块映射存取真正的磁盘块,并完成磁盘格式和元数据管理。由Sun公司开发,通过网络,NFS支持在不同的文件系统之间共享文件.用户不必关心计算机的型号,以及使用的操作系统,如果想使用远程计算机上的文件,只要用mount命令将远程的目录。接在本地文件系统下,就可以如同使用本地文件一样使用这个资源。
(1)节约使用的磁盘空间:客户端经常使用的数据可以集中存放在一台机器上,并使用NFS发布,那么网络内部所有计算机可以通过网络访问,不必单独存储.
(2)节约硬件资源:NFS还可以共享软驱,CDROM和ZIP等的存储设备,减少整个网络上的可移动设备的数量.
(3)用户主目录设定:对于特殊用户,如管理员等,为了管理的需要,可能会经常登录到网络中所有的计算机,若每个客户端,均保存这个用户的主目录很繁琐,而且不能保证数据的一致性.实际上,经过NFS服务的设定,然后在客户端指定这个用户的主目录位置,并自动挂载,就可以在任何计算机上使用用户主目录的文件。
6、NAS支持的协议-CIFS
CIFS: (Common Internet File System/通用Internet文件系统)由微软开发的,用于连接Windows客户机和服务器。经过Unix服务器厂商的重新开发后,它可以用于连接Windows客户机和Unix服务器,执行文件共享和打印等任务。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹。
CIFS是由微软开发的,用于连接Windows客户机和服务器。经过Unix服务器厂商的重新开发后,它可以用于连接Windows客户机和Unix服务器,执行文件共享和打印等任务。它最早的由来是NetBIOS,这是微软开发的在局域网内实现基于Windows名称资源共享的API。之后,产生了基于NetBIOS的NetBEUI协议和NBT(NetBIOS OVER TCP/IP)协议。NBT协议进一步发展为SMB(Server Message Block Potocol)和CIFS(Common Internet File System,通用互联网文件系统)协议。其中,CIFS用于Windows系统,而SMB广泛用于Unix和Linux,两者可以互通。SMB协议还被称作LanManager协议。CIFS可籍由与支持SMB的服务器通信而实现共享。微软操作系统家族和几乎所有Unix服务器都支持SMB协议/SMBBA软件包。在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。
CIFS可以使您达到以下功能:
(1)访问服务器本地文件并读写这些文件
(2)与其它用户一起共享一些文件块
(3)在断线时自动恢复与网络的连接
(4)使用统一码(Unicode)文件名:文件名可以使用任何字符集,而不局限于为英语或西欧语言设计的字符集。
一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹。CIFS是开放的标准而且已经被作为Internet应用程序标准被提交到IETF。用于Java与DCom通信的开源第三方库J-Interop就是利用CIFS协议实现的。
7、CIFS和NFS的对比
(1)CIFS面向网络连接的共享协议,对网络传输的可靠性要求高,常使用TCP/IP;NFS是独立于传输的,可使用TCP或UDP;
(2)NFS缺点之一,是要求client必须安装专用软件;而CIFS集成在OS 内部,无需额外添加软件;
(3)NFS属无状态协议,而CIFS属有状态协议;NFS受故障影响小,可以自恢复交互过程,CIFS不行;从传输效率上看,CIFS优于NFS,没用太多冗余信息传送;
(4)两协议都需要文件格式转换,NFS保留了unix的文件格式特性,如所有人、组等等;CIFS则完全按照win的风格来作。
8、NAS支持的协议-SAMBA
SAMBA: 是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。用于windows系统平台的文件系统访问协议。
9、NAS支持的协议-FTP
FTP:FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。无法直接修改主机上面的档案数据
10、区别
NFS:主要用于UNIX/LINUX,通过mount进行挂载
CIFS:主要用于windows,如网络邻居
SAMBA:类UNIX系统和windows系统共用,可以直接修改上面的文件
FTP:类UNIX系统和windows系统共用,不可以直接修改上面的文件
二、NAS相关命令
1、mount
mount命令格式:mount [-t vfstype] [-o options] device dir [if ppt]u[endif]
-t vfstype 指定文件系统的类型,通常不必指定。mount会自动选择正确的类型。常用类型有:
(1)光盘或光盘镜像:iso9660
(2)DOSfat16文件系统:msdos
(3)Windows9x fat32文件系统:vfat
(4)WindowsNT ntfs文件系统:ntfs
(5)MountWindows文件网络共享:smbfs
(6)UNIX(LINUX) 文件网络共享:nfs
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
(1)loop:用来把一个文件当成硬盘分区挂接上系统
(2)ro:采用只读方式挂接设备
(3)rw:采用读写方式挂接设备
(4)iocharset:指定访问文件系统所用字符集
device要挂接(mount)的设备。
dir设备在系统上的挂接点(mount point)
2、umount
umount命令用于卸载已经加载的文件系统,利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
语法 umount(选项)(参数)
选项:
-a:卸除/etc/mtab中记录的所有文件系统;
-h:显示帮助;
-n:卸除时不要将信息存入/etc/mtab文件中;
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
-t<文件系统类型>:仅卸除选项中所指定的文件系统;
-v:执行时显示详细的信息;
-V:显示版本信息。
参数:文件系统:指定要卸载的文件系统或者其对应的设备文件名。
实例:下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息: 通过设备名卸载umount-v /dev/sda1 /dev/sda1umounted 通过挂载点卸载umount -v /mnt/mymount/ /tmp/diskboot.img umounted 如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:umount -v /mnt/mymount/ umount: /mnt/mymount: device is busy umount: /mnt/mymount: device is busy 有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:lsof | grep mymount 查找mymount分区里打开的文件 bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount 从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。 对付系统文件正忙的另一种方法是执行延迟卸载: umount-vl /mnt/mymount/ 执行延迟卸载 延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:eject/dev/cdrom 卸载并弹出CD
3、showmount
showmount命令用于查询网络服务器的“mountd”守护进程,以显示NFS服务器加载的信息。
语法showmount(选项)(参数)
选项
-d:仅显示已被NFS客户端加载的目录;
-e:显示NFS服务器上所有的共享目录。
-a:以host:dir这样的格式来显示客户主机名和挂载点目录
-v:显示版本信息
参数:NFS服务器:指定NFS服务器的ip地址或者主机名。
显示NFS客户端信息# showmount
显示指定NFS服务器连接NFS客户端的信息 #showmount192.168.1.1 #此ip为nfs服务器的
显示输出目录列表#showmount -e
显示指定NFS服务器输出目录列表(也称为共享目录列表) #showmount -e 192.168.1.1
显示被挂载的共享目录#showmount -d
显示客户端信息和共享目录#showmount -a
显示指定NFS服务器的客户端信息和共享目录#showmount -a 192.168.1.1
4、fuser
可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。fuser只把PID输出到标准输出,其他的都输出到标准错误输出。
fuser -km /data1/nfs/
fuser上面用到的几个参数的意义如下:
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。
-k 杀掉访问文件的进程。
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。
-c 和-m一样,用于POSIX兼容,代表当前目录。
-u 在每个PID后面添加进程拥有者的用户名称。
-f 打开的文件。默认不显示。
三、常见问题
1、windows挂载网络硬盘
2、NAS挂载后用户及群组为nobody
Redhat和solaris默认使用的nfs-v4版本,其提供了称为rpc.idmapd的守护进程,并使用/etc/idmapd.conf的配置文件。当请求加载nfsv4时,该守护进程将处理 UID和 GID映射。默认使用nis,没有nis它会自动映射成nobody用户。,导致无法对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
如出现NAS无法umount的情况,报错device
is busy
(1)检查当前用户处于NAS挂载的目录中;
(2)fuser -km /data1/nfs/结束使用进程
(3)使用fuser命令,先确认有那些进程需要杀掉
[root@localhost/]# fuser -cu /mnt
/mnt: 15060c(root)
其次向进程发出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分区里打开的文件
bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount
从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。对付系统文件正忙的另一种方法是执行延迟卸载:
# umount -vl /mnt/mymount/ 执行延迟卸载
延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源
4、NAS挂载后检查事项
(1)检查NAS可读可写权限是否正确;
(2)检查NAS挂载目录所属用户及群组是否正确;
(3)检查目录权限设置是否正确;
(4)测试NAS双方是否均访问到NAS上的资源。
5、设置开机自动挂载
设置自启动项,在LINUX启动时自动挂载NFS
创建文件/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上分区后显示不了中文文件为问号/乱码
显示问号表明你的系统中没有可识别使用的中文字体,请先安装中文字体。确保你的系统已经可以很好的显示中文。显示为乱码一般是mount默认使用的文件系统编码和文件系统中文件的实际编码不一致造成的。要想正常显示中文文件,mount时需要用到-o 参数里的codepage和iocharset选项。codepage指定文件系统的代码页,简体中文中文代码是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服务器信息
挂接nfs server的client端执行nfsstat -m命令,可以得出nfs server端nfs版本