怎么在虚拟机vmware的ubuntu下搭建nfs服务器

怎么在虚拟机vmware的ubuntu下搭建nfs服务器,第1张

11 搭建NFS服务器

NFS(Network FileSystem,网络文件系统)是由SUN公司发展,并于1984年推出的技术,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。NFS设计之初就是为了在不同的系统间使用,所以它的通讯协议设计与主机及操作系统无关。

NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器上的文件系统挂载在本地文件系统之下,操作远程文件与操作本地文件没有不同。NFS服务器所共享文件或目录记录在/etc/exports文件中。

嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。

安装nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

设置NFS-Server目录。修改/etc/exports文件,在其中增加NFS服务器目录。 一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:

NFS共享目录路径 客户机IP或者名称(参数1,参数2,,参数n)

说明:

q NFS共享目录可以是主机的任何一个目录,为了方便使用,最好将权限设置为777。

q 客户机指的是可以访问共享目录的客户机的IP或者主机名,可以是指定的IP或者主机名。如果使用IP,可以使用通配符。假如指定IP为1921681x的客户机可以访问,可以写成1921681,如果设置为,则表示任何客户机都可以访问。

q 访问参数可以是一个,也可以是多个,用逗号分开。可能的参数和说明如 REF _Ref286733518 \h 表 5108D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003200380036003700330033003500310038000000 所列。

表 STYLEREF 1 \s 5 SEQ 表 \ ARABIC \s 1 1 NFS设置参数和说明

参数

说明

ro

只读访问

rw

读写访问

sync

所有数据在请求时写入共享

async

nfs在写入数据前可以响应请求

secure

nfs通过1024以下的安全TCP/IP端口发送

insecure

nfs通过1024以上的端口发送

wdelay

如果多个用户要写入nfs目录,则归组写入(默认)

no_wdelay

如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置

hide

在nfs共享目录中不共享其子目录

no_hide

共享nfs目录的子目录

subtree_check

如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

no_subtree_check

不检查父目录权限

all_squash

共享文件的UID和GID映射匿名用户anonymous,适合公用目录

no_all_squash

保留共享文件的UID和GID(默认)

root_squash

root用户的所有请求映射成如anonymous用户一样的权限(默认)

no_root_squash

root用户具有根目录的完全管理访问权限

anonuid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的UID

anongid=xxx

指定nfs服务器/etc/passwd文件中匿名用户的GID

假定NFS共享目录是/home/ky/nfs,允许所有客户机访问,/etc/exports文件可写为:

/home/ky/nfs (rw,sync,no_subtree_check, no_root_squash)

启动NFS服务器。启动portmap(如果有必要)和nfs-kernel-server服务:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

本地验证NFS服务器。将NFS服务器目录挂载到本机另外一个目录下,可以看到挂载点目录下可以看到NFS服务器目录中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127001:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用开发板验证NFS服务器是否可用。启动开发板,进入系统,配置好开发板的IP地址后,用mount命令挂载NFS服务器的NFS目录:

target# mount -t nfs 19216813:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

挂载成功后,可以在开发板的/mnt目录下看到NFS服务器上的文件。

说明,使用开发板与虚拟机安装的客户系统进行NFS挂载,需要将虚拟网卡设置为Bridged模式,并建议使用静态IP地址。

如果在使用中需要增加新的NFS共享目录,直接修改/etc/exports文件即可。修改该文件后,可以不用重启NFS服务,用exportfs命令读取/etc/exports文件,重新共享输出。exportfs命令语法如下:

exportfs [-aruv]

选项说明:

-a:全部挂载(或卸载) /etc/exports的设置;

-r:重新挂载/etc/exports的设置;

-u:卸载某一个目录;

-v:在输出的时候,把共享目录显示出来。

如果NFS已经启动,修改了/etc/exports文件,执行如下命令,新的设置即可生效:

ky@ubuntu:~$ exportfs -ra

LINUX NFS安装和使用,具体步骤如下:

1 安装

需要安装 portmap和nfs-utils这两个包,下载rpm包后用rpm安装或者直接用yum安装都可以。

rpm -ivh portmap-40-65221i386rpm

rpm -ivh nfs-utils-109-50el5i386rpm

2 配置

配置文件是/etc/exports,如果不存在需要自己创建。

/etc/exports文件内容格式:

