云服务器下搭建NFS网络文件系统

描述

云服务器下搭建 NFS 网络文件系统


1.云服务器简介

      云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。

      云服务器的业内名称其实叫做计算单元。所谓计算单元,就是说这个服务器只能算是一个人的大脑,相当于普通电脑的CPU,里面的资源都是有限的。你要获得更好的性能,解决办法一是升级云服务器,二是将其它耗费计算单元资源的软件部署在对应的云服务上。例如数据库有专门的云数据库服务、静态网页和图片有专门的文件存储服务。

      腾讯云云服务器 (Cloud Virtual Machine, CVM) 是在云中提供可扩展的计算服务, 避免了使用传统服务器时需要预估资源用量及前期投入的情况。 通过使用腾讯云 CVM , 您可以在短时间内快速启动任意数量的云服务器并即时部署应用程序。 腾讯云 CVM 支持用户自定义一切资源: CPU、 内存、 硬盘、 网络、 安全等等, 并可在访问量和负载等需求发生变化时轻松地调整它们。

      腾讯云服务器免费体验:https://cloud.tencent.com/act/pro/cvmweekly?from=18074
 

云服务器

2.购买服务器,登录服务器

2.1 配置云服务器环境

      服务器配置Linux环境可参考官方产品文档:https://cloud.tencent.com/document/product/213/2936

云服务器

2.2 服务器登录

云服务器云服务器云服务器

登录成功

云服务器

2.3 ssh远程登录服务器

      SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

      SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。 用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。

      服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。

      客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

2.3.1 ubuntu下安装ssh服务

[wbyq@wbyq home]$ sudo apt-get install openssh-server  #安装ssh服务器
[wbyq@wbyq home]$ sudo /etc/init.d/ssh restart #启动SSH服务
[wbyq@wbyq ~]$ sudo ufw disable  #关闭防护墙

2.3.2 SecureCRT远程登录

  1.windows 下安装 SecureCRT。 此软件自 行下载, 这里就不做说明。
  2.运行 SecureCRT 软件, 添加连接信息。

云服务器

3.新建会话

云服务器云服务器云服务器云服务器云服务器云服务器

  4. 软件相关设置

云服务器云服务器云服务器

3.搭建NFS服务器

3.1 NFS简介

      网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。

      NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

      网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。

云服务器

  当我们在 NFS 服务器设置好一个共享目录/home/public 后,其他有权访问 NFS 服务器的 NFS 客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,并且挂载好后我们在本地能够看到服务端/home/public 的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。
 

3.2 Ubuntu下安装 NFS 服务器

ubuntu@VM-0-14-ubuntu:~$ sudo apt-get install nfs-kernel-server

3.3 配置共享文件夹

      NFS 服务配置文件/etc/exports, 若在/etc 下没有则手动创建一个, 在该文件夹下添加配置内容。

      例:/NFS_Share_work *(rw,sync,no_root_squash,no_subtree_check,insecure)

      NFS 服务器共享文件夹为:/NFS_Share_work, 给所有 NFS 客户端访问, 权限为读写。

3.4指定 NFS 客户端地址配置说明

客户端地址 具体地址 说明
授权单一客户端访问NFS 192.168.1.20 一般情况, 生产环境中此配置不多
授权整个网段访问NFS 10.0.0.0/24 其中24等同于255.255.255.0,指定网段为生产环境中最常见的配置。配置简单,维护方便
授权整 网段访问 NFS 10.0.0.0* 指定网段另外写法(不推荐使用)
授权所有网段 * 一般在个人访问用的比较多

3.5 NFS配置参数说明

参数 说明
rw 可读写
ro 只读
no_root_squash 登录NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有 root 权限(这个参数权限比较开放, 在生产环境中不建议使用 )
root_squash 登录 NFS 主机,使用该共享目录相当用该目录的拥有者。但如果以 root用户使用这个共享目 录时, 那么这个使用者(root)的权限将被压缩成匿名使用者,即通常它的UID与GID都会变成nobody那个身份
no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
subtree_check 默认属性,若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
sync 资料同步到磁盘
async 资料暂存在内存中
insecure 允许客户端从大于1024的tcp/ip端口连接服务器

3.6 NFS 服务器配置文件常见案例

