在 Microsoft Windows 故障转移群集(Windows Server 2019 Datacenter)上,我创建了一个文件服务器角色并创建了一个NFS 共享(类似于这些说明)。我的想法是从运行 Linux(Ubuntu)的虚拟机安装此共享
问题是 Linux(Ubuntu)在尝试挂载此共享时超时:
admin@ubuntu-server:/mnt$ sudo mount -o nolock -v -t nfs 192.168.1.16:/nfs /mnt/nfs/
[sudo] password for admin:
mount.nfs: timeout set for Fri Jul 1 08:22:43 2022
mount.nfs: trying text-based options 'nolock,vers=4.2,addr=192.168.1.16,clientaddr=192.168.1.74'
mount.nfs: mount(2): Connection timed out
mount.nfs: Connection timed out
进一步检查发现,该文件服务器没有监听 2049/tcp 端口:
admin@ubuntu-server:/mnt$ sudo nmap 192.168.1.16
Starting Nmap 7.80 ( https://nmap.org ) at 2022-07-01 07:12 UTC
Nmap scan report for 192.168.1.16
Host is up (0.00037s latency).
Not shown: 995 filtered ports
PORT STATE SERVICE
111/tcp open rpcbind
135/tcp open msrpc
445/tcp open microsoft-ds
2179/tcp open vmrdp
3389/tcp open ms-wbt-server
MAC Address: A0:36:9F:34:39:26 (Intel Corporate)
Nmap done: 1 IP address (1 host up) scanned in 4.91 seconds
下一步是尝试验证 Linux 是否真的可以在 Windows 系统上挂载和创建 NFS 类型的共享。因此,在同一台 Windows Server 上,我在本地磁盘上创建了文件夹,并通过激活NTF共享选项(在文件夹属性中)。
Linux(Ubuntu)能够毫无问题地挂载此共享:
admin@ubuntu-server:/mnt$ sudo mount -o nolock -v -t nfs 192.168.1.11:/test2 /mnt/test2/
mount.nfs: timeout set for Fri Jul 1 07:11:58 2022
mount.nfs: trying text-based options 'nolock,vers=4.2,addr=192.168.1.11,clientaddr=192.168.1.74'
mount.nfs: mount(2): Protocol not supported
mount.nfs: trying text-based options 'nolock,vers=4.1,addr=192.168.1.11,clientaddr=192.168.1.74'
admin@ubuntu-server:/mnt$ ll test2/
total 5
drwxrwxrwx 2 nobody 4294967294 64 Jun 15 13:02 ./
drwxr-xr-x 3 root root 4096 Jul 1 07:08 ../
-rwxrwxrwx 1 nobody 4294967294 11 Jun 15 13:03 README.txt*
因此我检查了服务器的 IP 是否有开放端口,结果显示端口 2049/tcp开放:
admin@ubuntu-server:/mnt$ sudo nmap 192.168.1.11
Starting Nmap 7.80 ( https://nmap.org ) at 2022-07-01 07:12 UTC
Nmap scan report for windows-server.our-domain (192.168.1.11)
Host is up (0.00047s latency).
Not shown: 993 filtered ports
PORT STATE SERVICE
111/tcp open rpcbind
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
2049/tcp open nfs <---------- PORT IS OPEN
2179/tcp open vmrdp
3389/tcp open ms-wbt-server
MAC Address: A0:36:9F:34:39:26 (Intel Corporate)
Nmap done: 1 IP address (1 host up) scanned in 4.42 seconds
我比较了两个共享的配置方式,除以下内容外,配置完全相同:
- 一个在故障转移群集中运行,另一个直接在 Windows 上运行
- 一个使用本地文件夹,另一个使用集群存储中的磁盘
- 集群文件服务器有自己的 IP 地址,而 Windows 中的 NFS 共享可通过操作系统的 IP 地址访问
现在我几乎没得选择了。有人能帮忙吗?
以下是有关我的系统的更多信息:
- 故障转移群集正在 Windows Server 2019 Datacenter 上运行
- 集群使用光纤通道连接的存储
- 我们正在使用 Ubuntu Server 20.04
答案1
我们已成功通过使用 CIFS/SMB 代替 NFS 解决了此问题:
- 在 Windows 集群中,我们配置文件服务器角色以使用 Samba(而不是 NFS)
- 在我们的 Ubuntu 机器上,我们安装了使用的 CIFS 来安装卷
PS 这个的目标是锻炼不再使用虚拟机中的 Ubuntu 作为 Docker Swarm 容器的 NFS 服务器,而是使用 Windows 集群的文件服务器角色来代替。这样就无需为此角色运行整个虚拟机,并使系统管理变得更加容易。