一、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 33993/tcp
nlockmgr 33993/udp
保存并退出。
然后设置nfs配置文件,配置端口使 rquotad、nlockmgr、mountd的端口固定,如下:
vi/etc/sysconfig/nfs
RQUOTAD_PORT=966
LOCKD_TCPPORT=33993
LOCKD_UDPPORT=33993
MOUNTD_PORT=976
其中 portmapper和nfs 服务端口是固定的分别是 111和2049
重启下nfs服务。 service nfs restart
在防火墙中开放这5个端口
编辑iptables配置文件
vim /etc/sysconfig/iptables
添加如下行:
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 976 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 966 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 33993 -j ACCEPT
-A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 976 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 2049 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 966 -j ACCEPT -A RH-Firewall-1-INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 33993 -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 |
---------------------------
(完)