我们新服务器的硬盘容量很小,但旧服务器的硬盘容量很大。如何在不拔硬盘的情况下,直接已本地目录的方式,将旧服务器的硬盘空间挂载到新服务器下?可以通过NFS共享实现。
安装NFS服务端,比如228:
# 安装NFS服务端
sudo apt install nfs-kernel-server
# 检查是否已经启动
sudo systemctl status nfs-server
# 查看可用容量
df -h
# 创建一个NFS共享目录
sudo mkdir -p /mnt/share
# 给目录权限
sudo chown nobody:nogroup /mnt/share/ -R
sudo chmod 777 /mnt/share/* -R
编辑exports配置文件,控制访问权限:
sudo cp /etc/exports /etc/exports.bak
sudo vim /etc/exports
# 如果只允许一个客户端访问,可以只写一个客户端的IP地址
/mnt/share 192.168.43.131(rw,sync,no_subtree_check)
# 如果只允许多个客户端访问,可以如下一样写
/mnt/share 192.168.43.131(rw,sync,no_subtree_check)
/mnt/share 192.168.43.171(rw,sync,no_subtree_check)
/mnt/share 192.168.43.137(rw,sync,no_subtree_check)
# 如果运行一个网段的客户端访问,可以这样写:
/mnt/share 192.168.43.*(rw,sync,no_subtree_check)
或者
/mnt/share 192.168.43.0/24(rw,sync,no_subtree_check)
我们设置允许一个网段的访问:
/mnt/share 202.66.266.*(rw,sync,no_subtree_check,no_root_squash,crossmnt,fsid=0)
解释:
重启服务
sudo exportfs -arv
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart
# 查看端口监听
netstat -tl | grep nfs
添加防火墙
sudo iptables -A INPUT -p tcp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 111 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 58327 -j ACCEPT
sudo iptables -L INPUT -n -v
有可能是运行的firewall
# 查看运行状态,如果是running就表示激活
sudo firewall-cmd --state
# 已经放行的端口
sudo firewall-cmd --list-ports
# 已经放行的服务
sudo firewall-cmd --list-services
# 放行nfs、rpc服务
sudo firewall-cmd --add-service=nfs --add-service=rpc-bind --permanent
# 放行指定端口
# sudo firewall-cmd --add-port=2049/tcp --permanent
# 重新加载配置
sudo firewall-cmd --reload
# 如果还有问题,建议直接禁止firewalld(手动狗头)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
安装NFS客户端,比如108:
# 安装NFS客户端
sudo apt install nfs-common -y
# 创建目录,准备挂载228
mkdir -p /mnt/share_228
# 或者
mkdir /home/data1/share_228
# 查看rpc连接信息
rpcinfo -p 202.66.266.228
# 挂载NFS
sudo mount -t nfs -o vers=4 -v 202.66.266.228:/mnt/share /home/data1/share_228
# 卸载NFS
# sudo umount nfs /home/data1/share_228
# 自动挂载NFS
sudo vim /etc/fstab
# 写入:
# 202.66.266.228:/mnt/share /home/data1/share_228 nfs defaults,vers=4,timeo=300,retrans=3,_netdev 0 0
# 重新加载已配置
sudo mount -a
在新服务器上的/home/data1/share_228下添加文件,在旧服务器的/mnt/share下能同步显示;反向亦然。
优点:就跟本地目录一样,使用非常方便。
缺点:当文件很大时候,传输就需要很久😢读取也就要很久。后知后觉。
samba也可以实现类似效果