Linux部署NFS的服务

126 阅读2分钟

介绍

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

NFS一般用来存储共享视频,图片等静态数据。

NFS服务端

服务端部署

00-server-config.sh

apt install -y nfs-kernel-server #安装nfs服务
apt install -y rpcbind #安装rpc服务

mkdir -p /public/data

systemctl start rpcbind ##先启动rpc服务
systemctl start nfs-kernel-server #nfs

systemctl enable rpcbind #设置开机启动
systemctl enable nfs-kernel-server #设置开机启动

# 配置防火墙放行nfs服务
firewall-cmd --permanent --add-service=nfs
firewall-cmd  --reload

cat > /etc/exports << EOF
/public/data 192.168.2.155(rw,async,no_root_squash)
/public/data 192.168.2.158(rw,async,no_root_squash)
/public/data 192.168.2.100(rw,async,no_root_squash)
/public/data 192.168.2.101(rw,async,no_root_squash)
/public/data 192.168.2.102(rw,async,no_root_squash)
EOF

#重新加载NFS服务,使配置文件生效
systemctl reload nfs-kernel-server

NFS客户端

mkdir /mnt/public

apt install -y nfs-common
apt install -y rpcbind #安装rpc服务

#在该文件中挂载,使系统每次启动时都能自动挂载
cat >> /etc/fstab << EOF
192.168.2.152:/public/data  /mnt/public       nfs    defaults 0 0
EOF

mount -a   #是文件/etc/fstab生效

df -Th

cat > /etc/fstab << EOF
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/ubuntu-vg/ubuntu-lv during curtin installation
# /dev/disk/by-id/dm-uuid-LVM-NN5zVPn9ojabMgJS2v0YYazS0YNMvETX1R8Dj9Qdo63FU6EMBWU0yBJI8K1WZE2R / ext4 defaults 0 1
# /boot was on /dev/sda2 during curtin installation
 /dev/disk/by-uuid/9def68ab-66ef-497b-99f5-180980913a8b /boot ext4 defaults 0 1
/dev/mapper/ubuntu--vg-ubuntu--lv / ext4 rw,relatime 0 1
#/swap.img	none	swap	sw	0	0
EOF

客户端部署

清除

服务端

apt remove -y nfs-kernel-server #安装nfs服务
apt remove -y rpcbind #安装rpc服务

rm -rf /public/data

systemctl stop rpcbind
systemctl stop nfs-kernel-server #nfs

systemctl disable rpcbind
systemctl disable nfs-kernel-server

firewall-cmd --permanent --remove-service=nfs-kernel-server
firewall-cmd --reload

sudo sed -i '/\/public\/data 192.168.2.155/d' /etc/exports
sudo sed -i '/\/public\/data 192.168.2.158/d' /etc/exports
sudo sed -i '/\/public\/data 192.168.2.100/d' /etc/exports
sudo sed -i '/\/public\/data 192.168.2.101/d' /etc/exports
sudo sed -i '/\/public\/data 192.168.2.102/d' /etc/exports

客户端

#!/bin/sh

export HOST="192.168.2.152"
export DIR="/mnt/public"
export MOUNT_DIR="/public/data"

echo $HOST
echo $DIR
echo $MOUNT_DIR

rm -rf $HOST
rm -rf $DIR

apt remove -y nfs-common
apt remove -y rpcbind #安装rpc服务

#在该文件中挂载,使系统每次启动时都能自动挂载
cat >> /etc/fstab << EOF
$HOST:$MOUNT_DIR   $DIR    nfs    defaults 0 0
EOF

sed -i "/\$HOST:\/public\/data.*nfs.*defaults.*0.*0/d" /etc/fstab
cat /etc/fstab

mount -a   #是文件/etc/fstab生效

df -Th

资料

  1. cshihong.github.io/2018/10/16/…
  2. www.digitalocean.com/community/t…