Linux 磁盘挂载和mount共享、NFS与防火墙配置

 

Linux 磁盘挂载和mount共享、NFS与防火墙配置

 

一、Linux 磁盘挂载和mount共享

针对Linux服务器的磁盘挂载mount和共享做简单操作说明:

1、  查看已使用的磁盘情况

df –h

 

 

2、  查看所有磁盘

fdisk –l

 

3、  查看指定磁盘“/dev/xvde”的分区情况

fdisk -l /dev/xvde

 

如图可以看到,改磁盘并未分区

4、  我们现在需要将/dev/xvde磁盘挂载mount到文件系统的/opt/huiyy目录上,

首先对磁盘“/dev/xvde”分区(这里我们采用1个分区)

命令fdisk /dev/xvde回车,按如下操作进行:

 

输入w写入

 

使用fdisk –l查看刚刚分配的磁盘号

 

5、 格式化磁盘

命令mkfs -t ext3 /dev/xvde1

-t 指定格式化磁盘的文件系统类型为ext3,默认不指定为ext2(linux老文件系统类型)

后面跟刚刚创建的分区号“/dev/xvde1”

 

 

6、  挂载磁盘

a)        创建磁盘挂载目标文件夹

命令mkdir /opt/huiyy

b)        挂载磁盘

命令mount /dev/xvde1/opt/huiyy

c)        记录到/ext/fstab文件中(防止重启后挂载丢失)

命令vi /etc/fstab

 

至此磁盘挂载完成,现在我们可以向/opt/huiyy中写文件了,文件将会被写入到我们挂载的磁盘中。

 

7、  配置共享

共享目录“/opt/huiyy/resource”和“/opt/huiyy/log”权限“rw,sync,no_root_squash”

命令vi /etc/exports编辑内容后:wq保存退出

 

共享查看命令为 more/etc/exports

 

8、  客户端mount此目录

我们把以上配置共享目录的服务器作为服务器A,把我们现在准备mount共享目录的服务器作为服务器B

a)        登录服务器B

b)        mount目录 “/opt/huiyy/log”(其中61.132.254.160为服务器A)

mount  -t nfs -orw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=061.132.254.160:/opt/huiyy/log /opt/huiyy/log

/opt/huiyy/log 是挂载到本机的目录,可以自己定义。

c)        保存mount挂载配置到/etc/fstab(防止服务器重启后挂载丢失)

命令vi /etc/fstab编辑

命令cat /etc/fstab查看配置

 

现在服务器B和文件源服务器A上都可以对目录“/opt/huiyy/log”下创建文件、目录了。

二、mount常用命令

1、启动NFS服务器

为了使NFS服务器能正常工作,需要启动portmap和nfs两个服务,并且portmap一定要先于nfs启动。

#service portmap start

#service nfs start

RHEL4和5是portmap 和 nfs,RHEL6以后改名叫作rpcbind 和 nfs-server 了

另外RHEL 7以后对服务的操作命令建议使用:systemctl [status|stop|start|restart] [serviceName]

如:systemctl status rpcbind   、  systemctl restart nfs-server

2、查询NFS服务器状态

#service portmap status

#service nfs status

3、停止NFS服务器

要停止NFS运行时,需要先停止nfs服务再停止portmap服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止portmap服务

#service nfs stop

#service portmap stop

4、重启portmap 和nfs 服务

#service portmap restart

#service nfs restart

#exportfs

5、设置NFS服务器的自动启动状态

对于实际的应用系统,每次启动LINUX系统后都手工启动nfs服务器是不现实的,需要设置系统在指定的运行级别自动启动portmap和nfs服务。

#chkconfig –list portmap

#chkconfig –list nfs

设置portmap和nfs服务在系统运行级别3和5自动启动。

#chkconfig –level 35 portmap on

#chkconfig –level 35 nfs on

6、服务器端使用showmount命令查询NFS的共享状态

