手机模块网站,安徽建新建设工程有限公司网站,公司推广做哪个网站吗,一流的高密网站建设安装NFS
首先#xff0c;安装服务
sudo apt update
sudo apt install nfs-kernel-server然后创建共享文件夹
# 请自定义你自己的共享目录
sudo mkdir -p /exports/nfs4/homes
sudo chmod -R 777 /exports/nfs4/homes# 这个可以根据no_root_squash标致选择设置。
# 如果不设…安装NFS
首先安装服务
sudo apt update
sudo apt install nfs-kernel-server然后创建共享文件夹
# 请自定义你自己的共享目录
sudo mkdir -p /exports/nfs4/homes
sudo chmod -R 777 /exports/nfs4/homes# 这个可以根据no_root_squash标致选择设置。
# 如果不设置创建的文件会变成nobody:nogroup属性
sudo chown nobody:nogroup /exports/nfs4/homes编辑/etc/exports
新增如下内容
/exports/nfs4/homes 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)/exports/nfs4/homes是共享目录的路径。192.168.1.0/24是允许访问共享目录的客户端IP地址范围这里表示允许192.168.1.0到192.168.1.255这个子网内的客户端访问。你可以根据实际情况指定特定的IP地址或更宽泛的网络范围。 如果不限制则可以填*rw表示读写权限。sync表示同步写入磁盘默认。 相反的是async异步写入提高性能但可能丢失数据。no_root_squash表示不过滤掉远程连接的root用户允许root用户具有与本地root用户相同的权限。如果不设置这个选项远程root用户在访问共享目录时会被映射为匿名用户权限会受到限制。 对应的其他选项有root_squash将客户端的root用户映射为匿名用户默认all_squash将所有客户端用户映射为匿名用户no_subtree_check可以提高性能当共享目录是文件系统中的一个子目录时这个选项可以避免NFS服务器对整个文件系统的检查。 对应的其他选项有subtree_check启用子树检查确保父目录权限正确可能影响性能
其他可配置参数
anonuid 和 anongid 指定匿名用户的UID和GID通常与 all_squash 一起使用secure 限制客户端使用小于1024的端口默认。对应的其他选项有insecure允许客户端使用大于1024的端口wdelay 延迟写入合并多个写入请求以提高性能默认 对应的其他选项有no_wdelay 禁用写入延迟与 sync 一起使用时生效。hide 隐藏嵌套的挂载点默认 对应的其他选项有no_hide 显示嵌套的挂载点crossmnt 允许客户端跨挂载点访问其他文件系统。 对应的其他选项有 no_crossmnt 禁止客户端跨挂载点访问其他文件系统默认secure_locks 要求客户端使用特权端口锁定文件默认 对应的其他选项有insecure_locks 允许非特权客户端锁定文件
配置完成后执行下面命令使之生效
sudo exportfs -ra如果对应的文件夹没有创建该命令会报错。
启动NFS服务
sudo systemctl start nfs-kernel-server
sudo systemctl enable nfs-kernel-server查看安装的版本
查看安装的nfs-server的版本
nfsstat --version
nfsstat: 2.6.1
查看该server支持的nfs协议版本
cat /proc/fs/nfsd/versions
3 4 4.1 4.2
所有后面的版本都是支持的协议版本号 客户端挂载
sudo apt install nfs-common
sudo mount -t nfs -o vers4.2,rw,rsize65536,wsize65536,hard,intr,timeo600,retrans5 192.168.1.100:/shared /mntvers4.2使用NFSv4.2协议。 这里的版本必须是服务器支持的版本才行。 rw挂载为读写模式。 ro 只读 rsize65536 和 wsize65536设置读写数据块大小为64KB。单位字节 hard设置硬挂载模式超时后无限重试默认。soft 设置软挂载模式超时后返回错误 intr允许中断挂载操作。通常与 hard 一起使用 timeo600设置NFS请求的超时时间单位十分之一秒 retrans5设置重试次数为5次。默认是3次
其他可配置选项
noatime 不更新文件夹时间戳。如果不需要每次访问文件时更新访问时间戳可以在挂载时添加noatime选项以提升性能。proto 指定传输协议如 tcp 或 udpport 指定NFS服务器的端口号默认是2049mountport 指定mountd服务的端口号noac 禁用客户端缓存确保数据一致性性能较差actimeo 设置文件和目录属性的缓存时间单位秒lookupcache 设置目录查找缓存模式all 或 nonesec 设置安全模式如 sys、krb5、krb5i、krb5pnolock 禁用文件锁定适用于旧版NFS或不支持锁定的场景local_lock 设置本地锁定模式如 none、flock、posixbg 后台挂载如果挂载失败客户端会在后台重试。 fg 前台挂载如果挂载失败客户端会立即返回错误默认namlen 指定客户端和服务器之间传输的文件名最大长度。它的作用是限制文件名的最大字节数以确保客户端和服务器之间的兼容性
查看当前挂载参数
mount | grep nfs
192.168.32.101:/ on /mnt/101_mount type nfs4 (rw,relatime,vers4.0,rsize1048576,wsize1048576,namlen255,hard,prototcp,timeo600,retrans2,secsys,clientaddr192.168.33.159,local_locknone,addr192.168.32.101)或者
cat /proc/mounts | grep nfs
192.168.32.101:/ /mnt/101_mount nfs4 rw,relatime,vers4.0,rsize1048576,wsize1048576,namlen255,hard,prototcp,timeo600,retrans2,secsys,clientaddr192.168.33.159,local_locknone,addr192.168.32.101 0 0 本地磁盘测速
要在NFS服务器上测试一下本地磁盘的读写速度它是决定NFS性能的一个瓶颈指标
echo 3 /proc/sys/vm/drop_caches
time dd if/dev/zero oflocal_testfile.bin bs1M count10000 convfsyncecho 3 /proc/sys/vm/drop_caches清除文件系统缓存确保测试结果准确。if/dev/zero输入文件为/dev/zero即生成零字节流。oflocal_testfile.bin输出文件为local_testfile.bin。bs1M块大小为1MB。count10000生成10000个1MB的块即10GB的数据。convfsync在写入完成后强制同步写入磁盘确保数据完全写入。
我一台机器的磁盘速度不高只有30.8 MB/s
100000 records in
100000 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 339.928 s, 30.8 MB/sreal 5m40.008s
user 0m0.029s
sys 0m10.751s另外一台机器的磁盘速度也一般只有112 MB/s
100000 records in
100000 records out
10485760000 bytes (10 GB, 9.8 GiB) copied, 93.6185 s, 112 MB/sreal 1m33.621s
user 0m0.009s
sys 0m7.958s 网络测速
我测试的两台机器在同一个机房在LAN下理论上应该是比较快的使用iperf工具来测速。
在服务器上执行
# 默认端口是5201我机器上占用了所以改了端口。一般可以不用添加这个参数
iperf -s -p 5202在客服端上执行
iperf -c 192.168.32.101 -p 5202以下是测试结果截图 速度是826M/s网络带宽还是可以的。 NFS性能测试
安装parallel工具批量往挂在盘里写文件
seq 1 1000 | parallel -j 200 dd if/dev/zero of/mnt/159_mount/abcd/2025/Jan/10/a200_{}.bin bs100k count1使用watch来实时监控nfs状态
# server
watch -d -n 1 nfsstat -s
# client
watch -d -n 1 nfsstat -c模拟测试在单文件夹下大量小文件时写NFS
使用fio工具来模拟生成大批量本地文件
sudo apt update
sudo apt install fiofio --namefilegen --directory/mnt/nfs --numjobs10 --nrfiles100000 --size1M --rwwrite --bs1M --direct1–numjobs10启动 10 个并发任务。 –nrfiles100000生成 10 万个文件。 –size1M每个文件大小为 1MB。 –rwwrite测试写入性能。 –bs1M块大小为 1MB。 –direct1使用直接 I/O绕过缓存。
生成完毕后再通过dd来往nfs下写文件。