部署问题集合(二十一)从零开始搭建一台NAS服务器(Linux虚拟机),并解决数据不同步问题

前言

  • 因工作需要,需要从零通过虚拟机搭建一台NAS服务器,以此记录下来

步骤

1、创建虚拟机

  • 通过VMWare创建一台新虚拟机,虚拟机内存和磁盘自定义,不过建议尽量大一点

2、服务器端配置

  • 查看是否安装有NFS服务:rpm -qa|grep nfs
  • 如果没有安装,上述命令执行后没啥反应,则安装NFS服务:yum -y install nfs-utils prcbind
    • 若执行yum命令时报错:Loaded plugins: product-id, refresh-packagekit, security, subscription-manager,则执行如下命令
#更换yum源,若为centos6则把以下命令的7换成6:
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
vi CentOS-Base.repo
#编辑文件,把文件里面的$releasever全部替换为版本号:7,最后保存!
:%s/$releasever/7/g 	#执行该命令可一键更新
:wq
#清除原有缓存,重建缓存
yum clean all
yum makecache
#然后就可以使用yum命令了
  • 创建共享目录:mkdir /sharedata
  • 赋予读写权限:chmod -R 777 /sharedata
  • 修改配置文件/etc/exports:
    • /sharedata是服务器端要共享出来的目录,192.168.10.110是客户端的ip,rw代表客户端可以对共享目录进行读写操作
    • 如果不加上insecure参数的话,在挂载共享目录时,可能会提示如下错误:mount.nfs:access denied by server while mounting
vi /etc/exports
/sharedata 192.168.10.110(rw,insecure)
  • 启动NFS服务:systemctl start nfs
    • netstat可用来查看目前已经启动的服务,service可以用来立即启动某个服务。chkconfig用来设置服务在开机的时候自动启动。
  • 设置NFS服务开机自启:chkconfig nfs on
  • 关闭防火墙:systemctl stop firewalld

3、客户端配置

  • 创建挂载目录:mkdir /sharedata
  • 赋予读写权限:chmod -R 777 /sharedata
  • 挂载共享目录:mount 192.168.10.109:/sharedata /sharedata
    • 命令格式:# mount NFS服务器ip:共享目录 本地挂载点目录
    • 注意挂载后,本地该目录下原有的文件会被遮盖,取消挂载后会再次出现;挂载客户端用的磁盘是服务器的,不占用客户端磁盘,只是在读写时占用io
    • 若挂载报错:mount: wrong fs type, bad option, bad superblock on***,执行如下命令
yum install nfs-common #若该命令报错,则执行如下命令,我用的就是第二个
或yum install -y nfs-utils
  • 验证是否挂载成功:
#新建文件
mkdir share
#或查看挂载
df -h

4、客户端开机自启

  • 给自启动配置加执行权限:chmod 755 /etc/rc.d/rc.local
  • 修改配置文件rc.local,在文件最后增加启动配置:
vi /etc/rc.local
#在文件最后添加
mount 192.168.10.109:/sharedata /sharedata
  • 测试开机自启:
#重启
reboot
#查看挂载
df -h

5、数据不同步问题

  • 问题描述:两台客户端挂载同一台服务器,另一台服务器无法立刻读取到数据,需要一定时间后才能获取到数据
  • 问题原因:挂载使用的mount命令为:mount /mnt/,对于在ECS B实例上以这一方式挂载的NFS文件系统,默认情况下Kernel对文件和目录的属性维护了一份metadata缓存,文件和目录属性(包括许可权、大小、和时间戳)缓存的目的是减少NFSPROC_GETATTR远程过程调用(RPC)的需求。
  • 解决方案:
    • 挂载时使用如下参数:mount -o actimeo=1 ip:/sharedata /sharedata,此选项将设置NFS客户机上缓存目录和文件属性的秒数为1秒,即每隔1秒重新加载缓存
    • 或:mount -o noac ip:/sharedata /sharedata ,此选项将防止NFS客户机缓存挂载目录的属性

其他

  • 取消挂载:umount /sharedata
    • 设备忙时:umount -l /sharedata,卸载前检查占用该挂载文件的程序并迅速kill掉
  • 当客户端在挂载目录中新增一个文件时,NFS协议的流程如下:
      1. 客户端向NFS服务器发送一个写请求,请求在挂载目录中创建新文件。
      1. 服务器接收到请求后,检查客户端的权限,如果有权限,则创建新文件并返回成功响应。
      1. 客户端在本地创建新文件,并将数据写入该文件。
      1. 客户端向NFS服务器发送一个写请求,请求将新文件的数据写入到服务器上。
      1. 服务器接收到请求后,将数据写入到新文件中,并返回成功响应。
      1. 客户端在本地缓存新文件的副本,以便在后续的访问中提高性能。

参考

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于搭建Linux服务器作为NAS的方法有很多种,以下是其中一种方法: 1. 首先,你需要选择一台适合用作服务器的计算机,并安装Linux操作系统。你可以选择常见的Linux发行版,如Ubuntu、CentOS等。 2. 确保你的服务器计算机与路由器连接,并分配了一个内网IP地址。 3. 通过SSH远程登录到服务器。你可以使用终端工具,如PuTTY(Windows)或Terminal(Mac)。 4. 在服务器上安装所需的软件。对于NAS功能,你可以选择安装Samba或NFS等文件共享服务。你可以使用以下命令在Ubuntu上安装Samba: ```shell sudo apt update sudo apt install samba ``` 5. 配置Samba或NFS以共享文件夹。你可以编辑Samba配置文件(/etc/samba/smb.conf)或NFS配置文件(/etc/exports)来定义共享文件夹的设置,包括访问权限和共享选项。 6. 创建共享文件夹并设置访问权限。你可以使用以下命令创建一个名为"shared"的共享文件夹,并设置访问权限: ```shell sudo mkdir /shared sudo chmod 777 /shared ``` 7. 启动Samba或NFS服务。你可以使用以下命令启动Samba服务: ```shell sudo systemctl start smbd ``` 或者使用以下命令启动NFS服务: ```shell sudo systemctl start nfs-kernel-server ``` 8. 在其他设备上访问共享文件夹。你可以在其他设备上使用文件管理器或命令行工具来访问服务器上的共享文件夹。根据你选择的文件共享服务,你可能需要提供服务器的IP地址和共享文件夹的名称。 这是一种基本的方法来搭建Linux服务器作为NAS。根据你的需求和偏好,你还可以使用其他软件和配置来实现更高级的功能。请记住,安全性也是非常重要的,你应该采取适当的安全措施来保护你的服务器和共享文件夹。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值