<输出目录> [客户端1域名/IP(选项(访问权限,用户映射,其他))] [客户端2域名/IP 选项(访问权限,用户映射,其他)]

NFS主要的选项有3类:

A 访问权限选项

设置输出目录只读:ro

设置输出目录读写:rw

B 用户映射选项

all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);

no_all_squash:与all_squash相反(默认设置);

root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);

no_root_squash:与rootsquash相反;

anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);

anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

C 其它选项

secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);

insecure:允许客户端从大于1024的tcp/ip端口连接服务器;

sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

async:将数据先保存在内存缓冲区中,必要时才写入磁盘;

wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);

no_wdelay:若有写操作则立即执行,应与sync配合使用;

subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);

no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

例如,我们在namenode1机器上配置做如下配置

/home/dfs/nfs_share_edits/ namenode2(rw)

这个配置是把namenode1上的/home/dfs/nfs_share_edits目录设置成共享,可以给namenode2来访问,访问权限是可读写。

3 启动

sudo service portmap start

sudo service nfs start

查询状态

service portmap status

service nfs status

停止服务

service nfs stop

service portmap stop

4 客户端挂载

命令格式

mount NFS服务器IP/域名:共享目录本地挂载目录

例如,在namenode2机器上运行mount命令挂载namenode1的NFS共享目录

mkdir /home/dfs/nfs_share_edits

sudo mountnamenode1:/home/dfs/nfs_share_edits /home/dfs/nfs_share_edits

这是把namenode2把namenode1的NFS共享目录挂载到本地,这样就可以访问远程的共享目录了,挂载前需要先创建本地的挂载目录。

挂载之后,可以用mount命令查看挂载状态

sudo mount | grep -i nfs

卸载命令

sudo umount namenode1:/home/dfs/nfs_share_edits

5 相关的守护进程

nfsd

它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;

mountd

它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

portmap

主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

6 相关的命令

#查看配置

exportfs

#默认查看共享的服务

showmount -e

#查看已经与客户端连接上的目录信息

showmount -a

linux下Samba服务和NFS服务配置

一、Samba服务配置过程

samba的功能很简单,就是为了使linux和windows之间能够实现共享。并且利用samba搭建文件服务器,不仅比windows功能强大,而且访问速度快、安全。首先说明,samba服务器需要两个守护进程:smbd和nmbd。smbd进程监听139TCP端口,处理到来的SMB数据包;nmbd进程监听137、138UDP端口,使其他主机能浏览linux服务器。

1、安装Samba服务

首先用命令测试rpm -qi samba看是否安装了Samba软件包,若没有可以用yum install samba在线安装(fedora 11环境下)。

2、启动Samba服务

安装完成后,使用service smb start 命令启动samba服务。如果想让samba服务开机自动加载,可使用ntsysv命令(或setup命令中的system service选项)打开开机自动加载的服务,并勾选smb,确定后即可实现开机加载samba服务。

3、关闭防火墙

默认情况下防火墙关闭了139 TCP端口,也关闭了nmbd进程所需要的137、138端口。所以我们使用命令service iptables stop命令关闭防火墙。也可对防火墙进行修改,放行TCP139 UDP 137、138端口。

4、配置samba服务

samba服务的配置文件是 /etc/samba/smbconf,使用VI编辑器打开vi /etc/samba/smbconf文件,对samba进行配置

smbconf文件中包括4中结构,Global、Homes、printers、Userdefined_shareName,其中:

Globa用于定义全局参数和缺省值

Homes用于用户的home目录共享

Printers用于定义打印机共享

Userdefined_ShareName用于自定义共享(可有多个)

说明:文件中开头带有“#”为说明文件,不执行。 开头带有“;”为举例文件,不执行(若想让其执行,去掉“;”)。

配置全局参数Global

◎基本全局参数

workgroup=MYGROUP 设置samba要加入的工作组

server string =Samba Service 指定浏览列表里的机器描述

netbios name=fedora 设置samba的NetBIOS名字 (需要自己添加)

client code page=936 设置客户字符编码 936为简体中文(需要自己添加)

◎日志全局参数

log file 指定日志文件的名称

max log size=50 指定日志文件的最大尺寸(KB)

◎安全全局参数