常见格式 要共享的目录客户端IP地址或IP段权限设置示例
示例 1 /work 10.0.0.0/24(ro,sync)说明:客户端只读,数据同步到磁盘,授权整个网段(注:24 和’(’之间不能有空格)
示例2 /work *(insecure,rw,no_root_squash,sync)说明: 允许客户端的非授权访问,允许所有客户端读写, 并且数据同步到磁盘,正常情况下 mount 客户端请求服务器源端口必须小于 1024 (然而在使用 NAT 网络地址转换时端口一般总是大于 1024 的) , 默认情况下是开启这个选项的, 如果要禁止这个选项, 则使用 insecure 标识, 如果不禁止该选项, 客户端在挂载服务器时会出现错误。
 
示例3 /work *(,rw,no_root_squash,sync) 说明: 允许所有客户端读写,并且数据同步写到服务器揣的磁盘里,共享文件的访问权限和登录者身份一致

  注意:若挂载时报错mount.nfs: access denied by server while mounting,则需要在服务端NFS配置文件中加上insecure。

4.服务器下搭建 NFS 实例

4.1 编写NFS配置文件

  NFS配置文件为/etc/export文件,没有则手动创建一个。

ubuntu@VM-12-3-ubuntu:~$ vim /etc/export
/nfs_shared *(rw,sync,no_root_squash,no_subtree_check,insecure)
  • 开放所有监听端口
云服务器
  • 设置两个NFS共享目录。
云服务器

4.2 编写脚本文件启动NFS服务器,关闭防火墙

ubuntu@VM-12-3-ubuntu:~$ touch nfs_start.sh
ubuntu@VM-12-3-ubuntu:~$ vim /nfs_start.sh
#启动 NFS 服务器
/etc/init.d/nfs-kernel-server start
#关闭防火墙
ufw disable

5.NFS服务器相关命令使用

5.1 exprotfs命令

  在NFS服务器端,当修改了/etc/exportfs 文件后,使用 exportfs 执行即可,不需要重新启动NFS 服务器。

  • exprotfs命令说明
exportfs [-aruv]
选项与参数:
-a : 全部挂载(或卸除) /etc/exports文件内的设定。
-r : 重新挂载 /etc/exports 里 面的设定,同步内容配置内容。
-u : 卸除某一目录。
-v : 将分享的目录显示到屏幕上。

  例 1:重新挂载一次/etc/exports文件设定的内容

[xsw@xsw ~]$ sudo exportfs -arv
exporting *:/home/xsw/share_work

  例 2:将已经分享的 NFS 资源全部卸除

[wbyq@wbyq ~]$ sudo exportfs -auv
# 这时如果你再使用 showmount -e localhost 就会看不到任何资源了!

5.2 showmount 命令

  • Showmount 命令参数
[root@www ~]# showmount [-ae] [hostname| IP]
选项与参数:
-a : 显示目前主机与客户端的NFS联机分享的状态;
-e : 显示某部主机的/etc/exports 所分享的目录数据。

  在 NFS 服务器设置好后, 可以使用 showmount 命令在服务端测试共享目录是否启动成功。

[xsw@xsw ~]$ sudo showmount -e localhost

  在客户端查询某部主机NFS分享的目录

[xsw@xsw ~]$ showmount -e 42.192.3.192
Export list for 42.192.3.192:
/nfs_share_work *

5.3 客户端挂载和卸载NFS服务器

  客户端访问服务器前,需要知道服务器IP,然后可以通过showmount命令查看服务器NFS共享目录,如果是局域网访问,那么需要保证客户端与服务器在同一网段下,如果是公网访问,需要保证客户端这个能过正常连接外网网络。

  • 客户端挂载NFS服务器
[xsw@xsw ~]$ showmount -e 42.192.3.192 #查看服务器共享NFS目录
Export list for 42.192.3.192:
/nfs_share_work *
[xsw@xsw ~]$ sudo mount -t nfs 42.192.3.192:/nfs_share_work ./mnt/ #将共享目录挂载到本地mnt目录下

  如果挂载服务器时,提示 mount 命令卡住了,或者报错提示无法加锁等提示时,需要在挂载命令上加一个-onolock 参数。

[xsw@xsw ~] $ sudo mount -t nfs -o nolock 42. 192. 3. 192: /nfs_share_work . /mnt/
  • 卸载挂载目录
[xsw@xsw ~] $ sudo umount /home/xsw/mnt/

 


 

 审核编辑:汤梓红
 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分