#showmount –e       //默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错

#showmount –a IP    显示指定NFS服务器的客户端以及服务器端在客户端的挂载点

#showmount –d IP    显示指定NFS服务器在客户端的挂载点

#showmount –e IP    显示指定NFS服务器上的共享目录列表(或者叫输出列表)

 

7、显示已经与客户端连接上的目录信息

#showmount -a

8、客户端使用showmount命令查询NFS的共享状态

#showmount -e NFS服务器IP

 

三、mount与防火墙配置

如果服务器端的防火墙有开着的话,在我们执行mount的时候将会提示错误,如下:

mount:mount to NFS server ‘192.168.0.10’ failed: System Error: No route to host.

这个主要是因为防火墙的问题导致的防火墙上开放对应端口即可
由于nfs服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad这5个服务,需要将这5个服务的端口加到iptables里面
而nfs 和portmapper两个服务是固定端口的,nfs为2049,portmapper为111。其他的3个服务是用的随机端口,那就需要先把这3个服务的端口设置成固定的。

    用命令 rpcinfo -p 查看当前这5个服务的端口,并记录下来。

    其中nfs 2049、portmapper111,以及剩下3个服务的端口各记录一个,这样我们就得到了5个端口,如下:

    nfs 2049

    portmapper 111

    mountd 976

    rquotad 966

    nlockmgr 33993

    下面将mountd、rquotad、nlockmgr这3个端口设置为固定端口,修改/etc/service,添加以下内容:

    vi/etc/services

     在文件的最后一行添加:
mountd  976/tcp
mountd  976/udp
rquotad  966/tcp
rquotad  966/udp
nlockmgr 60001/tcp
nlockmgr 60002/udp
保存并退出。

    然后设置nfs配置文件,配置端口使 rquotad、nlockmgr、mountd的端口固定,如下:

    vi /etc/sysconfig/nfs

RQUOTAD_PORT=966
LOCKD_TCPPORT=6001
LOCKD_UDPPORT=6002
MOUNTD_PORT=976
STATD_PORT=977
NLOCKMGR_PORT=33998

其中 portmapper和nfs 服务端口是固定的分别是 111和2049

    重启下nfs服务。 service nfs restart

    在防火墙中开放这5个端口

iptables -I INPUT -s 172.31.5.133/24 -p tcp –dport 111 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p tcp –dport 977 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p tcp –dport 976 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p tcp –dport 2049 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p tcp –dport 6002 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p udp –dport 111 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p udp –dport 977 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p udp –dport 976 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p udp –dport 2049 -j ACCEPT
iptables -I INPUT -s 172.31.5.133/24 -p udp –dport 6001 -j ACCEPT

编辑iptables配置文件
vim /etc/sysconfig/iptables
添加如下行:

-A INPUT -s 172.31.5.0/24 -p udp -m udp –dport 6001 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p udp -m udp –dport 2049 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p udp -m udp –dport 976 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p udp -m udp –dport 977 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p udp -m udp –dport 111 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p tcp -m tcp –dport 6002 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p tcp -m tcp –dport 2049 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p tcp -m tcp –dport 976 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p tcp -m tcp –dport 977 -j ACCEPT
-A INPUT -s 172.31.5.0/24 -p tcp -m tcp –dport 111 -j ACCEPT

保存退出并重启iptables
service iptables restart

然后重新挂载即可。

补充资料:

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

参数LOCKD_TCPPORT/UDPPORT是不生效的,需要修改内核参数:

storage:~ # sysctl -a | grep fs.nfs
fs.nfs.nlm_grace_period = 0
fs.nfs.nlm_timeout = 10
fs.nfs.nlm_udpport = 6001
fs.nfs.nlm_tcpport = 6002
fs.nfs.nsm_use_hostnames = 0
fs.nfs.nsm_local_state = 3
storage:~ #sysctl -p

Leave a Reply

Your email address will not be published. Required fields are marked *