security 定义samba的安装等级,share--用户不需要用户名和密码即可登陆samba服务器;user--由提供samba服务的samba服务器负责检查帐户及口令;server--检查帐户及口令的工作指定由另一台WindowsNT/2000或samba服务器负责;domain--指定windowsNT/2000域控制器来验证用户帐户、密码

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd

这两行用于设定是否对samba密码进行加密,并指定加密文件存放路径

◎配置自定义共享

自定义共享,只需在文件最后加入share,名字随便取。其中一的参数我们来依依介绍

comment 描述该共享的名称

path 定义该共享的目录

browseable 指定共享的目录是否可浏览

writable 指定共享的目录是否有写入权限

read only 指定共享的目录为只读权限

public 指定是否可以允许Guest帐户访问

guest ok 通public相同,yes为允许guest访问

only guest 指定只有guest用户可以访问

calid users 指定访问该共享的用户

如:comment =my share

path =/home/share

browseable =yes

read only =yes

public =yes

only guest =yes

◎配置完成后的工作

在配置完成后,我们只需新建path定义的共享目录mkdir /home/share,

并使用chmod命令设置了其权限为777,chmod 777 /home/share。

这样在service smb restart重启smb服务后客户端就可以访问该服务器(我修改了全局参数中的security=share,所以进入服务器不需要输入用户名和密码)。在windows下运行中运行://19216816(linux的IP地址)即可。

二、NFS服务配置过程

1、NFS服务器的安装

检查linux系统中是否安装了nfs-utils和portmap两个软件包,#rpm –q nfs-utils(portmap)

2、查看NFS服务器是否启动

#service nfs status

#service portmap status

如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)

#service nfs start

#service portmap start

也可以在ntsysv命令下关闭iptable和开启nfs让其自启动。

3、指定NFS服务器的配置文件

NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exports”,该文件用于被指NFS服务器提供的目录共享

#vi /etc/exports

配置“exports”文件格式如下

/tftpboot (sync,ro)

tftp:共享目录名

表示所有主机

(sync,ro) 设置选项

exports文件中的“配置选项”字段放置在括号对(“( )”)中 ,多个选项间用逗号分隔

sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

ro:设置输出的共享目录只读,与rw不能共同使用

rw:设置输出的共享目录可读写,与ro不能共同使用

4、重新输出共享目录

Exportfs管理工具可以对“exports”文件进行管理

#exportfs –rv 可以让新设置的“exports”文件内容生效

显示当前主机中NFS服务器的输出列表

# showmount -e

显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录

# showmount -d

5、使用mount命令挂载NFS文件系统

#mount 19216816:/tftpboot /home/share

将主机IP地址为19216816中的/tftpboot目录挂载到/home/share

卸载系统中已挂载的NFS共享目录

# umount /home/share

卸载的时候不能在/home/share目录下卸载,必须注销系统后卸载。

PS:

如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。

但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。

1、首先打开电脑的虚拟机,再打开物理机的虚拟网卡。

2、然后选择虚拟机的连接方式为nat,再开启两台Linux虚拟机,然后检查ip地址。

3、然后更改两台虚拟机的ip地址,在设置ip地址为手动。

4、然后配置ip地址,再重新启动网卡服务。

5、然后查看ip地址的更改情况,再用ping命令进行检查连通性。

  Win7系统中搭建Web服务器方法:

  1首先,打开控制面板,选择并进入“程序”,双击“打开或关闭Windows服务”,在弹出的窗口中选择“Internet信息服务”下面所有地选项,点击确定后,开始更新服务。

  2更新完成后,打开浏览器,输入“http://localhost/”回车,如果此时出现IIS7欢迎界面,说明Web服务器已经搭建成功!

3当web服务器搭建成功后,下一步所要做的就是把开发的网站安装到Web服务器的目录中。一般情况下,当Web服务器安装完成后,会创建路径“%系统根目录%inetpub/wwwroot”,将开发的网站文件复制到该目录下,即可实现本地访问该网站。

4当然,最后还要设置防火墙,让局域网当其它计算机也能访问本地网站资源。具体方法:打开控制面板,选择“系统和安全”,点击“允许程序通过Windows防火墙”,在弹出的对话框中勾选“万维网服务HTTP”右侧的两个复选框,最后点击确定退出。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎么在虚拟机vmware的ubuntu下搭建nfs服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情