1、什么是NFS?
全称 network file system 网络文件系统
通过网络存储和组织文件的一种方法或机制。
什么是文件系统?
2、为什么要用共享存储?
前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一
的放到后端的存储上。
为什么要共享?所有节点服务器都需要将内容存到存储上,取得统一来取。
3、共享存储的种类
单点存储系统就是NFS,中小型企业,阿里云服务的NAS服务,OSS对象存储。
NFS性能不太高。
大型企业会用分布式存储FastDFS、Ceph、GlsterFS、Mfs
大型存储厂商:EMC、Netapp 几十万。
艺龙旅游网 存储用的EMC 传统企业。
硬件存储:稳定、2台 双主机头 几十块硬盘 RAID10.
BAT 曾经用硬件,超贵、
BAT 去IOE Ibm Orace EMc
4、NFS工作原理
NFS网络文件系统
启动NFS服务,而且还有启动很多端口。
NFS功能,需要很多服务。每个服务都有端口,而且经常变化。
如何让客户端找到这些端口呢?就需要一个经纪人(rpc服务)
NFS服务:
1、NFS服务(有很多进程和端口),把自己的端口告诉RPC
2、RPC服务(对外固定端口111)
客户端请求NFS服务,先找RPC 111,查到NFS的端口,发给客户。
5、安装
服务器端和客户端(现在)都有安装:
root@nfs01 ~]# rpm -qa nfs-utils rpcbind
[root@nfs01 ~]# yum install -y nfs-utils rpcbind
[root@nfs01 ~]# rpm -qa nfs-utils rpcbind
rpcbind-0.2.0-48.el7.x86_64
nfs-utils-1.3.0-0.65.el7.x86_64
启动RPC
[root@nfs01 ~]# systemctl start rpcbind.service
[root@nfs01 ~]# systemctl enable rpcbind.service
看看有没有注册的端口
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
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
启动NFS
[root@nfs01 ~]# systemctl start nfs
[root@nfs01 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
查看rpc是否注册
[root@nfs01 ~]# rpcinfo -p 127.0.0.1
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 35761 status
100024 1 tcp 36883 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 40178 nlockmgr
100021 3 udp 40178 nlockmgr
100021 4 udp 40178 nlockmgr
100021 1 tcp 35795 nlockmgr
100021 3 tcp 35795 nlockmgr
100021 4 tcp 35795 nlockmgr
[root@nfs01 ~]# cat /etc/sysconfig/nfs
[root@nfs01 ~]# netstat -lntup|egrep "rpc|nfs"
tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 5343/rpc.mountd
tcp 0 0 0.0.0.0:36883 0.0.0.0:* LISTEN 5318/rpc.statd
tcp6 0 0 :::51481 :::* LISTEN 5318/rpc.statd
tcp6 0 0 :::20048 :::* LISTEN 5343/rpc.mountd
udp 0 0 127.0.0.1:834 0.0.0.0:* 5318/rpc.statd
udp 0 0 0.0.0.0:35761 0.0.0.0:* 5318/rpc.statd
udp 0 0 0.0.0.0:20048 0.0.0.0:* 5343/rpc.mountd
udp 0 0 0.0.0.0:789 0.0.0.0:* 5278/rpcbind
udp6 0 0 :::20048 :::* 5343/rpc.mountd
udp6 0 0 :::48822 :::* 5318/rpc.statd
udp6 0 0 :::789 :::* 5278/rpcbind
[root@nfs01 ~]# man rpc.statd
6、配置nfs
NFS配置文件
[root@nfs01 ~]# ll /etc/exports
-rw-r--r--. 1 root root 0 6月 7 2013 /etc/exports
[root@nfs01 ~]# cat /etc/exports
[root@nfs01 ~]# man exports
EXAMPLE
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub *(ro,insecure,all_squash)
/srv/www -sync,rw server @trusted @external(ro)
/foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
/build buildhost[0-9].local.domain(rw)
待共享的目录 访问的主机(权限)
1)待共享的目录 存东西的目录 取东西的目录例如:/data
2)访问的主机,
172.16.1.7(web01) 单个主机
172.16.1.0/24 网段
172.16.1.* 网段
master 主机名
3)()权限
rw 可读写 read write
ro 只读 read only
sync 写到磁盘才算完成,安全 慢
async 异步写到远程缓冲区,快 不安全(redis)
实践:
[root@nfs01 ~]# tail -l /etc/exports
/data 172.16.1.0/24(rw,sync)
[root@nfs01 ~]# mkdir -p /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 root root 24 2月 24 07:36 /data
NFS默认用户nfsnobody
[root@nfs01 ~]# grep nfs /etc/passwd
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfs01 ~]# grep nfsno /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 24 2月 24 07:36 /data
重启NFS
[root@nfs01 ~]# systemctl reload nfs # 《==生产场景必须实现平滑重启
[root@nfs01 ~]# exportfs -r
上述二者等价,选一个即可。
[root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24 # 《==看到共享的目录了
服务端本地挂载:
[root@nfs01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@nfs01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /mnt
[root@nfs01 ~]# touch /mnt/oldboy.txt
[root@nfs01 ~]# ls /mnt/
oldboy.txt
换到web01挂载
1)安装
[root@web01 ~]# yum install -y nfs-utils rpcbind
[root@web01 ~]# rpm -qa nfs-utils rpcbind
nfs-utils-1.3.0-0.65.el7.x86_64
rpcbind-0.2.0-48.el7.x86_64
2)启动
[root@web01 ~]# systemctl start rpcbind
[root@web01 ~]# systemctl enable rpcbind
确定rpc启动
[root@web01 ~]# netstat -lntup|grep rpc
udp 0 0 0.0.0.0:939 0.0.0.0:* 6276/rpcbind
udp6 0 0 :::939 :::* 6276/rpcbind
[root@web01 ~]# netstat -lntup|grep rpcbind
udp 0 0 0.0.0.0:939 0.0.0.0:* 6276/rpcbind
udp6 0 0 :::939 :::* 6276/rpcbind
[root@web01 ~]# ps -ef|grep rpcbind
rpc 6276 1 0 18:17 ? 00:00:00 /sbin/rpcbind -w
root 6310 6194 0 18:21 pts/0 00:00:00 grep --color=auto rpcbind
3)查看NFS服务器提供的共享目录
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
4)挂载测试
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /mnt
[root@web01 ~]# touch /mnt/oldgirl.txt
[root@web01 ~]# ls /mnt/
oldboy.txt oldgirl.txt
1、backup客户端挂载好
2、实现开机自动挂载(fstab里实现,rc.local)
3、项目实践
web01 web02客户端实现挂载到nfs
NFS下面共享/data,允许web01 web02客户端(/data)挂载后可读写。
web01上传图片,web02服务上可以删除web01上传的图片,反过来也可以。
NFS下面共享/data1,允许web01 web02客户端10网段只读(data1)
实现开机自动挂载
[root@nfs01 ~]# systemctl status rpcbind
● rpcbind.service - RPC bind service
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2020-02-27 08:12:08 CST; 1h 30min ago
Process: 1223 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
Main PID: 1224 (rpcbind)
CGroup: /system.slice/rpcbind.service
└─1224 /sbin/rpcbind -w
2月 27 08:12:08 nfs01 systemd[1]: Stopped RPC bind service.
2月 27 08:12:08 nfs01 systemd[1]: Starting RPC bind service...
2月 27 08:12:08 nfs01 systemd[1]: Started RPC bind service.
[root@nfs01 ~]# systemctl status nfs
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since 四 2020-02-27 08:10:19 CST; 1h 32min ago
Process: 1166 ExecStartPost=/bin/sh -c if systemctl -q is-active gssproxy; then systemctl reload gssproxy ; fi (code=exited, status=0/SUCCESS)
Process: 1152 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
Process: 1150 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
Main PID: 1152 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/nfs-server.service
2月 27 08:10:19 nfs01 systemd[1]: Starting NFS server and services...
2月 27 08:10:19 nfs01 systemd[1]: Started NFS server and services.
[root@oldboyedu ~]$ hostnamectl set-hostname web02
[root@oldboyedu ~]$ bash
[root@web02 ~]$
[root@web02 ~]# systemctl status rpcbind
[root@web02 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data1 10.0.0.0/24
/data 172.16.1.0/24
[root@web02 ~]# mkdir /data
mkdir: 无法创建目录"/data": 文件已存在
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /data
[root@web02 ~]# ls /data
oldboy.txt oldgirl.txt web01.txt web02.txt
[root@web02 ~]# cd /data
[root@web02 /data]# ls
oldboy.txt oldgirl.txt web01.txt web02.txt
[root@web02 /data]# web022.txt
-bash: web022.txt: 未找到命令
[root@web02 /data]# touch web022.txt
[root@web02 /data]# ls
oldboy.txt oldgirl.txt web01.txt web022.txt web02.txt
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /data
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /data
[root@web01 ~]# ls data
ls: 无法访问data: 没有那个文件或目录
[root@web01 ~]# ls /data
oldboy.txt oldgirl.txt web01.txt web022.txt web02.txt
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /data
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /data
[root@web01 ~]# ls data
ls: 无法访问data: 没有那个文件或目录
[root@web01 ~]# ls /data
oldboy.txt oldgirl.txt web01.txt web022.txt web02.txt
[root@web01 ~]# cd /data
[root@web01 /data]# pwd
/data
[root@web01 /data]# echo 111 > web02.txt
[root@web01 /data]# cat web02.txt
111
[root@web01 /data]# rm -f web02.txt
[root@web01 /data]# ls
oldboy.txt oldgirl.txt web01.txt web022.txt
[root@web02 /data]# pwd
/data
[root@web02 /data]# ls
oldboy.txt oldgirl.txt web01.txt web022.txt
[root@web02 /data]# rm -f web01.txt
[root@web02 /data]# ls
oldboy.txt oldgirl.txt web022.txt
[root@web01 /data]# mount -t nfs 172.16.1.31:/data1 /mnt
mount.nfs: access denied by server while mounting 172.16.1.31:/data1
[root@nfs01 ~]# cat /etc/exports
# oldboy shared dir at time
# /data 172.16.1.0/24(rw,sync) 10.0.0.0/24(ro)
/data 172.16.1.0/24(rw,sync)
/data1 10.0.0.0/24(ro)
[root@web01 /data]# mount -t nfs 10.0.0.31:/data1 /mnt
[root@web01 /data]# ls /mnt
[root@web01 /data]# touch /mnt/oldgirl.txt
touch: 无法创建"/mnt/oldgirl.txt": 只读文件系统
[root@web01 /data]# ls /mnt
1.txt
[root@web01 /data]# which mount
/usr/bin/mount
[root@web01 /data]# vim /etc/rc.local
/usr/bin/mount -t nfs 172.16.1.31:/data /data
/usr/bin/mount -t nfs 10.0.0.31:/data1 /mnt
[root@web01 /data]# chmod +x /etc/rc.local
[root@web01 ~]# reboot
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
172.16.1.31:/data 19G 2.0G 18G 11% /data
10.0.0.31:/data1 19G 2.0G 18G 11% /mnt
tmpfs 98M 0 98M 0% /run/user/0
[root@web02 /data]# vim /etc/fstab
[root@web02 /data]# tail -2 /etc/fstab
172.16.1.31:/data /data nfs defaults 0 0
10.0.0.31:/data1 /mnt nfs defaults 0 0
[root@web02 ~]# reboot
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@web02 ~]# mount -a
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /data
10.0.0.31:/data1 19G 2.0G 18G 11% /mnt
[root@web02 ~]# reboot
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@web02 ~]# systemctl list-unit-files |grep rem
systemd-remount-fs.service static
remote-cryptsetup.target disabled
remote-fs-pre.target static
remote-fs.target disabled
[root@web02 ~]# systemctl start remote-fs.target
[root@web02 ~]# systemctl enable remote-fs.target
Created symlink from /etc/systemd/system/multi-user.target.wants/remote-fs.target to /usr/lib/systemd/system/remote-fs.target.
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
172.16.1.31:/data 19G 2.0G 18G 11% /data
10.0.0.31:/data1 19G 2.0G 18G 11% /mnt
tmpfs 98M 0 98M 0% /run/user/0
开机启动流程:
1、磁盘先启动/etc/fstab
2、防火墙在前。
3、网卡
NFS网络文件系统,通过网络挂载,网络没起如何挂载?
又想在fstab里实现挂载,就用一个服务,延迟启动。
延迟满足:
CentOS6:netfs服务
CentOS7:remote-fs.target
这两个服务不启动,/etc/fstab挂载nfs不了,就只能用/etc/rc.local
fstab被破坏了如何修复?
下节课内容:
NFS 服务继续
实时复制inotify/sersync
3)()权限 man exports
rw 可读写 read write
ro 只读 read only
sync 写到磁盘才算完成,安全 慢
async 异步写到远程缓冲区,快 不安全(redis)
root_squash
all_squash 不管客户端什么用户,到服务端都是nfsnobody
anonuid=匿名用户的UID
anongid=匿名用户的GID
[root@nfs01 ~]# cat /etc/exports
# oldboy shared dir at time
# /data 172.16.1.0/24(rw,sync) 10.0.0.0/24(ro)
/data 172.16.1.0/24(rw,sync)
/data1 10.0.0.0/24(ro)
[root@nfs01 ~]# cat /var/lib/nfs/etab
/data1 10.0.0.0/24(ro,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,ro,secure,root_squash,no_all_squash)
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
更改默认NFS默认用户
3、项目实践
NFS共享的匿名用户用www,使得客户端上传的图片都是www用户,而不是匿名的nfsnobody
web01 web02客户端实现挂载到nfs
NFS下面共享/data,允许web01 web02客户端(/data)挂载后可读写。
web01上传图片,web02服务上可以删除web01上传的图片,反过来也可以。
NFS下面共享/data1,允许web01 web02客户端10网段只读(data1)
实现开机自动挂载
1)nfs01 以及所有客户端
[root@nfs01 ~]# useradd -u 1111 www
[root@nfs01 ~]# id www
uid=1111(www) gid=1111(www) 组=1111(www)
2)特殊配置
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# tail -2 /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111)
/data1 10.0.0.0/24(ro)
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 61 2月 27 08:59 /data
[root@nfs01 ~]# chown -R www.www /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 www www 61 2月 27 08:59 /data
3)重启
[root@nfs01 ~]# systemctl reload nfs
4)客户端
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /data
mount.nfs: /data is busy or already mounted
[root@web01 ~]# umount /data
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /data
[root@web01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
10.0.0.31:/data1 19G 2.0G 18G 11% /mnt
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /data
[root@web01 /data]# touch net_web01.txt
touch: 无法创建"net_web01.txt": 权限不够
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 nfsnobody nfsnobody 61 2月 27 08:59 /data
[root@nfs01 ~]# chown -R www.www /data
[root@nfs01 ~]# ls -ld /data
drwxr-xr-x 2 www www 61 2月 27 08:59 /data
[root@web01 /data]# touch net_web01.txt
[root@web01 /data]# ls -l
总用量 0
-rw-r--r-- 1 www www 0 2月 27 10:58 net_web01.txt
-rw-r--r-- 1 www www 0 2月 26 17:50 oldboy.txt
-rw-r--r-- 1 www www 0 2月 26 18:53 oldgirl.txt
-rw-r--r-- 1 www www 0 2月 27 08:50 web022.txt
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /data
mount.nfs: /data is busy or already mounted
[root@web02 ~]# umount /data
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /data
[root@web02 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 476M 0 476M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda3 19G 2.0G 18G 11% /
/dev/sda1 253M 136M 118M 54% /boot
10.0.0.31:/data1 19G 2.0G 18G 11% /mnt
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 19G 2.0G 18G 11% /data
[root@web02 ~]# cd /data
[root@web02 /data]# touch new_web01.txt
[root@web02 /data]# ls
net_web01.txt new_web01.txt oldboy.txt oldgirl.txt web022.txt
[root@web02 /data]# rm -f net_web01.txt
[root@web02 /data]# ls
new_web01.txt oldboy.txt oldgirl.txt web022.txt
客户端挂载深入
[root@web01 /data]# cat /proc/mounts
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
10.0.0.31:/data1 /mnt nfs rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.31,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=10.0.0.31 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=99576k,mode=700 0 0
172.16.1.31:/data /data nfs4 rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.7,local_lock=none,addr=172.16.1.31 0 0
tcp稳定
udp 无连接 FTP
Linux正在工作呢,文件系统只读。
企业生产案例文件系统只读故障/fstab故障。
自己找一下:
1、救援模式修复。
2、单用户,mount -o remount,rw /
安全加优化的挂载方式如下:
mount -t nfs -o
nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072
172.16.1.31:/data /mnt
NFS服务器出问题时候,客户端重启依然能够启动,可以用如下列两个方法:
defaults,soft
defaults,hard,intr
#/etc/fstab
自学,多块硬盘bond
项目实践02
1、NFS共享的匿名用户用www,使得客户端上传的图片都是www用户,而不是匿名的额nfsnobody。
web01 web02客户端实现挂载到nfs
NFS下面共享/backup,允许web01 web02客户端(/backup)可读写。
web01上传图片,web02服务上可以删除web01上传的图片。
2、实现开机自动挂载
3、挂载的时候要优化挂载。