前面我们介绍了基于Windows Server 2012 R2创建的共享NFS(Network File System,网络文件系统)存储(Windows Server2012 R2搭建NFS服务器),还介绍了CentOS 7系统如何配置NFS服务器(CentOS 7搭建NFS服务器)。这不是新安装了PVE嘛,通过确认,PVE8.0是基于Debian 12开发的(快速部署一个Debian系统),我们借它来试试Debian 12系统如何配置NFS服务器。
首先更新一下软件仓库。
apt-get update
哦吼,报错了,提示未认证,打开链接看一下,原来是要登录账号。
这不就毁了吗,原来是跟订阅相关的,我们现在用的是开源的免费版,没有付费订阅,不能使用存储库。
命令行看的不直观,我们在WEB页面看一下,找到PVE节点,进入到“更新”下面的“存储库”。
可看到APT存储库的源一共有5个,全部处于启用状态,分为Debian和Proxmox两种,而Proxmox的组件分为enterprise和pve-enterprise,从名字来看,两个都是企业版。
实际上,pve-enterprise是Proxmox VE企业存储库,包含最稳定的软件包,适合生产使用,是官方推荐的、也是默认且稳定的存储库,可供所有Proxmox VE订阅用户使用。另一个enterprise是Ceph分布式存储系统的存储库,也是需要订阅才能使用的。
其实,PVE还有一个无订阅存储库pve-no-subscription,我们不需要订阅密钥即可访问pve-no-subscription存储库。只是它的包没有经过严格的测试和验证,不过作为用于测试和非生产用途的存储库也是可以的。
我们点击“添加”按钮,存储库选择“No-Subscription”,再点击“添加”。
然后选中源是Proxmox的两个存储库,点击“禁用”停掉这两个源。
然后我们开始安装NFS软件包nfs-server。同时,建议安装nfs-common,这个包包含了大部分NFS客户端需要的工具和库:
apt-get install nfs-server nfs-common
和CentOS一样,创建一个需要共享的目录,比如设置为/nfs/tt,并且赋予目录读写权限。:
mkdir -p /nfs/tt chmod 777 /nfs/tt/
然后配置NFS的主要配置文件/etc/exports,将需要共享的目录和客户添加进来:
/nfs/tt/ *(rw,sync,insecure,no_root_squash)
配置文件中的第一部分/nfs/tt/为要共享的路径。第二部分*为允许访问NFS服务器的主机或网段。第三部分为括号中的部分,表示用户相关的权限配置:rw代表read and write,指具有读写权限;sync表示内存中数据实时写入到磁盘,NFS服务器必须在写完文件后发出确认;no_root_squash表示root用户对共享的目录拥有最高的权限控制;insecure选项的作用是允许客户端使用不安全的身份验证方法来访问NFS服务;还可以配置其他参数,all_squash表示不管NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;no_subtree_check表示不对子树进行检查,子树检查用于验证正在访问的文件是否位于同一卷上的子文件夹中,如果是共享了整个驱动器卷,配置此选项将加快对子文件夹和文件的访问速度;anonuid/anongid和root_squash、all_squash同时使用,用于指定使用NFS的用户限定的uid和gid。
都配置好之后,我们就可以启动nfs服务并设置开启自动运行了。
/etc/init.d/nfs-kernel-server start
注意,PVE还有系统防火墙,检查是否处于运行状态,如果是运行状态,需要关闭并去使能。
有意思的是,pve-firewall看到的状态是disabled,使用systemctl看到的又是enabled,不放心的可以直接用systemctl。
然后我们在ESXi导航器的存储中,点击“数据存储”页面的“新建数据存储”,创建类型选择“挂载NFS数据存储”,点击“下一页”。
填写NFS挂载的详细信息,包括本地显示的“名称”,以及NFS服务器的IP地址、共享路径以及版本信息。注意,共享路径要和配置文件/etc/exports中配置的相同。
最后确认配置信息并点击“完成”。
添加成功之后,我们可以看到新添加的数据存储nfs153,类型为NFS,容量为58.51 GB,可用为55.14 GB。
容量和用量信息和PVE命令行看到的磁盘使用率有一点点出入。
然后我们通过数据存储浏览器,在数据存储nfs153中新建一个目录test。从主机上进行查看,可以看到root用户创建了一个test目录,操作成功,读写权限测试正常。
OK,演示结束。