您的位置:时时app平台注册网站 > 时时app平台注册网站 > Linux基础学习-NFS网络文件系统实时文件共享【时

Linux基础学习-NFS网络文件系统实时文件共享【时

2019-09-19 22:17

NFS互联网文件系统

万一我们以为萨姆ba服务程序的配备太费事了,那么你分享文件的主机都是Linux系统,那么推荐大家在顾客端铺排nfs服务来分享文件.nfs(网络文件系统)服务可以将远程Linux系统上的文件分享能源挂载到本地主机的目录上,从而使得地点主机客商端基于TCP/IP合同,疑似用本地主机上的财富那样读写远程Linux系统上的分享文件.

12.3 NFS网络文件系统

NFS(Network Files System)即网络文件系统,NFS文件系统公约允许互联网中的主机通过TCP/IP公约进行能源分享,NFS客户端能够像使用本地财富同样读写远端NFS服务端的资料,需求潜心NFS服务重视于RPC服务与外表通讯,所以必须保障RPC服务能够健康登记服务的端口音信本领平常使用NFS服务。

有个学生问过NFS是或不是need for speed的缩写啊?哈哈,NFS配置和应用都是极度火速,所以那样说也可能有道理的。

红帽PAJEROHEL7连串现已暗许安装NFS服务:

[root@linuxprobe ~]# yum install nfs-utils
Loaded plugins: langpacks, product-id, subscription-manager
(1/2): rhel7/group_gz | 134 kB 00:00
(2/2): rhel7/primary_db | 3.4 MB 00:00
Package 1:nfs-utils-1.3.0-0.el7.x86_64 already installed and latest version
Nothing to do

这次的实践须求两台Linux主机,网络布署情形:

编辑
主机名称 操作系统 IP地址
NFS服务端 红帽RHEL7操作系统 192.168.10.10
NFS客户端 红帽RHEL7操作系统 192.168.10.20

第1步:创设NFS服务端的分享目录。
清空iptables私下认可的准绳链:

[root@linuxprobe ~]# iptables -F

保留清空后的iptables准绳:

[root@linuxprobe ~]# service iptables save

始建nfsfile分享目录:

[root@linuxprobe ~]# mkdir /nfsfile

为分享目录设置权限(让其余人能够有写入权限):

[root@linuxprobe ~]# chmod -Rf 777 /nfsfile

写入三个文书,用于NFS客商端读取:

[root@linuxprobe ~]# echo "welcome to linuxprobe.com" > /nfsfile/readme

NFS服务端配置文件是"/etc/exports",用于定义要分享的目录以及相应权限。

[root@linuxprobe ~]# vim /etc/exports
//格式为:共享目录的绝对路径 允许访问NFS资源的客户端(权限参数)
/nfsfile 192.168.10.* (rw,sync,root_squash)

NFS配置共享的参数有:

编辑
参数 作用
ro 只读默认
rw 读写模式
root_squash 当NFS客户端使用root用户访问时,映射为NFS服务端的匿名用户。
no_root_squash 当NFS客户端使用root用户访问时,映射为NFS服务端的root用户。
all_squash 不论NFS客户端使用任何帐户,均映射为NFS服务端的匿名用户。
sync 同时将数据写入到内存与硬盘中,保证不丢失数据。
async 优先将数据保存到内存,然后再写入硬盘,效率更高,但可能造成数据丢失。

看完后来深入分析下/etc/exports文件中参数效能吧“/nfsfile 192.168.10.* (rw,sync,no_root_squash)(答案形式)

答案:将/nfsfile目录共享给192.168.10.0/24网段,运转NFS顾客端读写多少、同步数据并映射为NFS服务器的root客商。

第2步:启动NFS服务端

刚刚讲到NFS服务是借助于RPC服务的,但在红帽EnclaveHEL7种类中RPC服务业已私下认可运转(active)了,所以不必再布局RPC服务啊。

[root@linuxprobe ~]# systemctl status rpcbind

启动nfs-server程序:

[root@linuxprobe ~]# systemctl start nfs-server

安装NFS服务端为开机运营:

[root@linuxprobe ~]# systemctl enable nfs-server

第3步:配置NFS客户端
设若NFS客商端也是红帽本田UR-VHEL7种类,那么软件包nfs-utils早晚也是一度暗中认可安装,间接挂载分享就足以了。
showmount命令用于查询NFS服务端分享新闻,格式为:“showmount [参数] [长途主机]”。

编辑
参数 作用
-e 显示NFS服务端的共享列表
-a 显示本机挂载NFS资源的情况
-v 显示版本号

查询远程NFS服务端中可用的共享能源:

[root@linuxprobe ~]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile (everyone)

创办本地挂载目录:

[root@linuxprobe ~]# mkdir /nfsfile
[root@linuxprobe ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile

顺遂查看到刚刚写入文件内容:

[root@linuxprobe ~]# cat /nfsfile/readme
welcome to linuxprobe.com

要是愿意开机后自行将NFS财富挂载到本地,那么就足以经过退换fstab文件来兑现:

[root@linuxprobe ~]# vim /etc/fstab
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0

一、Samba服务

1.什么是Samba

大致来说,Samba正是在Linux系统下的一种文件分享服务,主机能够是Linux,客商端能够是windows也能够是Linux,主机在装置好分享目录之后,客商端能够在分享目录里打开读写操作。

2.部署Samba

(1)安装samba

yum install samba -y

(2)修改配置文件 /etc/samba/smb.conf

时时app平台注册网站 1

图一 相关参数

时时app平台注册网站 2

图二 相关参数

写入分享目录消息:

时时app平台注册网站 3

时时app平台注册网站 4

图三 相关参数

(3)创设用于访谈共享能源的账户新闻

pdbedit命令用于管理SMB服务程序的账户消息数据库,格式为:pdbedit [选项] 账户,这里的账户必得在系统中存在。以下是pdbedit命令参数:

时时app平台注册网站 5

图四 pdbedit参数

pdbedit -a -u tianchao //将账户tianchao参加Samba账户音讯库

时时app平台注册网站 6

图五 增加账户音讯并设置密码

(4)创设用于分享文件的目录/home/database,在这边须求考虑到读写权限

进而理应把该公文夹的所属组和所属客户改为tianchao

chown -Rf tianchao:tianchao /home/database

关闭SELinux

setenforce 0

(5)用同一个局域网下的windows系统进行连续

时时app平台注册网站 7

图一 链接

时时app平台注册网站 8

图二 登入成功

3.Linux拜候文件分享服务

顾客端安装cifs-utils软件包,然后有限协助和服务器能够ping通

劳动器端开启smaba服务

mount -t cifs -o username=用户名,password=密码 \服务器IP共享目录名称 挂载目录

例:mount -t cifs -o username=tianchao,password=tianchao //192.168.0.110/database /media/database/

实施境况

主机 操作系统 IP地址
NFS服务器 RHEL7.4 192.168.56.15
NFS客户端 CentOS7.4 192.168.56.5

章节简述:

三、autofs自动挂载

所谓自动挂载,正是压缩能源的消耗,使开机速度越来越快,让挂载特别智能,意思是选拔挂载目录里文件的时候从才会活动挂载,假诺不应用以来,则不挂载。

yum install autofs -y //安装autofs

vim /etc/auto.master //编辑配置文件

格式为:挂载目录 子配置文件

例:/media/cdrom /etc/cdrom.misc

子配置文件格式:

挂载目录 -fstype=设备项目 权限 :设备名称

例:/media/iso -fstype=iso9660 ro,nosuid,nodev :/dev/cdrom

这么就足以兑现机关挂载,当你要选拔/media/iso中的文本时候,/dev/cdrom会自动挂载,假如不选拔就不会挂载

开始时代妄图这里本人把防火墙以及selinux都给关闭了.

1 安装 NFS-Server 使用 yum install nfs-utils rpcbind -y 命令.

[root@qdlinux ~]# yum install -y nfs-utils rpcbind
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
dvd                                                                                       | 4.1 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package nfs-utils.x86_64 1:1.3.0-0.48.el7 will be installed
--> Processing Dependency: gssproxy >= 0.7.0-3 for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libtirpc >= 0.2.4-0.7 for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libevent for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libnfsidmap for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: quota for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libnfsidmap.so.0()(64bit) for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
--> Processing Dependency: libtirpc.so.1()(64bit) for package: 1:nfs-utils-1.3.0-0.48.el7.x86_64
---> Package rpcbind.x86_64 0:0.2.0-42.el7 will be installed
--> Running transaction check
---> Package gssproxy.x86_64 0:0.7.0-4.el7 will be installed
--> Processing Dependency: libini_config.so.3(INI_CONFIG_1.1.0)(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libini_config.so.3(INI_CONFIG_1.2.0)(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libref_array.so.1(REF_ARRAY_0.1.1)(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libverto-module-base for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libbasicobjects.so.0()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libcollection.so.2()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libini_config.so.3()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
--> Processing Dependency: libref_array.so.1()(64bit) for package: gssproxy-0.7.0-4.el7.x86_64
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
---> Package libnfsidmap.x86_64 0:0.25-17.el7 will be installed
---> Package libtirpc.x86_64 0:0.2.4-0.10.el7 will be installed
---> Package quota.x86_64 1:4.01-14.el7 will be installed
--> Processing Dependency: quota-nls = 1:4.01-14.el7 for package: 1:quota-4.01-14.el7.x86_64
--> Processing Dependency: tcp_wrappers for package: 1:quota-4.01-14.el7.x86_64
--> Running transaction check
---> Package libbasicobjects.x86_64 0:0.1.1-27.el7 will be installed
---> Package libcollection.x86_64 0:0.6.2-27.el7 will be installed
---> Package libini_config.x86_64 0:1.3.0-27.el7 will be installed
--> Processing Dependency: libpath_utils.so.1(PATH_UTILS_0.2.1)(64bit) for package: libini_config-1.3.0-27.el7.x86_64
--> Processing Dependency: libpath_utils.so.1()(64bit) for package: libini_config-1.3.0-27.el7.x86_64
---> Package libref_array.x86_64 0:0.1.5-27.el7 will be installed
---> Package libverto-tevent.x86_64 0:0.2.5-4.el7 will be installed
---> Package quota-nls.noarch 1:4.01-14.el7 will be installed
---> Package tcp_wrappers.x86_64 0:7.6-77.el7 will be installed
--> Running transaction check
---> Package libpath_utils.x86_64 0:0.2.1-27.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================
 Package                        Arch                  Version                           Repository          Size
=================================================================================================================
Installing:
 nfs-utils                      x86_64                1:1.3.0-0.48.el7                  dvd                398 k
 rpcbind                        x86_64                0.2.0-42.el7                      dvd                 59 k
Installing for dependencies:
 gssproxy                       x86_64                0.7.0-4.el7                       dvd                105 k
 libbasicobjects                x86_64                0.1.1-27.el7                      dvd                 25 k
 libcollection                  x86_64                0.6.2-27.el7                      dvd                 41 k
 libevent                       x86_64                2.0.21-4.el7                      dvd                214 k
 libini_config                  x86_64                1.3.0-27.el7                      dvd                 63 k
 libnfsidmap                    x86_64                0.25-17.el7                       dvd                 49 k
 libpath_utils                  x86_64                0.2.1-27.el7                      dvd                 27 k
 libref_array                   x86_64                0.1.5-27.el7                      dvd                 26 k
 libtirpc                       x86_64                0.2.4-0.10.el7                    dvd                 89 k
 libverto-tevent                x86_64                0.2.5-4.el7                       dvd                9.0 k
 quota                          x86_64                1:4.01-14.el7                     dvd                179 k
 quota-nls                      noarch                1:4.01-14.el7                     dvd                 91 k
 tcp_wrappers                   x86_64                7.6-77.el7                        dvd                 79 k

Transaction Summary
=================================================================================================================
Install  2 Packages ( 13 Dependent packages)

Total download size: 1.4 M
Installed size: 4.1 M
Downloading packages:
-----------------------------------------------------------------------------------------------------------------
Total                                                                            2.5 MB/s | 1.4 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libref_array-0.1.5-27.el7.x86_64                                                             1/15 
  Installing : libcollection-0.6.2-27.el7.x86_64                                                            2/15 
  Installing : libbasicobjects-0.1.1-27.el7.x86_64                                                          3/15 
  Installing : libtirpc-0.2.4-0.10.el7.x86_64                                                               4/15 
  Installing : rpcbind-0.2.0-42.el7.x86_64                                                                  5/15 
  Installing : 1:quota-nls-4.01-14.el7.noarch                                                               6/15 
  Installing : libpath_utils-0.2.1-27.el7.x86_64                                                            7/15 
  Installing : libini_config-1.3.0-27.el7.x86_64                                                            8/15 
  Installing : tcp_wrappers-7.6-77.el7.x86_64                                                               9/15 
  Installing : 1:quota-4.01-14.el7.x86_64                                                                  10/15 
  Installing : libevent-2.0.21-4.el7.x86_64                                                                11/15 
  Installing : libnfsidmap-0.25-17.el7.x86_64                                                              12/15 
  Installing : libverto-tevent-0.2.5-4.el7.x86_64                                                          13/15 
  Installing : gssproxy-0.7.0-4.el7.x86_64                                                                 14/15 
  Installing : 1:nfs-utils-1.3.0-0.48.el7.x86_64                                                           15/15 
  Verifying  : libverto-tevent-0.2.5-4.el7.x86_64                                                           1/15 
  Verifying  : rpcbind-0.2.0-42.el7.x86_64                                                                  2/15 
  Verifying  : 1:quota-4.01-14.el7.x86_64                                                                   3/15 
  Verifying  : libtirpc-0.2.4-0.10.el7.x86_64                                                               4/15 
  Verifying  : libnfsidmap-0.25-17.el7.x86_64                                                               5/15 
  Verifying  : libini_config-1.3.0-27.el7.x86_64                                                            6/15 
  Verifying  : libbasicobjects-0.1.1-27.el7.x86_64                                                          7/15 
  Verifying  : libevent-2.0.21-4.el7.x86_64                                                                 8/15 
  Verifying  : tcp_wrappers-7.6-77.el7.x86_64                                                               9/15 
  Verifying  : libpath_utils-0.2.1-27.el7.x86_64                                                           10/15 
  Verifying  : 1:quota-nls-4.01-14.el7.noarch                                                              11/15 
  Verifying  : gssproxy-0.7.0-4.el7.x86_64                                                                 12/15 
  Verifying  : libcollection-0.6.2-27.el7.x86_64                                                           13/15 
  Verifying  : libref_array-0.1.5-27.el7.x86_64                                                            14/15 
  Verifying  : 1:nfs-utils-1.3.0-0.48.el7.x86_64                                                           15/15 

Installed:
  nfs-utils.x86_64 1:1.3.0-0.48.el7                         rpcbind.x86_64 0:0.2.0-42.el7                        

Dependency Installed:
  gssproxy.x86_64 0:0.7.0-4.el7        libbasicobjects.x86_64 0:0.1.1-27.el7 libcollection.x86_64 0:0.6.2-27.el7
  libevent.x86_64 0:2.0.21-4.el7       libini_config.x86_64 0:1.3.0-27.el7   libnfsidmap.x86_64 0:0.25-17.el7   
  libpath_utils.x86_64 0:0.2.1-27.el7  libref_array.x86_64 0:0.1.5-27.el7    libtirpc.x86_64 0:0.2.4-0.10.el7   
  libverto-tevent.x86_64 0:0.2.5-4.el7 quota.x86_64 1:4.01-14.el7            quota-nls.noarch 1:4.01-14.el7     
  tcp_wrappers.x86_64 0:7.6-77.el7    

Complete!

2 启动 NFS-Server

[root@qdlinux ~]# systemctl start rpcbind
[root@qdlinux ~]# systemctl enable rpcbind
[root@qdlinux ~]# systemctl start nfs-server.service 
[root@qdlinux ~]# systemctl enable nfs-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

开行和启用NFS服务程序,由于在利用NFS服务开展文件分享在此之前,要求采纳RPC(Remote Procedure Call,远程进度调用),服务将NFS服务器的IP地址和端口号等新闻发送给顾客端.因而,在开发银行NFS服务以前,还索要顺带重启并启动rpcbind服务,这里将五个服务一并参与到开机运行项中.

3 能够采纳 rpcbind -p 查看一投注册的消息.

[root@qdlinux ~]# rpcinfo -p
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  43946  status
    100024    1   tcp  38188  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  35724  nlockmgr
    100021    3   udp  35724  nlockmgr
    100021    4   udp  35724  nlockmgr
    100021    1   tcp  44097  nlockmgr
    100021    3   tcp  44097  nlockmgr
    100021    4   tcp  44097  nlockmgr

4 查看系统有关进程新闻

[root@qdlinux ~]# ps -ef | egrep "rpc|nfs"
rpc        1959      1  0 16:37 ?        00:00:00 /sbin/rpcbind -w
rpcuser    2039      1  0 16:38 ?        00:00:00 /usr/sbin/rpc.statd
root       2047      2  0 16:38 ?        00:00:00 [rpciod]
root       2057      1  0 16:38 ?        00:00:00 /usr/sbin/rpc.mountd
root       2058      1  0 16:38 ?        00:00:00 /usr/sbin/rpc.idmapd
root       2068      2  0 16:38 ?        00:00:00 [nfsd4_callbacks]
root       2074      2  0 16:38 ?        00:00:00 [nfsd]
root       2075      2  0 16:38 ?        00:00:00 [nfsd]
root       2076      2  0 16:38 ?        00:00:00 [nfsd]
root       2077      2  0 16:38 ?        00:00:00 [nfsd]
root       2078      2  0 16:38 ?        00:00:00 [nfsd]
root       2079      2  0 16:38 ?        00:00:00 [nfsd]
root       2080      2  0 16:38 ?        00:00:00 [nfsd]
root       2081      2  0 16:38 ?        00:00:00 [nfsd]
root       2135   1633  0 16:52 pts/0    00:00:00 grep -E --color=auto rpc|nfs

5 NFS服务端配置共享目录

参数 作用
ro 只读
rw 读写
root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户
no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员
all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
sync 同时将数据写入到内存与硬盘中,保证不丢失数据
async 优先将数据保存到内存,然后再写入到硬盘,这样效率更高,但可能会丢失数据
[root@qdlinux ~]# vim /etc/exports
/nfsfile 192.168.56.*(rw,sync,all_squash)

//创建需要共享的目录
[root@qdlinux ~]# mkdir /nfsfile

[root@qdlinux ~]# systemctl restart nfs-server.service 
[root@qdlinux ~]# cat /var/lib/nfs/etab 
/nfsfile    192.168.56.*(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,secure,root_squash,all_squash)

//查看一下id=65534是哪一个用户
[root@qdlinux ~]# grep "65534" /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

//修改一下`/nfsfile`的权限,这里也可以把目录所属主和所属组改为nfsnobody或者直接给成777权限
[root@qdlinux ~]# chmod -Rf nfsnobody:nfsnobody /nfsfile/

//在目录下写入一个文件用于测试
[root@qdlinux ~]# echo "welecome to qdlinux" > /nfsfile/readme
[root@qdlinux ~]# ll  /nfsfile/
total 4
-rw-r--rwx 1 root root 20 Aug 16 17:30 readme
[root@qdlinux ~]# 

NFS客商端的安顿步骤非常简练,先使用 showmount 命令查询NFS服务器的长距离分享音信,其出口格式为"分享的目录名称 允许利用客商端地址".

参数 作用
-e 显示NFS服务器的共享李彪
-a 显示本机挂载的文件资源的情况
-v 显示版本号
[root@qdlinux ~]# showmount -e 192.168.56.15
Export list for 192.168.56.15:
/nfsfile 192.168.56.*

6 客户端测量试验

[root@qdlinux ~]# yum install nfs-utils rpcbind -y
[root@qdlinux ~]# systemctl start rpcbind
[root@qdlinux ~]# systemctl is-enabled rpcbind
enabled
[root@qdlinux ~]# systemctl is-active rpcbind
active

//查询一下服务是否运行
[root@qdlinux ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 14:05:32 CST; 3h 48min ago
 Main PID: 568 (rpcbind)
    Tasks: 1
   CGroup: /system.slice/rpcbind.service
           └─568 /sbin/rpcbind -w

Aug 16 14:05:27 qdlinux.com systemd[1]: Starting RPC bind service...
Aug 16 14:05:32 qdlinux.com systemd[1]: Started RPC bind service.

//在客户端使用`showmount -e`命令查询一下
[root@qdlinux ~]# showmount -e 192.168.56.15 NFS服务器共享列表
Export list for 192.168.56.15:
/nfsfile 192.168.56.*

7 NFS客户端挂载

在NFS客商端创建多个挂在目录,使用mount一声令下加-t参数,内定要挂在的文件系统的类型,并在命令后边写上服务器的IP地址、服务器上的分享目录以及要挂载到当地系统(客户端)的目录.

[root@qdlinux /]# mkdir /data
[root@qdlinux /]# mount -t nfs 192.168.56.15:/nfsfile /data

//现在已经挂载成功了,可以看到在NFS服务器上创建的文件了.

若果愿意NFS文件共享服务能直接有效,须要将其写入到 fstab 文件中.

[root@qdlinux data]# vim /etc/fstab
192.168.56.15:/nfsfile                    /data                   nfs     defaults        0 0

1 如果NFS服务器宕机,强制卸载umount -lf /data
2 [root@qdlinux data]# umount /data
  umount.nfs4: /data: device is busy
  出现这种情况时,退出挂载目录然后在卸载

8 autofs自动挂载服务

autofs服务程序是一种Linux系统守护进度,当检测到顾客策动去访问一个并没有挂载的文件系统时,将机关挂载该文件系统,大家将挂载音讯写入/etc/fstab文件后,系统在每一趟开机时都活动将其挂载,而autofs自动挂载服务是顾客供给接纳该文件系统时才会去动态挂载,进而省去了互联网能源和服务器的硬件能源.

[root@qdlinux /]# yum install autofs -y

直白挂载格局,本地的挂载点是相对路线

[root@qdlinux /]# vim /etc/auto.master.d/nfs.autofs
/-      /etc/auto.nfs_direct
[root@qdlinux /]# vim /etc/auto.nfs_direct 
/data   -rw,sync,soft   192.168.56.15:/nfsfile

//mount查看一下
/etc/auto.nfs_direct on /data type autofs (rw,relatime,fd=18,pgrp=6217,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=79495)

直接挂载情势

[root@qdlinux ~]# mkdir -p /public/share
[root@qdlinux ~]# chown -Rf nfsnobody:nfsnobody /public/share
[root@qdlinux ~]# vim /etc/exports
/public/share 192.168.56.*(rw,sync,all_squash)
//重新启动nfs-server

[root@qdlinux ~]# showmount -e 192.168.56.15
Export list for 192.168.56.15:
/public/share 192.168.56.*
/nfsfile      192.168.56.*

[root@qdlinux /]# mkdir /test
[root@qdlinux /]# vim /etc/auto.master.d/share.autofs
/test  /etc/share.nfs_share
[root@qdlinux /]# vim /etc/share.nfs_share
*       -rw,sync,soft   192.168.56.15:/public/&
//重新启动autofs服务

近来能够访谈了,客商端当您切换成/test/share时得以创建文件服务端实时同步.

  • 12.1 领悟文件分享服务
  • 12.2 Samba服务
    • 12.2.1 安装服务程序
    • 12.2.2 安全分享文件
  • 12.3 NFS互联网文件系统
  • 12.4 AutoFs自动挂载服务

二、NFS(互连网文件系统)

1.什么是NFS

NFS服务能够将远程Linux系统上的文件分享能源挂载到当地主机的目录上,进而使得地方主机(Linux顾客端)基于TCP/IP公约,像使用当地主机上财富均等读写远程Linux系统的分享财富。

安装NFS

yum install -y nfs-utils

Centos 7 暗中认可安装,若是是先前版本必要设置

2.部署NFS

(1)建设构造分享目录/home/share,并把权力全体开花

mkdir /home/share

chmod -R 777 /home/share

(2)修改配置文件/etc/exports

时时app平台注册网站 9

图一 所用到的参数

布署文件格式:共享目录 允许分享的网段(权限)

时时app平台注册网站 10

图二 配置文件

(3)重启相关服务

时时app平台注册网站 11

图三 重启服务

重启以下服务

rpcbind

nfs-server

systemctl restart rpcbind

systemctl start nfs-server

(4)顾客端安顿NFS

showmount命令能够查询NFS服务器分享目录及网段,相关参数如下所示:

时时app平台注册网站 12

图四 相关参数

showmount -e NFS服务器地址

时时app平台注册网站 13

图五 查看音讯

mount -t nfs 192.168.0.110:/home/share  /media/nfs

时时app平台注册网站 14

图六 挂载nfs

12.4 AutoFs自动挂载服务

AutoFs服务与Mount/Umount命令分裂之处在于它是一种守护进程,独有质量评定到顾客策动访谈三个未曾挂载的文件系统时才自动的检测并挂载该文件系统,换句话说,将挂载新闻填写/etc/fstab文本后系统将在每趟开机时都自动将其挂载,而运转AutoFs后则是当顾客须求选取该文件系统了才会动态的挂载,节约互连网与系统财富。

模拟磨炼:每一遍步向/media/iso目录时都会自动挂载镜像。

编辑
主机名称 操作系统 IP地址
NFS服务端 红帽RHEL7操作系统 192.168.10.10
NFS客户端 红帽RHEL7操作系统 192.168.10.20

安装autofs服务:

[root@linuxprobe ~]# yum install autofs
………………省略部分安装过程………………
Installing:
autofs x86_64 1:5.0.7-40.el7 rhel 550 k
Installing for dependencies:
hesiod x86_64 3.2.1-3.el7 rhel 30 k
………………省略部分安装过程………………
Complete!

开发银行autofs服务并步向到开机运转项中:

[root@linuxprobe ~]# systemctl start autofs
[root@linuxprobe ~]# systemctl enable autofs
ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'

修改autofs主配置文件(格式为:挂载目录 映射配置文件):

[root@linuxprobe ~]# vim /etc/auto.master
/media /etc/iso.misc

编纂挂载配置参数文件(映射文件):

[root@linuxprobe ~]# vim /etc/iso.misc
iso   -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

再一次加载运转autofs服务:

[root@linuxprobe ~]# systemctl restart autofs

步入机关挂载目录中:

[root@linuxprobe ~]# cd /media/iso

翻开当前目录下的文本:

[root@linuxprobe iso]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta
12.1 精晓文件共享服务

前期互联网想要在分化主机之间分享文件多数要用FTP左券来传输,但FTP合同仅能幸不辱命传输文件却不可能一贯改换对方主机的资料数据,那样确实不太方便,于是便冒出了NFS开源文件分享程序:NFS(NetworkFile System)是二个可见将多台Linux的长途主机数据挂载到地面目录的服务,属于轻量级的文件分享服务,不协理Linux与 Windows系统间的文件共享。

时时app平台注册网站 15

随即在一九九三年时硕士Tridgwell为了化解Linux与Windows系统之间分享文件的难点,便开垦出了SMB协议与萨姆ba服务程序。

SMB(Server Messages Block)左券: style="text-decoration: underline;">实现实时局域网内文件或打字与印刷机等能源分享服务的情商。

及时Tridgwell想要注册SMBServer那么些商标,但却被因为SMB是从未意义的字符被拒绝了,经过Tridgwell不断翻看词典,终于找到了贰个拉丁舞蹈的名字——SAMBA,而那么些热心舞蹈的名字中又刚好含有了SMB(SAMBA),于是那便是萨姆ba程序名字的由来。

萨姆ba服务程序是一款基于SMB商业事务并由服务端和客商端组成的开源文件分享软件,落成了Linux与Windows系统间的文件分享。

时时app平台注册网站 16

12.2 Samba服务

学会后就可以兑现Linux系统之间或与Windows系统之间的文件分享,以及在分享文件时怎么布置防火墙与SELinux攻略法则。

本章节为读者汇报文件分享系统的效用,精晓Samba与NFS服务程序的开垦背景以及用法。

 

12.2.2 安全分享文件

应用Samba服务口令验证办法能够让分享文件越来越的平安,做到仅让信任的顾客访谈,并且验证进度也很轻便,要想使用口令验证形式,我们供给先须要创设Samba服务独立的数据库。

第1步:检查当前是不是为user验证形式。

[root@linuxprobe ~]# cat /etc/samba/smb.conf

时时app平台注册网站 17

 

第2步:成立分享文件夹:

[root@linuxprobe ~]# mkdir /database

第3步:描述分享文件夹音信。

SMB服务主配置文件的最上面追加分享文件夹的布局参数:

[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes

保存smb.conf文本后重启运转SMB服务:

[root@linuxprobe ~]# systemctl restart smb

加上到开机运转项:

[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'

第4步:使用Windows主机尝试访谈

读者依据下表的IP地址规划出手布署下Windows的网卡参数,应该都会吧~

编辑
主机名称 操作系统 IP地址
Samba共享服务器 红帽RHEL7操作系统 192.168.10.10
客户端 红帽RHEL7操作系统 192.168.10.20
客户端 微软Windows7操作系统 192.168.10.30

时时app平台注册网站 18

在Windows主机的运作框中输入远程主机的音讯
时时app平台注册网站 19

那儿做客萨姆ba服务报错

那时候拜谒萨姆ba服务是报错的,如果读者已经看完Apache(httpd)服务程序的章节,应该还记得防火墙和SELinux法则吧。

第5步:清空防火墙准绳链:

Windows访谈Samba主机提示报错,大家困惑是Iptables阻止了访谈操作,于是实施:

[root@linuxprobe ~]# Iptables -F
[root@linuxprobe ~]# service iptables save

因为Windows系统的缓存关系,可能须求先重启Windows主机再品尝访问Samba分享。

时时app平台注册网站 20

Windows系统被供给表明帐户口令

那正是说那个难点正是出在Iptables防火墙的暗中同意准绳中了,所以请对SELinux多或多或少语长心重,不要一向关闭SELinux。

第6步:创造SMB服务独立的帐号。

今日Windows系统须要先验证后手艺访谈分享,而SMB服务配置文件中密码数据库后台类型为"tdbsam",所以这几个帐户和口令是萨姆ba服务的单独帐号信息,大家须要运用pdbedit一声令下来创立SMB服务的客户数据库。

pdbedit命令用于管理SMB服务的帐户新闻数据库,格式为:“pdbedit [选项] 帐户”。

编辑
参数 作用
-a 用户名 建立Samba用户
-x 用户名 删除Samba用户
-L 列出用户列表
-Lv 列出用户详细信息的列表

创设系统顾客:

[root@linuxprobe ~]# useradd smbuser

将此系统客商进级为SMB客户:

[root@linuxprobe ~]# pdbedit -a -u smbuser
new password:设置SMB服务独立的密码
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146456071-3435711857-2069708454-1000
Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513
Full Name:
Home Directory: \linuxprobesmbuser
HomeDir Drive:
Logon Script:
Profile Path: \linuxprobesmbuserprofile
Domain: LINUXPROBE
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Sat, 11 Jul 2015 18:27:04 CST
Password can change: Sat, 11 Jul 2015 18:27:04 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

第7步:使用Windows主机验证分享结果:

请你根据上面包车型大巴幻灯片稳步操作,可点击图片两边箭头或下方小圆点“○”切换步骤。

  • 时时app平台注册网站 21 Windows验证SMB服务口令

  • 时时app平台注册网站 22 Windows成功访问SMB服务

  • 时时app平台注册网站 23 Windows踏入分享目录失利

第8步:允许SELinux规则

行使Windows主机访问萨姆ba分享果然能够动用smbuser客户登录,但对于分享文件这么重大的事体,SELinux一定会强制管制,刚刚没有稳妥的布置好SELinux,未来果然又报错了。

将分享目录的主人和全部组设置为smbuser顾客:

[root@linuxprobe ~]# chown -Rf smbuser:smbuser /database

同意SELinux对于SMB客商分享家目录的布尔值:

[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on

将分享目录的SELinux安全上下文设置妥当:

[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /database

使新的安全上下文马上生效:

[root@linuxprobe ~]# restorecon -Rv /database/

第9步:使用Windows主机验证分享结果

咱俩布置好Samba服务后又时断时续的调动好了Iptables防火墙与SELinux安全准绳,今后好不轻巧得以健康的运用分享了。

时时app平台注册网站 24

选拔SMB服务并成立文件

第10步:使用Linux主机验证分享结果

刚好临近让读者产生了有个别小误会,萨姆ba服务程序并不唯有是能力所能达到落实Linux与Windows系统间的文件分享,还是可以够完结Linux系统之间的文书分享哦,先动手安排下顾客端主机的IP地址吧:

编辑
主机名称 操作系统 IP地址
Samba共享服务器 红帽RHEL7操作系统 192.168.10.10
客户端 红帽RHEL7操作系统 192.168.10.20
客户端 微软Windows7操作系统 192.168.10.30

在顾客端安装cifs-utils软件包:

[root@linuxprobe ~]# yum install -y cifs-utils
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装过程………………
Installing:
 cifs-utils          x86_64          6.2-6.el7             rhel7           83 k
………………省略部分安装过程………………
Complete!

创办挂载目录:

[root@linuxprobe ~]# mkdir /database

在root家目录成立认证文件(依次为SMB顾客名、SMB客户密码、SMB分享域):

[root@linuxprobe ~]# vim auth.smb
username=smbuser
password=redhat
domain=MYGROUP

此文件太重大了,权限应该给小部分:

[root@linuxprobe ~]# chmod -Rf 600 auth.smb

配置其挂载音信(内容逐条为远程分享音讯、本地挂载目录、文件系统类型、认证文件以及开机自检选项):

[root@linuxprobe ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

行使mount命令的-a参数挂载所有在fstab文件中定义的公文音信:

[root@linuxprobe ~]# mount -a

职业有成挂载Samba的分享目录(能够见到分享文件了):

[root@linuxprobe ~]# cat /database/Memo.txt
i can edit it .

萨姆ba服务确实是太变得强大了,不只可以够落到实处Linux系统之间享受数据还可以与Windows主机进行文件分享。

并发难题?大胆提问!

因读者们硬件分歧或操作错误都只怕形成实验配置出错,请耐心再精心看看操作步骤吧,不要气馁~

Linux手艺调换请加A群:560843( style="color: #008000;">满),B群:340829( style="color: #008000;">推荐),C群:463590( style="color: #008000;">推荐),点此查看全国群。

*本群特色:通过口令验证确定保障每八个群员都以《Linux就该如此学》的读者,答疑更有针对,不定时无偿领取定制礼品。

本章目录结构

详见逐一批注萨姆ba服务配置参数,演示安全分享文件的配置策方法,并动用autofs服务程序自动挂载设备,

12.2.1 安装服务程序

因而设置萨姆ba服务程序后细致的深入分析其配备文件参数,更能够帮助读者们领略Samba服务的本溪注脚办法。

安装山姆ba服务软件包:

[root@linuxprobe Desktop]# yum install samba
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装过程………………
Installing:
 samba           x86_64           4.1.1-31.el7            rhel7           527 k
………………省略部分安装过程………………
Complete!

浏览Samba配置文件:

[root@linuxprobe ~]# cat/etc/samba/smb.conf

布局文件竟然有320行!有未有被吓到?其实萨姆ba服务配置文件中多数是注释音信,我们得以来筛选过滤下:

备份原始的计划文件:

[root@linuxprobe ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

过滤掉无用的原委:
先选取cat命令读入Smb配置文件后透过grep命令-v参数(反向选用)去掉全体注释音讯,然后分别删选掉包罗#号的行("#"),包涵;号的行(";")以及独具的空白行("^$"),最终最终将过滤后的新闻覆盖写入到/etc/samba/smb.conf文件中。

cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf

让我们来探望过滤后的配备文件呢:

编辑

[global]

 

#全局参数。

 

workgroup = MYGROUP

#职业组名称。

 

server string = Samba Server Version %v

#服务器介绍音讯,参数%v为展现SMB版本号。

 

log file = /var/log/samba/log.%m

#概念日志文件贮存地方与名称,参数%m为来访的主机名。

 

max log size = 50

#概念日志文件最大容量为50Kb。

 

security = user

#安全注明的点子,总共有4种。

 

#share:来访主机没有必要验证口令,尤其方便人民群众,但安全性非常糟糕。

 

#user:需由SMB服务验证来访主机提供的口令后才可确立访谈,越来越莱芜。

 

#server:使用独立的长距离主机验证来访主机提供的口令(集中管理帐号)。

 

#domain:使用PDC来变成验证

 

passdb backend = tdbsam

#概念客商后台的项目,共有3种。

 

#smbpasswd:使用SMB服务的smbpasswd命令给系统客商安装SMB密码。

 

#tdbsam:创造数据库文件并接纳pdbedit创设SMB独立的客商。

 

#ldapsam:基于LDAP服务扩充帐户验证。

 

load printers = yes

#安装是或不是当萨姆ba服务运维时分享打字与印刷机设备。

 

cups options = raw

#打字与印刷机的精选

[homes]

 

#分享参数

 

comment = Home Directories

#叙述消息

 

browseable = no

#点名分享是或不是在“互连网邻居”中可知。

 

writable = yes

#概念是或不是可写入操作,与"read only"相反。

[printers]

 

#打字与印刷机分享参数

 

comment = All Printers

 

 

path = /var/spool/samba

#分享文件的实在路线(主要)。

 

browseable = no

 

 

guest ok = no

#是否全体人可知,等同于"public"参数。

 

writable = no

 

 

printable = yes

 

正规的萨姆ba分享参数是这么的:

编辑
参数 作用
[linuxprobe] 共享名称为linuxprobe
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享文件夹在/home/database
public = no 关闭所有人可见
writable = yes 允许写入操作

咱俩将方面包车型客车配备参数直接扩充到SMB服务配置文件(/etc/samba/smb.conf)同等对待启SMB服务程序就能够知效。

但此时SMB服务暗中认可的验证格局为user,大家需求先创立客商数据库后技艺够平常使用,现在来读书下怎么样创设吧~

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:Linux基础学习-NFS网络文件系统实时文件共享【时

关键词: