osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

NFS配置_CentOS8_firewalld_win2016_群晖DSM_OMV_unraid

转载注明来源: 本文链接 来自osnosn的博客,写于 2021-04-09.

参考链接:

CentOS8, NFS-server

  • 安装 yum install nfs-utils,会自动安装rpcbind
  • rpcbind会自动激活并启动,nfs-client也会自动激活和启动。
  • systemctl enable nfs-server, systemctl start nfs-server 激活和启动 nfs服务。
  • 修改、配置 /etc/exports文件。
  • exportfs -r 刷新,启用新配置。
  • 防火墙设置。或者干脆关闭防火墙。
firewall-cmd --add-service rpc-bind   #允许 tcp+udp/111, rpcinfo用
firewall-cmd --add-service mountd     #允许 tcp+udp/mountd端口, showmount用
firewall-cmd --add-service nfs        #允许 tcp/nfs端口, 挂载nfs目录用
firewall-cmd --add-service nfs3       #允许 udp/nfs端口, 挂载nfs目录用
firewall-cmd --add-service rpc-bind --permanent
firewall-cmd --add-service mountd --permanent
firewall-cmd --add-service nfs --permanent
firewall-cmd --add-service nfs3 --permanent
# 或者只执行后四句,然后执行 firewall-cmd --reload

CentOS7

debian10

  • Client: 安装 apt install nfs-common,会自动安装rpcbind

  • Server: 安装 apt install nfs-kernel-server

  • 其他设置类似。

  • 参考【How to Set Up a NFS Server on Debian 10 Buster

  • 防火墙设置参考【Debian9.5 系统配置NFS配置说明】,把mountd、nlockmgr 的端口固定下来。

    • 配置文件/etc/default/nfs-kernel-server可以设置mountd服务的固定端口,
      RPCMOUNTDOPTS="--port 32767" #设置规定端口好为32767,重启服务生效

    • 配置文件/etc/modprobe.d/local.conf可以设置nlockmgr服务的固定端口,这个local.conf文件没有需要自己创建,重启电脑生效
      options lockd nlm_udpport=32768 nlm_tcpport=32768 #设置规定端口好为32768
      options nfs callback_tcpport=32764

    • 防火墙开放4个端口,
      nft add rule inet filter input tcp dport { 111,nfs,32767,32768 } ct state { new, untracked } accept
      nft add rule inet filter input udp dport { 111,nfs,32767,32768 } ct state { new, untracked } accept

  • 关于showmount -e信息泄露。有 hosts.allow/hosts.deny, 设置 mountd 或 rpcbind 规则. 如 deny mountd: ALL, allow mountd: IP即可。

群晖DSM, NFS设置

  • 开启NFS。 控制面板->文件服务->启动NFS服务-> 勾上v4.1的支持。
  • 设置某个目录的nfs权限。 控制面板->共享文件夹-> 选择目录 ->编辑->NFS权限->新增
  • 官方文档:【DSM-NFS 服务
  • 官方文档:【DSM-创建共享文件夹】, 如果是btrfs,可以启用透明压缩

Windows server 2016

  • 安装 NFS 服务
    • 添加角色和功能
    • 服务器角色中,NFS服务隐藏的很深。在文件和存储服务->文件和iSCSI服务->NFS服务器
    • 功能中,勾上NFS客户端
    • 服务器不需要重启,就能完成安装。装完,直接就可以设置、使用。
  • 设置NFS共享。
    • 在选定的文件夹上点鼠标右键,选属性,找到NFS共享选项卡,点管理NFS共享
    • 添加允许共享的IP,在右下角的权限中。只能一个IP一个IP添加。不知道如何添加一个网段。
    • NFS共享使用的字符集中,没有UTF8的选项。
  • Windows Server 2008 R2 添加且制成“NFS服务器”角色后与Unix客户端匿名访问常见问题
    win中有个命令 Windows\System32\nfsfile.exe 与文件权限有关。
  • nfsfile.exe使用不当,容易搞乱ntfs的文件权限。建议新建一个文件夹,来做测试。
    另,Windows\System32\icacls.execacls.exe是用来批量设置ntfs文件权限的命令。

OMV, OpenMediaVault

  • OpenMediaVault 3.0.87数据分区文件系统从EXT4升级到BTRFS并启用压缩特性
  • Use space cache v2 by default #295
  • kdave/btrfs-progs
  • OMV-5.5.11, 改 btrfs 的默认挂载,启用透明压缩/硬盘压缩。(这个办法不好,请看官方文档中的办法)
    • 修改 /usr/share/php/openmediavault/globals.inc 中,
      \OMV\Environment::set("OMV_FSTAB_MNTOPS_BTRFS", "defaults,nofail");
      改为,
      \OMV\Environment::set("OMV_FSTAB_MNTOPS_BTRFS", "defaults,nofail,space_cache=v2,compress=lzo,autodefrag,commit=5,noatime");
    • 重启服务service openmediavault-engined restart生效。或用 monit restart omv-engined
    • 今后,只要把磁盘格式化为 btrfs, 重新挂载后, 就会启用透明压缩
    • 如果 omv 升级/更新,会导致上面的修改丢失,影响新挂载的硬盘。除非重新修改
    • 已经挂载的 btrfs 文件系统的压缩参数,不会因为上述修改的丢失而丢失。
      因为已挂载文件系统的参数,是写入 /etc/fstab 中的,不会丢失
  • OMV-5.5.11, btrfs 启用透明压缩/硬盘压缩。按官方文档的做法。
  • 挂载参数说明:
    • 目前btrfs支持lzo zlib两种算法。btrfs的压缩默认对不易压缩的文件直接存储。
      加上-force后,强制压缩所有文件。如 compress-force=lzo
    • 如果是 TB 级的硬盘,建议用 space_cache=v2。小硬盘无所谓。
      写盘延时,如果想立即写盘commit=0
    • 如果硬盘>2TB,挂载时用了space_cache,想启用 space_cache=v2。参考【btrfs-man5(5) manual page
      umount,再 mount -o clear_cache,space_cache=v2 xxx xxx就可以了。(7TB数据重建cache约需8分钟)
      直接 mount -o remount,clear_cache,space_cache=v2 xxx xxx 似乎不行。
    • 已经挂载的文件系统,想修改挂载参数。但是不想在管理界面,把它们重新挂载一遍。那么去后台处理。
      修改 /etc/openmediavault/config.xml 中的挂载参数。
      然后执行 omv-salt deploy run fstab 更新 /etc/fstab 文件。
      然后 reboot 整个 omv 生效。
  • omv 挂载磁盘是通过 label 名称,不允许 label 中包含空格。
    • 查看/修改 btrfs 的 label, 使用命令,
      查看:btrfs filesystem label /dev/md127; 这个命令要等6秒才输出,不知为什么。
      修改:btrfs filesystem label /dev/md127 newlabel_name;
  • omv 的 NFS 共享,支持 nfs4.2 协议。
    • mount IP:/export/share local_dir 是 vers=3;
    • mount IP:/share local_dir 是 vers=4.2;
  • 关于showmount -e信息泄露。有 hosts.allow/hosts.deny, 设置 mountd 或 rpcbind 规则. 如 deny mountd: ALL, allow mountd: IP即可。

OMV, OpenMediaVault 添加硬盘

  • 硬盘插上之后。
    omv的web管理界面,"存储器"-->"磁盘" 可以见到新插入硬盘的设备名称。比如: sdc, sdd
  • 如果硬盘来自 群晖。
    因为硬盘已经被群晖分区/格式化过。omv可以直接识别。
    管理界面,"存储器"-->"文件系统"。
    能见到硬盘分区的文件系统。未挂载。
    如果没见到,就添加,设备选 md开头的设备(可以在终端中用 lsblk 确定)。文件系统格式,可以在终端用 parted 命令来显示/确定。
  • 如果是全新硬盘。
    管理界面,"存储器"-->"文件系统" 不会有显示。
    点击 "创建",选择 "设备"(别选错,否则一会格式化就丢数据了),填 "标签",选择 "文件系统"(btrfs支持透明压缩)。
    然后系统提示,是否格式化,选 "是"。等待格式化完成。
    就能见到硬盘分区的文件系统。未挂载。
  • 格式化时指定space_cache=v2为默认参数(开发中的功能,目前还不能用)。
    未来 mkfs.btrfs 将会支持 -R free-space-tree 这个参数。(目前还不可用)
    可以考虑修改全局变量 OMV_MKFS_OPTIONS_BTRFS 把上述参数加进去。
  • 选择你要挂载的文件系统 (群晖的数据分区,或者刚格式化的分区),点击 "挂载"。
  • 如果用 btrfs。命令行,检查一下挂载参数是不是space_cache=v2,如果不是,
    umount,再 mount -o clear_cache,space_cache=v2 xxx xxx就可以了。
  • 另外,如果用 btrfs。支持子卷
    • 群晖 默认创建了一个子卷 @syno,分区默认挂载在 subvol=/@syno 上。
    • omv 格式化的硬盘,没有创建子卷,默认挂载在 subvol=/ 上
      如果想效仿。在挂载后。登陆后台,cd /srv/dev-disk-by-id......(新硬盘挂载的目录),然后执行两个命令。
      btrfs subvolume create myvol_name
      btrfs subvolume set-default myvol_name
      然后,在 omv 的管理界面 "卸载" 再重新 "挂载"。
      最后检查一下,挂载后,子卷中的目录的 owner 和 mode,应该是 drwxrwsr-x root users 目录
      如果不是,则 chgrp users 目录, chmod 2775 目录。或者 chmod 775 目录; chmod g+s 目录
      不改正确的话,共享出去的目录,没有写权限。
  • 管理界面,"访问权限管理"-->"共享文件夹",点击 "添加"。
    写 "名称",选 "设备" ..... 填好就 "保存"。
  • 然后去配置 SMB/CIFS,NFS 或者 FTP。就行了。
    • SMB,在管理界面,"服务"-->"SMB/CIFS"-->"共享"。添加共享目录。
    • NFS,在管理界面,"服务"-->"NFS"-->"共享"。添加共享目录。
    • FTP,在管理界面,"服务"-->"FTP"-->"共享"。添加共享目录。
点击查看 群晖 omv 硬盘分区表的不同

群晖 创建的硬盘的分区

fdisk:
Device       Start         End     Sectors  Size Type
/dev/sdc1     2048     4982527     4980480  2.4G Linux RAID
/dev/sdc2  4982528     9176831     4194304    2G Linux RAID
/dev/sdc3  9437184 15627848351 15618411168  7.3T Linux RAID
parted:
Number  Start   End     Size    File system     Name  Flags
 1      1049kB  2551MB  2550MB  ext4                  raid
 2      2551MB  4699MB  2147MB  linux-swap(v1)        raid
 3      4832MB  8001GB  7997GB                        raid

omv 创建的分区

fdisk:
Device     Start       End   Sectors  Size Type
/dev/sdb1   2048 268435422 268433375  128G Linux filesystem
parted:
Number  Start   End    Size   File system  Name  Flags
 1      1049kB  137GB  137GB  btrfs

UnRAID

haneWIN NFS

  • 这是一个windows平台下的第三方nfs server,需要注册。https://www.hanewin.net/nfs-e.htm
  • 在win10上,非常轻量,非常好用。支持 NFS2, NFS3 。还不支持 NFS4.
  • 目前是 v1.2.59 (2021-6-10)
  • 有两个版:安装版,可以作为系统服务随系统启动而启动。portable(便携绿色版),手工启动执行。
  • 安装版,安装后,如果输入注册码后无法注册,或启动nfs服务显示“权限拒绝”,重启整个系统试试,通常能解决。
  • 防火墙设置: windows防火墙 -> 允许应用通过防火墙 -> 允许其他应用 ,
    添加 C:\Program Files\nfsd\pmapd.exeC:\Program Files\nfsd\nfsd.exe 允许通过防火墙,即可。
  • 设置共享目录:【见 NFS manual
    不加-range参数,IP列表为,空格隔开的单个IP。
    加上(勾上)-range参数,IP列表中,每两个IP,解释为一个IP段。
    比如192.168.1.5 192.168.1.30 10.1.1.1 10.1.1.20则为两个IP段 "192.168.1.5-30","10.1.1.1-20"
  • 被共享的win目录,不要有“隐藏”属性,否则haneWIN NFS拒绝读写,导致访问共享时Access deny拒绝访问。
  • 没有showmount -e信息泄露。因为可以配置,无权限的IP,不可见。

转载注明来源: 本文链接 来自osnosn的博客.

posted on 2021-04-09 21:44  osnosn  阅读(286)  评论(0编辑  收藏  举报